diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e503d8cbdb..0000000000 --- a/.cvsignore +++ /dev/null @@ -1,31 +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 -stamp-h.in -Makefile -configure -setup.h -stamp-h -libtool -aclocal.m4 diff --git a/BuildCVS.txt b/BuildCVS.txt deleted file mode 100644 index f086d03820..0000000000 --- a/BuildCVS.txt +++ /dev/null @@ -1,169 +0,0 @@ ------------------------------------------------------------------------- - How to build the sources from CVS ------------------------------------------------------------------------- - -I) Windows using plain makefiles ----------------------------------------- - -a) Using the GNU MinGW32 or GNU CygWin32 compilers - -You'll need the compiler itself which is available from - - http://www.cygwin.com - -When using MingW32 you'll need GNU make which is part of -part of the CygWin32 toolchain and is also available as -a stand alone port without the infamous Cygwin.dll from - - http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32 - -The makefile has small problems with Cygwin´s tools -so it is recommended not to use these (but MingGW32 -and its make.exe). - --> Set your path so that it includes the directory - where your compiler and tools reside --> Assume that you installed the wxWindows sources - into c:\wxWin --> Copy c:\wxWin\include\wx\msw\setup0.h - to c:\wxWin\include\wx\msw\setup.h --> Edit c:\wxWin\include\wx\msw\setup.h so that - most features are enabled (i.e. defined to 1) with - #define wxUSE_ODBC 0 - #define wxUSE_SOCKETS 0 - #define wxUSE_HTML 1 - #define wxUSE_THREADS 1 - #define wxUSE_FS_INET 0 - #define wxUSE_FS_ZIP 1 - #define wxUSE_BUSYINFO 1 - #define wxUSE_DYNLIB_CLASS 1 - #define wxUSE_ZIPSTREAM 1 - #define wxUSE_LIBJPEG 1 - #define wxUSE_LIBPNG 1 - - and iostreams ares disabled with - #define wxUSE_STD_IOSTREAM 0 --> type: cd c:\wxWin\src\msw --> type: make -f makefile.g95 - -II) Unix ports --------------- - -Building wxGTK or wxMotif completely without configure -won't ever work, but there is now a new makefile system -that works without libtool and automake, using only -configure to create what is needed. - -In order to create configure, you need to have the -GNU autoconf package (version 2.13 or 2.14) installed -on your system and type run "autoconf" in the base -directory (or run the autogen.sh script in the same -directory, which just calls autoconf). - -Set WXWIN environment variable to the base directory such -as ~/wxWindows (this is actually not really needed). - --> type: export WXWIN=~/wxWindows --> type: md mybuild --> type: cd mybuild --> type: ../configure --with-motif -or type: ../configure --with-gtk --> type: make --> type: su --> type: make install --> type: ldconfig --> type: exit - -Call configure with --disable-shared to create a static -library. Calling "make uninstall" will remove the installed -library and "make dist" will create a distribution (not -yet complete). - -III) Windows using configure ----------------------------------------- - -Take a look at Unix->Windows cross compiling. With minor -modifications, this should work in Windows if you've got the cygnus -utilities (bash, GNU make, etc) and either mingw32 or cygwin32 installed. -See http://www.cygnus.com for these programs, or go straight to their -ftp server at ftp://sourceware.cygnus.com/pub/cygwin/. - -Of course, you can also build the library using plain makefiles (see -section I). - -V) MacOS ----------------------------------------- - -VI) OS/2 ----------------------------------------- - -VII) Unix->Windows cross-compiling using configure --------------------------------------------------- - -First you'll need a cross-compiler; linux glibc binaries of mingw32 and -cygwin32 (both based on egcs) can be found at -ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Otherwise you can -compile one yourself. Check the relevant FAQs. - -[ A Note about cygwin32 and mingw32: the main difference is that cygwin32 -binaries are always linked against cygwin.dll. This dll encapsulates most -standard Unix C extensions, which is very handy if you're porting unix -software to windows. However, wxMSW doesn't need this, so mingw32 is -preferable if you write portable C(++). ] - -You might want to build both Unix and Windows binaries in the same source -tree; to do this make subdirs for each e.g. unix and win32. If you've -already build wxWindows in the main dir, do a 'make distclean' there, -otherwise configure will get confused. (In any case, read the section 'Unix -using configure' and make sure you're able to build a native wxWindows -library; cross-compiling errors can be pretty obscure and you'll want to be -sure that your configure setup is basically sound.) - -To cross compile the windows library, do --> cd win32 -Now run configure. There are two ways to do this --> ../configure --host=i586-mingw32 --build=i586-linux --with-mingw \ - --enable-dnd=no -where --build= should read whatever platform you're building on. Configure -will notice that build and host platforms differ, and automatically prepend -i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!). -The other way to run configure is by specifying the names of the binaries -yourself: --> CC=i586-mingw32-gcc CXX=i586-mingw32-g++ RANLIB=i586-mingw32-ranlib \ - DLLTOOL=i586-mingw32-dlltool LD=i586-mingw32-ld NM=i586-mingw32-nm \ - ../configure --host=i586-mingw32 --with-mingw --enable-dnd=no - -(all assuming you're using mingw32) -Drag'n'drop is disabled because mingw32 lacks (AFAIK) OLE headers. - -Configure will conclude that shared libraries are out of the question and -opt for a static one. I haven't looked into DLL creation yet. - -Type --> make -C src -and wait, wait, wait. Don't leave the room, because the minute you do there -will be a compile error :-) - -If this is successful, try building the minimal sample: --> cd samples/minimal --> make --> mv minimal minimal.exe - -and run it with wine, for example --> wine minimal.exe - -If all is well, do an install; from win32 --> make install - -Native and cross-compiled installations can co-exist peacefully -(as long as their widget sets differ), except for wx-config. You might -want to rename the cross-compiled one to i586-mingw32-wx-config, or something. - -Cross-compiling TODO: ---------------------- -- resource compiling must be done manually for now (should/can we link the -default wx resources into libwx_msw.a?) [ No we can't; the linker won't -link it in... you have to supply an object file ] -- dynamic libraries -- static executables are HUGE -- there must be room for improvement. - diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 3ae684fd4c..0000000000 --- a/Makefile.in +++ /dev/null @@ -1,1502 +0,0 @@ -# -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE UNX.T! - -# -# File: makefile.unx -# Author: Julian Smart, Robert Roebling, Vadim Zeitlin -# Created: 1993 -# Updated: 1999 -# Copyright:(c) 1993, AIAI, University of Edinburgh, -# Copyright:(c) 1999, Vadim Zeitlin -# Copyright:(c) 1999, Robert Roebling -# -# Makefile for libwx_gtk.a, libwx_motif.a and libwx_msw.a - -################################################################### - -include ./src/make.env - -############## override make.env for PIC ########################## - -# Clears all default suffixes -.SUFFIXES: .o .cpp .c .cxx - -.c.o : - $(CCC) -c $(CFLAGS) $(PICFLAGS) -o $@ $< - -.cpp.o : - $(CC) -c $(CPPFLAGS) $(PICFLAGS) -o $@ $< - -.cxx.o : - $(CC) -c $(CPPFLAGS) $(PICFLAGS) -o $@ $< - -########################### Paths ################################# - -srcdir = @srcdir@ - -VPATH = :@top_srcdir@ - -top_srcdir = @top_srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -# my autoconf doesn't set this -#INSTALL_SCRIPT = @INSTALL_SCRIPT@ -# maybe do an additional chmod if needed? -INSTALL_SCRIPT = @INSTALL@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ - -############################# Dirs ################################# - -WXDIR = $(top_srcdir) - -# Subordinate library possibilities - -SRCDIR = $(WXDIR)/src -GENDIR = $(WXDIR)/src/generic -COMMDIR = $(WXDIR)/src/common -HTMLDIR = $(WXDIR)/src/html -UNIXDIR = $(WXDIR)/src/unix -PNGDIR = $(WXDIR)/src/png -JPEGDIR = $(WXDIR)/src/jpeg -ZLIBDIR = $(WXDIR)/src/zlib -GTKDIR = $(WXDIR)/src/gtk -MOTIFDIR = $(WXDIR)/src/motif -MSWDIR = $(WXDIR)/src/msw -INCDIR = $(WXDIR)/include -SAMPDIR = $(WXDIR)/samples - -DOCDIR = $(WXDIR)/docs - -########################## Archive name ############################### - -WXARCHIVE = wx$(TOOLKIT)-$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER).tgz -DISTDIR = ./_dist_dir/wx$(TOOLKIT) - -############################## Files ################################## - -WX_HEADERS = \ - accel.h \ - app.h \ - arrimpl.cpp \ - bitmap.h \ - bmpbuttn.h \ - brush.h \ - buffer.h \ - busyinfo.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 \ - ffile.h \ - file.h \ - fileconf.h \ - filedlg.h \ - filefn.h \ - filesys.h \ - font.h \ - fontdlg.h \ - frame.h \ - fs_inet.h \ - fs_zip.h \ - gauge.h \ - gdicmn.h \ - gdiobj.h \ - gifdecod.h \ - grid.h \ - gsocket.h \ - hash.h \ - help.h \ - helpbase.h \ - helphtml.h \ - helpwin.h \ - helpxlp.h \ - icon.h \ - image.h \ - imaglist.h \ - intl.h \ - ioswrap.h \ - ipcbase.h \ - joystick.h \ - layout.h \ - laywin.h \ - list.h \ - listbox.h \ - listctrl.h \ - listimpl.cpp \ - 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 \ - sckipc.h \ - sckstrm.h \ - scrolbar.h \ - scrolwin.h \ - serbase.h \ - settings.h \ - setup.h \ - sizer.h \ - slider.h \ - socket.h \ - spinbutt.h \ - splitter.h \ - statbmp.h \ - statbox.h \ - statline.h \ - stattext.h \ - statusbr.h \ - strconv.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 \ - tipdlg.h \ - tokenzr.h \ - toolbar.h \ - tooltip.h \ - treectrl.h \ - txtstrm.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 \ - wxhtml.h \ - wxprec.h \ - xpmhand.h \ - zipstrm.h \ - zstream.h - -GTK_HEADERS = \ - gtk/accel.h \ - gtk/app.h \ - gtk/bitmap.h \ - gtk/bmpbuttn.h \ - gtk/brush.h \ - gtk/button.h \ - gtk/checkbox.h \ - gtk/checklst.h \ - gtk/choice.h \ - gtk/clipbrd.h \ - gtk/colour.h \ - gtk/combobox.h \ - gtk/control.h \ - gtk/cursor.h \ - gtk/dataobj.h \ - gtk/dc.h \ - gtk/dcclient.h \ - gtk/dcmemory.h \ - gtk/dcscreen.h \ - gtk/dialog.h \ - gtk/dnd.h \ - gtk/filedlg.h \ - gtk/font.h \ - gtk/frame.h \ - gtk/gauge.h \ - gtk/gdiobj.h \ - gtk/icon.h \ - gtk/joystick.h \ - gtk/listbox.h \ - gtk/mdi.h \ - gtk/menu.h \ - gtk/menuitem.h \ - gtk/minifram.h \ - gtk/notebook.h \ - gtk/palette.h \ - gtk/pen.h \ - gtk/radiobox.h \ - gtk/radiobut.h \ - gtk/region.h \ - gtk/scrolbar.h \ - gtk/settings.h \ - gtk/slider.h \ - gtk/spinbutt.h \ - gtk/statbmp.h \ - gtk/statbox.h \ - gtk/statline.h \ - gtk/stattext.h \ - gtk/tbargtk.h \ - gtk/textctrl.h \ - gtk/timer.h \ - gtk/tooltip.h \ - gtk/treectrl.h \ - gtk/wave.h \ - gtk/win_gtk.h \ - gtk/window.h - -MOTIF_HEADERS = \ - motif/accel.h \ - motif/app.h \ - motif/bitmap.h \ - motif/bmpbuttn.h \ - motif/brush.h \ - motif/button.h \ - motif/checkbox.h \ - motif/checklst.h \ - motif/choice.h \ - motif/clipbrd.h \ - motif/colordlg.h \ - motif/colour.h \ - motif/combobox.h \ - motif/control.h \ - motif/cursor.h \ - motif/dataobj.h \ - motif/dc.h \ - motif/dcclient.h \ - motif/dcmemory.h \ - motif/dcprint.h \ - motif/dcscreen.h \ - motif/dialog.h \ - motif/dnd.h \ - motif/filedlg.h \ - motif/font.h \ - motif/fontdlg.h \ - motif/frame.h \ - motif/gauge.h \ - motif/gdiobj.h \ - motif/icon.h \ - motif/joystick.h \ - motif/listbox.h \ - motif/mdi.h \ - motif/menu.h \ - motif/menuitem.h \ - motif/metafile.h \ - motif/minifram.h \ - motif/msgdlg.h \ - motif/palette.h \ - motif/pen.h \ - motif/print.h \ - motif/printdlg.h \ - motif/private.h \ - motif/radiobox.h \ - motif/radiobut.h \ - motif/region.h \ - motif/scrolbar.h \ - motif/settings.h \ - motif/slider.h \ - motif/spinbutt.h \ - motif/statbmp.h \ - motif/statbox.h \ - motif/stattext.h \ - motif/textctrl.h \ - motif/timer.h \ - motif/toolbar.h \ - motif/window.h - -MSW_HEADERS = \ - msw/accel.h \ - msw/app.h \ - msw/bitmap.h \ - msw/bmpbuttn.h \ - msw/brush.h \ - msw/button.h \ - msw/caret.h \ - msw/checkbox.h \ - msw/checklst.h \ - msw/choice.h \ - msw/clipbrd.h \ - msw/colordlg.h \ - msw/colour.h \ - msw/combobox.h \ - msw/control.h \ - msw/curico.h \ - msw/curicop.h \ - msw/cursor.h \ - msw/dc.h \ - msw/dcclient.h \ - msw/dcmemory.h \ - msw/dcprint.h \ - msw/dcscreen.h \ - msw/dde.h \ - msw/dialog.h \ - msw/dib.h \ - msw/dibutils.h \ - msw/dirdlg.h \ - msw/dragimag.h \ - msw/filedlg.h \ - msw/font.h \ - msw/fontdlg.h \ - msw/frame.h \ - msw/gauge.h \ - msw/gauge95.h \ - msw/gaugemsw.h \ - msw/gdiobj.h \ - msw/helpwin.h \ - msw/icon.h \ - msw/imaglist.h \ - msw/iniconf.h \ - msw/joystick.h \ - msw/listbox.h \ - msw/listctrl.h \ - msw/mdi.h \ - msw/menu.h \ - msw/menuitem.h \ - msw/metafile.h \ - msw/minifram.h \ - msw/msgdlg.h \ - msw/msvcrt.h \ - msw/notebook.h \ - msw/palette.h \ - msw/pen.h \ - msw/pnghand.h \ - msw/pngread.h \ - msw/printdlg.h \ - msw/printwin.h \ - msw/private.h \ - msw/radiobox.h \ - msw/radiobut.h \ - msw/regconf.h \ - msw/region.h \ - msw/registry.h \ - msw/scrolbar.h \ - msw/settings.h \ - msw/setup0.h \ - msw/slider.h \ - msw/slider95.h \ - msw/slidrmsw.h \ - msw/spinbutt.h \ - msw/statbmp.h \ - msw/statbox.h \ - msw/statbr95.h \ - msw/statline.h \ - msw/stattext.h \ - msw/tabctrl.h \ - msw/taskbar.h \ - msw/tbar95.h \ - msw/tbarmsw.h \ - msw/textctrl.h \ - msw/timer.h \ - msw/tooltip.h \ - msw/treectrl.h \ - msw/wave.h \ - msw/window.h \ - msw/winundef.h \ - msw/xpmhand.h - -UNIX_HEADERS = \ - unix/execute.h - -GENERIC_HEADERS = \ - generic/caret.h \ - generic/choicdgg.h \ - generic/colrdlgg.h \ - generic/dcpsg.h \ - generic/dirdlgg.h \ - generic/filedlgg.h \ - generic/fontdlgg.h \ - generic/gridg.h \ - generic/helpext.h \ - generic/helphtml.h \ - generic/helpwxht.h \ - generic/helpxlp.h \ - generic/imaglist.h \ - generic/laywin.h \ - generic/listctrl.h \ - generic/msgdlgg.h \ - generic/notebook.h \ - generic/panelg.h \ - generic/printps.h \ - generic/prntdlgg.h \ - generic/progdlgg.h \ - generic/sashwin.h \ - generic/scrolwin.h \ - generic/splitter.h \ - generic/statusbr.h \ - generic/tabg.h \ - generic/textdlgg.h \ - generic/treectrl.h - -PROTOCOL_HEADERS = \ - protocol/file.h \ - protocol/ftp.h \ - protocol/http.h \ - protocol/protocol.h - -HTML_HEADERS = \ - html/forcelink.h \ - html/htmlcell.h \ - html/htmldefs.h \ - html/htmlfilter.h \ - html/htmlhelp.h \ - html/htmlparser.h \ - html/htmltag.h \ - html/htmlwin.h \ - html/htmlwinparser.h \ - html/mod_templ.h \ - html/version.h - -GTK_GENERICOBJS = \ - src/generic/busyinfo.o \ - src/generic/caret.o \ - src/generic/choicdgg.o \ - src/generic/colrdlgg.o \ - src/generic/dcpsg.o \ - src/generic/dirdlgg.o \ - src/generic/filedlgg.o \ - src/generic/fontdlgg.o \ - src/generic/gridg.o \ - src/generic/helphtml.o \ - src/generic/helpwxht.o \ - src/generic/imaglist.o \ - src/generic/laywin.o \ - src/generic/listctrl.o \ - src/generic/msgdlgg.o \ - src/generic/numdlgg.o \ - src/generic/panelg.o \ - src/generic/printps.o \ - src/generic/prntdlgg.o \ - src/generic/progdlgg.o \ - src/generic/prop.o \ - src/generic/propform.o \ - src/generic/proplist.o \ - src/generic/sashwin.o \ - src/generic/scrolwin.o \ - src/generic/splitter.o \ - src/generic/statusbr.o \ - src/generic/textdlgg.o \ - src/generic/tipdlg.o \ - src/generic/treectrl.o \ - src/generic/wizard.o - -GTK_COMMONOBJS = \ - parser.o \ - src/common/cmndata.o \ - src/common/config.o \ - src/common/date.o \ - src/common/datstrm.o \ - src/common/db.o \ - src/common/dbtable.o \ - src/common/dcbase.o \ - src/common/dlgcmn.o \ - src/common/docmdi.o \ - src/common/docview.o \ - src/common/dynarray.o \ - src/common/dynlib.o \ - src/common/event.o \ - src/common/extended.o \ - src/common/ffile.o \ - src/common/file.o \ - src/common/fileconf.o \ - src/common/filefn.o \ - src/common/filesys.o \ - src/common/framecmn.o \ - src/common/fs_inet.o \ - src/common/fs_zip.o \ - src/common/ftp.o \ - src/common/gdicmn.o \ - src/common/gifdecod.o \ - src/common/hash.o \ - src/common/helpbase.o \ - src/common/http.o \ - src/common/imagbmp.o \ - src/common/image.o \ - src/common/imaggif.o \ - src/common/imagjpeg.o \ - src/common/imagpng.o \ - src/common/imagpnm.o \ - src/common/intl.o \ - src/common/ipcbase.o \ - src/common/layout.o \ - src/common/list.o \ - src/common/log.o \ - src/common/memory.o \ - src/common/mimetype.o \ - src/common/module.o \ - src/common/mstream.o \ - src/common/object.o \ - src/common/objstrm.o \ - src/common/paper.o \ - src/common/prntbase.o \ - src/common/process.o \ - src/common/protocol.o \ - src/common/resource.o \ - src/common/sckaddr.o \ - src/common/sckfile.o \ - src/common/sckipc.o \ - src/common/sckstrm.o \ - src/common/sizer.o \ - src/common/socket.o \ - src/common/strconv.o \ - src/common/stream.o \ - src/common/string.o \ - src/common/tbarbase.o \ - src/common/tbarsmpl.o \ - src/common/textcmn.o \ - src/common/textfile.o \ - src/common/time.o \ - src/common/timercmn.o \ - src/common/tokenzr.o \ - src/common/txtstrm.o \ - src/common/unzip.o \ - src/common/url.o \ - src/common/utilscmn.o \ - src/common/valgen.o \ - src/common/validate.o \ - src/common/valtext.o \ - src/common/variant.o \ - src/common/wfstream.o \ - src/common/wincmn.o \ - src/common/wxchar.o \ - src/common/wxexpr.o \ - src/common/zipstrm.o \ - src/common/zstream.o - -GTK_GUIOBJS = \ - src/gtk/accel.o \ - src/gtk/app.o \ - src/gtk/bitmap.o \ - src/gtk/bmpbuttn.o \ - src/gtk/brush.o \ - src/gtk/button.o \ - src/gtk/checkbox.o \ - src/gtk/checklst.o \ - src/gtk/choice.o \ - src/gtk/clipbrd.o \ - src/gtk/colour.o \ - src/gtk/combobox.o \ - src/gtk/control.o \ - src/gtk/cursor.o \ - src/gtk/data.o \ - src/gtk/dataobj.o \ - src/gtk/dc.o \ - src/gtk/dcclient.o \ - src/gtk/dcmemory.o \ - src/gtk/dcscreen.o \ - src/gtk/dialog.o \ - src/gtk/dnd.o \ - src/gtk/font.o \ - src/gtk/frame.o \ - src/gtk/gauge.o \ - src/gtk/gdiobj.o \ - src/gtk/gsockgtk.o \ - src/gtk/icon.o \ - src/gtk/listbox.o \ - src/gtk/main.o \ - src/gtk/mdi.o \ - src/gtk/menu.o \ - src/gtk/minifram.o \ - src/gtk/notebook.o \ - src/gtk/palette.o \ - src/gtk/pen.o \ - src/gtk/radiobox.o \ - src/gtk/radiobut.o \ - src/gtk/region.o \ - src/gtk/scrolbar.o \ - src/gtk/settings.o \ - src/gtk/slider.o \ - src/gtk/spinbutt.o \ - src/gtk/statbmp.o \ - src/gtk/statbox.o \ - src/gtk/statline.o \ - src/gtk/stattext.o \ - src/gtk/tbargtk.o \ - src/gtk/textctrl.o \ - src/gtk/timer.o \ - src/gtk/tooltip.o \ - src/gtk/utilsgtk.o \ - src/gtk/utilsres.o \ - src/gtk/wave.o \ - src/gtk/win_gtk.o \ - src/gtk/window.o - -MOTIF_GENERICOBJS = \ - src/generic/busyinfo.o \ - src/generic/caret.o \ - src/generic/choicdgg.o \ - src/generic/colrdlgg.o \ - src/generic/dcpsg.o \ - src/generic/dirdlgg.o \ - src/generic/filedlgg.o \ - src/generic/fontdlgg.o \ - src/generic/gridg.o \ - src/generic/helphtml.o \ - src/generic/helpwxht.o \ - src/generic/helpxlp.o \ - src/generic/imaglist.o \ - src/generic/laywin.o \ - src/generic/listctrl.o \ - src/generic/msgdlgg.o \ - src/generic/notebook.o \ - src/generic/numdlgg.o \ - src/generic/panelg.o \ - src/generic/printps.o \ - src/generic/prntdlgg.o \ - src/generic/progdlgg.o \ - src/generic/prop.o \ - src/generic/propform.o \ - src/generic/proplist.o \ - src/generic/sashwin.o \ - src/generic/scrolwin.o \ - src/generic/splitter.o \ - src/generic/statusbr.o \ - src/generic/tabg.o \ - src/generic/textdlgg.o \ - src/generic/tipdlg.o \ - src/generic/treectrl.o \ - src/generic/wizard.o - -MOTIF_COMMONOBJS = \ - parser.o \ - src/common/choiccmn.o \ - src/common/cmndata.o \ - src/common/config.o \ - src/common/ctrlcmn.o \ - src/common/date.o \ - src/common/datstrm.o \ - src/common/db.o \ - src/common/dbtable.o \ - src/common/dcbase.o \ - src/common/dlgcmn.o \ - src/common/docmdi.o \ - src/common/docview.o \ - src/common/dynarray.o \ - src/common/dynlib.o \ - src/common/event.o \ - src/common/extended.o \ - src/common/ffile.o \ - src/common/file.o \ - src/common/fileconf.o \ - src/common/filefn.o \ - src/common/filesys.o \ - src/common/framecmn.o \ - src/common/fs_inet.o \ - src/common/fs_zip.o \ - src/common/ftp.o \ - src/common/gdicmn.o \ - src/common/gifdecod.o \ - src/common/hash.o \ - src/common/helpbase.o \ - src/common/http.o \ - src/common/imagbmp.o \ - src/common/image.o \ - src/common/imaggif.o \ - src/common/imagjpeg.o \ - src/common/imagpng.o \ - src/common/imagpnm.o \ - src/common/intl.o \ - src/common/ipcbase.o \ - src/common/layout.o \ - src/common/list.o \ - src/common/log.o \ - src/common/memory.o \ - src/common/mimetype.o \ - src/common/module.o \ - src/common/mstream.o \ - src/common/object.o \ - src/common/objstrm.o \ - src/common/odbc.o \ - src/common/paper.o \ - src/common/prntbase.o \ - src/common/process.o \ - src/common/protocol.o \ - src/common/resource.o \ - src/common/sckaddr.o \ - src/common/sckfile.o \ - src/common/sckipc.o \ - src/common/sckstrm.o \ - src/common/sizer.o \ - src/common/socket.o \ - src/common/strconv.o \ - src/common/stream.o \ - src/common/string.o \ - src/common/tbarbase.o \ - src/common/tbarsmpl.o \ - src/common/textcmn.o \ - src/common/textfile.o \ - src/common/time.o \ - src/common/timercmn.o \ - src/common/tokenzr.o \ - src/common/txtstrm.o \ - src/common/unzip.o \ - src/common/url.o \ - src/common/utilscmn.o \ - src/common/valgen.o \ - src/common/validate.o \ - src/common/valtext.o \ - src/common/variant.o \ - src/common/wfstream.o \ - src/common/wincmn.o \ - src/common/wxchar.o \ - src/common/wxexpr.o \ - src/common/zipstrm.o \ - src/common/zstream.o - -MOTIF_GUIOBJS = \ - src/motif/xmcombo/xmcombo.o \ - src/motif/accel.o \ - src/motif/app.o \ - src/motif/bitmap.o \ - src/motif/bmpbuttn.o \ - src/motif/brush.o \ - src/motif/button.o \ - src/motif/checkbox.o \ - src/motif/choice.o \ - src/motif/clipbrd.o \ - src/motif/colour.o \ - src/motif/combobox.o \ - src/motif/control.o \ - src/motif/cursor.o \ - src/motif/data.o \ - src/motif/dataobj.o \ - src/motif/dc.o \ - src/motif/dcclient.o \ - src/motif/dcmemory.o \ - src/motif/dcscreen.o \ - src/motif/dialog.o \ - src/motif/filedlg.o \ - src/motif/font.o \ - src/motif/frame.o \ - src/motif/gauge.o \ - src/motif/gdiobj.o \ - src/motif/gsockmot.o \ - src/motif/icon.o \ - src/motif/listbox.o \ - src/motif/main.o \ - src/motif/mdi.o \ - src/motif/menu.o \ - src/motif/menuitem.o \ - src/motif/minifram.o \ - src/motif/msgdlg.o \ - src/motif/palette.o \ - src/motif/pen.o \ - src/motif/radiobox.o \ - src/motif/radiobut.o \ - src/motif/region.o \ - src/motif/scrolbar.o \ - src/motif/settings.o \ - src/motif/slider.o \ - src/motif/statbmp.o \ - src/motif/statbox.o \ - src/motif/stattext.o \ - src/motif/textctrl.o \ - src/motif/timer.o \ - src/motif/toolbar.o \ - src/motif/utils.o \ - src/motif/window.o - -MSW_GENERICOBJS = \ - src/generic/busyinfo.o \ - src/generic/choicdgg.o \ - src/generic/dirdlgg.o \ - src/generic/gridg.o \ - src/generic/laywin.o \ - src/generic/numdlgg.o \ - src/generic/panelg.o \ - src/generic/progdlgg.o \ - src/generic/prop.o \ - src/generic/propform.o \ - src/generic/proplist.o \ - src/generic/sashwin.o \ - src/generic/scrolwin.o \ - src/generic/splitter.o \ - src/generic/statusbr.o \ - src/generic/tabg.o \ - src/generic/textdlgg.o \ - src/generic/tipdlg.o \ - src/generic/wizard.o - -MSW_COMMONOBJS = \ - src/common/choiccmn.o \ - src/common/cmndata.o \ - src/common/config.o \ - src/common/ctrlcmn.o \ - src/common/date.o \ - src/common/datstrm.o \ - src/common/db.o \ - src/common/dbtable.o \ - src/common/dcbase.o \ - src/common/dlgcmn.o \ - src/common/docmdi.o \ - src/common/docview.o \ - src/common/dynarray.o \ - src/common/dynlib.o \ - src/common/event.o \ - src/common/extended.o \ - src/common/ffile.o \ - src/common/file.o \ - src/common/fileconf.o \ - src/common/filefn.o \ - src/common/filesys.o \ - src/common/framecmn.o \ - src/common/fs_inet.o \ - src/common/fs_zip.o \ - src/common/ftp.o \ - src/common/gdicmn.o \ - src/common/gifdecod.o \ - src/common/hash.o \ - src/common/helpbase.o \ - src/common/http.o \ - src/common/imagbmp.o \ - src/common/image.o \ - src/common/imaggif.o \ - src/common/imagjpeg.o \ - src/common/imagpng.o \ - src/common/imagpnm.o \ - src/common/intl.o \ - src/common/ipcbase.o \ - src/common/layout.o \ - src/common/list.o \ - src/common/log.o \ - src/common/memory.o \ - src/common/mimetype.o \ - src/common/module.o \ - src/common/mstream.o \ - src/common/object.o \ - src/common/objstrm.o \ - src/common/paper.o \ - src/common/prntbase.o \ - src/common/process.o \ - src/common/protocol.o \ - src/common/resource.o \ - src/common/sckaddr.o \ - src/common/sckfile.o \ - src/common/sckipc.o \ - src/common/sckstrm.o \ - src/common/sizer.o \ - src/common/socket.o \ - src/common/strconv.o \ - src/common/stream.o \ - src/common/string.o \ - src/common/tbarbase.o \ - src/common/textcmn.o \ - src/common/textfile.o \ - src/common/time.o \ - src/common/timercmn.o \ - src/common/tokenzr.o \ - src/common/txtstrm.o \ - src/common/unzip.o \ - src/common/url.o \ - src/common/utilscmn.o \ - src/common/valgen.o \ - src/common/validate.o \ - src/common/valtext.o \ - src/common/variant.o \ - src/common/wfstream.o \ - src/common/wincmn.o \ - src/common/wxchar.o \ - src/common/wxexpr.o \ - src/common/zipstrm.o \ - src/common/zstream.o - -MSW_GUIOBJS = \ - src/msw/accel.o \ - src/msw/app.o \ - src/msw/bitmap.o \ - src/msw/bmpbuttn.o \ - src/msw/brush.o \ - src/msw/button.o \ - src/msw/caret.o \ - src/msw/checkbox.o \ - src/msw/checklst.o \ - src/msw/choice.o \ - src/msw/clipbrd.o \ - src/msw/colordlg.o \ - src/msw/colour.o \ - src/msw/combobox.o \ - src/msw/control.o \ - src/msw/curico.o \ - src/msw/cursor.o \ - src/msw/data.o \ - src/msw/dc.o \ - src/msw/dcclient.o \ - src/msw/dcmemory.o \ - src/msw/dcprint.o \ - src/msw/dcscreen.o \ - src/msw/dde.o \ - src/msw/dialog.o \ - src/msw/dib.o \ - src/msw/dibutils.o \ - src/msw/dragimag.o \ - src/msw/filedlg.o \ - src/msw/font.o \ - src/msw/fontdlg.o \ - src/msw/frame.o \ - src/msw/gauge95.o \ - src/msw/gdiobj.o \ - src/msw/helpwin.o \ - src/msw/icon.o \ - src/msw/imaglist.o \ - src/msw/joystick.o \ - src/msw/listbox.o \ - src/msw/listctrl.o \ - src/msw/main.o \ - src/msw/mdi.o \ - src/msw/menu.o \ - src/msw/menuitem.o \ - src/msw/metafile.o \ - src/msw/minifram.o \ - src/msw/msgdlg.o \ - src/msw/nativdlg.o \ - src/msw/notebook.o \ - src/msw/ownerdrw.o \ - src/msw/palette.o \ - src/msw/pen.o \ - src/msw/penwin.o \ - src/msw/pnghand.o \ - src/msw/printdlg.o \ - src/msw/printwin.o \ - src/msw/radiobox.o \ - src/msw/radiobut.o \ - src/msw/regconf.o \ - src/msw/region.o \ - src/msw/registry.o \ - src/msw/scrolbar.o \ - src/msw/settings.o \ - src/msw/slider95.o \ - src/msw/spinbutt.o \ - src/msw/statbmp.o \ - src/msw/statbox.o \ - src/msw/statbr95.o \ - src/msw/statline.o \ - src/msw/stattext.o \ - src/msw/tabctrl.o \ - src/msw/taskbar.o \ - src/msw/tbar95.o \ - src/msw/textctrl.o \ - src/msw/thread.o \ - src/msw/timer.o \ - src/msw/tooltip.o \ - src/msw/treectrl.o \ - src/msw/utils.o \ - src/msw/utilsexc.o \ - src/msw/wave.o \ - src/msw/window.o \ - src/msw/xpmhand.o - -HTMLOBJS = \ - src/html/htmlcell.o \ - src/html/htmlfilter.o \ - src/html/htmlhelp.o \ - src/html/htmlhelp_io.o \ - src/html/htmlparser.o \ - src/html/htmltag.o \ - src/html/htmlwin.o \ - src/html/htmlwinparser.o \ - src/html/mod_fonts.o \ - src/html/mod_hline.o \ - src/html/mod_image.o \ - src/html/mod_layout.o \ - src/html/mod_links.o \ - src/html/mod_list.o \ - src/html/mod_pre.o \ - src/html/mod_tables.o \ - src/html/search.o - -UNIXOBJS = \ - src/unix/gsocket.o \ - src/unix/threadpsx.o \ - src/unix/utilsunx.o - -ZLIBOBJS = \ - src/zlib/adler32.o \ - src/zlib/compress.o \ - src/zlib/crc32.o \ - src/zlib/gzio.o \ - src/zlib/uncompr.o \ - src/zlib/deflate.o \ - src/zlib/trees.o \ - src/zlib/zutil.o \ - src/zlib/inflate.o \ - src/zlib/infblock.o \ - src/zlib/inftrees.o \ - src/zlib/infcodes.o \ - src/zlib/infutil.o \ - src/zlib/inffast.o - -PNGOBJS = \ - src/png/png.o \ - src/png/pngread.o \ - src/png/pngrtran.o \ - src/png/pngrutil.o \ - src/png/pngpread.o \ - src/png/pngtrans.o \ - src/png/pngwrite.o \ - src/png/pngwtran.o \ - src/png/pngwutil.o \ - src/png/pngerror.o \ - src/png/pngmem.o \ - src/png/pngwio.o \ - src/png/pngrio.o \ - src/png/pngget.o \ - src/png/pngset.o - - -JPEGOBJS = \ - src/jpeg/jcomapi.o \ - src/jpeg/jutils.o \ - src/jpeg/jerror.o \ - src/jpeg/jmemmgr.o \ - src/jpeg/jmemnobs.o \ - src/jpeg/jcapimin.o \ - src/jpeg/jcapistd.o \ - src/jpeg/jctrans.o \ - src/jpeg/jcparam.o \ - src/jpeg/jdatadst.o \ - src/jpeg/jcinit.o \ - src/jpeg/jcmaster.o \ - src/jpeg/jcmarker.o \ - src/jpeg/jcmainct.o \ - src/jpeg/jcprepct.o \ - src/jpeg/jccoefct.o \ - src/jpeg/jccolor.o \ - src/jpeg/jcsample.o \ - src/jpeg/jchuff.o \ - src/jpeg/jcphuff.o \ - src/jpeg/jcdctmgr.o \ - src/jpeg/jfdctfst.o \ - src/jpeg/jfdctflt.o \ - src/jpeg/jfdctint.o \ - src/jpeg/jdapimin.o \ - src/jpeg/jdapistd.o \ - src/jpeg/jdtrans.o \ - src/jpeg/jdatasrc.o \ - src/jpeg/jdmaster.o \ - src/jpeg/jdinput.o \ - src/jpeg/jdmarker.o \ - src/jpeg/jdhuff.o \ - src/jpeg/jdphuff.o \ - src/jpeg/jdmainct.o \ - src/jpeg/jdcoefct.o \ - src/jpeg/jdpostct.o \ - src/jpeg/jddctmgr.o \ - src/jpeg/jidctfst.o \ - src/jpeg/jidctflt.o \ - src/jpeg/jidctint.o \ - src/jpeg/jidctred.o \ - src/jpeg/jdsample.o \ - src/jpeg/jdcolor.o \ - src/jpeg/jquant1.o \ - src/jpeg/jquant2.o \ - src/jpeg/jdmerge.o - - -OBJECTS = $(@GUIOBJS@) $(@COMMONOBJS@) $(@GENERICOBJS@) $(@UNIXOBJS@) $(HTMLOBJS) \ - $(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) - -HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \ - $(GENERIC_HEADERS) $(WX_HEADERS) - -REQUIRED_DIRS = ./lib ./src ./src/common ./src/gtk ./src/motif ./src/msw \ - ./src/generic ./src/unix ./src/motif/xmombo ./src/html \ - ./src/zlib ./src/jpeg ./src/png - -all: $(REQUIRED_DIRS) $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@ - -$(REQUIRED_DIRS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h - @mkdir -p ./lib - @mkdir -p ./src - @mkdir -p ./src/common - @mkdir -p ./src/msw - @mkdir -p ./src/gtk - @mkdir -p ./src/motif - @mkdir -p ./src/motif/xmcombo - @mkdir -p ./src/generic - @mkdir -p ./src/unix - @mkdir -p ./src/html - @mkdir -p ./src/png - @mkdir -p ./src/jpeg - @mkdir -p ./src/zlib - -@WX_LIBRARY_NAME_STATIC@: $(OBJECTS) - $(AR) $(AROPTIONS) ./lib/$@ $(OBJECTS) - $(RANLIB) ./lib/$@ - -@WX_LIBRARY_NAME_SHARED@: $(OBJECTS) - $(SHARED_LD) ./lib/$@ $(OBJECTS) $(EXTRALIBS) - -CREATE_LINKS: ./lib/@WX_TARGET_LIBRARY@ - @if test -e ./lib/@WX_LIBRARY_LINK1@; then $(RM) ./lib/@WX_LIBRARY_LINK1@; fi - @if test -e ./lib/@WX_LIBRARY_LINK2@; then $(RM) ./lib/@WX_LIBRARY_LINK2@; fi - @if test -e ./lib/@WX_LIBRARY_LINK3@; then $(RM) ./lib/@WX_LIBRARY_LINK3@; fi - $(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK1@ - $(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK2@ - $(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK3@ - -CREATE_INSTALLED_LINKS: $(libdir)/@WX_TARGET_LIBRARY@ - @if test -e $(libdir)/@WX_LIBRARY_LINK1@; then $(RM) $(libdir)/@WX_LIBRARY_LINK1@; fi - @if test -e $(libdir)/@WX_LIBRARY_LINK2@; then $(RM) $(libdir)/@WX_LIBRARY_LINK2@; fi - @if test -e $(libdir)/@WX_LIBRARY_LINK3@; then $(RM) $(libdir)/@WX_LIBRARY_LINK3@; fi - $(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK1@ - $(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK2@ - $(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK3@ - -$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h - -parser.o: parser.c lexer.c - $(CCLEX) -c $(CFLAGS) -o $@ parser.c - -parser.c: $(COMMDIR)/parser.y lexer.c - $(YACC) $(COMMDIR)/parser.y - @sed -e "s;$(COMMDIR)/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: $(COMMDIR)/lexer.l - $(LEX) $(COMMDIR)/lexer.l - @sed -e "s;$(COMMDIR)/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 - -preinstall: $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(top_builddir)/wx-config $(top_builddir)/setup.h - @echo " " - @echo " Installing wxWindows..." - @echo " " - - - $(INSTALL) -d $(prefix) - $(INSTALL) -d $(bindir) - $(INSTALL) -d $(libdir) - - $(INSTALL_SCRIPT) $(top_builddir)/wx-config $(bindir)/wx-config - $(INSTALL_PROGRAM) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(libdir)/@WX_TARGET_LIBRARY@ - - $(INSTALL) -d $(libdir)/wx - $(INSTALL) -d $(libdir)/wx/include - $(INSTALL) -d $(libdir)/wx/include/wx - $(INSTALL) -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@ - $(INSTALL_DATA) $(top_builddir)/setup.h $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h - - $(INSTALL) -d $(includedir)/wx - $(INSTALL) -d $(includedir)/wx/msw - $(INSTALL) -d $(includedir)/wx/gtk - $(INSTALL) -d $(includedir)/wx/motif - $(INSTALL) -d $(includedir)/wx/html - $(INSTALL) -d $(includedir)/wx/protocol - $(INSTALL) -d $(includedir)/wx/unix - $(INSTALL) -d $(includedir)/wx/generic - @list='$(HEADERS)'; for p in $$list; do \ - $(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p; \ - echo "$(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p"; \ - done - -write_message: - @echo " " - @echo " The installation of wxWindows is finished. On certain" - @echo " platforms (e.g. Linux, Solaris) you'll now have to run" - @echo " ldconfig if you installed a shared library." - @echo " " - @echo " wxWindows comes with no guarantees and doesn't claim" - @echo " to be suitable for any purpose." - @echo " " - @echo " Read the wxWindows Licence on licencing conditions." - @echo " " - -install: preinstall @WX_CREATE_INSTALLED_LINKS@ write_message - -uninstall: - @echo " " - @echo " Uninstalling wxWindows..." - @echo " " - @echo " Removing library..." - @$(RM) $(libdir)/@WX_TARGET_LIBRARY@ - @$(RM) $(libdir)/@WX_LIBRARY_LINK1@ - @$(RM) $(libdir)/@WX_LIBRARY_LINK2@ - @$(RM) $(libdir)/@WX_LIBRARY_LINK3@ - @echo " Removing helper files..." - @$(RM) $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h - @$(RM) $(bindir)/wx-config - @echo " Removing headers..." - @list='$(HEADERS)'; for p in $$list; do \ - $(RM) $(includedir)/wx/$$p; \ - done - @echo " Removing directories..." - @if test -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@; then rmdir $(libdir)/wx/include/wx/@TOOLKIT_DIR@; fi - @if test -d $(libdir)/wx/include/wx; then rmdir $(libdir)/wx/include/wx; fi - @if test -d $(libdir)/wx/include; then rmdir $(libdir)/wx/include; fi - @if test -d $(libdir)/wx; then rmdir $(libdir)/wx; fi - @if test -d $(includedir)/wx/gtk; then rmdir $(includedir)/wx/gtk; fi - @if test -d $(includedir)/wx/motif; then rmdir $(includedir)/wx/motif; fi - @if test -d $(includedir)/wx/motif; then rmdir $(includedir)/wx/msw; fi - @if test -d $(includedir)/wx/html; then rmdir $(includedir)/wx/html; fi - @if test -d $(includedir)/wx/unix; then rmdir $(includedir)/wx/unix; fi - @if test -d $(includedir)/wx/generic; then rmdir $(includedir)/wx/generic; fi - @if test -d $(includedir)/wx/protocol; then rmdir $(includedir)/wx/protocol; fi - @if test -d $(includedir)/wx; then rmdir $(includedir)/wx; fi - -ALL_DIST: - mkdir _dist_dir - mkdir $(DISTDIR) - cp $(WXDIR)/wx$(TOOLKIT).spec $(DISTDIR) - cp $(WXDIR)/configure $(DISTDIR) - cp $(WXDIR)/config.sub $(DISTDIR) - cp $(WXDIR)/config.guess $(DISTDIR) - cp $(WXDIR)/install-sh $(DISTDIR) - cp $(WXDIR)/mkinstalldirs $(DISTDIR) - cp $(WXDIR)/wx-config.in $(DISTDIR) - cp $(WXDIR)/setup.h.in $(DISTDIR) - cp $(WXDIR)/Makefile.in $(DISTDIR) - cp $(DOCDIR)/lgpl.txt $(DISTDIR)/COPYING.LIB - cp $(DOCDIR)/licence.txt $(DISTDIR)/LICENCE.txt - cp $(DOCDIR)/symbols.txt $(DISTDIR)/SYMBOLS.txt - cp $(DOCDIR)/$(TOOLKITDIR)/install.txt $(DISTDIR)/INSTALL.txt - cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES.txt - cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README.txt - cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt - mkdir $(DISTDIR)/include - mkdir $(DISTDIR)/include/wx - mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR) - mkdir $(DISTDIR)/include/wx/generic - mkdir $(DISTDIR)/include/wx/html - mkdir $(DISTDIR)/include/wx/unix - mkdir $(DISTDIR)/include/wx/protocol - cp $(INCDIR)/wx/*.h $(DISTDIR)/include/wx - cp $(INCDIR)/wx/*.cpp $(DISTDIR)/include/wx - cp $(INCDIR)/wx/generic/*.h $(DISTDIR)/include/wx/generic - cp $(INCDIR)/wx/generic/*.xpm $(DISTDIR)/include/wx/generic - cp $(INCDIR)/wx/html/*.h $(DISTDIR)/include/wx/html - cp $(INCDIR)/wx/unix/*.h $(DISTDIR)/include/wx/unix - cp $(INCDIR)/wx/protocol/*.h $(DISTDIR)/include/wx/protocol - mkdir $(DISTDIR)/src - mkdir $(DISTDIR)/src/common - mkdir $(DISTDIR)/src/generic - mkdir $(DISTDIR)/src/html - mkdir $(DISTDIR)/src/html/bitmaps - mkdir $(DISTDIR)/src/$(TOOLKITDIR) - mkdir $(DISTDIR)/src/unix - mkdir $(DISTDIR)/src/png - mkdir $(DISTDIR)/src/jpeg - mkdir $(DISTDIR)/src/zlib - cp $(SRCDIR)/*.in $(DISTDIR)/src - cp $(COMMDIR)/*.cpp $(DISTDIR)/src/common - cp $(COMMDIR)/*.c $(DISTDIR)/src/common - cp $(COMMDIR)/*.inc $(DISTDIR)/src/common - cp $(COMMDIR)/*.l $(DISTDIR)/src/common - cp $(COMMDIR)/*.h $(DISTDIR)/src/common - cp $(COMMDIR)/*.y $(DISTDIR)/src/common - cp $(GENDIR)/*.cpp $(DISTDIR)/src/generic - cp $(HTMLDIR)/*.cpp $(DISTDIR)/src/html - cp $(HTMLDIR)/*.h $(DISTDIR)/src/html - cp $(HTMLDIR)/bitmaps/*.xpm $(DISTDIR)/src/html/bitmaps - cp $(UNIXDIR)/*.h $(DISTDIR)/src/unix - cp $(UNIXDIR)/*.c $(DISTDIR)/src/unix - cp $(UNIXDIR)/*.cpp $(DISTDIR)/src/unix - cp $(PNGDIR)/*.h $(DISTDIR)/src/png - cp $(PNGDIR)/*.c $(DISTDIR)/src/png - cp $(PNGDIR)/README $(DISTDIR)/src/png - cp $(ZLIBDIR)/*.h $(DISTDIR)/src/zlib - cp $(ZLIBDIR)/*.c $(DISTDIR)/src/zlib - cp $(ZLIBDIR)/README $(DISTDIR)/src/zlib - cp $(JPEGDIR)/*.h $(DISTDIR)/src/jpeg - cp $(JPEGDIR)/*.c $(DISTDIR)/src/jpeg - cp $(JPEGDIR)/README $(DISTDIR)/src/jpeg - -GTK_DIST: - cp $(WXDIR)/wxGTK.spec $(DISTDIR) - cp $(INCDIR)/wx/gtk/*.h $(DISTDIR)/include/wx/gtk - cp $(INCDIR)/wx/gtk/*.xpm $(DISTDIR)/include/wx/gtk - cp $(GTKDIR)/*.cpp $(DISTDIR)/src/gtk - cp $(GTKDIR)/*.c $(DISTDIR)/src/gtk - cp $(GTKDIR)/*.xbm $(DISTDIR)/src/gtk - -MOTIF_DIST: - cp $(WXDIR)/wxMOTIF.spec $(DISTDIR) - cp $(INCDIR)/wx/motif/*.h $(DISTDIR)/include/wx/motif - cp $(MOTIFDIR)/*.cpp $(DISTDIR)/src/motif - cp $(MOTIFDIR)/*.xbm $(DISTDIR)/src/motif - mkdir $(DISTDIR)/src/motif/xmcombo - cp $(MOTIFDIR)/xmcombo/*.c $(DISTDIR)/src/motif/xmcombo - cp $(MOTIFDIR)/xmcombo/*.h $(DISTDIR)/src/motif/xmcombo - cp $(MOTIFDIR)/xmcombo/copying.txt $(DISTDIR)/src/motif/xmcombo - -MSW_DIST: - cp $(WXDIR)/wxWINE.spec $(DISTDIR) - cp $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.cur $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.ico $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.bmp $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw - cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw - cp $(MSWDIR)/*.c $(DISTDIR)/src/msw - cp $(MSWDIR)/*.def $(DISTDIR)/src/msw - mkdir $(DISTDIR)/src/msw/ole - cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole - -SAMPLES_DIST: - mkdir $(DISTDIR)/samples - cp $(SAMPDIR)/Makefile.in $(DISTDIR)/samples - mkdir $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/Makefile.in $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/*.cpp $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/*.h $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/*.xpm $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/readme.txt $(DISTDIR)/samples/bombs - mkdir $(DISTDIR)/samples/caret - cp $(SAMPDIR)/caret/Makefile.in $(DISTDIR)/samples/caret - cp $(SAMPDIR)/caret/*.cpp $(DISTDIR)/samples/caret - cp $(SAMPDIR)/caret/*.xpm $(DISTDIR)/samples/caret - mkdir $(DISTDIR)/samples/config - cp $(SAMPDIR)/config/Makefile.in $(DISTDIR)/samples/config - cp $(SAMPDIR)/config/*.cpp $(DISTDIR)/samples/config - mkdir $(DISTDIR)/samples/controls - mkdir $(DISTDIR)/samples/controls/icons - cp $(SAMPDIR)/controls/Makefile.in $(DISTDIR)/samples/controls - cp $(SAMPDIR)/controls/*.cpp $(DISTDIR)/samples/controls - cp $(SAMPDIR)/controls/*.xpm $(DISTDIR)/samples/controls - cp $(SAMPDIR)/controls/icons/*.??? $(DISTDIR)/samples/controls/icons - mkdir $(DISTDIR)/samples/checklst - cp $(SAMPDIR)/checklst/Makefile.in $(DISTDIR)/samples/checklst - cp $(SAMPDIR)/checklst/*.cpp $(DISTDIR)/samples/checklst - cp $(SAMPDIR)/checklst/*.xpm $(DISTDIR)/samples/checklst - mkdir $(DISTDIR)/samples/checkls - cp $(SAMPDIR)/printing/Makefile.in $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.cpp $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.h $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.xpm $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.xbm $(DISTDIR)/samples/printing - -dist: ALL_DIST @GUIDIST@ SAMPLES_DIST - cd _dist_dir; tar ch wx$(TOOLKIT) | gzip -f9 > $(WXARCHIVE); mv $(WXARCHIVE) .. - $(RM) -r _dist_dir - -clean: - $(RM) ./src/msw/*.o - $(RM) ./src/gtk/*.o - $(RM) ./src/motif/*.o - $(RM) ./src/html/*.o - $(RM) ./src/common/*.o - $(RM) ./src/unix/*.o - $(RM) ./src/generic/*.o - $(RM) ./src/png/*.o - $(RM) ./src/jpeg/*.o - $(RM) ./src/zlib/*.o - $(RM) *.o - $(RM) parser.c - $(RM) lexer.c - $(RM) ./lib/* - -cleanall: clean diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 4066e97c61..0000000000 --- a/autogen.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -autoconf 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 e1a9eb023d..0000000000 --- a/configure.in +++ /dev/null @@ -1,2779 +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 AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables -dnl gtk_config_prefix and/or gtk_config_exec_prefix if defined. -dnl --------------------------------------------------------------------------- -dnl -AC_DEFUN(AM_PATH_GTK, -[ - 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_COMPILE( - [ - ], - [ - bool b = true; - - return 0; - ], - [ - AC_DEFINE(HAVE_BOOL) - wx_cv_cpp_bool=yes - ], - [ - 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 - ]) - -dnl - -dnl - GNU libc extension (added by GL) -dnl - - -AC_DEFUN(WX_GNU_EXTENSIONS, -[ -AC_MSG_CHECKING([if you need GNU extensions]) -AC_CACHE_VAL(wx_cv_gnu_extensions,[ - AC_TRY_COMPILE([#include ],[ - -#ifndef __GNU_LIBRARY__ - Compile error wanted -#endif - -], - [wx_cv_gnu_extensions=yes], - [wx_cv_gnu_extensions=no]) -]) - -AC_MSG_RESULT($wx_cv_gnu_extensions) -if test "$wx_cv_gnu_extensions" = "yes"; then - AC_DEFINE_UNQUOTED(_GNU_SOURCE) -fi -]) - - -dnl --------------------------------------------------------------------------- -dnl initialization -dnl --------------------------------------------------------------------------- - -dnl the file passed to AC_INIT should be specific to our package -AC_INIT(wx-config.in) - -AC_CANONICAL_SYSTEM - -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 = 0 - -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 - -dnl wxWindows shared library versioning -WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER -WX_CURRENT=`expr $WX_RELEASE_NUMBER - $WX_INTERFACE_AGE` -WX_REVISION=$WX_INTERFACE_AGE -WX_AGE=`expr $WX_BINARY_AGE - $WX_INTERFACE_AGE` - -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_MINGW= -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 - ;; - - *-*-cygwin32* ) - USE_UNIX=0 - AC_DEFINE(__WIN32__) - AC_DEFINE(__WIN95__) - AC_DEFINE(__WINDOWS__) - AC_DEFINE(__GNUWIN32__) - AC_DEFINE(WINVER, 0x0400) - DEFAULT_DEFAULT_wxUSE_MSW=1 - ;; - *-*-mingw32* ) - USE_UNIX=0 - AC_DEFINE(__WIN32__) - AC_DEFINE(__WIN95__) - AC_DEFINE(__WINDOWS__) - AC_DEFINE(__GNUWIN32__) - AC_DEFINE(WINVER, 0x0400) - DEFAULT_DEFAULT_wxUSE_MSW=1 - ;; - - *-pc-os2_emx ) - AC_DEFINE(__EMX__) - ;; - - *) - AC_MSG_ERROR(unknown system type ${host}.) -esac - -if test "$USE_UNIX" = 1 ; then - wxUSE_UNIX=yes - AC_DEFINE(__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 --------------------------------------------------------------------------- -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_SHARED=yes - DEFAULT_wxUSE_OPTIMISE=yes - DEFAULT_wxUSE_PROFILE=no - DEFAULT_wxUSE_NO_RTTI=no - DEFAULT_wxUSE_NO_EXCEPTIONS=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_STD_IOSTREAM=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_DIRDLG=no - DEFAULT_wxUSE_TEXTDLG=no - DEFAULT_wxUSE_STARTUP_TIPS=no - DEFAULT_wxUSE_PROGRESSDLG=no - DEFAULT_wxUSE_MINIFRAME=no - DEFAULT_wxUSE_HTML=no - DEFAULT_wxUSE_FS_INET=no - DEFAULT_wxUSE_FS_ZIP=no - DEFAULT_wxUSE_BUSYINFO=no - DEFAULT_wxUSE_ZIPSTREAM=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_CHOICE=yes - 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_SHARED=yes - DEFAULT_wxUSE_OPTIMISE=yes - DEFAULT_wxUSE_PROFILE=no - DEFAULT_wxUSE_NO_RTTI=no - DEFAULT_wxUSE_NO_EXCEPTIONS=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_STD_IOSTREAM=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_DIRDLG=yes - DEFAULT_wxUSE_TEXTDLG=yes - DEFAULT_wxUSE_STARTUP_TIPS=yes - DEFAULT_wxUSE_PROGRESSDLG=yes - DEFAULT_wxUSE_MINIFRAME=yes - DEFAULT_wxUSE_HTML=yes - DEFAULT_wxUSE_FS_INET=yes - DEFAULT_wxUSE_FS_ZIP=yes - DEFAULT_wxUSE_BUSYINFO=yes - DEFAULT_wxUSE_ZIPSTREAM=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_CHOICE=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 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]) - -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="") - -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(shared, [ --enable-shared create shared library code], wxUSE_SHARED) -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) -WX_ARG_ENABLE(no_rtti, [ --enable-no_rtti create code without RTTI information], wxUSE_NO_RTTI) -WX_ARG_ENABLE(no_exceptions, [ --enable-no_exceptions create code without exceptions information], wxUSE_NO_EXCEPTIONS) - -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) -WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) -WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET) -WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP) -WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZipInputStream], wxUSE_ZIPSTREAM) - -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_CHOICE=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_CHOICE=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(choice, [ --enable-choice use wxChoice class], wxUSE_CHOICE) -WX_ARG_ENABLE(combobox, [ --enable-combobox use 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(dirdlg, [ --enable-dirdlg use wxDirDialog], wxUSE_DIRDLG) -WX_ARG_ENABLE(textdlg, [ --enable-textdlg use wxTextDialog], wxUSE_TEXTDLG) -WX_ARG_ENABLE(tipdlg, [ --enable-tipdlg use startup tips], wxUSE_STARTUP_TIPS) -WX_ARG_ENABLE(progressdlg, [ --enable-progressdlg use wxProgressDialog], wxUSE_PROGRESSDLG) -WX_ARG_ENABLE(miniframe, [ --enable-miniframe use wxMiniFrame class], wxUSE_MINIFRAME) -WX_ARG_ENABLE(html, [ --enable-html use wxHTML sub-library], wxUSE_HTML) -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) -WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO) - -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 $host_alias != NONE"; then - CC=$host_alias-gcc - CXX=$host_alias-c++ - AR=$host_alias-ar - RANLIB=$host_alias-ranlib - DLLTOOL=$host_alias-dlltool - LD=$host_alias-ld - NM=$host_alias-nm - STRIP=$host_alias-strip - 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 -AC_PROG_LEX - -dnl needed for making link to setup.h -AC_PROG_LN_S - -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/windows \ - /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_INCLUDE= - -GUIOBJS= -COMMONOBJS= -GENERICOBJS= - -GUI_TK_LIBRARY= -GUI_TK_LINK= - -WXGTK12= - -WXWINE= - -if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then - AC_MSG_CHECKING(for Windows headers) - WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h) - INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS msw" - - dnl --- Quick & Dirty ; link against most/all libraries - dnl --- This will bloat the executable, but it'll work for now... - LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -loldnames -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32" - - 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) - if test "$cross_compiling" != "yes" ; then - AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h) - fi - fi - - TOOLKIT=MSW - - GUIOBJS=MSW_GUIOBJS - GUIHEADERS=MSW_HEADERS - COMMONOBJS=MSW_COMMONOBJS - GENERICOBJS=MSW_GENERICOBJS - UNIXOBJS= - GUIDIST=MSW_DIST -fi - -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 -ldl" - TOOLKIT=GTK - - GUIOBJS=GTK_GUIOBJS - GUIHEADERS=GTK_HEADERS - COMMONOBJS=GTK_COMMONOBJS - GENERICOBJS=GTK_GENERICOBJS - UNIXOBJS=UNIXOBJS - GUIDIST=GTK_DIST -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 - - GUIOBJS=MSW_GUIOBJS - GUIHEADERS=MSW_HEADERS - COMMONOBJS=MSW_COMMONOBJS - GENERICOBJS=MSW_GENERICOBJS - UNIXOBJS=UNIXOBJS - GUIDIST=MSW_DIST -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 -ldl -lm" - GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK" - TOOLKIT=MOTIF - - GUIOBJS=MOTIF_GUIOBJS - GUIHEADERS=MOTIF_HEADERS - COMMONOBJS=MOTIF_COMMONOBJS - GENERICOBJS=MOTIF_GENERICOBJS - UNIXOBJS=UNIXOBJS - GUIDIST=MOTIF_DIST -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="wx_${TOOLKIT_DIR}" - -dnl the name of the (libtool) library -WX_LIBRARY_NAME="libwx_${TOOLKIT_DIR}.la" - -dnl the name of the static library -WX_LIBRARY_NAME_STATIC="libwx_${TOOLKIT_DIR}.a" - -dnl the name of the shared library -WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}" - -dnl the name of the links to the shared library -WX_LIBRARY_LINK1="libwx_${TOOLKIT_DIR}-${WX_RELEASE}.so.${WX_CURRENT}" -WX_LIBRARY_LINK2="libwx_${TOOLKIT_DIR}-${WX_RELEASE}.so" -WX_LIBRARY_LINK3="libwx_${TOOLKIT_DIR}.so" - -dnl shared library settings -SHARED_LD= -PIC_FLAG= -WX_CREATE_LINKS= - -if test "$wxUSE_SHARED" = "yes"; then - dnl set target to shared - WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}" - -case "${host}" in - *-hp-hpux* ) - WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}.sl" - SHARED_LD="${CXX} -b -o" - PIC_FLAG="+Z" - ;; - *-*-linux* ) - SHARED_LD="${CC} -shared -o" - PIC_FLAG="-fPIC" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-irix5* | *-*-irix6* ) - SHARED_LD="${CXX} -shared -o" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-solaris2* ) - SHARED_LD="${CXX} -G -o" - PIC_FLAG="PIC" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-sunos4* ) - SHARED_LD="${CXX} -shared -o" - PIC_FLAG="-fPIC" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-freebsd* | *-*-netbsd*) - SHARED_LD="${CXX} -shared -o" - PIC_FLAG="-fPIC" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-osf* ) - SHARED_LD="${CXX} -shared -o" - PIC_FLAG="-fPIC" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-dgux5* ) - SHARED_LD="${CXX} -shared -o" - PIC_FLAG="-fPIC" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-sysv5* ) - SHARED_LD="${CXX} -shared -o" - PIC_FLAG="-fPIC" - WX_CREATE_INSTALLED_LINKS="CREATE_INSTALLED_LINKS" - WX_CREATE_LINKS="CREATE_LINKS" - ;; - *-*-aix* ) - SHARED_LD="/usr/lpp/xlC/bin/makeC++SharedLib -p 0 -o" - ;; - *-*-cygwin32* ) - dnl only static for now - WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" - ;; - *-*-mingw32* ) - dnl only static for now - WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" - ;; - *-pc-os2_emx ) - ;; - *) - AC_MSG_ERROR(unknown system type ${host}.) -esac - -else - dnl set target to static - WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}" -fi - -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 check whether we should define _GNU_SOURCE -WX_GNU_EXTENSIONS - -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 vsscanf() - on some platforms (Linux, glibc 2.1.1) it's -dnl available in the library but the prototype is missing, so we can't use -dnl AC_CHECK_FUNCS here, do it manually -AC_LANG_SAVE -AC_LANG_CPLUSPLUS - -AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf, -[ - AC_TRY_RUN( - [ - #include - #include - - int try_vsscanf(const char *format, ...) - { - va_list ap; - va_start(ap, format); - - vsscanf("17", format, ap); - - va_end(ap); - } - - int main() - { - int i; - try_vsscanf("%d", &i); - return i == 17 ? 0 : 1; - } - ], [ - AC_DEFINE(HAVE_VSSCANF) - wx_cv_func_vsscanf=yes - ], - wx_cv_func_vsscanf=no, - wx_cv_func_vsscanf=no - ) -]) - -AC_LANG_RESTORE - -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 check for inet_addr, inet_aton, ... -AC_CHECK_FUNCS(inet_addr) -AC_CHECK_FUNCS(inet_aton) -AC_CHECK_LIB(resolv, inet_aton) - -dnl =========================================================================== -dnl Now we have all the info we need - use it! -dnl =========================================================================== - -dnl flush the cache -AC_CACHE_SAVE - -dnl --------------------------------------------------------------------------- -dnl thread support for Unix (always available under Win32) -dnl --------------------------------------------------------------------------- - -if test "$USE_UNIX" = 1; then - -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 -z "$THREADS_OBJ" ; then - wxUSE_THREADS=no - AC_MSG_WARN(No thread support on this system) - fi -fi - -dnl do other tests only if we are using threads -if test "$wxUSE_THREADS" = "yes" ; then - 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 - -dnl from if USE_UNIX -fi - -if test "$wxUSE_THREADS" = "yes"; then - AC_DEFINE(wxUSE_THREADS) - - dnl must define _REENTRANT for multithreaded code - CFLAGS="${CFLAGS} -D_REENTRANT" - CXXFLAGS="${CXXFLAGS} -D_REENTRANT" - - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread" -fi - -if test "$WXGTK12" = 1 ; then - AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12) -fi - -if test "$WXWINE" = 1 ; then - TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__" -fi - -if test "$wxUSE_CYGWIN" = 1 ; then - TOOLKIT_DEF="${TOOLKIT_DEF} -D__WIN95__" -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 - if test "$wxUSE_GTK" = 1 ; then - WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS" - fi -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 - -if test "$GCC" = yes ; then - if test "$wxUSE_NO_RTTI" = "yes" ; then - WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-rtti" - fi - if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then - WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-exceptions" - fi -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) - ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib" -fi - -PNG_INCLUDE= -if test "$wxUSE_LIBPNG" = "yes" ; then - AC_DEFINE(wxUSE_LIBPNG) - PNG_INCLUDE="-I\${top_srcdir}/src/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) - JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg" -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 -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_FS_INET" = "yes"; then - AC_DEFINE(wxUSE_FS_INET) -fi - -if test "$wxUSE_FS_ZIP" = "yes"; then - AC_DEFINE(wxUSE_FS_ZIP) -fi - -if test "$wxUSE_ZIPSTREAM" = "yes"; then - AC_DEFINE(wxUSE_ZIPSTREAM) -fi - -if test "$wxUSE_BUSYINFO" = "yes"; then - AC_DEFINE(wxUSE_BUSYINFO) -fi - -if test "$wxUSE_STD_IOSTREAM" = "yes"; then - AC_DEFINE(wxUSE_STD_IOSTREAM) -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 - if test "$USE_UNIX" = 1; 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 - else - AC_MSG_WARN("Cannot check dynlib requirements on non-Unix platforms. dynlib remains enabled.") - fi - 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) - 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 - if test "$wxUSE_CONSTRAINTS" != "yes"; then - AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it) - else - AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE) - fi - 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, Drag'n'Drop, 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 "$wxUSE_GTK" = 1; then - if test "$WXGTK12" != 1; then - AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2]) - wxUSE_DRAG_AND_DROP=no - fi - fi - - if test "$wxUSE_MOTIF" = 1; then - AC_MSG_WARN([Drag and drop is not yet supported under Motif]) - wxUSE_DRAG_AND_DROP=no - fi - - if test "$wxUSE_DRAG_AND_DROP" = "yes"; then - AC_DEFINE(wxUSE_DRAG_AND_DROP) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd" - 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_CHOICE" = "yes"; then - AC_DEFINE(wxUSE_CHOICE) -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 - if test "$wxUSE_WINE" = 1 ; then - AC_MSG_WARN([wxStaticLine is not supported under WINE]) - else - if test "$wxUSE_MOTIF" = 1 ; then - AC_MSG_WARN([wxStaticLine is not supported under Motif]) - else - AC_DEFINE(wxUSE_STATLINE) - fi - fi -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(wxTooltip not supported yet under Motif) - else - if test "$wxUSE_WINE" = 1; then - AC_MSG_WARN(wxTooltip not supported 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_DIRDLG" = "yes"; then - if test "$wxUSE_CONSTRAINTS" != "yes"; then - AC_MSG_WARN(wxDirDialog requires constraints so it won't be compiled without them) - else - if test "$wxUSE_TREECTRL" != "yes"; then - AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it) - else - AC_DEFINE(wxUSE_DIRDLG) - fi - fi -fi - -if test "$wxUSE_TEXTDLG" = "yes"; then - AC_DEFINE(wxUSE_TEXTDLG) -fi - -if test "$wxUSE_STARTUP_TIPS" = "yes"; then - if test "$wxUSE_CONSTRAINTS" != "yes"; then - AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them) - else - AC_DEFINE(wxUSE_STARTUP_TIPS) - fi -fi - -if test "$wxUSE_PROGRESSDLG" = "yes"; then - if test "$wxUSE_CONSTRAINTS" != "yes"; then - AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them) - else - AC_DEFINE(wxUSE_PROGRESSDLG) - fi -fi - -if test "$wxUSE_MINIFRAME" = "yes"; then - AC_DEFINE(wxUSE_MINIFRAME) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram" -fi - -if test "$wxUSE_HTML" = "yes"; then - AC_DEFINE(wxUSE_HTML) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html" - INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS html" -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 the libraries needed to link wxWindows programs when using the -dnl makefile system without libtool -LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $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 "$GXX" = 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" - -CPPFLAGS="-I\${top_srcdir}/include $CPPFLAGS" -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 wxpoem" -fi - -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_NAME_STATIC) -AC_SUBST(WX_LIBRARY_NAME_SHARED) -AC_SUBST(WX_LIBRARY) -AC_SUBST(WX_TARGET_LIBRARY) -AC_SUBST(WX_LIBRARY_LINK1) -AC_SUBST(WX_LIBRARY_LINK2) -AC_SUBST(WX_LIBRARY_LINK3) - -dnl are we supposed to create the links? -AC_SUBST(WX_CREATE_LINKS) -AC_SUBST(WX_CREATE_INSTALLED_LINKS) - -AC_SUBST(SHARED_LD) -AC_SUBST(PIC_FLAG) - -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 what to compile -AC_SUBST(GUIOBJS) -AC_SUBST(GUIHEADERS) -AC_SUBST(COMMONOBJS) -AC_SUBST(GENERICOBJS) -AC_SUBST(UNIXOBJS) -AC_SUBST(GUIDIST) - -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) -AC_SUBST(LD_LIBS) - -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 - -AC_CONFIG_HEADER(setup.h:setup.h.in) - - -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 - src/make.env - src/makeprog.env - src/makelib.env - Makefile - samples/Makefile - samples/bombs/Makefile - samples/caret/Makefile - samples/checklst/Makefile - samples/config/Makefile - samples/controls/Makefile - samples/dialogs/Makefile - samples/docview/Makefile - samples/docvwmdi/Makefile - samples/dnd/Makefile - samples/drawing/Makefile - samples/dynamic/Makefile - samples/image/Makefile - samples/layout/Makefile - samples/listctrl/Makefile - samples/mdi/Makefile - samples/minifram/Makefile - samples/minimal/Makefile - samples/notebook/Makefile - samples/printing/Makefile - samples/proplist/Makefile - samples/sashtest/Makefile - samples/scroll/Makefile - samples/splitter/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 - samples/html/Makefile - samples/html/about/Makefile - samples/html/help/Makefile - samples/html/printing/Makefile - samples/html/test/Makefile - samples/html/zip/Makefile - samples/html/virtual/Makefile - samples/html/widget/Makefile - utils/Makefile - utils/wxMMedia2/Makefile - utils/wxMMedia2/lib/Makefile - utils/wxMMedia2/sample/Makefile - ], - [ - chmod +x wx-config - if test ! -d include; then - mkdir include - fi - if test ! -d include/wx; then - mkdir include/wx - fi - if test ! -d include/wx/${TOOLKIT_DIR}; then - mkdir include/wx/${TOOLKIT_DIR} - fi - cp -f setup.h include/wx/${TOOLKIT_DIR}/setup.h - ], - [ - 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 93ed8e2df4..0000000000 --- a/distrib/gtk/README.txt +++ /dev/null @@ -1,376 +0,0 @@ -wxPython README ---------------- - -Welcome to the wonderful world of wxPython! - -Once you have installed the wxPython 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." - -On Win32 systems the binary self-installer creates a program group on -the Start Menu that contains a link to running the demo and a link to -the help file. To help you save disk space I'm now using Microsoft's -HTML Help format. If your system doesn't know what to do with the help -file, you can install the HTML Help Viewer as part of IE 4+, NT -Service Pack 4+, or the HTML Workshop at - -http://msdn.microsoft.com/workshop/author/htmlhelp/download.asp. - - - -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.1b2 --------------------- - -Added the missing wxWindow.GetUpdateRegion() method. - -Made a new change in SWIG (update your patches everybody) that -provides a fix for global shadow objects that get an exception in -their __del__ when their extension module has already been deleted. -It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about -line 496 if you want to do it by hand. - -It is now possible to run through MainLoop more than once in any one -process. The cleanup that used to happen as MainLoop completed (and -prevented it from running again) has been delayed until the wxc module -is being unloaded by Python. - -I fixed a bunch of stuff in the C++ version of wxGrid so it wouldn't -make wxPython look bad. - -wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added -wxWindow.PopupMenuXY to be consistent with some other methods. - -Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. - -You can now provide your own app.MainLoop method. See -wxPython/demo/demoMainLoop.py for an example and some explaination. - -Got the in-place-edit for the wxTreeCtrl fixed and added some demo -code to show how to use it. - -Put the wxIcon constructor back in for GTK as it now has one that -matches MSW's. - -Added wxGrid.GetCells - -Added wxSystemSettings static methods as functions with names like -wxSystemSettings_GetSystemColour. - -Removed wxPyMenu since using menu callbacks have been depreciated in -wxWindows. Use wxMenu and events instead. - -Added alternate wxBitmap constructor (for MSW only) as - wxBitmapFromData(data, type, width, height, depth = 1) - -Added a helper function named wxPyTypeCast that can convert shadow -objects of one type into shadow objects of another type. (Like doing -a down-cast.) See the implementation in wx.py for some docs. - - - - - -What's new in 2.1b1 --------------------- -Fixed wxComboBox.SetSelection so that it actually sets the selected -item. (Actually just removed it from wxPython and let it default to -wxChoice.SetSelection which was already doing the right thing.) - -Added the Printing Framework. - -Switched back to using the wxWindows DLL for the pre-built Win32 -version. The problem was needing to reinitialize static class info -data after loading each extension module. - -Lots of little tweaks and additions to reflect changes to various -wxWindows classes. - -Fixed a bug with attaching objects to tree items. Actually was a -symptom of a larger problem with not obtaining the interpreter lock -when doing any Py_DECREFs. - -wxSizer and friends. Sizers are layout tools that manage a colection -of windows and sizers. Different types of sizers apply different -types of layout algorithms. You saw it here first! These classes are -not even in the wxWindows C++ library yet! - - - -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 --disable-shared --enable-threads --disable-unicode - -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 demo program. For example: - - python demo.py - ----------------- -Robin Dunn -robin@alldunn.com - - - diff --git a/distrib/gtk/Setup b/distrib/gtk/Setup deleted file mode 100644 index ec11650375..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 misc2.cpp \ - utils.cpp printfw.cpp libpy.c libptr.c \ - ## 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 3870301071..0000000000 --- a/distrib/gtk/copy_src +++ /dev/null @@ -1,804 +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 configure ~/wxgtk_dist/wxGTK -cp config.sub ~/wxgtk_dist/wxGTK -cp config.guess ~/wxgtk_dist/wxGTK -cp install-sh ~/wxgtk_dist/wxGTK -cp mkinstalldirs ~/wxgtk_dist/wxGTK -cp wx-config.in ~/wxgtk_dist/wxGTK -cp setup.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 changes.txt ~/wxgtk_dist/wxGTK/CHANGES.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/html -cd html -cp *.h ~/wxgtk_dist/wxGTK/include/wx/html -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/html -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/html -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 -cp *.xpm ~/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 *.cpp ~/wxgtk_dist/wxGTK/src/gtk -cd .. - -cd msw -mkdir ~/wxgtk_dist/wxGTK/src/msw -cp Makefile.am ~/wxgtk_dist/wxGTK/src/msw -cp Makefile.in ~/wxgtk_dist/wxGTK/src/msw -cd .. - -cd motif -mkdir ~/wxgtk_dist/wxGTK/src/motif -cp Makefile.am ~/wxgtk_dist/wxGTK/src/motif -cp Makefile.in ~/wxgtk_dist/wxGTK/src/motif -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 unzip.* ~/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 -cp *.h ~/wxgtk_dist/wxGTK/src/unix -cp *.c ~/wxgtk_dist/wxGTK/src/unix -cd .. - -cd html -mkdir ~/wxgtk_dist/wxGTK/src/html -cp *.cpp ~/wxgtk_dist/wxGTK/src/html -cp *.h ~/wxgtk_dist/wxGTK/src/html -cd bitmaps -mkdir ~/wxgtk_dist/wxGTK/src/html/bitmaps -cp *.xpm ~/wxgtk_dist/wxGTK/src/html/bitmaps -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 ../.. - -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/lib/sizers -cp ./lib/sizers/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/lib/sizers - -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 - -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 HTML samples.. - -cd html -mkdir ~/wxgtk_dist/wxGTK/samples/html -cp Makefile.* ~/wxgtk_dist/wxGTK/samples/html - -mkdir ~/wxgtk_dist/wxGTK/samples/html/about -cp about/Makefile.* ~/wxgtk_dist/wxGTK/samples/html/about -cp about/about.* ~/wxgtk_dist/wxGTK/samples/html/about - -mkdir ~/wxgtk_dist/wxGTK/samples/html/about/data -cp about/data/*.* ~/wxgtk_dist/wxGTK/samples/html/about/data - -mkdir ~/wxgtk_dist/wxGTK/samples/html/help -cp help/Makefile.* ~/wxgtk_dist/wxGTK/samples/html/help -cp help/help.* ~/wxgtk_dist/wxGTK/samples/html/help - -mkdir ~/wxgtk_dist/wxGTK/samples/html/help/helpfiles -cp help/helpfiles/*.* ~/wxgtk_dist/wxGTK/samples/html/help/helpfiles - -mkdir ~/wxgtk_dist/wxGTK/samples/html/printing -cp printing/*.* ~/wxgtk_dist/wxGTK/samples/html/printing - -mkdir ~/wxgtk_dist/wxGTK/samples/html/test -cp test/*.* ~/wxgtk_dist/wxGTK/samples/html/test - -mkdir ~/wxgtk_dist/wxGTK/samples/html/virtual -cp virtual/*.* ~/wxgtk_dist/wxGTK/samples/html/virtual - -mkdir ~/wxgtk_dist/wxGTK/samples/html/widget -cp widget/*.* ~/wxgtk_dist/wxGTK/samples/html/widget - -mkdir ~/wxgtk_dist/wxGTK/samples/html/zip -cp zip/*.* ~/wxgtk_dist/wxGTK/samples/html/zip -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 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-b8.tgz diff --git a/distrib/motif/copy_src b/distrib/motif/copy_src deleted file mode 100755 index a5795ca243..0000000000 --- a/distrib/motif/copy_src +++ /dev/null @@ -1,690 +0,0 @@ -#! /bin/sh -# -# This script is creates a dir tree in ~/wxmotif_dist which -# can then be packed into an archive - -echo -------- -echo This script will copy the wxMotif release files into ~/wxmotif_dist -echo -------- -echo - -mkdir ~/wxmotif_dist -mkdir ~/wxmotif_dist/wxMotif - -echo Base dir.. - -cd ../.. -cp wxMotif.spec ~/wxmotif_dist/wxMotif -cp configure ~/wxmotif_dist/wxMotif -cp config.sub ~/wxmotif_dist/wxMotif -cp config.guess ~/wxmotif_dist/wxMotif -cp install-sh ~/wxmotif_dist/wxMotif -cp mkinstalldirs ~/wxmotif_dist/wxMotif -cp wx-config.in ~/wxmotif_dist/wxMotif -cp Makefile.in ~/wxmotif_dist/wxMotif - -echo Docs.. - -cd docs/motif2 -cp COPYING.LIB ~/wxmotif_dist/wxMotif -cp install.txt ~/wxmotif_dist/wxMotif/INSTALL.txt -cp changes.txt ~/wxmotif_dist/wxMotif/CHANGES.txt -cp licence.txt ~/wxmotif_dist/wxMotif/LICENCE.txt -cp readme.txt ~/wxmotif_dist/wxMotif/README.txt -cp todo.txt ~/wxmotif_dist/wxMotif/TODO.txt -cd .. -cp symbols.txt ~/wxmotif_dist/wxMotif/SYMBOLS.txt -cd .. - -echo Include dir.. - -mkdir ~/wxmotif_dist/wxMotif/include -cd include -cp Makefile.am ~/wxmotif_dist/wxMotif/include -cp Makefile.in ~/wxmotif_dist/wxMotif/include - -mkdir ~/wxmotif_dist/wxMotif/include/wx -cd wx -cp *.h ~/wxmotif_dist/wxMotif/include/wx -cp *.cpp ~/wxmotif_dist/wxMotif/include/wx -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx - -mkdir ~/wxmotif_dist/wxMotif/include/wx/generic -cd generic -cp *.h ~/wxmotif_dist/wxMotif/include/wx/generic -cp *.xpm ~/wxmotif_dist/wxMotif/include/wx/generic -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx/generic -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx/generic -cd .. - -mkdir ~/wxmotif_dist/wxMotif/include/wx/html -cd html -cp *.h ~/wxmotif_dist/wxMotif/include/wx/html -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx/html -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx/html -cd .. - -mkdir ~/wxmotif_dist/wxMotif/include/wx/unix -cd unix -cp *.h ~/wxmotif_dist/wxMotif/include/wx/unix -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx/unix -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx/unix -cd .. - -mkdir ~/wxmotif_dist/wxMotif/include/wx/msw -cd msw -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx/msw -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx/msw -cd .. - -mkdir ~/wxmotif_dist/wxMotif/include/wx/motif -cd motif -cp *.h ~/wxmotif_dist/wxMotif/include/wx/motif -rm ~/wxmotif_dist/wxMotif/include/wx/motif/setup.h -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx/motif -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx/motif -cd .. - -mkdir ~/wxmotif_dist/wxMotif/include/wx/gtk -cd gtk -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx/gtk -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx/gtk -cd .. - -mkdir ~/wxmotif_dist/wxMotif/include/wx/protocol -cd protocol -cp *.h ~/wxmotif_dist/wxMotif/include/wx/protocol -cp Makefile.am ~/wxmotif_dist/wxMotif/include/wx/protocol -cp Makefile.in ~/wxmotif_dist/wxMotif/include/wx/protocol -cd .. - -cd ../.. - -echo Misc dir.. - -mkdir ~/wxmotif_dist/wxMotif/misc -cd misc -cp Makefile.am ~/wxmotif_dist/wxMotif/misc -cp Makefile.in ~/wxmotif_dist/wxMotif/misc -mkdir ~/wxmotif_dist/wxMotif/misc/afm -cd afm -cp *.afm ~/wxmotif_dist/wxMotif/misc/afm -cp Makefile.am ~/wxmotif_dist/wxMotif/misc/afm -cp Makefile.in ~/wxmotif_dist/wxMotif/misc/afm -cd .. -mkdir ~/wxmotif_dist/wxMotif/misc/gs_afm -cd gs_afm -cp *.afm ~/wxmotif_dist/wxMotif/misc/gs_afm -cp Makefile.am ~/wxmotif_dist/wxMotif/misc/gs_afm -cp Makefile.in ~/wxmotif_dist/wxMotif/misc/gs_afm -cd ../.. - -echo Src dir.. - -cd src -mkdir ~/wxmotif_dist/wxMotif/src -cp Makefile.am ~/wxmotif_dist/wxMotif/src -cp Makefile.in ~/wxmotif_dist/wxMotif/src - -cd motif -mkdir ~/wxmotif_dist/wxMotif/src/motif -cp Makefile.am ~/wxmotif_dist/wxMotif/src/motif -cp Makefile.in ~/wxmotif_dist/wxMotif/src/motif -cp *.xbm ~/wxmotif_dist/wxMotif/src/motif -cp *.c ~/wxmotif_dist/wxMotif/src/motif -cp *.cpp ~/wxmotif_dist/wxMotif/src/motif -cd .. - -cd common -mkdir ~/wxmotif_dist/wxMotif/src/common -cp glob.inc ~/wxmotif_dist/wxMotif/src/common -cp lexer.l ~/wxmotif_dist/wxMotif/src/common -cp parser.y ~/wxmotif_dist/wxMotif/src/common -cp extended.c ~/wxmotif_dist/wxMotif/src/common -cp unzip.* ~/wxmotif_dist/wxMotif/src/common -cp *.cpp ~/wxmotif_dist/wxMotif/src/common -cd .. - -cd html -mkdir ~/wxmotif_dist/wxMotif/src/html -cp *.cpp ~/wxmotif_dist/wxMotif/src/html -cp *.h ~/wxmotif_dist/wxMotif/src/html -cd bitmaps -mkdir ~/wxmotif_dist/wxMotif/src/html/bitmaps -cp *.xpm ~/wxmotif_dist/wxMotif/src/html/bitmaps -cd ../.. - -cd unix -mkdir ~/wxmotif_dist/wxMotif/src/unix -cp *.cpp ~/wxmotif_dist/wxMotif/src/unix -cp *.h ~/wxmotif_dist/wxMotif/src/unix -cp *.c ~/wxmotif_dist/wxMotif/src/unix -cd .. - -cd generic -mkdir ~/wxmotif_dist/wxMotif/src/generic -cp *.cpp ~/wxmotif_dist/wxMotif/src/generic -cd .. - -cd iodbc -mkdir ~/wxmotif_dist/wxMotif/src/iodbc -cp * ~/wxmotif_dist/wxMotif/src/iodbc -cd .. - -cd zlib -mkdir ~/wxmotif_dist/wxMotif/src/zlib -cp * ~/wxmotif_dist/wxMotif/src/zlib -cd .. - -cd png -mkdir ~/wxmotif_dist/wxMotif/src/png -cp * ~/wxmotif_dist/wxMotif/src/png -cd .. - -cd jpeg -mkdir ~/wxmotif_dist/wxMotif/src/jpeg -cp * ~/wxmotif_dist/wxMotif/src/jpeg -cd .. - -cd .. - -echo Utils dir.. - -cd utils -mkdir ~/wxmotif_dist/wxMotif/utils -cp Makefile.am ~/wxmotif_dist/wxMotif/utils -cp Makefile.in ~/wxmotif_dist/wxMotif/utils -cd .. - -echo Samples dir.. - -cd samples -mkdir ~/wxmotif_dist/wxMotif/samples -cp Makefile.am ~/wxmotif_dist/wxMotif/samples -cp Makefile.in ~/wxmotif_dist/wxMotif/samples - -echo Minimal sample.. - -cd minimal -mkdir ~/wxmotif_dist/wxMotif/samples/minimal -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/minimal -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/minimal -cp minimal.cpp ~/wxmotif_dist/wxMotif/samples/minimal -cp mondrian.xpm ~/wxmotif_dist/wxMotif/samples/minimal -cd .. - -echo Bombs sample.. - -cd bombs -mkdir ~/wxmotif_dist/wxMotif/samples/bombs -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/bombs -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/bombs -cp *.cpp ~/wxmotif_dist/wxMotif/samples/bombs -cp *.h ~/wxmotif_dist/wxMotif/samples/bombs -cp *.xpm ~/wxmotif_dist/wxMotif/samples/bombs -cd .. - -echo Caret sample.. - -cd caret -mkdir ~/wxmotif_dist/wxMotif/samples/caret -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/caret -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/caret -cp *.cpp ~/wxmotif_dist/wxMotif/samples/caret -cp *.xpm ~/wxmotif_dist/wxMotif/samples/caret -cd .. - -echo Checklst sample.. - -cd checklst -mkdir ~/wxmotif_dist/wxMotif/samples/checklst -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/checklst -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/checklst -cp *.cpp ~/wxmotif_dist/wxMotif/samples/checklst -cp *.xpm ~/wxmotif_dist/wxMotif/samples/checklst -cd .. - -echo Config sample.. - -cd config -mkdir ~/wxmotif_dist/wxMotif/samples/config -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/config -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/config -cp *.cpp ~/wxmotif_dist/wxMotif/samples/config -cd .. - -echo Controls sample.. - -cd controls -mkdir ~/wxmotif_dist/wxMotif/samples/controls -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/controls -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/controls -cp *.cpp ~/wxmotif_dist/wxMotif/samples/controls -cp *.xpm ~/wxmotif_dist/wxMotif/samples/controls -cd icons -mkdir ~/wxmotif_dist/wxMotif/samples/controls/icons -cp *.xpm ~/wxmotif_dist/wxMotif/samples/controls/icons -cd ../.. - -echo Db sample.. - -cd db -mkdir ~/wxmotif_dist/wxMotif/samples/db -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/db -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/db -cp *.cpp ~/wxmotif_dist/wxMotif/samples/db -cp *.h ~/wxmotif_dist/wxMotif/samples/db -cp *.xpm ~/wxmotif_dist/wxMotif/samples/db -cd .. - -echo Dialogs sample.. - -cd dialogs -mkdir ~/wxmotif_dist/wxMotif/samples/dialogs -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/dialogs -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/dialogs -cp *.cpp ~/wxmotif_dist/wxMotif/samples/dialogs -cp *.h ~/wxmotif_dist/wxMotif/samples/dialogs -cd .. - -echo DnD sample.. - -cd dnd -mkdir ~/wxmotif_dist/wxMotif/samples/dnd -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/dnd -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/dnd -cp *.cpp ~/wxmotif_dist/wxMotif/samples/dnd -cp *.xpm ~/wxmotif_dist/wxMotif/samples/dnd -cd .. - -echo Docview sample.. - -cd docview -mkdir ~/wxmotif_dist/wxMotif/samples/docview -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/docview -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/docview -cp *.cpp ~/wxmotif_dist/wxMotif/samples/docview -cp *.h ~/wxmotif_dist/wxMotif/samples/docview -cp *.xpm ~/wxmotif_dist/wxMotif/samples/docview -cd .. - -echo DocvwMDI sample.. - -cd docvwmdi -mkdir ~/wxmotif_dist/wxMotif/samples/docvwmdi -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/docvwmdi -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/docvwmdi -cp *.cpp ~/wxmotif_dist/wxMotif/samples/docvwmdi -cp *.h ~/wxmotif_dist/wxMotif/samples/docvwmdi -cd .. - -echo Dynamic sample.. - -cd dynamic -mkdir ~/wxmotif_dist/wxMotif/samples/dynamic -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/dynamic -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/dynamic -cp *.cpp ~/wxmotif_dist/wxMotif/samples/dynamic -cp *.xpm ~/wxmotif_dist/wxMotif/samples/dynamic -cd .. - -echo Drawing sample.. - -cd drawing -mkdir ~/wxmotif_dist/wxMotif/samples/drawing -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/drawing -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/drawing -cp *.cpp ~/wxmotif_dist/wxMotif/samples/drawing -cp *.xpm ~/wxmotif_dist/wxMotif/samples/drawing -cd .. - -echo Forty sample.. - -cd forty -mkdir ~/wxmotif_dist/wxMotif/samples/forty -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/forty -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/forty -cp *.cpp ~/wxmotif_dist/wxMotif/samples/forty -cp *.h ~/wxmotif_dist/wxMotif/samples/forty -cp *.xpm ~/wxmotif_dist/wxMotif/samples/forty -cp *.xbm ~/wxmotif_dist/wxMotif/samples/forty -cd .. - -echo Fractal sample.. - -cd fractal -mkdir ~/wxmotif_dist/wxMotif/samples/fractal -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/fractal -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/fractal -cp *.cpp ~/wxmotif_dist/wxMotif/samples/fractal -cd .. - -echo Grid sample.. - -cd grid -mkdir ~/wxmotif_dist/wxMotif/samples/grid -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/grid -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/grid -cp *.cpp ~/wxmotif_dist/wxMotif/samples/grid -cd .. - -echo Help sample.. - -cd help -mkdir ~/wxmotif_dist/wxMotif/samples/help -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/help -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/help -cp *.cpp ~/wxmotif_dist/wxMotif/samples/help -cp *.xpm ~/wxmotif_dist/wxMotif/samples/help -cd doc -mkdir ~/wxmotif_dist/wxMotif/samples/help/doc -cp * ~/wxmotif_dist/wxMotif/samples/help/doc -cd ../.. - -echo HTML samples.. - -cd html -mkdir ~/wxmotif_dist/wxMotif/samples/html -cp Makefile.* ~/wxmotif_dist/wxMotif/samples/html - -mkdir ~/wxmotif_dist/wxMotif/samples/html/about -cp about/Makefile.* ~/wxmotif_dist/wxMotif/samples/html/about -cp about/about.* ~/wxmotif_dist/wxMotif/samples/html/about - -mkdir ~/wxmotif_dist/wxMotif/samples/html/about/data -cp about/data/*.* ~/wxmotif_dist/wxMotif/samples/html/about/data - -mkdir ~/wxmotif_dist/wxMotif/samples/html/help -cp help/Makefile.* ~/wxmotif_dist/wxMotif/samples/html/help -cp help/help.* ~/wxmotif_dist/wxMotif/samples/html/help - -mkdir ~/wxmotif_dist/wxMotif/samples/html/help/helpfiles -cp help/helpfiles/*.* ~/wxmotif_dist/wxMotif/samples/html/help/helpfiles - -mkdir ~/wxmotif_dist/wxMotif/samples/html/printing -cp printing/*.* ~/wxmotif_dist/wxMotif/samples/html/printing - -mkdir ~/wxmotif_dist/wxMotif/samples/html/test -cp test/*.* ~/wxmotif_dist/wxMotif/samples/html/test - -mkdir ~/wxmotif_dist/wxMotif/samples/html/virtual -cp virtual/*.* ~/wxgtk_dist/wxGTK/samples/html/virtual - -mkdir ~/wxmotif_dist/wxMotif/samples/html/widget -cp widget/*.* ~/wxmotif_dist/wxMotif/samples/html/widget - -mkdir ~/wxmotif_dist/wxMotif/samples/html/zip -cp zip/*.* ~/wxmotif_dist/wxMotif/samples/html/zip -cd .. - -echo Image sample.. - -cd image -mkdir ~/wxmotif_dist/wxMotif/samples/image -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/image -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/image -cp *.cpp ~/wxmotif_dist/wxMotif/samples/image -cp horse.png ~/wxmotif_dist/wxMotif/samples/image -cp horse.gif ~/wxmotif_dist/wxMotif/samples/image -cp horse.jpg ~/wxmotif_dist/wxMotif/samples/image -cd .. - -echo Internat sample.. - -cd internat -mkdir ~/wxmotif_dist/wxMotif/samples/internat -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/internat -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/internat -cp *.cpp ~/wxmotif_dist/wxMotif/samples/internat -cp *.xpm ~/wxmotif_dist/wxMotif/samples/internat -cp readme.txt ~/wxmotif_dist/wxMotif/samples/internat -cp wxstd.po ~/wxmotif_dist/wxMotif/samples/internat -cd fr -mkdir ~/wxmotif_dist/wxMotif/samples/internat/fr -cp *.?o ~/wxmotif_dist/wxMotif/samples/internat/fr -cd ../.. - -echo Layout sample.. - -cd layout -mkdir ~/wxmotif_dist/wxMotif/samples/layout -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/layout -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/layout -cp *.cpp ~/wxmotif_dist/wxMotif/samples/layout -cp *.h ~/wxmotif_dist/wxMotif/samples/layout -cd .. - -echo Listctrl sample.. - -cd listctrl -mkdir ~/wxmotif_dist/wxMotif/samples/listctrl -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/listctrl -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/listctrl -cp *.cpp ~/wxmotif_dist/wxMotif/samples/listctrl -cp *.h ~/wxmotif_dist/wxMotif/samples/listctrl -cp *.xpm ~/wxmotif_dist/wxMotif/samples/listctrl -cd bitmaps -mkdir ~/wxmotif_dist/wxMotif/samples/listctrl/bitmaps -cp *.xpm ~/wxmotif_dist/wxMotif/samples/listctrl/bitmaps -cd ../.. - -echo MDI sample.. - -cd mdi -mkdir ~/wxmotif_dist/wxMotif/samples/mdi -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/mdi -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/mdi -cp *.cpp ~/wxmotif_dist/wxMotif/samples/mdi -cp *.h ~/wxmotif_dist/wxMotif/samples/mdi -cp *.xpm ~/wxmotif_dist/wxMotif/samples/mdi -cd bitmaps -mkdir ~/wxmotif_dist/wxMotif/samples/mdi/bitmaps -cp *.xpm ~/wxmotif_dist/wxMotif/samples/mdi/bitmaps -cd ../.. - -echo Memcheck sample.. - -cd memcheck -mkdir ~/wxmotif_dist/wxMotif/samples/memcheck -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/memcheck -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/memcheck -cp *.cpp ~/wxmotif_dist/wxMotif/samples/memcheck -cp *.xpm ~/wxmotif_dist/wxMotif/samples/memcheck -cd .. - -echo Minifram sample.. - -cd minifram -mkdir ~/wxmotif_dist/wxMotif/samples/minifram -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/minifram -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/minifram -cp *.cpp ~/wxmotif_dist/wxMotif/samples/minifram -cp *.h ~/wxmotif_dist/wxMotif/samples/minifram -cp *.xpm ~/wxmotif_dist/wxMotif/samples/minifram -cd bitmaps -mkdir ~/wxmotif_dist/wxMotif/samples/minifram/bitmaps -cp *.xpm ~/wxmotif_dist/wxMotif/samples/minifram/bitmaps -cd ../.. - -echo Notebook sample.. - -cd notebook -mkdir ~/wxmotif_dist/wxMotif/samples/notebook -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/notebook -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/notebook -cp *.cpp ~/wxmotif_dist/wxMotif/samples/notebook -cp *.h ~/wxmotif_dist/wxMotif/samples/notebook -cd .. - -echo PNG sample.. - -cd png -mkdir ~/wxmotif_dist/wxMotif/samples/png -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/png -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/png -cp *.cpp ~/wxmotif_dist/wxMotif/samples/png -cp *.h ~/wxmotif_dist/wxMotif/samples/png -cp *.png ~/wxmotif_dist/wxMotif/samples/png -cd .. - -echo Printing sample.. - -cd printing -mkdir ~/wxmotif_dist/wxMotif/samples/printing -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/printing -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/printing -cp *.cpp ~/wxmotif_dist/wxMotif/samples/printing -cp *.h ~/wxmotif_dist/wxMotif/samples/printing -cp *.xpm ~/wxmotif_dist/wxMotif/samples/printing -cd .. - -echo Proplist sample.. - -cd proplist -mkdir ~/wxmotif_dist/wxMotif/samples/proplist -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/proplist -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/proplist -cp *.cpp ~/wxmotif_dist/wxMotif/samples/proplist -cp *.h ~/wxmotif_dist/wxMotif/samples/proplist -cd .. - -echo Resource sample.. - -cd resource -mkdir ~/wxmotif_dist/wxMotif/samples/resource -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/resource -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/resource -cp *.cpp ~/wxmotif_dist/wxMotif/samples/resource -cp *.h ~/wxmotif_dist/wxMotif/samples/resource -cp *.wxr ~/wxmotif_dist/wxMotif/samples/resource -cd .. - -echo Sashtest sample.. - -cd sashtest -mkdir ~/wxmotif_dist/wxMotif/samples/sashtest -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/sashtest -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/sashtest -cp *.cpp ~/wxmotif_dist/wxMotif/samples/sashtest -cp *.h ~/wxmotif_dist/wxMotif/samples/sashtest -cd .. - -echo Scroll sample.. - -cd sashtest -mkdir ~/wxmotif_dist/wxMotif/samples/scroll -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/scroll -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/scroll -cp *.cpp ~/wxmotif_dist/wxMotif/samples/scroll -cp *.h ~/wxmotif_dist/wxMotif/samples/scroll -cd .. - -echo Splitter sample.. - -cd splitter -mkdir ~/wxmotif_dist/wxMotif/samples/splitter -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/splitter -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/splitter -cp *.cpp ~/wxmotif_dist/wxMotif/samples/splitter -cd .. - -cd tab -mkdir ~/wxmotif_dist/wxMotif/samples/tab -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/tab -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/tab -cp *.cpp ~/wxmotif_dist/wxMotif/samples/tab -cp *.h ~/wxmotif_dist/wxMotif/samples/tab -cd .. - -echo Text sample.. - -cd text -mkdir ~/wxmotif_dist/wxMotif/samples/text -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/text -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/text -cp *.cpp ~/wxmotif_dist/wxMotif/samples/text -cd .. - -echo Thread sample.. - -cd thread -mkdir ~/wxmotif_dist/wxMotif/samples/thread -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/thread -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/thread -cp *.cpp ~/wxmotif_dist/wxMotif/samples/thread -cd .. - -echo Toolbar sample.. - -cd toolbar -mkdir ~/wxmotif_dist/wxMotif/samples/toolbar -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/toolbar -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/toolbar -cp *.cpp ~/wxmotif_dist/wxMotif/samples/toolbar -cp *.h ~/wxmotif_dist/wxMotif/samples/toolbar -cp *.xpm ~/wxmotif_dist/wxMotif/samples/toolbar -cd bitmaps -mkdir ~/wxmotif_dist/wxMotif/samples/toolbar/bitmaps -cp *.xpm ~/wxmotif_dist/wxMotif/samples/toolbar/bitmaps -cd ../.. - -echo TreeCtrl sample.. - -cd treectrl -mkdir ~/wxmotif_dist/wxMotif/samples/treectrl -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/treectrl -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/treectrl -cp *.cpp ~/wxmotif_dist/wxMotif/samples/treectrl -cp *.h ~/wxmotif_dist/wxMotif/samples/treectrl -cp *.xpm ~/wxmotif_dist/wxMotif/samples/treectrl -cd .. - -echo typetest sample.. - -cd typetest -mkdir ~/wxmotif_dist/wxMotif/samples/typetest -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/typetest -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/typetest -cp *.cpp ~/wxmotif_dist/wxMotif/samples/typetest -cp *.h ~/wxmotif_dist/wxMotif/samples/typetest -cp *.xpm ~/wxmotif_dist/wxMotif/samples/typetest -cd .. - -echo Validate sample.. - -cd validate -mkdir ~/wxmotif_dist/wxMotif/samples/validate -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/validate -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/validate -cp *.cpp ~/wxmotif_dist/wxMotif/samples/validate -cp *.h ~/wxmotif_dist/wxMotif/samples/validate -cp *.xpm ~/wxmotif_dist/wxMotif/samples/validate -cd .. - -echo wxPoem sample.. - -cd wxpoem -mkdir ~/wxmotif_dist/wxMotif/samples/wxpoem -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/wxpoem -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/wxpoem -cp *.cpp ~/wxmotif_dist/wxMotif/samples/wxpoem -cp *.h ~/wxmotif_dist/wxMotif/samples/wxpoem -cp *.xpm ~/wxmotif_dist/wxMotif/samples/wxpoem -cp wxpoem.dat ~/wxmotif_dist/wxMotif/samples/wxpoem -cp wxpoem.txt ~/wxmotif_dist/wxMotif/samples/wxpoem -cp wxpoem.idx ~/wxmotif_dist/wxMotif/samples/wxpoem -cd .. - -echo wxSocket sample.. - -cd wxsocket -mkdir ~/wxmotif_dist/wxMotif/samples/wxsocket -cp Makefile.am ~/wxmotif_dist/wxMotif/samples/wxsocket -cp Makefile.in ~/wxmotif_dist/wxMotif/samples/wxsocket -cp *.cpp ~/wxmotif_dist/wxMotif/samples/wxsocket -cp *.xpm ~/wxmotif_dist/wxMotif/samples/wxsocket -cd ../.. - -cd ~/wxmotif_dist -tar ch wxMotif | gzip -f9 > wxMotif-2.1.0-b8.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/copy_src.bat b/distrib/msw/copy_src.bat deleted file mode 100755 index c26ad9e976..0000000000 --- a/distrib/msw/copy_src.bat +++ /dev/null @@ -1,734 +0,0 @@ -echo -------- -echo This script will copy the wxMSW release files into \wxmsw_dist -echo -------- -echo - -md \wxmsw_dist -md \wxmsw_dist\wxMSW - -echo Base dir.. - -cd ..\.. - -echo Lib.. - -cd lib -md \wxmsw_dist\wxMSW\lib -copy dummy \wxmsw_dist\wxMSW\lib -cd .. - -echo Locale.. - -cd locale -md \wxmsw_dist\wxMSW\locale -copy *.?? \wxmsw_dist\wxMSW\locale -cd .. - -echo Docs.. - -cd docs\wine -copy COPYING.LIB \wxmsw_dist\wxMSW -copy licence.txt \wxmsw_dist\wxMSW\LICENCE.txt -cd ..\msw -copy install.txt \wxmsw_dist\wxMSW\INSTALL.txt -copy readme.txt \wxmsw_dist\wxMSW\README.txt -copy todo.txt \wxmsw_dist\wxMSW\TODO.txt -cd .. -copy symbols.txt \wxmsw_dist\wxMSW\SYMBOLS.txt -cd .. -echo Include dir.. - -md \wxmsw_dist\wxMSW\include -cd include -copy wx_*.* \wxmsw_dist\wxMSW\include - -md \wxmsw_dist\wxMSW\include\wx -cd wx -copy *.h \wxmsw_dist\wxMSW\include\wx -copy *.cpp \wxmsw_dist\wxMSW\include\wx - -md \wxmsw_dist\wxMSW\include\wx\generic -cd generic -copy *.h \wxmsw_dist\wxMSW\include\wx\generic -cd .. - -md \wxmsw_dist\wxMSW\include\wx\html -cd html -copy *.h \wxmsw_dist\wxMSW\include\wx\html -md \wxmsw_dist\wxMSW\include\wx\html\msw -cd msw -copy *.* \wxmsw_dist\wxMSW\include\wx\html\msw -cd ..\.. - - -md \wxmsw_dist\wxMSW\include\wx\msw -cd msw -copy *.* \wxmsw_dist\wxMSW\include\wx\msw -rem del \wxmsw_dist\wxMSW\include\wx\msw\setup.h -del \wxmsw_dist\wxMSW\include\wx\msw\Makefile.am -del \wxmsw_dist\wxMSW\include\wx\msw\Makefile.in -md \wxmsw_dist\wxMSW\include\wx\msw\gnuwin32 -cd gnuwin32 -copy *.h \wxmsw_dist\wxMSW\include\wx\msw\gnuwin32 -cd .. -md \wxmsw_dist\wxMSW\include\wx\msw\ole -cd ole -copy *.h \wxmsw_dist\wxMSW\include\wx\msw\ole -cd .. -cd ctl3d -copy *.h \wxmsw_dist\wxMSW\include\wx\msw\ctl3d -cd .. -cd .. - -md \wxmsw_dist\wxMSW\include\wx\protocol -cd protocol -copy *.h \wxmsw_dist\wxMSW\include\wx\protocol -cd .. - -cd ..\.. - -echo Src dir.. - -cd src -md \wxmsw_dist\wxMSW\src -copy *.* \wxmsw_dist\wxMSW\src -del Makefile.am \wxmsw_dist\wxMSW\src\Makefile.am -del Makefile.in \wxmsw_dist\wxMSW\src\Makefile.in - -cd msw -md \wxmsw_dist\wxMSW\src\msw -copy *.cpp \wxmsw_dist\wxMSW\src\msw -copy *.c \wxmsw_dist\wxMSW\src\msw -copy *.def \wxmsw_dist\wxMSW\src\msw -copy makefile.* \wxmsw_dist\wxMSW\src\msw -del Makefile.am \wxmsw_dist\wxMSW\src\msw\Makefile.am -del Makefile.in \wxmsw_dist\wxMSW\src\msw\Makefile.in -cd .. - -cd common -md \wxmsw_dist\wxMSW\src\common -copy glob.inc \wxmsw_dist\wxMSW\src\common -copy lexer.l \wxmsw_dist\wxMSW\src\common -copy parser.y \wxmsw_dist\wxMSW\src\common -copy *.c \wxmsw_dist\wxMSW\src\common -copy *.h \wxmsw_dist\wxMSW\src\common -copy *.cpp \wxmsw_dist\wxMSW\src\common -cd .. - -cd html -md \wxmsw_dist\wxMSW\src\html -copy *.cpp \wxmsw_dist\wxMSW\src\html -copy *.h \wxmsw_dist\wxMSW\src\html -cd .. - -cd generic -md \wxmsw_dist\wxMSW\src\generic -copy *.cpp \wxmsw_dist\wxMSW\src\generic -cd .. - -cd zlib -md \wxmsw_dist\wxMSW\src\zlib -copy *.* \wxmsw_dist\wxMSW\src\zlib -cd .. - -cd png -md \wxmsw_dist\wxMSW\src\png -copy *.* \wxmsw_dist\wxMSW\src\png -cd .. - -cd jpeg -md \wxmsw_dist\wxMSW\src\jpeg -copy *.* \wxmsw_dist\wxMSW\src\jpeg -cd .. - -cd xpm -md \wxmsw_dist\wxMSW\src\xpm -copy *.* \wxmsw_dist\wxMSW\src\xpm -cd .. - -cd .. - -echo Utils dir.. - -cd utils -md \wxmsw_dist\wxMSW\utils - -echo wxGLCanvas.. - -cd glcanvas -md \wxmsw_dist\wxMSW\utils\glcanvas -copy .\docs\notes.txt \wxmsw_dist\wxMSW\utils\glcanvas\NOTES.txt - -md \wxmsw_dist\wxMSW\utils\glcanvas\win -copy .\win\glcanvas.cpp \wxmsw_dist\wxMSW\utils\glcanvas\win -copy .\win\glcanvas.h \wxmsw_dist\wxMSW\utils\glcanvas\win -copy .\win\makefile.* \wxmsw_dist\wxMSW\utils\glcanvas\win - -md \wxmsw_dist\wxMSW\utils\glcanvas\samples -md \wxmsw_dist\wxMSW\utils\glcanvas\samples\cube -md \wxmsw_dist\wxMSW\utils\glcanvas\samples\isosurf -md \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin - -cd samples\cube -copy Makefile.* \wxmsw_dist\wxMSW\utils\glcanvas\samples\cube -copy cube.rc \wxmsw_dist\wxMSW\utils\glcanvas\samples\cube -copy cube.h \wxmsw_dist\wxMSW\utils\glcanvas\samples\cube -copy cube.cpp \wxmsw_dist\wxMSW\utils\glcanvas\samples\cube -copy mondrian.ico \wxmsw_dist\wxMSW\utils\glcanvas\samples\cube -cd .. - -cd isosurf -copy Makefile.* \wxmsw_dist\wxMSW\utils\glcanvas\samples\isosurf -copy isosurf.h \wxmsw_dist\wxMSW\utils\glcanvas\samples\isosurf -copy isosurf.rc \wxmsw_dist\wxMSW\utils\glcanvas\samples\isosurf -copy isosurf.cpp \wxmsw_dist\wxMSW\utils\glcanvas\samples\isosurf -copy isosurf.dat.gz \wxmsw_dist\wxMSW\utils\glcanvas\samples\isosurf -copy mondrian.ico \wxmsw_dist\wxMSW\utils\glcanvas\samples\isosurf -cd .. - -cd penguin -copy Makefile.* \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy penguin.rc \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy penguin.h \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy penguin.cpp \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy trackball.h \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy trackball.c \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy lw.h \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy lw.cpp \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy penguin.lwo \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -copy mondrian.ico \wxmsw_dist\wxMSW\utils\glcanvas\samples\penguin -cd ..\..\.. - -echo DialogEd.. - -cd dialoged\src -md \wxmsw_dist\wxMSW\utils\dialoged -md \wxmsw_dist\wxMSW\utils\dialoged\src -copy Makefile.* \wxmsw_dist\wxMSW\utils\dialoged\src -copy dialoged.def \wxmsw_dist\wxMSW\utils\dialoged\src -copy dialoged.rc \wxmsw_dist\wxMSW\utils\dialoged\src -copy dialoged.ico \wxmsw_dist\wxMSW\utils\dialoged\src -copy dialoged.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy dlghndlr.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy edlist.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy edtree.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy reseditr.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy reswrite.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy symbtabl.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy winprop.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy winstyle.cpp \wxmsw_dist\wxMSW\utils\dialoged\src -copy dialoged.h \wxmsw_dist\wxMSW\utils\dialoged\src -copy dlghndlr.h \wxmsw_dist\wxMSW\utils\dialoged\src -copy edlist.h \wxmsw_dist\wxMSW\utils\dialoged\src -copy edtree.h \wxmsw_dist\wxMSW\utils\dialoged\src -copy reseditr.h \wxmsw_dist\wxMSW\utils\dialoged\src -copy symbtabl.h \wxmsw_dist\wxMSW\utils\dialoged\src -copy winprop.h \wxmsw_dist\wxMSW\utils\dialoged\src -copy winstyle.h \wxmsw_dist\wxMSW\utils\dialoged\src - -cd bitmaps -md \wxmsw_dist\wxMSW\utils\dialoged\src\bitmaps -copy *.bmp \wxmsw_dist\wxMSW\utils\dialoged\src\bitmaps -copy *.ico \wxmsw_dist\wxMSW\utils\dialoged\src\bitmaps -cd ..\..\.. - - -cd .. - -echo Samples dir.. - -cd samples -md \wxmsw_dist\wxMSW\samples -copy makefile.* \wxmsw_dist\wxMSW\samples - -echo Minimal sample.. - -cd minimal -md \wxmsw_dist\wxMSW\samples\minimal -copy Makefile.* \wxmsw_dist\wxMSW\samples\minimal -copy *.def \wxmsw_dist\wxMSW\samples\minimal -copy *.rc \wxmsw_dist\wxMSW\samples\minimal -copy minimal.cpp \wxmsw_dist\wxMSW\samples\minimal -copy mondrian.ico \wxmsw_dist\wxMSW\samples\minimal -cd .. - - -echo Bombs sample.. - -cd bombs -md \wxmsw_dist\wxMSW\samples\bombs -copy Makefile.* \wxmsw_dist\wxMSW\samples\bombs -copy *.cpp \wxmsw_dist\wxMSW\samples\bombs -copy *.h \wxmsw_dist\wxMSW\samples\bombs -copy *.ico \wxmsw_dist\wxMSW\samples\bombs -copy *.def \wxmsw_dist\wxMSW\samples\bombs -copy *.rc \wxmsw_dist\wxMSW\samples\bombs -cd .. - -echo Caret sample.. - -cd caret -md \wxmsw_dist\wxMSW\samples\caret -copy Makefile.* \wxmsw_dist\wxMSW\samples\caret -copy *.cpp \wxmsw_dist\wxMSW\samples\caret -copy *.h \wxmsw_dist\wxMSW\samples\caret -copy *.ico \wxmsw_dist\wxMSW\samples\caret -copy *.def \wxmsw_dist\wxMSW\samples\caret -copy *.rc \wxmsw_dist\wxMSW\samples\caret -cd .. - -echo Checklst sample.. - -cd checklst -md \wxmsw_dist\wxMSW\samples\checklst -copy Makefile.* \wxmsw_dist\wxMSW\samples\checklst -copy *.h \wxmsw_dist\wxMSW\samples\checklst -copy *.cpp \wxmsw_dist\wxMSW\samples\checklst -copy *.ico \wxmsw_dist\wxMSW\samples\checklst -copy *.def \wxmsw_dist\wxMSW\samples\checklst -copy *.rc \wxmsw_dist\wxMSW\samples\checklst -cd .. - -echo Config sample.. - -cd config -md \wxmsw_dist\wxMSW\samples\config -copy Makefile.* \wxmsw_dist\wxMSW\samples\config -copy *.h \wxmsw_dist\wxMSW\samples\config -copy *.cpp \wxmsw_dist\wxMSW\samples\config -copy *.ico \wxmsw_dist\wxMSW\samples\config -copy *.def \wxmsw_dist\wxMSW\samples\config -copy *.rc \wxmsw_dist\wxMSW\samples\config -cd .. - -echo Controls sample.. - -cd controls -md \wxmsw_dist\wxMSW\samples\controls -copy Makefile.* \wxmsw_dist\wxMSW\samples\controls -copy *.cpp \wxmsw_dist\wxMSW\samples\controls -copy *.h \wxmsw_dist\wxMSW\samples\controls -copy *.rc \wxmsw_dist\wxMSW\samples\controls -copy *.def \wxmsw_dist\wxMSW\samples\controls -copy *.ico \wxmsw_dist\wxMSW\samples\controls -cd icons -md \wxmsw_dist\wxMSW\samples\controls\icons -copy *.* \wxmsw_dist\wxMSW\samples\controls\icons -cd ..\.. - -echo Dialogs sample.. - -cd dialogs -md \wxmsw_dist\wxMSW\samples\dialogs -copy Makefile.* \wxmsw_dist\wxMSW\samples\dialogs -copy *.cpp \wxmsw_dist\wxMSW\samples\dialogs -copy *.h \wxmsw_dist\wxMSW\samples\dialogs -copy *.def \wxmsw_dist\wxMSW\samples\dialogs -copy *.rc \wxmsw_dist\wxMSW\samples\dialogs -copy *.ico \wxmsw_dist\wxMSW\samples\dialogs -cd .. - -echo DnD sample.. - -cd dnd -md \wxmsw_dist\wxMSW\samples\dnd -copy Makefile.* \wxmsw_dist\wxMSW\samples\dnd -copy *.cpp \wxmsw_dist\wxMSW\samples\dnd -copy *.h \wxmsw_dist\wxMSW\samples\dnd -copy *.def \wxmsw_dist\wxMSW\samples\dnd -copy *.rc \wxmsw_dist\wxMSW\samples\dnd -copy *.ico \wxmsw_dist\wxMSW\samples\dnd -cd .. - -echo Docview sample.. - -cd docview -md \wxmsw_dist\wxMSW\samples\docview -copy Makefile.* \wxmsw_dist\wxMSW\samples\docview -copy *.cpp \wxmsw_dist\wxMSW\samples\docview -copy *.h \wxmsw_dist\wxMSW\samples\docview -copy *.def \wxmsw_dist\wxMSW\samples\docview -copy *.rc \wxmsw_dist\wxMSW\samples\docview -copy *.ico \wxmsw_dist\wxMSW\samples\docview -cd .. - -echo DocvwMDI sample.. - -cd docvwmdi -md \wxmsw_dist\wxMSW\samples\docvwmdi -copy Makefile.* \wxmsw_dist\wxMSW\samples\docvwmdi -copy *.cpp \wxmsw_dist\wxMSW\samples\docvwmdi -copy *.h \wxmsw_dist\wxMSW\samples\docvwmdi -copy *.def \wxmsw_dist\wxMSW\samples\docvwmdi -copy *.rc \wxmsw_dist\wxMSW\samples\docvwmdi -copy *.ico \wxmsw_dist\wxMSW\samples\docvwmdi -cd .. - -echo Dynamic sample.. - -cd dynamic -md \wxmsw_dist\wxMSW\samples\dynamic -copy Makefile.* \wxmsw_dist\wxMSW\samples\dynamic -copy *.cpp \wxmsw_dist\wxMSW\samples\dynamic -copy *.h \wxmsw_dist\wxMSW\samples\dynamic -copy *.def \wxmsw_dist\wxMSW\samples\dynamic -copy *.rc \wxmsw_dist\wxMSW\samples\dynamic -copy *.ico \wxmsw_dist\wxMSW\samples\dynamic -cd .. - -echo Drawing sample.. - -cd drawing -md \wxmsw_dist\wxMSW\samples\drawing -copy Makefile.* \wxmsw_dist\wxMSW\samples\drawing -copy *.cpp \wxmsw_dist\wxMSW\samples\drawing -copy *.ico \wxmsw_dist\wxMSW\samples\drawing -copy *.h \wxmsw_dist\wxMSW\samples\drawing -copy *.rc \wxmsw_dist\wxMSW\samples\drawing -copy *.def \wxmsw_dist\wxMSW\samples\drawing -cd .. - -echo Forty sample.. - -cd forty -md \wxmsw_dist\wxMSW\samples\forty -copy Makefile.* \wxmsw_dist\wxMSW\samples\forty -copy *.cpp \wxmsw_dist\wxMSW\samples\forty -copy *.h \wxmsw_dist\wxMSW\samples\forty -copy *.def \wxmsw_dist\wxMSW\samples\forty -copy *.rc \wxmsw_dist\wxMSW\samples\forty -copy *.ico \wxmsw_dist\wxMSW\samples\forty -copy *.bmp \wxmsw_dist\wxMSW\samples\forty -copy *.xpm \wxmsw_dist\wxMSW\samples\forty -copy *.xbm \wxmsw_dist\wxMSW\samples\forty -cd .. - -echo Fractal sample.. - -cd fractal -md \wxmsw_dist\wxMSW\samples\fractal -copy Makefile.* \wxmsw_dist\wxMSW\samples\fractal -copy *.cpp \wxmsw_dist\wxMSW\samples\fractal -copy *.h \wxmsw_dist\wxMSW\samples\fractal -copy *.def \wxmsw_dist\wxMSW\samples\fractal -copy *.rc \wxmsw_dist\wxMSW\samples\fractal -copy *.ico \wxmsw_dist\wxMSW\samples\fractal -cd .. - -echo Grid sample.. - -cd grid -md \wxmsw_dist\wxMSW\samples\grid -copy Makefile.* \wxmsw_dist\wxMSW\samples\grid -copy *.cpp \wxmsw_dist\wxMSW\samples\grid -copy *.h \wxmsw_dist\wxMSW\samples\grid -copy *.def \wxmsw_dist\wxMSW\samples\grid -copy *.rc \wxmsw_dist\wxMSW\samples\grid -copy *.ico \wxmsw_dist\wxMSW\samples\grid -cd .. - -echo Help sample.. - -cd help -md \wxmsw_dist\wxMSW\samples\help -copy Makefile.* \wxmsw_dist\wxMSW\samples\help -copy *.cpp \wxmsw_dist\wxMSW\samples\help -copy *.def \wxmsw_dist\wxMSW\samples\help -copy *.rc \wxmsw_dist\wxMSW\samples\help -copy *.ico \wxmsw_dist\wxMSW\samples\help -copy *.xpm \wxmsw_dist\wxMSW\samples\help -cd doc -md \wxmsw_dist\wxMSW\samples\help\doc -copy *.* \wxmsw_dist\wxMSW\samples\help\doc -cd ..\.. - -echo Image sample.. - -cd image -md \wxmsw_dist\wxMSW\samples\image -copy Makefile.* \wxmsw_dist\wxMSW\samples\image -copy *.cpp \wxmsw_dist\wxMSW\samples\image -copy *.def \wxmsw_dist\wxMSW\samples\image -copy *.rc \wxmsw_dist\wxMSW\samples\image -copy *.ico \wxmsw_dist\wxMSW\samples\image -copy horse.png \wxmsw_dist\wxMSW\samples\image -copy horse.gif \wxmsw_dist\wxMSW\samples\image -copy horse.jpg \wxmsw_dist\wxMSW\samples\image -cd .. - -echo Internat sample.. - -cd internat -md \wxmsw_dist\wxMSW\samples\internat -copy Makefile.* \wxmsw_dist\wxMSW\samples\internat -copy *.cpp \wxmsw_dist\wxMSW\samples\internat -copy *.def \wxmsw_dist\wxMSW\samples\internat -copy *.rc \wxmsw_dist\wxMSW\samples\internat -copy *.ico \wxmsw_dist\wxMSW\samples\internat -copy readme.txt \wxmsw_dist\wxMSW\samples\internat -copy wxstd.po \wxmsw_dist\wxMSW\samples\internat -cd fr -md \wxmsw_dist\wxMSW\samples\internat\fr -copy *.?o \wxmsw_dist\wxMSW\samples\internat\fr -cd ..\.. - -echo Layout sample.. - -cd layout -md \wxmsw_dist\wxMSW\samples\layout -copy Makefile.* \wxmsw_dist\wxMSW\samples\layout -copy *.cpp \wxmsw_dist\wxMSW\samples\layout -copy *.ico \wxmsw_dist\wxMSW\samples\layout -copy *.def \wxmsw_dist\wxMSW\samples\layout -copy *.rc \wxmsw_dist\wxMSW\samples\layout -copy *.h \wxmsw_dist\wxMSW\samples\layout -cd .. - -echo Listctrl sample.. - -cd listctrl -md \wxmsw_dist\wxMSW\samples\listctrl -copy Makefile.* \wxmsw_dist\wxMSW\samples\listctrl -copy *.cpp \wxmsw_dist\wxMSW\samples\listctrl -copy *.h \wxmsw_dist\wxMSW\samples\listctrl -copy *.def \wxmsw_dist\wxMSW\samples\listctrl -copy *.rc \wxmsw_dist\wxMSW\samples\listctrl -copy *.ico \wxmsw_dist\wxMSW\samples\listctrl -cd bitmaps -md \wxmsw_dist\wxMSW\samples\listctrl\bitmaps -copy *.* \wxmsw_dist\wxMSW\samples\listctrl\bitmaps -cd ..\.. - -echo MDI sample.. - -cd mdi -md \wxmsw_dist\wxMSW\samples\mdi -copy Makefile.* \wxmsw_dist\wxMSW\samples\mdi -copy *.cpp \wxmsw_dist\wxMSW\samples\mdi -copy *.rc \wxmsw_dist\wxMSW\samples\mdi -copy *.def \wxmsw_dist\wxMSW\samples\mdi -copy *.h \wxmsw_dist\wxMSW\samples\mdi -copy *.ico \wxmsw_dist\wxMSW\samples\mdi -cd bitmaps -md \wxmsw_dist\wxMSW\samples\mdi\bitmaps -copy *.* \wxmsw_dist\wxMSW\samples\mdi\bitmaps -cd ..\.. - -echo Memcheck sample.. - -cd memcheck -md \wxmsw_dist\wxMSW\samples\memcheck -copy Makefile.* \wxmsw_dist\wxMSW\samples\memcheck -copy *.cpp \wxmsw_dist\wxMSW\samples\memcheck -copy *.ico \wxmsw_dist\wxMSW\samples\memcheck -copy *.rc \wxmsw_dist\wxMSW\samples\memcheck -copy *.def \wxmsw_dist\wxMSW\samples\memcheck -copy *.xpm \wxmsw_dist\wxMSW\samples\memcheck -cd .. - -echo Minifram sample.. - -cd minifram -md \wxmsw_dist\wxMSW\samples\minifram -copy Makefile.* \wxmsw_dist\wxMSW\samples\minifram -copy *.cpp \wxmsw_dist\wxMSW\samples\minifram -copy *.h \wxmsw_dist\wxMSW\samples\minifram -copy *.xpm \wxmsw_dist\wxMSW\samples\minifram -copy *.ico \wxmsw_dist\wxMSW\samples\minifram -copy *.def \wxmsw_dist\wxMSW\samples\minifram -copy *.rc \wxmsw_dist\wxMSW\samples\minifram -cd bitmaps -md \wxmsw_dist\wxMSW\samples\minifram\bitmaps -copy *.* \wxmsw_dist\wxMSW\samples\minifram\bitmaps -cd ..\.. - -echo Notebook sample.. - -cd notebook -md \wxmsw_dist\wxMSW\samples\notebook -copy Makefile.* \wxmsw_dist\wxMSW\samples\notebook -copy *.cpp \wxmsw_dist\wxMSW\samples\notebook -copy *.ico \wxmsw_dist\wxMSW\samples\notebook -copy *.def \wxmsw_dist\wxMSW\samples\notebook -copy *.rc \wxmsw_dist\wxMSW\samples\notebook -copy *.h \wxmsw_dist\wxMSW\samples\notebook -cd .. - -echo Printing sample.. - -cd printing -md \wxmsw_dist\wxMSW\samples\printing -copy Makefile.* \wxmsw_dist\wxMSW\samples\printing -copy *.cpp \wxmsw_dist\wxMSW\samples\printing -copy *.h \wxmsw_dist\wxMSW\samples\printing -copy *.rc \wxmsw_dist\wxMSW\samples\printing -copy *.ico \wxmsw_dist\wxMSW\samples\printing -copy *.def \wxmsw_dist\wxMSW\samples\printing -copy *.xpm \wxmsw_dist\wxMSW\samples\printing -cd .. - -echo Proplist sample.. - -cd proplist -md \wxmsw_dist\wxMSW\samples\proplist -copy Makefile.* \wxmsw_dist\wxMSW\samples\proplist -copy *.rc \wxmsw_dist\wxMSW\samples\printing -copy *.def \wxmsw_dist\wxMSW\samples\printing -copy *.cpp \wxmsw_dist\wxMSW\samples\proplist -copy *.ico \wxmsw_dist\wxMSW\samples\printing -copy *.h \wxmsw_dist\wxMSW\samples\proplist -cd .. - -echo Resource sample.. - -cd resource -md \wxmsw_dist\wxMSW\samples\resource -copy Makefile.* \wxmsw_dist\wxMSW\samples\resource -copy *.ico \wxmsw_dist\wxMSW\samples\resource -copy *.rc \wxmsw_dist\wxMSW\samples\resource -copy *.def \wxmsw_dist\wxMSW\samples\resource -copy *.cpp \wxmsw_dist\wxMSW\samples\resource -copy *.h \wxmsw_dist\wxMSW\samples\resource -copy *.wxr \wxmsw_dist\wxMSW\samples\resource -cd .. - -echo Sashtest sample.. - -cd sashtest -md \wxmsw_dist\wxMSW\samples\sashtest -copy Makefile.* \wxmsw_dist\wxMSW\samples\sashtest -copy *.cpp \wxmsw_dist\wxMSW\samples\sashtest -copy *.rc \wxmsw_dist\wxMSW\samples\sashtest -copy *.h \wxmsw_dist\wxMSW\samples\sashtest -copy *.def \wxmsw_dist\wxMSW\samples\sashtest -copy *.ico \wxmsw_dist\wxMSW\samples\sashtest -cd .. - -echo Scroll sample.. - -cd scroll -md \wxmsw_dist\wxMSW\samples\scroll -copy Makefile.* \wxmsw_dist\wxMSW\samples\scroll -copy *.cpp \wxmsw_dist\wxMSW\samples\scroll -copy *.def \wxmsw_dist\wxMSW\samples\scroll -copy *.rc \wxmsw_dist\wxMSW\samples\scroll -copy *.ico \wxmsw_dist\wxMSW\samples\scroll -copy *.h \wxmsw_dist\wxMSW\samples\scroll -cd .. - -echo Splitter sample.. - -cd splitter -md \wxmsw_dist\wxMSW\samples\splitter -copy Makefile.* \wxmsw_dist\wxMSW\samples\splitter -copy *.cpp \wxmsw_dist\wxMSW\samples\splitter -copy *.def \wxmsw_dist\wxMSW\samples\splitter -copy *.rc \wxmsw_dist\wxMSW\samples\splitter -copy *.ico \wxmsw_dist\wxMSW\samples\splitter -cd .. - -echo Text sample.. - -cd text -md \wxmsw_dist\wxMSW\samples\text -copy Makefile.* \wxmsw_dist\wxMSW\samples\text -copy *.cpp \wxmsw_dist\wxMSW\samples\text -copy *.def \wxmsw_dist\wxMSW\samples\text -copy *.rc \wxmsw_dist\wxMSW\samples\text -copy *.ico \wxmsw_dist\wxMSW\samples\text -cd .. - -echo Thread sample.. - -cd thread -md \wxmsw_dist\wxMSW\samples\thread -copy Makefile.* \wxmsw_dist\wxMSW\samples\thread -copy *.cpp \wxmsw_dist\wxMSW\samples\thread -copy *.def \wxmsw_dist\wxMSW\samples\thread -copy *.rc \wxmsw_dist\wxMSW\samples\thread -copy *.ico \wxmsw_dist\wxMSW\samples\thread -cd .. - -echo Toolbar sample.. - -cd toolbar -md \wxmsw_dist\wxMSW\samples\toolbar -copy Makefile.* \wxmsw_dist\wxMSW\samples\toolbar -copy *.cpp \wxmsw_dist\wxMSW\samples\toolbar -copy *.h \wxmsw_dist\wxMSW\samples\toolbar -copy *.rc \wxmsw_dist\wxMSW\samples\toolbar -copy *.def \wxmsw_dist\wxMSW\samples\toolbar -copy *.xpm \wxmsw_dist\wxMSW\samples\toolbar -copy *.ico \wxmsw_dist\wxMSW\samples\toolbar -cd bitmaps -md \wxmsw_dist\wxMSW\samples\toolbar\bitmaps -copy *.* \wxmsw_dist\wxMSW\samples\toolbar\bitmaps -cd ..\.. - -echo TreeCtrl sample.. - -cd treectrl -md \wxmsw_dist\wxMSW\samples\treectrl -copy Makefile.* \wxmsw_dist\wxMSW\samples\treectrl -copy *.rc \wxmsw_dist\wxMSW\samples\treectrl -copy *.def \wxmsw_dist\wxMSW\samples\treectrl -copy *.cpp \wxmsw_dist\wxMSW\samples\treectrl -copy *.h \wxmsw_dist\wxMSW\samples\treectrl -copy *.xpm \wxmsw_dist\wxMSW\samples\treectrl -copy *.ico \wxmsw_dist\wxMSW\samples\treectrl -cd bitmaps -md \wxmsw_dist\wxMSW\samples\treectrl\bitmaps -copy *.* \wxmsw_dist\wxMSW\samples\treectrl\bitmaps -cd ..\.. - -echo typetest sample.. - -cd typetest -md \wxmsw_dist\wxMSW\samples\typetest -copy Makefile.* \wxmsw_dist\wxMSW\samples\typetest -copy *.cpp \wxmsw_dist\wxMSW\samples\typetest -copy *.h \wxmsw_dist\wxMSW\samples\typetest -copy *.ico \wxmsw_dist\wxMSW\samples\typetest -copy *.def \wxmsw_dist\wxMSW\samples\typetest -copy *.rc \wxmsw_dist\wxMSW\samples\typetest -cd .. - -echo Validate sample.. - -cd validate -md \wxmsw_dist\wxMSW\samples\validate -copy Makefile.* \wxmsw_dist\wxMSW\samples\validate -copy *.cpp \wxmsw_dist\wxMSW\samples\validate -copy *.h \wxmsw_dist\wxMSW\samples\validate -copy *.xpm \wxmsw_dist\wxMSW\samples\validate -copy *.rc \wxmsw_dist\wxMSW\samples\validate -copy *.def \wxmsw_dist\wxMSW\samples\validate -cd .. - -echo wxPoem sample.. - -cd wxpoem -md \wxmsw_dist\wxMSW\samples\wxpoem -copy Makefile.* \wxmsw_dist\wxMSW\samples\wxpoem -copy *.cpp \wxmsw_dist\wxMSW\samples\wxpoem -copy *.h \wxmsw_dist\wxMSW\samples\wxpoem -copy *.xpm \wxmsw_dist\wxMSW\samples\wxpoem -copy *.def \wxmsw_dist\wxMSW\samples\wxpoem -copy *.rc \wxmsw_dist\wxMSW\samples\wxpoem -copy wxpoem.dat \wxmsw_dist\wxMSW\samples\wxpoem -copy wxpoem.txt \wxmsw_dist\wxMSW\samples\wxpoem -copy wxpoem.idx \wxmsw_dist\wxMSW\samples\wxpoem -cd .. - -echo wxSocket sample.. - -cd wxsocket -md \wxmsw_dist\wxMSW\samples\wxsocket -copy Makefile.* \wxmsw_dist\wxMSW\samples\wxsocket -copy *.cpp \wxmsw_dist\wxMSW\samples\wxsocket -copy *.h \wxmsw_dist\wxMSW\samples\wxsocket -copy *.rc \wxmsw_dist\wxMSW\samples\wxsocket -copy *.def \wxmsw_dist\wxMSW\samples\wxsocket -copy *.xpm \wxmsw_dist\wxMSW\samples\wxsocket -cd ..\.. - 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 2b67cdbebc..0000000000 --- a/distrib/msw/generic.rsp +++ /dev/null @@ -1,879 +0,0 @@ -*.spec -BuildCVS.txt -acconfig.h -*.m4 -autogen.sh -config.guess -config.sub -configure.in -install-sh -ltconfig -ltmain.sh -missing -mkinstalldirs -modules -template.mak -wx-config.in -makefile.unx.in - -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/Makefile - -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/unzip.c -src/common/unzip.h -src/common/*.l -src/common/*.y -src/common/*.inc - -src/generic/*.cpp -src/generic/*.c -src/generic/*.inc - -src/html/*.cpp -src/html/*.h -src/html/bitmaps/*.xpm - -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 -include/wx/html/*.h -include/wx/html/msw/*.bmp -include/wx/html/msw/*.ico -include/wx/html/msw/*.rc -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 - -samples/html/makefile* -samples/html/*.txt - -samples/html/about/*.cpp -samples/html/about/*.h -samples/html/about/makefile* -samples/html/about/*.rc -samples/html/about/*.def -samples/html/about/*.bmp -samples/html/about/*.xpm -samples/html/about/*.xbm -samples/html/about/*.png -samples/html/about/*.ico -samples/html/about/*.txt -samples/html/about/data/*.htm -samples/html/about/data/*.png - -samples/html/help/*.cpp -samples/html/help/*.h -samples/html/help/makefile* -samples/html/help/*.rc -samples/html/help/*.def -samples/html/help/*.bmp -samples/html/help/*.xpm -samples/html/help/*.xbm -samples/html/help/*.png -samples/html/help/*.ico -samples/html/help/*.txt -samples/html/help/helpfiles/*.htm -samples/html/help/helpfiles/*.hhc -samples/html/help/helpfiles/*.hhk -samples/html/help/helpfiles/*.hhp - -samples/html/printing/*.cpp -samples/html/printing/*.h -samples/html/printing/makefile* -samples/html/printing/*.rc -samples/html/printing/*.def -samples/html/printing/*.bmp -samples/html/printing/*.xpm -samples/html/printing/*.xbm -samples/html/printing/*.png -samples/html/printing/*.ico -samples/html/printing/*.htm - -samples/html/test/*.cpp -samples/html/test/*.h -samples/html/test/makefile* -samples/html/test/*.rc -samples/html/test/*.def -samples/html/test/*.bmp -samples/html/test/*.xpm -samples/html/test/*.xbm -samples/html/test/*.png -samples/html/test/*.ico -samples/html/test/*.htm -samples/html/test/*.html - -samples/html/virtual/*.cpp -samples/html/virtual/*.h -samples/html/virtual/makefile* -samples/html/virtual/*.rc -samples/html/virtual/*.def -samples/html/virtual/*.bmp -samples/html/virtual/*.xpm -samples/html/virtual/*.xbm -samples/html/virtual/*.png -samples/html/virtual/*.ico -samples/html/virtual/*.htm -samples/html/virtual/*.html - -samples/html/widget/*.cpp -samples/html/widget/*.h -samples/html/widget/makefile* -samples/html/widget/*.rc -samples/html/widget/*.def -samples/html/widget/*.bmp -samples/html/widget/*.xpm -samples/html/widget/*.xbm -samples/html/widget/*.png -samples/html/widget/*.ico -samples/html/widget/*.htm -samples/html/widget/*.html - -samples/html/zip/*.cpp -samples/html/zip/*.h -samples/html/zip/makefile* -samples/html/zip/*.rc -samples/html/zip/*.def -samples/html/zip/*.bmp -samples/html/zip/*.xpm -samples/html/zip/*.xbm -samples/html/zip/*.png -samples/html/zip/*.ico -samples/html/zip/*.htm -samples/html/zip/*.html - -samples/richedit/*.cpp -samples/richedit/*.h -samples/richedit/makefile* -samples/richedit/*.rc -samples/richedit/*.def -samples/richedit/*.bmp -samples/richedit/*.xpm -samples/richedit/*.xbm -samples/richedit/*.png -samples/richedit/*.ico -samples/richedit/*.txt -samples/richedit/TODO -samples/richedit/README - -samples/text/*.cpp -samples/text/*.h -samples/text/makefile* -samples/text/*.rc -samples/text/*.def -samples/text/*.bmp -samples/text/*.xpm -samples/text/*.xbm -samples/text/*.png -samples/text/*.ico -samples/text/*.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 584c874cf0..0000000000 --- a/distrib/msw/gtk.rsp +++ /dev/null @@ -1,87 +0,0 @@ -distrib/gtk/copy_src -distrib/gtk/README.txt -distrib/gtk/Setup - -docs/gtk/*.html -docs/gtk/*.txt -docs/gtk/COPYING.LIB -docs/gtk/makewxgtk - -include/wx/gtk/*.h -include/install-sh -include/wx/install-sh - -src/Makefile -src/gtk.inc -src/make.env -src/makelib.env -src/makeprog.env - -src/gtk/Makefile -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 70323c5acd..0000000000 --- a/distrib/msw/makefile.rsp +++ /dev/null @@ -1,80 +0,0 @@ -src/Makefile -locale/Makefile - -Makefile.am -include/Makefile.am -include/wx/Makefile.am -include/wx/generic/Makefile.am -include/wx/gtk/Makefile.am -include/wx/html/Makefile.am -include/wx/motif/Makefile.am -include/wx/msw/Makefile.am -include/wx/msw/ctl3d/Makefile.am -include/wx/msw/gnuwin32/Makefile.am -include/wx/protocol/Makefile.am -include/wx/unix/Makefile.am -misc/Makefile.am -misc/afm/Makefile.am -misc/gs_afm/Makefile.am -samples/Makefile.am -samples/bombs/Makefile.am -samples/caret/Makefile.am -samples/checklst/Makefile.am -samples/config/Makefile.am -samples/controls/Makefile.am -samples/db/Makefile.am -samples/dialogs/Makefile.am -samples/dnd/Makefile.am -samples/docview/Makefile.am -samples/docvwmdi/Makefile.am -samples/drawing/Makefile.am -samples/dynamic/Makefile.am -samples/forty/Makefile.am -samples/fractal/Makefile.am -samples/grid/Makefile.am -samples/help/Makefile.am -samples/html/Makefile.am -samples/html/about/Makefile.am -samples/html/help/Makefile.am -samples/html/printing/Makefile.am -samples/html/test/Makefile.am -samples/html/virtual/Makefile.am -samples/html/widget/Makefile.am -samples/html/zip/Makefile.am -samples/image/Makefile.am -samples/internat/Makefile.am -samples/joytest/Makefile.am -samples/layout/Makefile.am -samples/listctrl/Makefile.am -samples/mdi/Makefile.am -samples/memcheck/Makefile.am -samples/mfc/Makefile.am -samples/minifram/Makefile.am -samples/minimal/Makefile.am -samples/nativdlg/Makefile.am -samples/notebook/Makefile.am -samples/oleauto/Makefile.am -samples/ownerdrw/Makefile.am -samples/png/Makefile.am -samples/printing/Makefile.am -samples/proplist/Makefile.am -samples/regtest/Makefile.am -samples/resource/Makefile.am -samples/richedit/Makefile.am -samples/sashtest/Makefile.am -samples/scroll/Makefile.am -samples/splitter/Makefile.am -samples/tab/Makefile.am -samples/taskbar/Makefile.am -samples/text/Makefile.am -samples/thread/Makefile.am -samples/toolbar/Makefile.am -samples/treectrl/Makefile.am -samples/typetest/Makefile.am -samples/validate/Makefile.am -samples/wxpoem/Makefile.am -samples/wxsocket/Makefile.am -src/Makefile.am -src/gtk/Makefile.am -src/motif/Makefile.am -src/msw/Makefile.am diff --git a/distrib/msw/motif.rsp b/distrib/msw/motif.rsp deleted file mode 100644 index 86d7219a41..0000000000 --- a/distrib/msw/motif.rsp +++ /dev/null @@ -1,105 +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/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 -docs/motif2/*.txt -docs/motif2/COPYING.LIB - -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 5e870cdc92..0000000000 --- a/distrib/msw/msw.rsp +++ /dev/null @@ -1,177 +0,0 @@ -docs/licence.txt -docs/msw/*.txt -docs/wine/*.txt -docs/wine/COPYING.LIB - -distrib/msw/*.rsp -distrib/msw/*.bat -distrib/msw/tmake/*.t - -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/winestub.c - -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/tmake/Makefile b/distrib/msw/tmake/Makefile deleted file mode 100644 index e682ebbe81..0000000000 --- a/distrib/msw/tmake/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# FIXME we'll generate this makefile with configure later, but for now please -# change it manually -TMAKEDIR=/home/zeitlin/build/tmake -TMAKE=$(TMAKEDIR)/bin/tmake - -WXDIR=../../.. -MSW_MAKEFILES_DIR=$(WXDIR)/src/msw - -all: $(MSW_MAKEFILES_DIR)/makefile.vc \ - $(MSW_MAKEFILES_DIR)/makefile.b32 \ - $(MSW_MAKEFILES_DIR)/makefile.dos \ - $(MSW_MAKEFILES_DIR)/makefile.bcc \ - $(MSW_MAKEFILES_DIR)/makefile.sc \ - $(MSW_MAKEFILES_DIR)/makefile.wat \ - $(MSW_MAKEFILES_DIR)/makefile.g95 \ - $(WXDIR)/Makefile.in - -$(MSW_MAKEFILES_DIR)/makefile.vc: filelist.txt wxwin.pro - $(TMAKE) -t vc wxwin.pro -o $@ - -$(MSW_MAKEFILES_DIR)/makefile.b32: filelist.txt wxwin.pro - $(TMAKE) -t b32 wxwin.pro -o $@ - -$(MSW_MAKEFILES_DIR)/makefile.dos: filelist.txt wxwin.pro - $(TMAKE) -t dos wxwin.pro -o $@ - -$(MSW_MAKEFILES_DIR)/makefile.bcc: filelist.txt wxwin.pro - $(TMAKE) -t bcc wxwin.pro -o $@ - -$(MSW_MAKEFILES_DIR)/makefile.sc: filelist.txt wxwin.pro - $(TMAKE) -t sc wxwin.pro -o $@ - -$(MSW_MAKEFILES_DIR)/makefile.wat: filelist.txt wxwin.pro - $(TMAKE) -t wat wxwin.pro -o $@ - -$(MSW_MAKEFILES_DIR)/makefile.g95: filelist.txt wxwin.pro - $(TMAKE) -t g95 wxwin.pro -o $@ - -$(WXDIR)/Makefile.in: filelist.txt wxwin.pro - $(TMAKE) -t unx wxwin.pro -o $@ diff --git a/distrib/msw/tmake/b32.t b/distrib/msw/tmake/b32.t deleted file mode 100644 index f6aa42cb3f..0000000000 --- a/distrib/msw/tmake/b32.t +++ /dev/null @@ -1,341 +0,0 @@ -#!############################################################################# -#! File: b32.t -#! Purpose: tmake template file from which makefile.b32 is generated by running -#! tmake -t b32 wxwin.pro -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# - -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - my $tag = ""; - next if $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXGENERICOBJS"} .= "\$(MSWDIR)\\" . $file . " " - } - - foreach $file (sort keys %wxCommon) { - $isCFile = $file =~ /\.c$/; - $file =~ s/cp?p?$/obj/; - $obj = "\$(MSWDIR)\\" . $file . " "; - $project{"WXCOMMONOBJS"} .= $obj; - $project{"WXCOBJS"} .= $obj if $isCFile; - } - - foreach $file (sort keys %wxMSW) { - next if $wxMSW{$file} =~ /\b16\b/; - - if ( $file =~ /^automtn/ ) { - #! comment in old makefile.b32 seems to imply that this file can't - #! be compiled with Borland (leads to crash in oleauto sample) - next; - } - - my $isOleObj = $wxMSW{$file} =~ /\bO\b/; - $file =~ s/cp?p?$/obj/; - my $obj = "\$(MSWDIR)\\" . $file . " "; - - $project{"WXMSWOBJS"} .= $obj; - if ( $isOleObj ) { - #! remember that this file is in ole subdir - $project{"WXOLEOBJS"} .= $obj; - } - - } -#$} - -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE B32.T! - -# -# 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= #$ ExpandList("WXGENERICOBJS"); - -# 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)\y_tab.obj \ - #$ ExpandList("WXCOMMONOBJS"); - -MSWOBJS = #$ ExpandList("WXMSWOBJS"); - -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) /P1024 @&&! -+$(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 - -#${ - $_ = $project{"WXMSWOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_ . ": "; - if ( $project{"WXOLEOBJS"} =~ /\Q$_/ ) { s/MSWDIR/OLEDIR/; } - s/obj$/\$(SRCSUFF)/; - $text .= $_ . "\n\n"; - } -#$} - -######################################################## -# Common objects (always compiled) - -#${ - $_ = $project{"WXCOMMONOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_ . ": "; - $suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)'; - s/MSWDIR/COMMDIR/; - s/obj$/$suffix/; - $text .= $_ . "\n\n"; - } -#$} - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -#${ - $_ = $project{"WXGENERICOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_ . ": "; - s/MSWDIR/GENDIR/; - s/obj$/\$(SRCSUFF)/; - $text .= $_ . "\n\n"; - } -#$} - - -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 - - -MFTYPE=b32 -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw - diff --git a/distrib/msw/tmake/bcc.t b/distrib/msw/tmake/bcc.t deleted file mode 100644 index 3a3659ff20..0000000000 --- a/distrib/msw/tmake/bcc.t +++ /dev/null @@ -1,308 +0,0 @@ -#!############################################################################# -#! File: bcc.t -#! Purpose: tmake template file from which makefile.bcc is generated by running -#! tmake -t bcc wxwin.pro -o makefile.bcc -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# - -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - my $tag = ""; - next if $wxGeneric{$file} =~ /\b(PS|G|U)\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXGENERICOBJS"} .= "\$(MSWDIR)\\" . $file . " " - } - - foreach $file (sort keys %wxCommon) { - #! socket files don't compile under Win16 currently - next if $wxCommon{$file} =~ /\b(32|S)\b/; - - #! needs extra files (sql*.h) so not compiled by default. - next if $file =~ /^odbc\./; - - $isCFile = $file =~ /\.c$/; - $file =~ s/cp?p?$/obj/; - $obj = "\$(MSWDIR)\\" . $file . " "; - $project{"WXCOMMONOBJS"} .= $obj; - $project{"WXCOBJS"} .= $obj if $isCFile; - } - - #! special hack for Borland in 16 bits needs this file - $project{"WXCOMMONOBJS"} .= '${MSWDIR}\resourc2.cpp'; - - foreach $file (sort keys %wxMSW) { - #! don't take files not appropriate for 16-bit Windows - next if $wxMSW{$file} =~ /\b(32|O)\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXMSWOBJS"} .= "\$(MSWDIR)\\" . $file . " " - } -#$} - -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE BCC.T! - -# -# 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= #$ ExpandList("WXGENERICOBJS"); - -COMMONOBJS = \ - $(MSWDIR)\y_tab.obj \ - #$ ExpandList("WXCOMMONOBJS"); - -MSWOBJS = #$ ExpandList("WXMSWOBJS"); - -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 - -#${ - $_ = $project{"WXMSWOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_ . ": "; - s/obj/\$(SRCSUFF)/; - $text .= $_ . "\n\n"; - } -#$} - -######################################################## -# Common objects (always compiled) - -#${ - $_ = $project{"WXCOMMONOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_ . ": "; - $suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)'; - s/MSWDIR/COMMDIR/; - s/obj/$suffix/; - $text .= $_ . "\n\n"; - } -#$} - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -#${ - $_ = $project{"WXGENERICOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_ . ": "; - s/MSWDIR/GENDIR/; - s/obj/\$(SRCSUFF)/; - $text .= $_ . "\n\n"; - } -#$} - -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 - - -MFTYPE=bcc -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw diff --git a/distrib/msw/tmake/dos.t b/distrib/msw/tmake/dos.t deleted file mode 100644 index 70e95a02e1..0000000000 --- a/distrib/msw/tmake/dos.t +++ /dev/null @@ -1,260 +0,0 @@ -#!############################################################################# -#! File: dos.t -#! Purpose: tmake template file from which makefile.dos is generated by running -#! tmake -t dos wxwin.pro -o makefile.dos -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# - -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - if ( $wxGeneric{$file} =~ /\b(PS|G|U)\b/ ) { - #! this file for some reason was compiled for VC++ 1.52 - next unless $file =~ /^prntdlgg\./; - } - - $file =~ s/cp?p?$/obj/; - $project{"WXGENERICOBJS"} .= "\$(GENDIR)\\" . $file . " " - } - - foreach $file (sort keys %wxCommon) { - #! socket files don't compile under Win16 currently - next if $wxCommon{$file} =~ /\b(32|S)\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXCOMMONOBJS"} .= "\$(COMMDIR)\\" . $file . " " - } - - foreach $file (sort keys %wxMSW) { - #! don't take files not appropriate for 16-bit Windows - next if $wxMSW{$file} =~ /\b(32|O)\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXMSWOBJS"} .= "\$(MSWDIR)\\" . $file . " " - } -#$} - -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE DOS.T! - -# -# 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= #$ ExpandList("WXGENERICOBJS"); - -COMMONOBJS = \ - $(COMMDIR)\y_tab.obj \ - #$ ExpandList("WXCOMMONOBJS"); - -MSWOBJS = #$ ExpandList("WXMSWOBJS"); - -# TODO: Implement XPM and PNG targets in this makefile! -# $(OLEDIR)\xpmhand \ -# $(OLEDIR)\pnghand \ - -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) -<< - -#${ - $_ = $project{"WXMSWOBJS"} . $project{"WXCOMMONOBJS"} . $project{"WXGENERICOBJS"}; - my @objs = split; - foreach (@objs) { - s:\\:/:; - $text .= $_ . ': $*.$(SRCSUFF)' . "\n" . - ' cl @<<' . "\n" . - '$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)' . "\n" . - "<<\n\n"; - } -#$} - -$(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 - -$(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 - - -MFTYPE=dos -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw diff --git a/distrib/msw/tmake/filelist.t b/distrib/msw/tmake/filelist.t deleted file mode 100644 index e2536e1108..0000000000 --- a/distrib/msw/tmake/filelist.t +++ /dev/null @@ -1,74 +0,0 @@ -#!############################################################################# -#! File: filelist.t -#! Purpose: tmake template file containig Perl code to parse the filelist.txt -#! file - this is used by all other templates. -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# -#${ - open(FILELIST, "filelist.txt") or die "Can't open filelist file: $!\n"; - - line: while ( defined($_ = ) ) { - chomp; - - #! comment or blank line, skip - next line if ( $_ eq "" or /^#/ ); - - #! if ( $verbose ) { - #! print STDERR "Processing line: '$_'\n"; - #! } - - my @fields = split "\t"; - if ( $#fields > 2 ) { - warn "Ignoring malformed line $_ in the filelist file.\n"; - next line; - } elsif ( $#fields == 1 ) { - #! add an empty flags string - $fields[2] = ""; - } - - if ( $verbose ) { - print STDERR "File $fields[0]: type '$fields[1]', flags '$fields[2]'\n"; - } - - #! first column is filename, second is type, third is flags - if ( $fields[1] eq "C" ) { - $wxCommon{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "G" ) { - $wxGeneric{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "M" ) { - $wxMSW{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "X" ) { - $wxMOTIF{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "R" ) { - $wxGTK{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "H" ) { - $wxHTML{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "U" ) { - $wxUNIX{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "W" ) { - $wxWXINCLUDE{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "P" ) { - $wxPROTOCOLINCLUDE{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "L" ) { - $wxHTMLINCLUDE{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "F" ) { - $wxMOTIFINCLUDE{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "B" ) { - $wxMSWINCLUDE{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "K" ) { - $wxGTKINCLUDE{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "S" ) { - $wxUNIXINCLUDE{$fields[0]} = $fields[2]; - } elsif ( $fields[1] eq "N" ) { - $wxGENERICINCLUDE{$fields[0]} = $fields[2]; - } else { - warn "Unknown file type $fields[1] for $fields[0], ignoring.\n"; - next line; - } - } - - close(FILELIST); -#$} -#! vim:sw=4:ts=4:list:et diff --git a/distrib/msw/tmake/filelist.txt b/distrib/msw/tmake/filelist.txt deleted file mode 100644 index 53b4f3c232..0000000000 --- a/distrib/msw/tmake/filelist.txt +++ /dev/null @@ -1,857 +0,0 @@ -############################################################################### -# File: src/msw/filelist.cpp -# Purpose: The list of source files for MSW version of wxWindows. -# Author: Vadim Zeitlin -# Created: 14.07.99 -# Version: $Id$ -# -# Format of this file: TAB separated columns. The first column contains the -# filename, the second a letter corresonding a directory: -# G /src/generic -# C /src/common -# M /src/msw -# X /src/motif X for Xt -# U /src/unix -# R /src/gtk R for Robert -# H /src/html -# W /include/wx -# K /include/wx/gtk K for gtK -# F /include/wx/motif F for motiF -# B /include/wx/msw B for Bill Gates -# N /include/wx/generic N for geNeric -# L /include/wx/html L for htmL -# P /include/wx/protocol -# S /include/wx/unix S for poSix -# -# The third column may be empty or contain some additional info about this -# file (only compile it in 16bit mode, don't compile it with this or that -# compiler, &c) -# -# Known flags: -# 16 a generic file implementing Win32 control for Win16 -# 32 only can be compiled under Win32 -# PS PostScript related file, normally not compiled under Windows -# G generic code which might be used instead of native one -# U Unix-ish file, normally not compiled under Windows -# O OLE file (needs Win32 and a decent compiler) -# S Socket file (currently doesn't compile under Win16 nor with GNU) -# R Not required for the GTK port -# X Not required for the Motif port -# WX Base header -# GTK GTK header -# MSW MSW header -# MAC Mac header -# MOT Motif header -# PM OS/2 header -# GEN Generic header -# PRO Protocol header -# HTM wxHtml header -# UNX Unix header -############################################################################### - -# File name Type Flags - -busyinfo.cpp G -caret.cpp G U -choicdgg.cpp G -colrdlgg.cpp G G -dcpsg.cpp G U -dirdlgg.cpp G 16 -fontdlgg.cpp G G -filedlgg.cpp G U -gridg.cpp G -helphtml.cpp G G -helpwxht.cpp G G -helpxlp.cpp G G,R -imaglist.cpp G 16 -laywin.cpp G -listctrl.cpp G 16 -msgdlgg.cpp G G -notebook.cpp G 16,R -panelg.cpp G -printps.cpp G PS -prntdlgg.cpp G PS,U -progdlgg.cpp G -prop.cpp G -propform.cpp G -proplist.cpp G -sashwin.cpp G -scrolwin.cpp G -splitter.cpp G -statusbr.cpp G -tabg.cpp G R -numdlgg.cpp G -textdlgg.cpp G -tipdlg.cpp G -treectrl.cpp G 16 -wizard.cpp G - -choiccmn.cpp C R -cmndata.cpp C -config.cpp C -ctrlcmn.cpp C R -date.cpp C -datstrm.cpp C -db.cpp C -dbtable.cpp C -dcbase.cpp C -dlgcmn.cpp C -docmdi.cpp C -docview.cpp C -dynarray.cpp C -dynlib.cpp C -event.cpp C -extended.c C -ffile.cpp C -file.cpp C -fileconf.cpp C -filefn.cpp C -filesys.cpp C -framecmn.cpp C -fs_inet.cpp C -fs_zip.cpp C -ftp.cpp C S -gdicmn.cpp C -gifdecod.cpp C -hash.cpp C -helpbase.cpp C -http.cpp C S -imagbmp.cpp C -image.cpp C -imaggif.cpp C -imagjpeg.cpp C -imagpng.cpp C -imagpnm.cpp C -intl.cpp C -ipcbase.cpp C -layout.cpp C -list.cpp C -log.cpp C -memory.cpp C -mimetype.cpp C 32 -module.cpp C -mstream.cpp C -object.cpp C -objstrm.cpp C -odbc.cpp C R -paper.cpp C -prntbase.cpp C -process.cpp C 32 -protocol.cpp C S -resource.cpp C -sckaddr.cpp C S -sckfile.cpp C S -sckipc.cpp C S -sckstrm.cpp C S -sizer.cpp C -socket.cpp C S -stream.cpp C -strconv.cpp C -string.cpp C -tbarbase.cpp C -tbarsmpl.cpp C 16 -textcmn.cpp C -textfile.cpp C -time.cpp C -timercmn.cpp C -tokenzr.cpp C -txtstrm.cpp C -unzip.c C -url.cpp C S -utilscmn.cpp C -valgen.cpp C -validate.cpp C -valtext.cpp C -variant.cpp C -wfstream.cpp C -wincmn.cpp C -wxchar.cpp C -wxexpr.cpp C -zipstrm.cpp C -zstream.cpp C - -accel.cpp M -app.cpp M -automtn.cpp M O -bitmap.cpp M -bmpbuttn.cpp M -brush.cpp M -button.cpp M -caret.cpp M -checkbox.cpp M -checklst.cpp M -choice.cpp M -clipbrd.cpp M -colordlg.cpp M -colour.cpp M -combobox.cpp M -control.cpp M -curico.cpp M -cursor.cpp M -data.cpp M -dataobj.cpp M O -dc.cpp M -dcclient.cpp M -dcmemory.cpp M -dcprint.cpp M -dcscreen.cpp M -dde.cpp M -dialog.cpp M -dib.cpp M -dibutils.cpp M -dirdlg.cpp M 32 -dragimag.cpp M -dropsrc.cpp M O -droptgt.cpp M O -filedlg.cpp M -font.cpp M -fontdlg.cpp M -frame.cpp M -gauge95.cpp M 32 -gaugemsw.cpp M 16 -gdiobj.cpp M -helpwin.cpp M -icon.cpp M -imaglist.cpp M 32 -iniconf.cpp M 16 -joystick.cpp M -listbox.cpp M -listctrl.cpp M 32 -main.cpp M -mdi.cpp M -menu.cpp M -menuitem.cpp M -metafile.cpp M -minifram.cpp M -msgdlg.cpp M -nativdlg.cpp M -notebook.cpp M 32 -oleutils.cpp M O -ownerdrw.cpp M -palette.cpp M -pen.cpp M -penwin.cpp M -pnghand.cpp M -printdlg.cpp M -printwin.cpp M -radiobox.cpp M -radiobut.cpp M -regconf.cpp M 32 -region.cpp M -registry.cpp M 32 -scrolbar.cpp M -settings.cpp M -slider95.cpp M 32 -slidrmsw.cpp M 16 -spinbutt.cpp M -statbmp.cpp M -statbox.cpp M -statbr95.cpp M 32 -statline.cpp M -stattext.cpp M -tabctrl.cpp M -taskbar.cpp M 32 -tbar95.cpp M 32 -tbarmsw.cpp M 16 -textctrl.cpp M -thread.cpp M 32 -timer.cpp M -tooltip.cpp M 32 -treectrl.cpp M 32 -utils.cpp M -utilsexc.cpp M -uuid.cpp M O -wave.cpp M -window.cpp M -xpmhand.cpp M - -threadpsx.cpp U -utilsunx.cpp U -gsocket.c U - -gsockgtk.c R -win_gtk.c R -accel.cpp R -app.cpp R -bitmap.cpp R -bmpbuttn.cpp R -brush.cpp R -button.cpp R -checkbox.cpp R -checklst.cpp R -choice.cpp R -clipbrd.cpp R -colour.cpp R -combobox.cpp R -control.cpp R -cursor.cpp R -data.cpp R -dataobj.cpp R -dc.cpp R -dcclient.cpp R -dcmemory.cpp R -dcscreen.cpp R -dialog.cpp R -dnd.cpp R -font.cpp R -frame.cpp R -gauge.cpp R -gdiobj.cpp R -gsockgtk.c R -icon.cpp R -listbox.cpp R -main.cpp R -mdi.cpp R -menu.cpp R -minifram.cpp R -notebook.cpp R -palette.cpp R -pen.cpp R -radiobox.cpp R -radiobut.cpp R -region.cpp R -scrolbar.cpp R -settings.cpp R -slider.cpp R -spinbutt.cpp R -statbmp.cpp R -statbox.cpp R -statline.cpp R -stattext.cpp R -tbargtk.cpp R -textctrl.cpp R -timer.cpp R -tooltip.cpp R -utilsgtk.cpp R -utilsres.cpp R -wave.cpp R -window.cpp R - -gsockmot.cpp X -accel.cpp X -app.cpp X -bitmap.cpp X -bmpbuttn.cpp X -brush.cpp X -button.cpp X -checkbox.cpp X -choice.cpp X -clipbrd.cpp X -colour.cpp X -combobox.cpp X -control.cpp X -cursor.cpp X -data.cpp X -dataobj.cpp X -dc.cpp X -dcclient.cpp X -dcmemory.cpp X -dcscreen.cpp X -dialog.cpp X -filedlg.cpp X -font.cpp X -frame.cpp X -gauge.cpp X -gdiobj.cpp X -icon.cpp X -listbox.cpp X -main.cpp X -mdi.cpp X -menu.cpp X -menuitem.cpp X -minifram.cpp X -msgdlg.cpp X -palette.cpp X -pen.cpp X -radiobox.cpp X -radiobut.cpp X -region.cpp X -scrolbar.cpp X -settings.cpp X -slider.cpp X -statbmp.cpp X -statbox.cpp X -stattext.cpp X -toolbar.cpp X -textctrl.cpp X -timer.cpp X -utils.cpp X -window.cpp X - -htmlcell.cpp H -htmlfilter.cpp H -htmlhelp.cpp H -htmlhelp_io.cpp H -htmlparser.cpp H -htmltag.cpp H -htmlwin.cpp H -htmlwinparser.cpp H -mod_fonts.cpp H -mod_hline.cpp H -mod_image.cpp H -mod_layout.cpp H -mod_links.cpp H -mod_list.cpp H -mod_pre.cpp H -mod_tables.cpp H -search.cpp H - -arrimpl.cpp W -listimpl.cpp W -accel.h W -app.h W -bitmap.h W -bmpbuttn.h W -brush.h W -buffer.h W -busyinfo.h W -button.h W -caret.h W -checkbox.h W -checklst.h W -choicdlg.h W -choice.h W -clipbrd.h W -cmndata.h W -colordlg.h W -colour.h W -combobox.h W -confbase.h W -config.h W -control.h W -cursor.h W -dataobj.h W -date.h W -datstrm.h W -db.h W -dbtable.h W -dc.h W -dcclient.h W -dcmemory.h W -dcprint.h W -dcps.h W -dcscreen.h W -dde.h W -debug.h W -defs.h W -dialog.h W -dirdlg.h W -dnd.h W -docmdi.h W -docview.h W -dragimag.h W -dynarray.h W -dynlib.h W -event.h W -expr.h W -ffile.h W -file.h W -fileconf.h W -filedlg.h W -filefn.h W -filesys.h W -font.h W -fontdlg.h W -frame.h W -fs_inet.h W -fs_zip.h W -gauge.h W -gdicmn.h W -gdiobj.h W -gifdecod.h W -grid.h W -gsocket.h W -hash.h W -help.h W -helpbase.h W -helphtml.h W -helpwin.h W -helpxlp.h W -icon.h W -image.h W -imaglist.h W -intl.h W -ioswrap.h W -ipcbase.h W -joystick.h W -layout.h W -laywin.h W -list.h W -listbox.h W -listctrl.h W -log.h W -longlong.h W -matrix.h W -mdi.h W -memory.h W -menu.h W -menuitem.h W -metafile.h W -mimetype.h W -minifram.h W -module.h W -msgdlg.h W -mstream.h W -notebook.h W -object.h W -objstrm.h W -odbc.h W -ownerdrw.h W -palette.h W -panel.h W -paper.h W -pen.h W -pnghand.h W -print.h W -printdlg.h W -prntbase.h W -process.h W -progdlg.h W -prop.h W -propform.h W -proplist.h W -radiobox.h W -radiobut.h W -region.h W -resource.h W -sashwin.h W -sckaddr.h W -sckipc.h W -sckstrm.h W -scrolbar.h W -scrolwin.h W -serbase.h W -settings.h W -setup.h W -sizer.h W -slider.h W -socket.h W -spinbutt.h W -splitter.h W -statbmp.h W -statbox.h W -statline.h W -stattext.h W -statusbr.h W -strconv.h W -stream.h W -string.h W -tab.h W -tabctrl.h W -taskbar.h W -tbar95.h W -tbarbase.h W -tbarmsw.h W -tbarsmpl.h W -textctrl.h W -textdlg.h W -textfile.h W -txtstrm.h W -thread.h W -time.h W -timer.h W -tipdlg.h W -tokenzr.h W -toolbar.h W -tooltip.h W -treectrl.h W -types.h W -url.h W -utils.h W -valgen.h W -validate.h W -valtext.h W -variant.h W -version.h W -wave.h W -wfstream.h W -window.h W -wx.h W -wx_cw.h W -wx_cw_cm.h W -wx_cw_d.h W -wxchar.h W -wxexpr.h W -wxhtml.h W -wxprec.h W -xpmhand.h W -zipstrm.h W -zstream.h W - -accel.h K -app.h K -bitmap.h K -bmpbuttn.h K -brush.h K -button.h K -checkbox.h K -checklst.h K -choice.h K -clipbrd.h K -colour.h K -combobox.h K -control.h K -cursor.h K -dataobj.h K -dc.h K -dcclient.h K -dcmemory.h K -dcscreen.h K -dialog.h K -dnd.h K -filedlg.h K -font.h K -frame.h K -gauge.h K -gdiobj.h K -icon.h K -joystick.h K -listbox.h K -mdi.h K -menu.h K -menuitem.h K -minifram.h K -notebook.h K -palette.h K -pen.h K -radiobox.h K -radiobut.h K -region.h K -scrolbar.h K -settings.h K -slider.h K -spinbutt.h K -statbmp.h K -statbox.h K -statline.h K -stattext.h K -tbargtk.h K -textctrl.h K -timer.h K -tooltip.h K -treectrl.h K -wave.h K -win_gtk.h K -window.h K - -accel.h F -app.h F -bitmap.h F -bmpbuttn.h F -brush.h F -button.h F -checkbox.h F -checklst.h F -choice.h F -clipbrd.h F -colordlg.h F -colour.h F -combobox.h F -control.h F -cursor.h F -dataobj.h F -dc.h F -dcclient.h F -dcmemory.h F -dcprint.h F -dcscreen.h F -dialog.h F -dnd.h F -filedlg.h F -font.h F -fontdlg.h F -frame.h F -gauge.h F -gdiobj.h F -icon.h F -joystick.h F -listbox.h F -mdi.h F -menu.h F -menuitem.h F -metafile.h F -minifram.h F -msgdlg.h F -palette.h F -pen.h F -print.h F -printdlg.h F -private.h F -radiobox.h F -radiobut.h F -region.h F -scrolbar.h F -settings.h F -slider.h F -spinbutt.h F -statbmp.h F -statbox.h F -stattext.h F -textctrl.h F -timer.h F -toolbar.h F -window.h F - -accel.h B -app.h B -bitmap.h B -bmpbuttn.h B -brush.h B -button.h B -caret.h B -checkbox.h B -checklst.h B -choice.h B -clipbrd.h B -colordlg.h B -colour.h B -combobox.h B -control.h B -curico.h B -curicop.h B -cursor.h B -dc.h B -dcclient.h B -dcmemory.h B -dcprint.h B -dcscreen.h B -dde.h B -dialog.h B -dib.h B -dibutils.h B -dirdlg.h B -dragimag.h B -filedlg.h B -font.h B -fontdlg.h B -frame.h B -gauge.h B -gauge95.h B -gaugemsw.h B -gdiobj.h B -helpwin.h B -icon.h B -imaglist.h B -iniconf.h B -joystick.h B -listbox.h B -listctrl.h B -mdi.h B -menu.h B -menuitem.h B -metafile.h B -minifram.h B -msgdlg.h B -msvcrt.h B -notebook.h B -palette.h B -pen.h B -pnghand.h B -pngread.h B -printdlg.h B -printwin.h B -private.h B -radiobox.h B -radiobut.h B -regconf.h B -region.h B -registry.h B -scrolbar.h B -settings.h B -setup0.h B -slider.h B -slider95.h B -slidrmsw.h B -spinbutt.h B -statbmp.h B -statbox.h B -statbr95.h B -statline.h B -stattext.h B -tabctrl.h B -taskbar.h B -tbar95.h B -tbarmsw.h B -textctrl.h B -timer.h B -tooltip.h B -treectrl.h B -wave.h B -window.h B -winundef.h B -xpmhand.h B -# blank.cur B -# bullseye.cur B -# child.ico B -# clock.cur B -# error.ico B -# hand.cur B -# heart.cur B -# info.ico B -# magnif1.cur B -# mdi.ico B -# noentry.cur B -# pbrush.cur B -# pencil.cur B -# pntleft.cur B -# pntright.cur B -# query.cur B -# question.ico B -# roller.cur B -# size.cur B -# std.ico B -# tip.ico B -# warning.ico B -# watch1.cur B -# disable.bmp B -# wx.rc B - -execute.h S - -file.h P -ftp.h P -http.h P -protocol.h P - -forcelink.h L -htmlcell.h L -htmldefs.h L -htmlfilter.h L -htmlhelp.h L -htmlparser.h L -htmltag.h L -htmlwin.h L -htmlwinparser.h L -mod_templ.h L -version.h L - -caret.h N -choicdgg.h N -colrdlgg.h N -dcpsg.h N -dirdlgg.h N -fontdlgg.h N -filedlgg.h N -gridg.h N -helpext.h N -helpwxht.h N -helphtml.h N -helpxlp.h N -imaglist.h N -laywin.h N -listctrl.h N -msgdlgg.h N -notebook.h N -panelg.h N -printps.h N -prntdlgg.h N -progdlgg.h N -sashwin.h N -scrolwin.h N -splitter.h N -statusbr.h N -tabg.h N -textdlgg.h N -treectrl.h N - -# vi: set noet ts=16 nolist: diff --git a/distrib/msw/tmake/g95.t b/distrib/msw/tmake/g95.t deleted file mode 100644 index d685da66fa..0000000000 --- a/distrib/msw/tmake/g95.t +++ /dev/null @@ -1,267 +0,0 @@ -#!############################################################################# -#! File: g95.t -#! Purpose: tmake template file from which makefile.g95 is generated by running -#! tmake -t g95 wxwin.pro -o makefile.g95 -#! Author: Vadim Zeitlin, Robert Roebling, Julian Smart -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# - -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - #! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations, - #! so take the generic version - if ( $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/ ) { - next unless $file =~ /^dirdlgg\./; - } - - $file =~ s/cp?p?$/\$(OBJSUFF)/; - $project{"WXGENERICOBJS"} .= '$(GENDIR)/' . $file . " " - } - - foreach $file (sort keys %wxCommon) { - next if $wxCommon{$file} =~ /\b(16)\b/; - - #! needs extra files (sql*.h) so not compiled by default. - next if $file =~ /^odbc\./; - - $file =~ s/cp?p?$/\$(OBJSUFF)/; - $project{"WXCOMMONOBJS"} .= '$(COMMDIR)/' . $file . " " - } - - foreach $file (sort keys %wxMSW) { - #! Mingw32 doesn't have the OLE headers and has some troubles with - #! socket code - next if $wxMSW{$file} =~ /\b(O|16)\b/; - - #! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations, - next if $file =~ /^dirdlg\./; - - $file =~ s/cp?p?$/\$(OBJSUFF)/; - $project{"WXMSWOBJS"} .= '$(MSWDIR)/' . $file . " " - } - - foreach $file (sort keys %wxHTML) { - $file =~ s/cp?p?$/\$(OBJSUFF)/; - $project{"WXHTMLOBJS"} .= '$(HTMLDIR)/' . $file . " " - } - -#$} -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE G95.T! - -# -# File: makefile.g95 -# Author: Julian Smart, Robert Roebling, Vadim Zeitlin -# Created: 1993 -# Updated: 1999 -# Copyright:(c) 1993, AIAI, University of Edinburgh, -# Copyright:(c) 1999, Vadim Zeitlin -# Copyright:(c) 1999, Robert Roebling -# -# Makefile for libwx.a - -# Replace this with your own path if necessary -WXDIR = ../.. - -# All common compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/makeg95.env - -# Subordinate library possibilities - -EXTRAOBJS= - -GENDIR = $(WXDIR)/src/generic -COMMDIR = $(WXDIR)/src/common -HTMLDIR = $(WXDIR)/src/html -XPMDIR = $(WXDIR)/src/xpm -PNGDIR = $(WXDIR)/src/png -JPEGDIR = $(WXDIR)/src/jpeg -ZLIBDIR = $(WXDIR)/src/zlib -OLEDIR = $(WXDIR)/src/msw/ole -MSWDIR = $(WXDIR)/src/msw - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS = \ - #$ ExpandList("WXGENERICOBJS"); - -COMMONOBJS = \ - $(COMMDIR)/y_tab.$(OBJSUFF) \ - #$ ExpandList("WXCOMMONOBJS"); - -HTMLOBJS = \ - #$ ExpandList("WXHTMLOBJS"); - -MSWOBJS = \ - #$ ExpandList("WXMSWOBJS"); - -ZLIBOBJS = \ - $(ZLIBDIR)/adler32.$(OBJSUFF) \ - $(ZLIBDIR)/compress.$(OBJSUFF) \ - $(ZLIBDIR)/crc32.$(OBJSUFF) \ - $(ZLIBDIR)/gzio.$(OBJSUFF) \ - $(ZLIBDIR)/uncompr.$(OBJSUFF) \ - $(ZLIBDIR)/deflate.$(OBJSUFF) \ - $(ZLIBDIR)/trees.$(OBJSUFF) \ - $(ZLIBDIR)/zutil.$(OBJSUFF) \ - $(ZLIBDIR)/inflate.$(OBJSUFF) \ - $(ZLIBDIR)/infblock.$(OBJSUFF) \ - $(ZLIBDIR)/inftrees.$(OBJSUFF) \ - $(ZLIBDIR)/infcodes.$(OBJSUFF) \ - $(ZLIBDIR)/infutil.$(OBJSUFF) \ - $(ZLIBDIR)/inffast.$(OBJSUFF) - -PNGOBJS = \ - $(PNGDIR)/png.$(OBJSUFF) \ - $(PNGDIR)/pngread.$(OBJSUFF) \ - $(PNGDIR)/pngrtran.$(OBJSUFF) \ - $(PNGDIR)/pngrutil.$(OBJSUFF) \ - $(PNGDIR)/pngpread.$(OBJSUFF) \ - $(PNGDIR)/pngtrans.$(OBJSUFF) \ - $(PNGDIR)/pngwrite.$(OBJSUFF) \ - $(PNGDIR)/pngwtran.$(OBJSUFF) \ - $(PNGDIR)/pngwutil.$(OBJSUFF) \ - $(PNGDIR)/pngerror.$(OBJSUFF) \ - $(PNGDIR)/pngmem.$(OBJSUFF) \ - $(PNGDIR)/pngwio.$(OBJSUFF) \ - $(PNGDIR)/pngrio.$(OBJSUFF) \ - $(PNGDIR)/pngget.$(OBJSUFF) \ - $(PNGDIR)/pngset.$(OBJSUFF) - - -JPEGOBJS = \ - $(JPEGDIR)/jcomapi.$(OBJSUFF) \ - $(JPEGDIR)/jutils.$(OBJSUFF) \ - $(JPEGDIR)/jerror.$(OBJSUFF) \ - $(JPEGDIR)/jmemmgr.$(OBJSUFF) \ - $(JPEGDIR)/jmemnobs.$(OBJSUFF) \ - $(JPEGDIR)/jcapimin.$(OBJSUFF) \ - $(JPEGDIR)/jcapistd.$(OBJSUFF) \ - $(JPEGDIR)/jctrans.$(OBJSUFF) \ - $(JPEGDIR)/jcparam.$(OBJSUFF) \ - $(JPEGDIR)/jdatadst.$(OBJSUFF) \ - $(JPEGDIR)/jcinit.$(OBJSUFF) \ - $(JPEGDIR)/jcmaster.$(OBJSUFF) \ - $(JPEGDIR)/jcmarker.$(OBJSUFF) \ - $(JPEGDIR)/jcmainct.$(OBJSUFF) \ - $(JPEGDIR)/jcprepct.$(OBJSUFF) \ - $(JPEGDIR)/jccoefct.$(OBJSUFF) \ - $(JPEGDIR)/jccolor.$(OBJSUFF) \ - $(JPEGDIR)/jcsample.$(OBJSUFF) \ - $(JPEGDIR)/jchuff.$(OBJSUFF) \ - $(JPEGDIR)/jcphuff.$(OBJSUFF) \ - $(JPEGDIR)/jcdctmgr.$(OBJSUFF) \ - $(JPEGDIR)/jfdctfst.$(OBJSUFF) \ - $(JPEGDIR)/jfdctflt.$(OBJSUFF) \ - $(JPEGDIR)/jfdctint.$(OBJSUFF) \ - $(JPEGDIR)/jdapimin.$(OBJSUFF) \ - $(JPEGDIR)/jdapistd.$(OBJSUFF) \ - $(JPEGDIR)/jdtrans.$(OBJSUFF) \ - $(JPEGDIR)/jdatasrc.$(OBJSUFF) \ - $(JPEGDIR)/jdmaster.$(OBJSUFF) \ - $(JPEGDIR)/jdinput.$(OBJSUFF) \ - $(JPEGDIR)/jdmarker.$(OBJSUFF) \ - $(JPEGDIR)/jdhuff.$(OBJSUFF) \ - $(JPEGDIR)/jdphuff.$(OBJSUFF) \ - $(JPEGDIR)/jdmainct.$(OBJSUFF) \ - $(JPEGDIR)/jdcoefct.$(OBJSUFF) \ - $(JPEGDIR)/jdpostct.$(OBJSUFF) \ - $(JPEGDIR)/jddctmgr.$(OBJSUFF) \ - $(JPEGDIR)/jidctfst.$(OBJSUFF) \ - $(JPEGDIR)/jidctflt.$(OBJSUFF) \ - $(JPEGDIR)/jidctint.$(OBJSUFF) \ - $(JPEGDIR)/jidctred.$(OBJSUFF) \ - $(JPEGDIR)/jdsample.$(OBJSUFF) \ - $(JPEGDIR)/jdcolor.$(OBJSUFF) \ - $(JPEGDIR)/jquant1.$(OBJSUFF) \ - $(JPEGDIR)/jquant2.$(OBJSUFF) \ - $(JPEGDIR)/jdmerge.$(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) $(HTMLOBJS) \ - $(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(XPMOBJECTS) - -all: $(OBJECTS) $(WXLIB) - -$(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) -DUSE_DEFINE -DYY_USE_PROTOS -o $@ $(COMMDIR)/y_tab.c - -$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c - copy ..\common\dosyacc.c ..\common\y_tab.c - -$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c - copy ..\common\doslex.c ..\common\lex_yy.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 - -clean: - -erase *.o - -erase *.bak - -erase core - -erase ..\common\y_tab.c - -erase ..\common\lex_yy.c - -erase ..\common\*.o - -erase ..\common\*.bak - -erase ..\generic\*.o - -erase ..\generic\*.bak - -erase ..\html\*.o - -erase ..\png\*.o - -erase ..\png\*.bak - -erase ..\zlib\*.o - -erase ..\zlib\*.bak - -erase ..\jpeg\*.o - -erase ..\..\lib\libwx.a - -cleanall: clean diff --git a/distrib/msw/tmake/makeall.bat b/distrib/msw/tmake/makeall.bat deleted file mode 100755 index 1c048f2086..0000000000 --- a/distrib/msw/tmake/makeall.bat +++ /dev/null @@ -1,55 +0,0 @@ -@echo off -rem File: makeall.bat -rem Purpose: create wxWindows makefiles for all compilers -rem Author: Vadim Zeitlin -rem Created: 14.07.99 -rem Copyright: (c) 1999 Vadim Zeitlin -rem Version: $Id$ -rem -rem Makefile to create the makefiles for all compilers from the templates using -rem tmake. The environment variable WX or WXWIN should be defined and contain -rem the root directory of wxWindows installation. TMAKE program should be in -rem path or, alternatively, TMAKE environment variable should be set. - -if "x%WX%" == "x" goto skip -set WXDIR=%WX% -goto ok - -:skip -if "x%WXWIN%" == "x" goto no_wx -set WXDIR=%WXWIN% -goto ok - -:no_wx -echo "Please set WX environment variable!" -goto end - -:ok -set TM=tmake -if "x%TMAKE%" == "x" goto skip2 -set TM=%TMAKE% - -:skip2 - -rem this loop just doesn't want to work under command.com and cmd.exe and -rem 4nt.exe, so I preferred to unroll it. -rem for %%c in (b32 bcc dos g95 sc vc wat) %TM% -t %c% wxwin.pro -o %WXDIR%\src\msw\makefile.%c% - -echo Generating for Visual C++ 4.0... -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t vc wxwin.pro -o makefile.vc -echo Generating for Borland C++ (32 bits)... -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t b32 wxwin.pro -o makefile.b32 -echo Generating for Visual C++ 1.52... -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t dos wxwin.pro -o makefile.dos -echo Generating for Borland C++ (16 bits)... -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t bcc wxwin.pro -o makefile.bcc -echo Generating for Cygwin/Mingw32 -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t g95 wxwin.pro -o makefile.g95 -echo Generating for Symantec C++... -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t sc wxwin.pro -o makefile.sc -echo Generating for Watcom C++... -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t wat wxwin.pro -o makefile.wat -echo Generating for Unix and Configure... -E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t unx wxwin.pro -o makefile.unx.in - -:end diff --git a/distrib/msw/tmake/sc.t b/distrib/msw/tmake/sc.t deleted file mode 100644 index eca10fb8f7..0000000000 --- a/distrib/msw/tmake/sc.t +++ /dev/null @@ -1,119 +0,0 @@ -#!############################################################################# -#! File: sc.t -#! Purpose: tmake template file from which makefile.sc is generated by running -#! tmake -t sc wxwin.pro -o makefile.sc -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# - -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - my $tag = ""; - if ( $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/ ) { - $tag = "WXNONESSENTIALOBJS"; - } - else { - $tag = "WXGENERICOBJS"; - } - - $file =~ s/cp?p?$/obj/; - $project{$tag} .= '$(GENDIR)\\' . $file . " " - } - - foreach $file (sort keys %wxCommon) { - $file =~ s/cp?p?$/obj/; - $project{"WXCOMMONOBJS"} .= '$(COMMDIR)\\' . $file . " " - } - - foreach $file (sort keys %wxMSW) { - #! these files don't compile with SC++ 6 - next if $file =~ /^(joystick|pnghand)\./; - - next if $wxGeneric{$file} =~ /\b16\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXMSWOBJS"} .= '$(MSWDIR)\\' . $file . " " - } -#$} - -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE SC.T! - -# 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= #$ ExpandList("WXGENERICOBJS"); - -COMMONOBJS = \ - $(COMMDIR)\y_tab.obj \ - #$ ExpandList("WXCOMMONOBJS"); - -MSWOBJS = #$ ExpandList("WXMSWOBJS"); - -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 - -MFTYPE=sc -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw diff --git a/distrib/msw/tmake/tmake.conf b/distrib/msw/tmake/tmake.conf deleted file mode 100644 index eed7c32a4d..0000000000 --- a/distrib/msw/tmake/tmake.conf +++ /dev/null @@ -1,57 +0,0 @@ -# -# $Id$ -# -# tmake configuration for linux-g++ -# - -TEMPLATE = app -CONFIG = qt warn_on release - -TMAKE_CC = gcc -TMAKE_CFLAGS = -TMAKE_CFLAGS_WARN_ON = -Wall -W -TMAKE_CFLAGS_WARN_OFF = -TMAKE_CFLAGS_RELEASE = -O2 -fno-strength-reduce -TMAKE_CFLAGS_DEBUG = -g -TMAKE_CFLAGS_SHLIB = -fPIC -TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses - -TMAKE_CXX = g++ -TMAKE_CXXFLAGS = $$TMAKE_CFLAGS -TMAKE_CXXFLAGS_WARN_ON = $$TMAKE_CFLAGS_WARN_ON -TMAKE_CXXFLAGS_WARN_OFF = $$TMAKE_CFLAGS_WARN_OFF -TMAKE_CXXFLAGS_RELEASE = $$TMAKE_CFLAGS_RELEASE -TMAKE_CXXFLAGS_DEBUG = $$TMAKE_CFLAGS_DEBUG -TMAKE_CXXFLAGS_SHLIB = $$TMAKE_CFLAGS_SHLIB -TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YACC - -TMAKE_INCDIR = -TMAKE_LIBDIR = -TMAKE_INCDIR_X11 = /usr/X11R6/include -TMAKE_LIBDIR_X11 = /usr/X11R6/lib -TMAKE_INCDIR_QT = $(QTDIR)/include -TMAKE_LIBDIR_QT = $(QTDIR)/lib -TMAKE_INCDIR_OPENGL = /usr/X11R6/include -TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib - -TMAKE_LINK = g++ -TMAKE_LINK_SHLIB = g++ -TMAKE_LFLAGS = -Wl,-rpath=/lib:/usr/X11R6/lib:$(QTDIR)/lib -TMAKE_LFLAGS_RELEASE = -TMAKE_LFLAGS_DEBUG = -TMAKE_LFLAGS_SHLIB = -shared -TMAKE_LFLAGS_SONAME = -Wl,-soname, - -TMAKE_LIBS = -TMAKE_LIBS_X11 = -lX11 -lXext -TMAKE_LIBS_QT = -lqt -TMAKE_LIBS_QT_OPENGL = -lqgl -TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXext -lm - -TMAKE_MOC = moc - -TMAKE_AR = ar cqs -TMAKE_RANLIB = - -TMAKE_TAR = tar -cf -TMAKE_GZIP = gzip -9f diff --git a/distrib/msw/tmake/unx.t b/distrib/msw/tmake/unx.t deleted file mode 100644 index 332baca2b3..0000000000 --- a/distrib/msw/tmake/unx.t +++ /dev/null @@ -1,696 +0,0 @@ -#!################################################################################ -#! File: unx.t -#! Purpose: tmake template file from which Makefile.in is generated by running -#! tmake -t unx wxwin.pro -o Makefile.in -#! Author: Vadim Zeitlin, Robert Roebling, Julian Smart -#! Created: 14.07.99 -#! Version: $Id$ -#!################################################################################ -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric, %wxHtml, %wxUnix and %wxGTK hashes. - IncludeTemplate("filelist.t"); - - #! Generic - - foreach $file (sort keys %wxGeneric) { - #! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations, - #! so take the generic version - if ( $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/ ) { - next unless $file =~ /^dirdlgg\./; - } - - $file =~ s/cp?p?$/\o/; - $project{"WXMSW_GENERICOBJS"} .= "src/generic/" . $file . " " - } - - foreach $file (sort keys %wxGeneric) { - #! skip generic files not required for the wxGTK port - next if $wxGeneric{$file} =~ /\bR\b/; - - $file =~ s/cp?p?$/\o/; - $project{"WXGTK_GENERICOBJS"} .= "src/generic/" . $file . " " - } - - foreach $file (sort keys %wxGeneric) { - next if $wxCommon{$file} =~ /\bX\b/; - - $file =~ s/cp?p?$/\o/; - $project{"WXMOTIF_GENERICOBJS"} .= "src/generic/" . $file . " " - } - - #! Common - - foreach $file (sort keys %wxCommon) { - next if $wxCommon{$file} =~ /\bR\b/; - - $file =~ s/cp?p?$/\o/; - $project{"WXGTK_COMMONOBJS"} .= "src/common/" . $file . " " - } - - foreach $file (sort keys %wxCommon) { - next if $wxCommon{$file} =~ /\bX\b/; - - $file =~ s/cp?p?$/\o/; - $project{"WXMOTIF_COMMONOBJS"} .= "src/common/" . $file . " " - } - - foreach $file (sort keys %wxCommon) { - next if $wxCommon{$file} =~ /\b(16)\b/; - - #! needs extra files (sql*.h) so not compiled by default. - next if $file =~ /^odbc\./; - - $file =~ s/cp?p?$/\o/; - $project{"WXMSW_COMMONOBJS"} .= "src/common/" . $file . " " - } - - #! GUI - - foreach $file (sort keys %wxMSW) { - #! Mingw32 doesn't have the OLE headers and has some troubles with - #! socket code - next if $wxMSW{$file} =~ /\b(O|16)\b/; - - #! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations, - next if $file =~ /^dirdlg\./; - - $file =~ s/cp?p?$/\o/; - $project{"WXMSW_GUIOBJS"} .= "src/msw/" . $file . " " - } - - foreach $file (sort keys %wxGTK) { - $file =~ s/cp?p?$/\o/; - $project{"WXGTK_GUIOBJS"} .= "src/gtk/" . $file . " " - } - - foreach $file (sort keys %wxMOTIF) { - $file =~ s/cp?p?$/\o/; - $project{"WXMOTIF_GUIOBJS"} .= "src/motif/" . $file . " " - } - - #! others - - foreach $file (sort keys %wxHTML) { - $file =~ s/cp?p?$/\o/; - $project{"WXHTMLOBJS"} .= "src/html/" . $file . " " - } - - foreach $file (sort keys %wxUNIX) { - $file =~ s/cp?p?$/\o/; - $project{"WXUNIXOBJS"} .= "src/unix/" . $file . " " - } - - #! headers - - foreach $file (sort keys %wxWXINCLUDE) { - $project{"WX_HEADERS"} .= $file . " " - } - - foreach $file (sort keys %wxGENERICINCLUDE) { - $project{"WXGENERIC_HEADERS"} .= "generic/" . $file . " " - } - - foreach $file (sort keys %wxMOTIFINCLUDE) { - $project{"WXMOTIF_HEADERS"} .= "motif/" . $file . " " - } - - foreach $file (sort keys %wxGTKINCLUDE) { - $project{"WXGTK_HEADERS"} .= "gtk/" . $file . " " - } - - foreach $file (sort keys %wxMSWINCLUDE) { - $project{"WXMSW_HEADERS"} .= "msw/" . $file . " " - } - - foreach $file (sort keys %wxHTMLINCLUDE) { - $project{"WXHTML_HEADERS"} .= "html/" . $file . " " - } - - foreach $file (sort keys %wxUNIXINCLUDE) { - $project{"WXUNIX_HEADERS"} .= "unix/" . $file . " " - } - - foreach $file (sort keys %wxPROTOCOLINCLUDE) { - $project{"WXPROTOCOL_HEADERS"} .= "protocol/" . $file . " " - } -#$} -# -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE UNX.T! - -# -# File: makefile.unx -# Author: Julian Smart, Robert Roebling, Vadim Zeitlin -# Created: 1993 -# Updated: 1999 -# Copyright:(c) 1993, AIAI, University of Edinburgh, -# Copyright:(c) 1999, Vadim Zeitlin -# Copyright:(c) 1999, Robert Roebling -# -# Makefile for libwx_gtk.a, libwx_motif.a and libwx_msw.a - -################################################################### - -include ./src/make.env - -############## override make.env for PIC ########################## - -# Clears all default suffixes -.SUFFIXES: .o .cpp .c .cxx - -.c.o : - $(CCC) -c $(CFLAGS) $(PICFLAGS) -o $@ $< - -.cpp.o : - $(CC) -c $(CPPFLAGS) $(PICFLAGS) -o $@ $< - -.cxx.o : - $(CC) -c $(CPPFLAGS) $(PICFLAGS) -o $@ $< - -########################### Paths ################################# - -srcdir = @srcdir@ - -VPATH = :@top_srcdir@ - -top_srcdir = @top_srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -# my autoconf doesn't set this -#INSTALL_SCRIPT = @INSTALL_SCRIPT@ -# maybe do an additional chmod if needed? -INSTALL_SCRIPT = @INSTALL@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ - -############################# Dirs ################################# - -WXDIR = $(top_srcdir) - -# Subordinate library possibilities - -SRCDIR = $(WXDIR)/src -GENDIR = $(WXDIR)/src/generic -COMMDIR = $(WXDIR)/src/common -HTMLDIR = $(WXDIR)/src/html -UNIXDIR = $(WXDIR)/src/unix -PNGDIR = $(WXDIR)/src/png -JPEGDIR = $(WXDIR)/src/jpeg -ZLIBDIR = $(WXDIR)/src/zlib -GTKDIR = $(WXDIR)/src/gtk -MOTIFDIR = $(WXDIR)/src/motif -MSWDIR = $(WXDIR)/src/msw -INCDIR = $(WXDIR)/include -SAMPDIR = $(WXDIR)/samples - -DOCDIR = $(WXDIR)/docs - -########################## Archive name ############################### - -WXARCHIVE = wx$(TOOLKIT)-$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER).tgz -DISTDIR = ./_dist_dir/wx$(TOOLKIT) - -############################## Files ################################## - -WX_HEADERS = \ - #$ ExpandList("WX_HEADERS"); - -GTK_HEADERS = \ - #$ ExpandList("WXGTK_HEADERS"); - -MOTIF_HEADERS = \ - #$ ExpandList("WXMOTIF_HEADERS"); - -MSW_HEADERS = \ - #$ ExpandList("WXMSW_HEADERS"); - -UNIX_HEADERS = \ - #$ ExpandList("WXUNIX_HEADERS"); - -GENERIC_HEADERS = \ - #$ ExpandList("WXGENERIC_HEADERS"); - -PROTOCOL_HEADERS = \ - #$ ExpandList("WXPROTOCOL_HEADERS"); - -HTML_HEADERS = \ - #$ ExpandList("WXHTML_HEADERS"); - -GTK_GENERICOBJS = \ - #$ ExpandList("WXGTK_GENERICOBJS"); - -GTK_COMMONOBJS = \ - parser.o \ - #$ ExpandList("WXGTK_COMMONOBJS"); - -GTK_GUIOBJS = \ - #$ ExpandList("WXGTK_GUIOBJS"); - -MOTIF_GENERICOBJS = \ - #$ ExpandList("WXMOTIF_GENERICOBJS"); - -MOTIF_COMMONOBJS = \ - parser.o \ - #$ ExpandList("WXMOTIF_COMMONOBJS"); - -MOTIF_GUIOBJS = \ - src/motif/xmcombo/xmcombo.o \ - #$ ExpandList("WXMOTIF_GUIOBJS"); - -MSW_GENERICOBJS = \ - #$ ExpandList("WXMSW_GENERICOBJS"); - -MSW_COMMONOBJS = \ - #$ ExpandList("WXMSW_COMMONOBJS"); - -MSW_GUIOBJS = \ - #$ ExpandList("WXMSW_GUIOBJS"); - -HTMLOBJS = \ - #$ ExpandList("WXHTMLOBJS"); - -UNIXOBJS = \ - #$ ExpandList("WXUNIXOBJS"); - -ZLIBOBJS = \ - src/zlib/adler32.o \ - src/zlib/compress.o \ - src/zlib/crc32.o \ - src/zlib/gzio.o \ - src/zlib/uncompr.o \ - src/zlib/deflate.o \ - src/zlib/trees.o \ - src/zlib/zutil.o \ - src/zlib/inflate.o \ - src/zlib/infblock.o \ - src/zlib/inftrees.o \ - src/zlib/infcodes.o \ - src/zlib/infutil.o \ - src/zlib/inffast.o - -PNGOBJS = \ - src/png/png.o \ - src/png/pngread.o \ - src/png/pngrtran.o \ - src/png/pngrutil.o \ - src/png/pngpread.o \ - src/png/pngtrans.o \ - src/png/pngwrite.o \ - src/png/pngwtran.o \ - src/png/pngwutil.o \ - src/png/pngerror.o \ - src/png/pngmem.o \ - src/png/pngwio.o \ - src/png/pngrio.o \ - src/png/pngget.o \ - src/png/pngset.o - - -JPEGOBJS = \ - src/jpeg/jcomapi.o \ - src/jpeg/jutils.o \ - src/jpeg/jerror.o \ - src/jpeg/jmemmgr.o \ - src/jpeg/jmemnobs.o \ - src/jpeg/jcapimin.o \ - src/jpeg/jcapistd.o \ - src/jpeg/jctrans.o \ - src/jpeg/jcparam.o \ - src/jpeg/jdatadst.o \ - src/jpeg/jcinit.o \ - src/jpeg/jcmaster.o \ - src/jpeg/jcmarker.o \ - src/jpeg/jcmainct.o \ - src/jpeg/jcprepct.o \ - src/jpeg/jccoefct.o \ - src/jpeg/jccolor.o \ - src/jpeg/jcsample.o \ - src/jpeg/jchuff.o \ - src/jpeg/jcphuff.o \ - src/jpeg/jcdctmgr.o \ - src/jpeg/jfdctfst.o \ - src/jpeg/jfdctflt.o \ - src/jpeg/jfdctint.o \ - src/jpeg/jdapimin.o \ - src/jpeg/jdapistd.o \ - src/jpeg/jdtrans.o \ - src/jpeg/jdatasrc.o \ - src/jpeg/jdmaster.o \ - src/jpeg/jdinput.o \ - src/jpeg/jdmarker.o \ - src/jpeg/jdhuff.o \ - src/jpeg/jdphuff.o \ - src/jpeg/jdmainct.o \ - src/jpeg/jdcoefct.o \ - src/jpeg/jdpostct.o \ - src/jpeg/jddctmgr.o \ - src/jpeg/jidctfst.o \ - src/jpeg/jidctflt.o \ - src/jpeg/jidctint.o \ - src/jpeg/jidctred.o \ - src/jpeg/jdsample.o \ - src/jpeg/jdcolor.o \ - src/jpeg/jquant1.o \ - src/jpeg/jquant2.o \ - src/jpeg/jdmerge.o - - -OBJECTS = $(@GUIOBJS@) $(@COMMONOBJS@) $(@GENERICOBJS@) $(@UNIXOBJS@) $(HTMLOBJS) \ - $(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) - -HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \ - $(GENERIC_HEADERS) $(WX_HEADERS) - -REQUIRED_DIRS = ./lib ./src ./src/common ./src/gtk ./src/motif ./src/msw \ - ./src/generic ./src/unix ./src/motif/xmombo ./src/html \ - ./src/zlib ./src/jpeg ./src/png - -all: $(REQUIRED_DIRS) $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@ - -$(REQUIRED_DIRS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h - @mkdir -p ./lib - @mkdir -p ./src - @mkdir -p ./src/common - @mkdir -p ./src/msw - @mkdir -p ./src/gtk - @mkdir -p ./src/motif - @mkdir -p ./src/motif/xmcombo - @mkdir -p ./src/generic - @mkdir -p ./src/unix - @mkdir -p ./src/html - @mkdir -p ./src/png - @mkdir -p ./src/jpeg - @mkdir -p ./src/zlib - -@WX_LIBRARY_NAME_STATIC@: $(OBJECTS) - $(AR) $(AROPTIONS) ./lib/$@ $(OBJECTS) - $(RANLIB) ./lib/$@ - -@WX_LIBRARY_NAME_SHARED@: $(OBJECTS) - $(SHARED_LD) ./lib/$@ $(OBJECTS) $(EXTRALIBS) - -CREATE_LINKS: ./lib/@WX_TARGET_LIBRARY@ - @if test -e ./lib/@WX_LIBRARY_LINK1@; then $(RM) ./lib/@WX_LIBRARY_LINK1@; fi - @if test -e ./lib/@WX_LIBRARY_LINK2@; then $(RM) ./lib/@WX_LIBRARY_LINK2@; fi - @if test -e ./lib/@WX_LIBRARY_LINK3@; then $(RM) ./lib/@WX_LIBRARY_LINK3@; fi - $(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK1@ - $(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK2@ - $(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK3@ - -CREATE_INSTALLED_LINKS: $(libdir)/@WX_TARGET_LIBRARY@ - @if test -e $(libdir)/@WX_LIBRARY_LINK1@; then $(RM) $(libdir)/@WX_LIBRARY_LINK1@; fi - @if test -e $(libdir)/@WX_LIBRARY_LINK2@; then $(RM) $(libdir)/@WX_LIBRARY_LINK2@; fi - @if test -e $(libdir)/@WX_LIBRARY_LINK3@; then $(RM) $(libdir)/@WX_LIBRARY_LINK3@; fi - $(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK1@ - $(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK2@ - $(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK3@ - -$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h - -parser.o: parser.c lexer.c - $(CCLEX) -c $(CFLAGS) -o $@ parser.c - -parser.c: $(COMMDIR)/parser.y lexer.c - $(YACC) $(COMMDIR)/parser.y - @sed -e "s;$(COMMDIR)/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: $(COMMDIR)/lexer.l - $(LEX) $(COMMDIR)/lexer.l - @sed -e "s;$(COMMDIR)/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 - -preinstall: $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(top_builddir)/wx-config $(top_builddir)/setup.h - @echo " " - @echo " Installing wxWindows..." - @echo " " - - - $(INSTALL) -d $(prefix) - $(INSTALL) -d $(bindir) - $(INSTALL) -d $(libdir) - - $(INSTALL_SCRIPT) $(top_builddir)/wx-config $(bindir)/wx-config - $(INSTALL_PROGRAM) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(libdir)/@WX_TARGET_LIBRARY@ - - $(INSTALL) -d $(libdir)/wx - $(INSTALL) -d $(libdir)/wx/include - $(INSTALL) -d $(libdir)/wx/include/wx - $(INSTALL) -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@ - $(INSTALL_DATA) $(top_builddir)/setup.h $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h - - $(INSTALL) -d $(includedir)/wx - $(INSTALL) -d $(includedir)/wx/msw - $(INSTALL) -d $(includedir)/wx/gtk - $(INSTALL) -d $(includedir)/wx/motif - $(INSTALL) -d $(includedir)/wx/html - $(INSTALL) -d $(includedir)/wx/protocol - $(INSTALL) -d $(includedir)/wx/unix - $(INSTALL) -d $(includedir)/wx/generic - @list='$(HEADERS)'; for p in $$list; do \ - $(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p; \ - echo "$(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p"; \ - done - -write_message: - @echo " " - @echo " The installation of wxWindows is finished. On certain" - @echo " platforms (e.g. Linux, Solaris) you'll now have to run" - @echo " ldconfig if you installed a shared library." - @echo " " - @echo " wxWindows comes with no guarantees and doesn't claim" - @echo " to be suitable for any purpose." - @echo " " - @echo " Read the wxWindows Licence on licencing conditions." - @echo " " - -install: preinstall @WX_CREATE_INSTALLED_LINKS@ write_message - -uninstall: - @echo " " - @echo " Uninstalling wxWindows..." - @echo " " - @echo " Removing library..." - @$(RM) $(libdir)/@WX_TARGET_LIBRARY@ - @$(RM) $(libdir)/@WX_LIBRARY_LINK1@ - @$(RM) $(libdir)/@WX_LIBRARY_LINK2@ - @$(RM) $(libdir)/@WX_LIBRARY_LINK3@ - @echo " Removing helper files..." - @$(RM) $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h - @$(RM) $(bindir)/wx-config - @echo " Removing headers..." - @list='$(HEADERS)'; for p in $$list; do \ - $(RM) $(includedir)/wx/$$p; \ - done - @echo " Removing directories..." - @if test -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@; then rmdir $(libdir)/wx/include/wx/@TOOLKIT_DIR@; fi - @if test -d $(libdir)/wx/include/wx; then rmdir $(libdir)/wx/include/wx; fi - @if test -d $(libdir)/wx/include; then rmdir $(libdir)/wx/include; fi - @if test -d $(libdir)/wx; then rmdir $(libdir)/wx; fi - @if test -d $(includedir)/wx/gtk; then rmdir $(includedir)/wx/gtk; fi - @if test -d $(includedir)/wx/motif; then rmdir $(includedir)/wx/motif; fi - @if test -d $(includedir)/wx/motif; then rmdir $(includedir)/wx/msw; fi - @if test -d $(includedir)/wx/html; then rmdir $(includedir)/wx/html; fi - @if test -d $(includedir)/wx/unix; then rmdir $(includedir)/wx/unix; fi - @if test -d $(includedir)/wx/generic; then rmdir $(includedir)/wx/generic; fi - @if test -d $(includedir)/wx/protocol; then rmdir $(includedir)/wx/protocol; fi - @if test -d $(includedir)/wx; then rmdir $(includedir)/wx; fi - -ALL_DIST: - mkdir _dist_dir - mkdir $(DISTDIR) - cp $(WXDIR)/wx$(TOOLKIT).spec $(DISTDIR) - cp $(WXDIR)/configure $(DISTDIR) - cp $(WXDIR)/config.sub $(DISTDIR) - cp $(WXDIR)/config.guess $(DISTDIR) - cp $(WXDIR)/install-sh $(DISTDIR) - cp $(WXDIR)/mkinstalldirs $(DISTDIR) - cp $(WXDIR)/wx-config.in $(DISTDIR) - cp $(WXDIR)/setup.h.in $(DISTDIR) - cp $(WXDIR)/Makefile.in $(DISTDIR) - cp $(DOCDIR)/lgpl.txt $(DISTDIR)/COPYING.LIB - cp $(DOCDIR)/licence.txt $(DISTDIR)/LICENCE.txt - cp $(DOCDIR)/symbols.txt $(DISTDIR)/SYMBOLS.txt - cp $(DOCDIR)/$(TOOLKITDIR)/install.txt $(DISTDIR)/INSTALL.txt - cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES.txt - cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README.txt - cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt - mkdir $(DISTDIR)/include - mkdir $(DISTDIR)/include/wx - mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR) - mkdir $(DISTDIR)/include/wx/generic - mkdir $(DISTDIR)/include/wx/html - mkdir $(DISTDIR)/include/wx/unix - mkdir $(DISTDIR)/include/wx/protocol - cp $(INCDIR)/wx/*.h $(DISTDIR)/include/wx - cp $(INCDIR)/wx/*.cpp $(DISTDIR)/include/wx - cp $(INCDIR)/wx/generic/*.h $(DISTDIR)/include/wx/generic - cp $(INCDIR)/wx/generic/*.xpm $(DISTDIR)/include/wx/generic - cp $(INCDIR)/wx/html/*.h $(DISTDIR)/include/wx/html - cp $(INCDIR)/wx/unix/*.h $(DISTDIR)/include/wx/unix - cp $(INCDIR)/wx/protocol/*.h $(DISTDIR)/include/wx/protocol - mkdir $(DISTDIR)/src - mkdir $(DISTDIR)/src/common - mkdir $(DISTDIR)/src/generic - mkdir $(DISTDIR)/src/html - mkdir $(DISTDIR)/src/html/bitmaps - mkdir $(DISTDIR)/src/$(TOOLKITDIR) - mkdir $(DISTDIR)/src/unix - mkdir $(DISTDIR)/src/png - mkdir $(DISTDIR)/src/jpeg - mkdir $(DISTDIR)/src/zlib - cp $(SRCDIR)/*.in $(DISTDIR)/src - cp $(COMMDIR)/*.cpp $(DISTDIR)/src/common - cp $(COMMDIR)/*.c $(DISTDIR)/src/common - cp $(COMMDIR)/*.inc $(DISTDIR)/src/common - cp $(COMMDIR)/*.l $(DISTDIR)/src/common - cp $(COMMDIR)/*.h $(DISTDIR)/src/common - cp $(COMMDIR)/*.y $(DISTDIR)/src/common - cp $(GENDIR)/*.cpp $(DISTDIR)/src/generic - cp $(HTMLDIR)/*.cpp $(DISTDIR)/src/html - cp $(HTMLDIR)/*.h $(DISTDIR)/src/html - cp $(HTMLDIR)/bitmaps/*.xpm $(DISTDIR)/src/html/bitmaps - cp $(UNIXDIR)/*.h $(DISTDIR)/src/unix - cp $(UNIXDIR)/*.c $(DISTDIR)/src/unix - cp $(UNIXDIR)/*.cpp $(DISTDIR)/src/unix - cp $(PNGDIR)/*.h $(DISTDIR)/src/png - cp $(PNGDIR)/*.c $(DISTDIR)/src/png - cp $(PNGDIR)/README $(DISTDIR)/src/png - cp $(ZLIBDIR)/*.h $(DISTDIR)/src/zlib - cp $(ZLIBDIR)/*.c $(DISTDIR)/src/zlib - cp $(ZLIBDIR)/README $(DISTDIR)/src/zlib - cp $(JPEGDIR)/*.h $(DISTDIR)/src/jpeg - cp $(JPEGDIR)/*.c $(DISTDIR)/src/jpeg - cp $(JPEGDIR)/README $(DISTDIR)/src/jpeg - -GTK_DIST: - cp $(WXDIR)/wxGTK.spec $(DISTDIR) - cp $(INCDIR)/wx/gtk/*.h $(DISTDIR)/include/wx/gtk - cp $(INCDIR)/wx/gtk/*.xpm $(DISTDIR)/include/wx/gtk - cp $(GTKDIR)/*.cpp $(DISTDIR)/src/gtk - cp $(GTKDIR)/*.c $(DISTDIR)/src/gtk - cp $(GTKDIR)/*.xbm $(DISTDIR)/src/gtk - -MOTIF_DIST: - cp $(WXDIR)/wxMOTIF.spec $(DISTDIR) - cp $(INCDIR)/wx/motif/*.h $(DISTDIR)/include/wx/motif - cp $(MOTIFDIR)/*.cpp $(DISTDIR)/src/motif - cp $(MOTIFDIR)/*.xbm $(DISTDIR)/src/motif - mkdir $(DISTDIR)/src/motif/xmcombo - cp $(MOTIFDIR)/xmcombo/*.c $(DISTDIR)/src/motif/xmcombo - cp $(MOTIFDIR)/xmcombo/*.h $(DISTDIR)/src/motif/xmcombo - cp $(MOTIFDIR)/xmcombo/copying.txt $(DISTDIR)/src/motif/xmcombo - -MSW_DIST: - cp $(WXDIR)/wxWINE.spec $(DISTDIR) - cp $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.cur $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.ico $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.bmp $(DISTDIR)/include/wx/msw - cp $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw - cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw - cp $(MSWDIR)/*.c $(DISTDIR)/src/msw - cp $(MSWDIR)/*.def $(DISTDIR)/src/msw - mkdir $(DISTDIR)/src/msw/ole - cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole - -SAMPLES_DIST: - mkdir $(DISTDIR)/samples - cp $(SAMPDIR)/Makefile.in $(DISTDIR)/samples - mkdir $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/Makefile.in $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/*.cpp $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/*.h $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/*.xpm $(DISTDIR)/samples/bombs - cp $(SAMPDIR)/bombs/readme.txt $(DISTDIR)/samples/bombs - mkdir $(DISTDIR)/samples/caret - cp $(SAMPDIR)/caret/Makefile.in $(DISTDIR)/samples/caret - cp $(SAMPDIR)/caret/*.cpp $(DISTDIR)/samples/caret - cp $(SAMPDIR)/caret/*.xpm $(DISTDIR)/samples/caret - mkdir $(DISTDIR)/samples/config - cp $(SAMPDIR)/config/Makefile.in $(DISTDIR)/samples/config - cp $(SAMPDIR)/config/*.cpp $(DISTDIR)/samples/config - mkdir $(DISTDIR)/samples/controls - mkdir $(DISTDIR)/samples/controls/icons - cp $(SAMPDIR)/controls/Makefile.in $(DISTDIR)/samples/controls - cp $(SAMPDIR)/controls/*.cpp $(DISTDIR)/samples/controls - cp $(SAMPDIR)/controls/*.xpm $(DISTDIR)/samples/controls - cp $(SAMPDIR)/controls/icons/*.??? $(DISTDIR)/samples/controls/icons - mkdir $(DISTDIR)/samples/checklst - cp $(SAMPDIR)/checklst/Makefile.in $(DISTDIR)/samples/checklst - cp $(SAMPDIR)/checklst/*.cpp $(DISTDIR)/samples/checklst - cp $(SAMPDIR)/checklst/*.xpm $(DISTDIR)/samples/checklst - mkdir $(DISTDIR)/samples/checkls - cp $(SAMPDIR)/printing/Makefile.in $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.cpp $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.h $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.xpm $(DISTDIR)/samples/printing - cp $(SAMPDIR)/printing/*.xbm $(DISTDIR)/samples/printing - -dist: ALL_DIST @GUIDIST@ SAMPLES_DIST - cd _dist_dir; tar ch wx$(TOOLKIT) | gzip -f9 > $(WXARCHIVE); mv $(WXARCHIVE) .. - $(RM) -r _dist_dir - -clean: - $(RM) ./src/msw/*.o - $(RM) ./src/gtk/*.o - $(RM) ./src/motif/*.o - $(RM) ./src/html/*.o - $(RM) ./src/common/*.o - $(RM) ./src/unix/*.o - $(RM) ./src/generic/*.o - $(RM) ./src/png/*.o - $(RM) ./src/jpeg/*.o - $(RM) ./src/zlib/*.o - $(RM) *.o - $(RM) parser.c - $(RM) lexer.c - $(RM) ./lib/* - -cleanall: clean diff --git a/distrib/msw/tmake/vc.t b/distrib/msw/tmake/vc.t deleted file mode 100644 index 546b3298d2..0000000000 --- a/distrib/msw/tmake/vc.t +++ /dev/null @@ -1,642 +0,0 @@ -#!############################################################################# -#! File: vc.t -#! Purpose: tmake template file from which makefile.vc is generated by running -#! tmake -t vc wxwin.pro -o makefile.vc -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - my $tag = ""; - if ( $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/ ) { - $tag = "WXNONESSENTIALOBJS"; - } - else { - $tag = "WXGENERICOBJS"; - } - - $file =~ s/cp?p?$/obj/; - $project{$tag} .= "..\\generic\\\$D\\" . $file . " " - } - - foreach $file (sort keys %wxCommon) { - next if $wxCommon{$file} =~ /\b16\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXCOMMONOBJS"} .= "..\\common\\\$D\\" . $file . " " - } - - foreach $file (sort keys %wxMSW) { - next if $wxMSW{$file} =~ /\b16\b/; - - #! OLE files live in a subdir - $project{"WXMSWOBJS"} .= '..\msw\\'; - $project{"WXMSWOBJS"} .= 'ole\\' if $wxMSW{$file} =~ /\bO\b/; - $file =~ s/cp?p?$/obj/; - $project{"WXMSWOBJS"} .= '$D\\' . $file . " "; - } -#$} -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T! - -# File: makefile.vc -# 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 -HTMLDIR = $(WXDIR)\src\html - -{..\generic}.cpp{..\generic\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\common}.cpp{..\common\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\common}.c{..\common\$D}.obj: - cl @<< -$(CPPFLAGS2) /Fo$@ /c /Tc $< -<< - -{..\msw}.cpp{..\msw\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\msw\ole}.cpp{..\msw\ole\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\html}.cpp{..\html\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -GENERICOBJS= #$ ExpandList("WXGENERICOBJS"); - -# 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= #$ ExpandList("WXNONESSENTIALOBJS"); - -COMMONOBJS = \ - ..\common\$D\y_tab.obj \ - #$ ExpandList("WXCOMMONOBJS"); - -MSWOBJS = #$ ExpandList("WXMSWOBJS"); - -HTMLOBJS = \ - ..\html\$D\htmlcell.obj \ - ..\html\$D\htmlfilter.obj \ - ..\html\$D\htmlhelp.obj \ - ..\html\$D\htmlhelp_io.obj \ - ..\html\$D\htmlparser.obj \ - ..\html\$D\htmltag.obj \ - ..\html\$D\htmlwin.obj \ - ..\html\$D\htmlwinparser.obj \ - ..\html\$D\mod_fonts.obj \ - ..\html\$D\mod_hline.obj \ - ..\html\$D\mod_image.obj \ - ..\html\$D\mod_layout.obj \ - ..\html\$D\mod_links.obj \ - ..\html\$D\mod_list.obj \ - ..\html\$D\mod_pre.obj \ - ..\html\$D\mod_tables.obj \ - ..\html\$D\search.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -# Add $(HTMLOBJS) if wanting wxHTML classes -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 $(HTMLDIR)\$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 - -$(HTMLDIR)\$D: - mkdir $(HTMLDIR)\$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\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 - -..\common\$D\unzip.obj: ..\common\unzip.c - cl @<< -$(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@ -<< - -# 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\wx$(WXVERSION)$(LIBEXT).dll - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).lib - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).exp - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).pdb - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).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 - -erase $(HTMLDIR)\$D\*.obj - -erase $(HTMLDIR)\$D\*.sbr - -erase $(HTMLDIR)\$D\*.pdb - -rmdir $(D) - -rmdir ole\$(D) - -rmdir ..\generic\$(D) - -rmdir ..\common\$(D) - -rmdir ..\html\$(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" - - -MFTYPE=vc -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw - diff --git a/distrib/msw/tmake/vc6.t b/distrib/msw/tmake/vc6.t deleted file mode 100644 index 46e966fd40..0000000000 --- a/distrib/msw/tmake/vc6.t +++ /dev/null @@ -1,146 +0,0 @@ -#!############################################################################# -#! File: vc6.t -#! Purpose: tmake template file from which wxWindows.dsp is generated by running -#! tmake -t vc6 wxwin.pro -o wxWindows.dsp -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - next if $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/; - $project{"WXGENERICSRCS"} .= $file . " " - } - - foreach $file (sort keys %wxCommon) { - next if $wxCommon{$file} =~ /\b16\b/; - - my $tag = $file =~ /\.c$/ ? "WXCSRCS" : "WXCOMMONSRCS"; - $project{$tag} .= $file . " " - } - - foreach $file (sort keys %wxMSW) { - next if $wxMSW{$file} =~ /\b16\b/; - - my $tag = $wxMSW{$file} =~ /\bO\b/ ? "WXOLESRCS" : "WXMSWSRCS"; - $project{$tag} .= $file . " " - } -#$} -# Microsoft Developer Studio Project File - Name="wxWindows" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=wxWindows - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "wxWindows.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "wxWindows.mak" CFG="wxWindows - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "wxWindows - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "wxWindows - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "wxWindows - 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 Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /W3 /Zi /O2 /I "$(wx)\include" /I "$(wx)\src\zlib" /D "NDEBUG" /D WIN95=1 /D "__WIN95__" /D "WIN32" /D "_WIN32" /D WINVER=0x400 /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN32__" /Yu"wx/wxprec.h" /FD /c -# ADD BASE RSC /l 0x409 -# ADD RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "wxWindows - 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 Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /W4 /Zi /Od /I "$(wx)\include" /I "$(wx)\src\zlib" /D "_DEBUG" /D DEBUG=1 /D WXDEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "WIN32" /D "_WIN32" /D WINVER=0x400 /D "__WINDOWS__" /D "__WIN32__" /D "__WXMSW__" /Fr /Yu"wx/wxprec.h" /FD /c -# ADD BASE RSC /l 0x409 -# ADD RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo /o"lib/wxWindows.bsc" -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "wxWindows - Win32 Release" -# Name "wxWindows - Win32 Debug" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\src\msw\dummy.cpp -# ADD CPP /Yc"wx/wxprec.h" -# End Source File -#$ ExpandGlue("WXMSWSRCS", "# Begin Source File\n\nSOURCE=.\\src\\msw\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\msw\\", "\n# End Source File\n"); -#$ ExpandGlue("WXOLESRCS", "# Begin Source File\n\nSOURCE=.\\src\\msw\\ole\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\msw\\ole\\", "\n# End Source File\n"); -#$ ExpandGlue("WXGENERICSRCS", "# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n"); -#$ ExpandGlue("WXCOMMONSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n"); -#$ ExpandGlue("WXCSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n"); - -# Begin Source File - -SOURCE=.\src\common\y_tab.c - -!IF "$(CFG)" == "wxWindows - Win32 Release" - -# SUBTRACT CPP /YX /Yc /Yu - -!ELSEIF "$(CFG)" == "wxWindows - Win32 Debug" - -# ADD CPP /W1 -# SUBTRACT CPP /YX /Yc /Yu - -!ENDIF - -# End Source File -# End Target -# End Project diff --git a/distrib/msw/tmake/wat.t b/distrib/msw/tmake/wat.t deleted file mode 100644 index fbf3f0ff26..0000000000 --- a/distrib/msw/tmake/wat.t +++ /dev/null @@ -1,326 +0,0 @@ -#!############################################################################# -#! File: wat.t -#! Purpose: tmake template file from which makefile.wat is generated by running -#! tmake -t wat wxwin.pro -o makefile.wat -#! Author: Vadim Zeitlin -#! Created: 14.07.99 -#! Version: $Id$ -#!############################################################################# - -#${ - #! include the code which parses filelist.txt file and initializes - #! %wxCommon, %wxGeneric and %wxMSW hashes. - IncludeTemplate("filelist.t"); - - #! now transform these hashes into $project tags - foreach $file (sort keys %wxGeneric) { - my $tag = ""; - if ( $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/ ) { - $tag = "WXNONESSENTIALOBJS"; - } - else { - $tag = "WXGENERICOBJS"; - } - - $file =~ s/cp?p?$/obj/; - $project{$tag} .= $file . " " - } - - foreach $file (sort keys %wxCommon) { - #! doesn't compile, apparently - next if $file =~ /^imagjpeg\./; - - $file =~ s/cp?p?$/obj/; - $project{"WXCOMMONOBJS"} .= $file . " " - } - - foreach $file (sort keys %wxMSW) { - #! these files don't compile - next if $file =~ /^pnghand\./; - - next if $wxGeneric{$file} =~ /\b16\b/; - - $file =~ s/cp?p?$/obj/; - $project{"WXMSWOBJS"} .= $file . " " - } -#$} - -# This file was automatically generated by tmake at #$ Now() -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE WAT.T! - -#! an attempt to embed '#' directly in the string somehow didn't work... -#$ $text = chr(35) . '!/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= #$ ExpandGlue("WXGENERICOBJS", "", " &\n\t") - -# 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= #$ ExpandGlue("WXNONESSENTIALOBJS", "", " &\n\t") - -COMMONOBJS = & - y_tab.obj & - #$ ExpandGlue("WXCOMMONOBJS", "", " &\n\t") - -MSWOBJS = #$ ExpandGlue("WXMSWOBJS", "", " &\n\t") - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) - -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 - -#${ - $_ = $project{"WXMSWOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_ . ': $('; - s/\.obj$//; - if ( $wxMSW{$_} =~ /\bO\b/ ) { - $text .= 'OLEDIR)\\'; - } else { - $text .= 'MSWDIR)\\'; - } - $text .= $_ . ".cpp\n" . - ' *$(CCC) $(CPPFLAGS) $(IFLAGS) $<' . "\n\n"; - } -#$} - -######################################################## -# Common objects (always compiled) - -#${ - $_ = $project{"WXCOMMONOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_; - s/\.obj$//; - $text .= ': $(COMMDIR)\\'; - $text .= $_ . ".cpp\n" . - ' *$(CCC) $(CPPFLAGS) $(IFLAGS) $<' . "\n\n"; - } -#$} - -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) - -#${ - $_ = $project{"WXGENERICOBJS"}; - my @objs = split; - foreach (@objs) { - $text .= $_; - s/\.obj$//; - $text .= ': $(GENDIR)\\'; - $text .= $_ . ".cpp\n" . - ' *$(CCC) $(CPPFLAGS) $(IFLAGS) $<' . "\n\n"; - } -#$} - -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 - -MFTYPE=wat -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw diff --git a/distrib/msw/tmake/wxwin.pro b/distrib/msw/tmake/wxwin.pro deleted file mode 100644 index 66a9046652..0000000000 --- a/distrib/msw/tmake/wxwin.pro +++ /dev/null @@ -1,10 +0,0 @@ -############################################################################### -# File: wxwin.pro -# Purpose: tmake project file from which makefiles for wxWindows are generated -# tmake -t vc wxwin.pro -# Author: Vadim Zeitlin -# Created: 14.07.99 -# Version: $Id$ -############################################################################### - -# this file is empty diff --git a/distrib/msw/user.rsp b/distrib/msw/user.rsp deleted file mode 100644 index 0c604ff1f7..0000000000 --- a/distrib/msw/user.rsp +++ /dev/null @@ -1,17 +0,0 @@ -user/Makefile - -user/wxConvert/*.cpp -user/wxConvert/*.h -user/wxConvert/Makefile - -user/wxFile/*.cpp -user/wxFile/*.h -user/wxFile/Makefile -user/wxFile/*.xpm - -user/wxTest/*.cpp -user/wxTest/*.h -user/wxTest/Makefile -user/wxTest/*.xpm -user/wxTest/*.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 501e56dd14..0000000000 --- a/distrib/msw/zipdist.bat +++ /dev/null @@ -1,81 +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 -@ -u %dest\wx200gen.zip < %src\distrib\msw\makefile.rsp -zip32 -@ %dest\wx200msw.zip < %src\distrib\msw\msw.rsp -zip32 -@ -u %dest\wx200msw.zip < %src\distrib\msw\makefile.rsp -zip32 -@ %dest\wx200gtk.zip < %src\distrib\msw\gtk.rsp -zip32 -@ -u %dest\wx200gtk.zip < %src\distrib\msw\makefile.rsp -zip32 -@ %dest\wx200stubs.zip < %src\distrib\msw\stubs.rsp -zip32 -@ %dest\wx200mot.zip < %src\distrib\msw\motif.rsp -zip32 -@ -u %dest\wx200mot.zip < %src\distrib\msw\makefile.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/distrib/wine/copy_src b/distrib/wine/copy_src deleted file mode 100755 index 6811a30617..0000000000 --- a/distrib/wine/copy_src +++ /dev/null @@ -1,675 +0,0 @@ -#! /bin/sh -# -# This script is creates a dir tree in ~/wxwine_dist which -# can then be packed into an archive - -echo -------- -echo This script will copy the wxWINE release files into ~/wxwine_dist -echo -------- -echo - -mkdir ~/wxwine_dist -mkdir ~/wxwine_dist/wxWINE - -echo Base dir.. - -cd ../.. -cp wxWINE.spec ~/wxwine_dist/wxWINE -cp Makefile.am ~/wxwine_dist/wxWINE -cp acconfig.h ~/wxwine_dist/wxWINE -cp acinclude.m4 ~/wxwine_dist/wxWINE -cp aclocal.m4 ~/wxwine_dist/wxWINE -cp configure.in ~/wxwine_dist/wxWINE -cp configure ~/wxwine_dist/wxWINE -cp config.sub ~/wxwine_dist/wxWINE -cp config.guess ~/wxwine_dist/wxWINE -cp install-sh ~/wxwine_dist/wxWINE -cp ltconfig ~/wxwine_dist/wxWINE -cp ltmain.sh ~/wxwine_dist/wxWINE -cp missing ~/wxwine_dist/wxWINE -cp mkinstalldirs ~/wxwine_dist/wxWINE -cp wx-config.in ~/wxwine_dist/wxWINE -cp setup.h.in ~/wxwine_dist/wxWINE -cp stamp-h.in ~/wxwine_dist/wxWINE -cp Makefile.in ~/wxwine_dist/wxWINE - -echo Docs.. - -cd docs/wine -cp COPYING.LIB ~/wxwine_dist/wxWINE -cp install.txt ~/wxwine_dist/wxWINE/INSTALL.txt -cp changes.txt ~/wxwine_dist/wxWINE/CHANGES.txt -cp licence.txt ~/wxwine_dist/wxWINE/LICENCE.txt -cp readme.txt ~/wxwine_dist/wxWINE/README.txt -cp todo.txt ~/wxwine_dist/wxWINE/TODO.txt -cd .. -cp symbols.txt ~/wxwine_dist/wxWINE/SYMBOLS.txt -cd .. - -echo Include dir.. - -mkdir ~/wxwine_dist/wxWINE/include -cd include -cp Makefile.am ~/wxwine_dist/wxWINE/include -cp Makefile.in ~/wxwine_dist/wxWINE/include - -mkdir ~/wxwine_dist/wxWINE/include/wx -cd wx -cp *.h ~/wxwine_dist/wxWINE/include/wx -cp *.cpp ~/wxwine_dist/wxWINE/include/wx -cp Makefile.am ~/wxwine_dist/wxWINE/include/wx -cp Makefile.in ~/wxwine_dist/wxWINE/include/wx - -mkdir ~/wxwine_dist/wxWINE/include/wx/generic -cd generic -cp *.h ~/wxwine_dist/wxWINE/include/wx/generic -cp *.xpm ~/wxwine_dist/wxWINE/include/wx/generic -cp Makefile.am ~/wxwine_dist/wxWINE/include/wx/generic -cp Makefile.in ~/wxwine_dist/wxWINE/include/wx/generic -cd .. - -mkdir ~/wxgtk_dist/wxGTK/include/wx/html -cd html -cp *.h ~/wxgtk_dist/wxGTK/include/wx/html -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/html -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/html -cd .. - -mkdir ~/wxwine_dist/wxWINE/include/wx/unix -cd unix -cp *.h ~/wxwine_dist/wxWINE/include/wx/unix -cp Makefile.am ~/wxwine_dist/wxWINE/include/wx/unix -cp Makefile.in ~/wxwine_dist/wxWINE/include/wx/unix -cd .. - -mkdir ~/wxwine_dist/wxWINE/include/wx/msw -cd msw -cp *.h ~/wxwine_dist/wxWINE/include/wx/msw -rm ~/wxwine_dist/wxWINE/include/wx/msw/setup.h -cp Makefile.am ~/wxwine_dist/wxWINE/include/wx/msw -cp Makefile.in ~/wxwine_dist/wxWINE/include/wx/msw -cd .. - -mkdir ~/wxwine_dist/wxWINE/include/wx/motif -cd motif -cp Makefile.am ~/wxwine_dist/wxWINE/include/wx/motif -cp Makefile.in ~/wxwine_dist/wxWINE/include/wx/motif -cd .. - -mkdir ~/wxwine_dist/wxWINE/include/wx/gtk -cd gtk -cp Makefile.am ~/wxwine_dist/wxWINE/include/wx/gtk -cp Makefile.in ~/wxwine_dist/wxWINE/include/wx/gtk -cd .. - -mkdir ~/wxwine_dist/wxWINE/include/wx/protocol -cd protocol -cp *.h ~/wxwine_dist/wxWINE/include/wx/protocol -cp Makefile.am ~/wxwine_dist/wxWINE/include/wx/protocol -cp Makefile.in ~/wxwine_dist/wxWINE/include/wx/protocol -cd .. - -cd ../.. - -echo Misc dir.. - -mkdir ~/wxwine_dist/wxWINE/misc -cd misc -cp Makefile.am ~/wxwine_dist/wxWINE/misc -cp Makefile.in ~/wxwine_dist/wxWINE/misc -mkdir ~/wxwine_dist/wxWINE/misc/afm -cd afm -cp *.afm ~/wxwine_dist/wxWINE/misc/afm -cp Makefile.am ~/wxwine_dist/wxWINE/misc/afm -cp Makefile.in ~/wxwine_dist/wxWINE/misc/afm -cd .. -mkdir ~/wxwine_dist/wxWINE/misc/gs_afm -cd gs_afm -cp *.afm ~/wxwine_dist/wxWINE/misc/gs_afm -cp Makefile.am ~/wxwine_dist/wxWINE/misc/gs_afm -cp Makefile.in ~/wxwine_dist/wxWINE/misc/gs_afm -cd ../.. - -echo Src dir.. - -cd src -mkdir ~/wxwine_dist/wxWINE/src -cp Makefile.am ~/wxwine_dist/wxWINE/src -cp Makefile.in ~/wxwine_dist/wxWINE/src - -cd msw -mkdir ~/wxwine_dist/wxWINE/src/msw -cp Makefile.am ~/wxwine_dist/wxWINE/src/msw -cp Makefile.in ~/wxwine_dist/wxWINE/src/msw -cp *.xbm ~/wxwine_dist/wxWINE/src/msw -cp *.c ~/wxwine_dist/wxWINE/src/msw -cp *.inc ~/wxwine_dist/wxWINE/src/msw -cp *.cpp ~/wxwine_dist/wxWINE/src/msw -cd .. - -cd common -mkdir ~/wxwine_dist/wxWINE/src/common -cp glob.inc ~/wxwine_dist/wxWINE/src/common -cp lexer.l ~/wxwine_dist/wxWINE/src/common -cp parser.y ~/wxwine_dist/wxWINE/src/common -cp extended.c ~/wxwine_dist/wxWINE/src/common -cp *.cpp ~/wxwine_dist/wxWINE/src/common -cd .. - -cd html -mkdir ~/wxgtk_dist/wxGTK/src/html -cp *.cpp ~/wxgtk_dist/wxGTK/src/html -cp *.h ~/wxgtk_dist/wxGTK/src/html -cd bitmaps -mkdir ~/wxgtk_dist/wxGTK/src/html/bitmaps -cp *.xpm ~/wxgtk_dist/wxGTK/src/html/bitmaps -cd ../.. - -cd unix -mkdir ~/wxwine_dist/wxWINE/src/unix -cp *.cpp ~/wxwine_dist/wxWINE/src/unix -cd .. - -cd generic -mkdir ~/wxwine_dist/wxWINE/src/generic -cp *.cpp ~/wxwine_dist/wxWINE/src/generic -cd .. - -cd iodbc -mkdir ~/wxwine_dist/wxWINE/src/iodbc -cp * ~/wxwine_dist/wxWINE/src/iodbc -cd .. - -cd zlib -mkdir ~/wxwine_dist/wxWINE/src/zlib -cp * ~/wxwine_dist/wxWINE/src/zlib -cd .. - -cd png -mkdir ~/wxwine_dist/wxWINE/src/png -cp * ~/wxwine_dist/wxWINE/src/png -cd .. - -cd jpeg -mkdir ~/wxwine_dist/wxWINE/src/jpeg -cp * ~/wxwine_dist/wxWINE/src/jpeg -cd .. - -cd .. - -echo Utils dir.. - -cd utils -mkdir ~/wxwine_dist/wxWINE/utils -cp Makefile.am ~/wxwine_dist/wxWINE/utils -cp Makefile.in ~/wxwine_dist/wxWINE/utils -cd .. - -echo Samples dir.. - -cd samples -mkdir ~/wxwine_dist/wxWINE/samples -cp Makefile.am ~/wxwine_dist/wxWINE/samples -cp Makefile.in ~/wxwine_dist/wxWINE/samples - -echo Minimal sample.. - -cd minimal -mkdir ~/wxwine_dist/wxWINE/samples/minimal -cp Makefile.am ~/wxwine_dist/wxWINE/samples/minimal -cp Makefile.in ~/wxwine_dist/wxWINE/samples/minimal -cp minimal.cpp ~/wxwine_dist/wxWINE/samples/minimal -cp mondrian.xpm ~/wxwine_dist/wxWINE/samples/minimal -cd .. - -echo Bombs sample.. - -cd bombs -mkdir ~/wxwine_dist/wxWINE/samples/bombs -cp Makefile.am ~/wxwine_dist/wxWINE/samples/bombs -cp Makefile.in ~/wxwine_dist/wxWINE/samples/bombs -cp *.cpp ~/wxwine_dist/wxWINE/samples/bombs -cp *.h ~/wxwine_dist/wxWINE/samples/bombs -cp *.xpm ~/wxwine_dist/wxWINE/samples/bombs -cd .. - -echo Caret sample.. - -cd caret -mkdir ~/wxwine_dist/wxWINE/samples/caret -cp Makefile.am ~/wxwine_dist/wxWINE/samples/caret -cp Makefile.in ~/wxwine_dist/wxWINE/samples/caret -cp *.cpp ~/wxwine_dist/wxWINE/samples/caret -cp *.xpm ~/wxwine_dist/wxWINE/samples/caret -cd .. - -echo Checklst sample.. - -cd checklst -mkdir ~/wxwine_dist/wxWINE/samples/checklst -cp Makefile.am ~/wxwine_dist/wxWINE/samples/checklst -cp Makefile.in ~/wxwine_dist/wxWINE/samples/checklst -cp *.cpp ~/wxwine_dist/wxWINE/samples/checklst -cp *.xpm ~/wxwine_dist/wxWINE/samples/checklst -cd .. - -echo Config sample.. - -cd config -mkdir ~/wxwine_dist/wxWINE/samples/config -cp Makefile.am ~/wxwine_dist/wxWINE/samples/config -cp Makefile.in ~/wxwine_dist/wxWINE/samples/config -cp *.cpp ~/wxwine_dist/wxWINE/samples/config -cd .. - -echo Controls sample.. - -cd controls -mkdir ~/wxwine_dist/wxWINE/samples/controls -cp Makefile.am ~/wxwine_dist/wxWINE/samples/controls -cp Makefile.in ~/wxwine_dist/wxWINE/samples/controls -cp *.cpp ~/wxwine_dist/wxWINE/samples/controls -cp *.xpm ~/wxwine_dist/wxWINE/samples/controls -cd icons -mkdir ~/wxwine_dist/wxWINE/samples/controls/icons -cp *.xpm ~/wxwine_dist/wxWINE/samples/controls/icons -cd ../.. - -echo Db sample.. - -cd db -mkdir ~/wxwine_dist/wxWINE/samples/db -cp Makefile.am ~/wxwine_dist/wxWINE/samples/db -cp Makefile.in ~/wxwine_dist/wxWINE/samples/db -cp *.cpp ~/wxwine_dist/wxWINE/samples/db -cp *.h ~/wxwine_dist/wxWINE/samples/db -cp *.xpm ~/wxwine_dist/wxWINE/samples/db -cd .. - -echo DDE sample.. - -cd dde -mkdir ~/wxwine_dist/wxWINE/samples/dde -cp Makefile.am ~/wxwine_dist/wxWINE/samples/dde -cp Makefile.in ~/wxwine_dist/wxWINE/samples/dde -cp *.cpp ~/wxwine_dist/wxWINE/samples/dde -cp *.h ~/wxwine_dist/wxWINE/samples/dde -cp *.xpm ~/wxwine_dist/wxWINE/samples/dde -cd .. - -echo Dialogs sample.. - -cd dialogs -mkdir ~/wxwine_dist/wxWINE/samples/dialogs -cp Makefile.am ~/wxwine_dist/wxWINE/samples/dialogs -cp Makefile.in ~/wxwine_dist/wxWINE/samples/dialogs -cp *.cpp ~/wxwine_dist/wxWINE/samples/dialogs -cp *.h ~/wxwine_dist/wxWINE/samples/dialogs -cd .. - -echo DnD sample.. - -cd dnd -mkdir ~/wxwine_dist/wxWINE/samples/dnd -cp Makefile.am ~/wxwine_dist/wxWINE/samples/dnd -cp Makefile.in ~/wxwine_dist/wxWINE/samples/dnd -cp *.cpp ~/wxwine_dist/wxWINE/samples/dnd -cp *.xpm ~/wxwine_dist/wxWINE/samples/dnd -cd .. - -echo Docview sample.. - -cd docview -mkdir ~/wxwine_dist/wxWINE/samples/docview -cp Makefile.am ~/wxwine_dist/wxWINE/samples/docview -cp Makefile.in ~/wxwine_dist/wxWINE/samples/docview -cp *.cpp ~/wxwine_dist/wxWINE/samples/docview -cp *.h ~/wxwine_dist/wxWINE/samples/docview -cp *.xpm ~/wxwine_dist/wxWINE/samples/docview -cd .. - -echo DocvwMDI sample.. - -cd docvwmdi -mkdir ~/wxwine_dist/wxWINE/samples/docvwmdi -cp Makefile.am ~/wxwine_dist/wxWINE/samples/docvwmdi -cp Makefile.in ~/wxwine_dist/wxWINE/samples/docvwmdi -cp *.cpp ~/wxwine_dist/wxWINE/samples/docvwmdi -cp *.h ~/wxwine_dist/wxWINE/samples/docvwmdi -cd .. - -echo Dynamic sample.. - -cd dynamic -mkdir ~/wxwine_dist/wxWINE/samples/dynamic -cp Makefile.am ~/wxwine_dist/wxWINE/samples/dynamic -cp Makefile.in ~/wxwine_dist/wxWINE/samples/dynamic -cp *.cpp ~/wxwine_dist/wxWINE/samples/dynamic -cp *.xpm ~/wxwine_dist/wxWINE/samples/dynamic -cd .. - -echo Drawing sample.. - -cd drawing -mkdir ~/wxwine_dist/wxWINE/samples/drawing -cp Makefile.am ~/wxwine_dist/wxWINE/samples/drawing -cp Makefile.in ~/wxwine_dist/wxWINE/samples/drawing -cp *.cpp ~/wxwine_dist/wxWINE/samples/drawing -cp *.xpm ~/wxwine_dist/wxWINE/samples/drawing -cd .. - -echo Forty sample.. - -cd forty -mkdir ~/wxwine_dist/wxWINE/samples/forty -cp Makefile.am ~/wxwine_dist/wxWINE/samples/forty -cp Makefile.in ~/wxwine_dist/wxWINE/samples/forty -cp *.cpp ~/wxwine_dist/wxWINE/samples/forty -cp *.h ~/wxwine_dist/wxWINE/samples/forty -cp *.xpm ~/wxwine_dist/wxWINE/samples/forty -cp *.xbm ~/wxwine_dist/wxWINE/samples/forty -cd .. - -echo Fractal sample.. - -cd fractal -mkdir ~/wxwine_dist/wxWINE/samples/fractal -cp Makefile.am ~/wxwine_dist/wxWINE/samples/fractal -cp Makefile.in ~/wxwine_dist/wxWINE/samples/fractal -cp *.cpp ~/wxwine_dist/wxWINE/samples/fractal -cd .. - -echo Grid sample.. - -cd grid -mkdir ~/wxwine_dist/wxWINE/samples/grid -cp Makefile.am ~/wxwine_dist/wxWINE/samples/grid -cp Makefile.in ~/wxwine_dist/wxWINE/samples/grid -cp *.cpp ~/wxwine_dist/wxWINE/samples/grid -cd .. - -echo Help sample.. - -cd help -mkdir ~/wxwine_dist/wxWINE/samples/help -cp Makefile.am ~/wxwine_dist/wxWINE/samples/help -cp Makefile.in ~/wxwine_dist/wxWINE/samples/help -cp *.cpp ~/wxwine_dist/wxWINE/samples/help -cp *.xpm ~/wxwine_dist/wxWINE/samples/help -cd doc -mkdir ~/wxwine_dist/wxWINE/samples/help/doc -cp * ~/wxwine_dist/wxWINE/samples/help/doc -cd ../.. - -echo Image sample.. - -cd image -mkdir ~/wxwine_dist/wxWINE/samples/image -cp Makefile.am ~/wxwine_dist/wxWINE/samples/image -cp Makefile.in ~/wxwine_dist/wxWINE/samples/image -cp *.cpp ~/wxwine_dist/wxWINE/samples/image -cp horse.png ~/wxwine_dist/wxWINE/samples/image -cp horse.gif ~/wxwine_dist/wxWINE/samples/image -cp horse.jpg ~/wxwine_dist/wxWINE/samples/image -cd .. - -echo Internat sample.. - -cd internat -mkdir ~/wxwine_dist/wxWINE/samples/internat -cp Makefile.am ~/wxwine_dist/wxWINE/samples/internat -cp Makefile.in ~/wxwine_dist/wxWINE/samples/internat -cp *.cpp ~/wxwine_dist/wxWINE/samples/internat -cp *.xpm ~/wxwine_dist/wxWINE/samples/internat -cp readme.txt ~/wxwine_dist/wxWINE/samples/internat -cp wxstd.po ~/wxwine_dist/wxWINE/samples/internat -cd fr -mkdir ~/wxwine_dist/wxWINE/samples/internat/fr -cp *.?o ~/wxwine_dist/wxWINE/samples/internat/fr -cd ../.. - -echo Layout sample.. - -cd layout -mkdir ~/wxwine_dist/wxWINE/samples/layout -cp Makefile.am ~/wxwine_dist/wxWINE/samples/layout -cp Makefile.in ~/wxwine_dist/wxWINE/samples/layout -cp *.cpp ~/wxwine_dist/wxWINE/samples/layout -cp *.h ~/wxwine_dist/wxWINE/samples/layout -cd .. - -echo Listctrl sample.. - -cd listctrl -mkdir ~/wxwine_dist/wxWINE/samples/listctrl -cp Makefile.am ~/wxwine_dist/wxWINE/samples/listctrl -cp Makefile.in ~/wxwine_dist/wxWINE/samples/listctrl -cp *.cpp ~/wxwine_dist/wxWINE/samples/listctrl -cp *.h ~/wxwine_dist/wxWINE/samples/listctrl -cp *.xpm ~/wxwine_dist/wxWINE/samples/listctrl -cd bitmaps -mkdir ~/wxwine_dist/wxWINE/samples/listctrl/bitmaps -cp *.xpm ~/wxwine_dist/wxWINE/samples/listctrl/bitmaps -cd ../.. - -echo MDI sample.. - -cd mdi -mkdir ~/wxwine_dist/wxWINE/samples/mdi -cp Makefile.am ~/wxwine_dist/wxWINE/samples/mdi -cp Makefile.in ~/wxwine_dist/wxWINE/samples/mdi -cp *.cpp ~/wxwine_dist/wxWINE/samples/mdi -cp *.h ~/wxwine_dist/wxWINE/samples/mdi -cp *.xpm ~/wxwine_dist/wxWINE/samples/mdi -cd bitmaps -mkdir ~/wxwine_dist/wxWINE/samples/mdi/bitmaps -cp *.xpm ~/wxwine_dist/wxWINE/samples/mdi/bitmaps -cd ../.. - -echo Memcheck sample.. - -cd memcheck -mkdir ~/wxwine_dist/wxWINE/samples/memcheck -cp Makefile.am ~/wxwine_dist/wxWINE/samples/memcheck -cp Makefile.in ~/wxwine_dist/wxWINE/samples/memcheck -cp *.cpp ~/wxwine_dist/wxWINE/samples/memcheck -cp *.xpm ~/wxwine_dist/wxWINE/samples/memcheck -cd .. - -echo Minifram sample.. - -cd minifram -mkdir ~/wxwine_dist/wxWINE/samples/minifram -cp Makefile.am ~/wxwine_dist/wxWINE/samples/minifram -cp Makefile.in ~/wxwine_dist/wxWINE/samples/minifram -cp *.cpp ~/wxwine_dist/wxWINE/samples/minifram -cp *.h ~/wxwine_dist/wxWINE/samples/minifram -cp *.xpm ~/wxwine_dist/wxWINE/samples/minifram -cd bitmaps -mkdir ~/wxwine_dist/wxWINE/samples/minifram/bitmaps -cp *.xpm ~/wxwine_dist/wxWINE/samples/minifram/bitmaps -cd ../.. - -echo Notebook sample.. - -cd notebook -mkdir ~/wxwine_dist/wxWINE/samples/notebook -cp Makefile.am ~/wxwine_dist/wxWINE/samples/notebook -cp Makefile.in ~/wxwine_dist/wxWINE/samples/notebook -cp *.cpp ~/wxwine_dist/wxWINE/samples/notebook -cp *.h ~/wxwine_dist/wxWINE/samples/notebook -cd .. - -echo PNG sample.. - -cd png -mkdir ~/wxwine_dist/wxWINE/samples/png -cp Makefile.am ~/wxwine_dist/wxWINE/samples/png -cp Makefile.in ~/wxwine_dist/wxWINE/samples/png -cp *.cpp ~/wxwine_dist/wxWINE/samples/png -cp *.h ~/wxwine_dist/wxWINE/samples/png -cp *.png ~/wxwine_dist/wxWINE/samples/png -cd .. - -echo Printing sample.. - -cd printing -mkdir ~/wxwine_dist/wxWINE/samples/printing -cp Makefile.am ~/wxwine_dist/wxWINE/samples/printing -cp Makefile.in ~/wxwine_dist/wxWINE/samples/printing -cp *.cpp ~/wxwine_dist/wxWINE/samples/printing -cp *.h ~/wxwine_dist/wxWINE/samples/printing -cp *.xpm ~/wxwine_dist/wxWINE/samples/printing -cd .. - -echo Proplist sample.. - -cd proplist -mkdir ~/wxwine_dist/wxWINE/samples/proplist -cp Makefile.am ~/wxwine_dist/wxWINE/samples/proplist -cp Makefile.in ~/wxwine_dist/wxWINE/samples/proplist -cp *.cpp ~/wxwine_dist/wxWINE/samples/proplist -cp *.h ~/wxwine_dist/wxWINE/samples/proplist -cd .. - -echo Resource sample.. - -cd resource -mkdir ~/wxwine_dist/wxWINE/samples/resource -cp Makefile.am ~/wxwine_dist/wxWINE/samples/resource -cp Makefile.in ~/wxwine_dist/wxWINE/samples/resource -cp *.cpp ~/wxwine_dist/wxWINE/samples/resource -cp *.h ~/wxwine_dist/wxWINE/samples/resource -cp *.wxr ~/wxwine_dist/wxWINE/samples/resource -cd .. - -echo Sashtest sample.. - -cd sashtest -mkdir ~/wxwine_dist/wxWINE/samples/sashtest -cp Makefile.am ~/wxwine_dist/wxWINE/samples/sashtest -cp Makefile.in ~/wxwine_dist/wxWINE/samples/sashtest -cp *.cpp ~/wxwine_dist/wxWINE/samples/sashtest -cp *.h ~/wxwine_dist/wxWINE/samples/sashtest -cd .. - -echo Scroll sample.. - -cd sashtest -mkdir ~/wxwine_dist/wxWINE/samples/scroll -cp Makefile.am ~/wxwine_dist/wxWINE/samples/scroll -cp Makefile.in ~/wxwine_dist/wxWINE/samples/scroll -cp *.cpp ~/wxwine_dist/wxWINE/samples/scroll -cp *.h ~/wxwine_dist/wxWINE/samples/scroll -cd .. - -echo Splitter sample.. - -cd splitter -mkdir ~/wxwine_dist/wxWINE/samples/splitter -cp Makefile.am ~/wxwine_dist/wxWINE/samples/splitter -cp Makefile.in ~/wxwine_dist/wxWINE/samples/splitter -cp *.cpp ~/wxwine_dist/wxWINE/samples/splitter -cd .. - -echo Tab sample.. - -cd tab -mkdir ~/wxwine_dist/wxWINE/samples/tab -cp Makefile.am ~/wxwine_dist/wxWINE/samples/tab -cp Makefile.in ~/wxwine_dist/wxWINE/samples/tab -cp *.cpp ~/wxwine_dist/wxWINE/samples/tab -cp *.h ~/wxwine_dist/wxWINE/samples/tab -cd .. - -echo Text sample.. - -cd text -mkdir ~/wxwine_dist/wxWINE/samples/text -cp Makefile.am ~/wxwine_dist/wxWINE/samples/text -cp Makefile.in ~/wxwine_dist/wxWINE/samples/text -cp *.cpp ~/wxwine_dist/wxWINE/samples/text -cd .. - -echo Thread sample.. - -cd thread -mkdir ~/wxwine_dist/wxWINE/samples/thread -cp Makefile.am ~/wxwine_dist/wxWINE/samples/thread -cp Makefile.in ~/wxwine_dist/wxWINE/samples/thread -cp *.cpp ~/wxwine_dist/wxWINE/samples/thread -cd .. - -echo Toolbar sample.. - -cd toolbar -mkdir ~/wxwine_dist/wxWINE/samples/toolbar -cp Makefile.am ~/wxwine_dist/wxWINE/samples/toolbar -cp Makefile.in ~/wxwine_dist/wxWINE/samples/toolbar -cp *.cpp ~/wxwine_dist/wxWINE/samples/toolbar -cp *.h ~/wxwine_dist/wxWINE/samples/toolbar -cp *.xpm ~/wxwine_dist/wxWINE/samples/toolbar -cd bitmaps -mkdir ~/wxwine_dist/wxWINE/samples/toolbar/bitmaps -cp *.xpm ~/wxwine_dist/wxWINE/samples/toolbar/bitmaps -cd ../.. - -echo TreeCtrl sample.. - -cd treectrl -mkdir ~/wxwine_dist/wxWINE/samples/treectrl -cp Makefile.am ~/wxwine_dist/wxWINE/samples/treectrl -cp Makefile.in ~/wxwine_dist/wxWINE/samples/treectrl -cp *.cpp ~/wxwine_dist/wxWINE/samples/treectrl -cp *.h ~/wxwine_dist/wxWINE/samples/treectrl -cp *.xpm ~/wxwine_dist/wxWINE/samples/treectrl -cd .. - -echo typetest sample.. - -cd typetest -mkdir ~/wxwine_dist/wxWINE/samples/typetest -cp Makefile.am ~/wxwine_dist/wxWINE/samples/typetest -cp Makefile.in ~/wxwine_dist/wxWINE/samples/typetest -cp *.cpp ~/wxwine_dist/wxWINE/samples/typetest -cp *.h ~/wxwine_dist/wxWINE/samples/typetest -cp *.xpm ~/wxwine_dist/wxWINE/samples/typetest -cd .. - -echo Validate sample.. - -cd validate -mkdir ~/wxwine_dist/wxWINE/samples/validate -cp Makefile.am ~/wxwine_dist/wxWINE/samples/validate -cp Makefile.in ~/wxwine_dist/wxWINE/samples/validate -cp *.cpp ~/wxwine_dist/wxWINE/samples/validate -cp *.h ~/wxwine_dist/wxWINE/samples/validate -cp *.xpm ~/wxwine_dist/wxWINE/samples/validate -cd .. - -echo wxPoem sample.. - -cd wxpoem -mkdir ~/wxwine_dist/wxWINE/samples/wxpoem -cp Makefile.am ~/wxwine_dist/wxWINE/samples/wxpoem -cp Makefile.in ~/wxwine_dist/wxWINE/samples/wxpoem -cp *.cpp ~/wxwine_dist/wxWINE/samples/wxpoem -cp *.h ~/wxwine_dist/wxWINE/samples/wxpoem -cp *.xpm ~/wxwine_dist/wxWINE/samples/wxpoem -cp wxpoem.dat ~/wxwine_dist/wxWINE/samples/wxpoem -cp wxpoem.txt ~/wxwine_dist/wxWINE/samples/wxpoem -cp wxpoem.idx ~/wxwine_dist/wxWINE/samples/wxpoem -cd .. - -echo wxSocket sample.. - -cd wxsocket -mkdir ~/wxwine_dist/wxWINE/samples/wxsocket -cp Makefile.am ~/wxwine_dist/wxWINE/samples/wxsocket -cp Makefile.in ~/wxwine_dist/wxWINE/samples/wxsocket -cp *.cpp ~/wxwine_dist/wxWINE/samples/wxsocket -cp *.xpm ~/wxwine_dist/wxWINE/samples/wxsocket -cd ../.. - -cd ~/wxwine_dist -tar ch wxWINE | gzip -f9 > wxWINE-2.1.0-b7.tgz 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/changes.txt b/docs/gtk/changes.txt deleted file mode 100644 index 089549410f..0000000000 --- a/docs/gtk/changes.txt +++ /dev/null @@ -1,540 +0,0 @@ - -28th August '99: Ninth wxGTK 2.1 snapshot released - -As the old makefile system didn't work, I trashed it and wrote -a new one. It does work on Linux and Solaris but anything else -is untested. - -Addition of new layout classes that work like Java's, GTK's -or Qt`s - basically, you pack item in a box and let it tell -you how much space it needs. - -A few more minor fixes. - -6th August '99: Eight wxGTK 2.1 snapshot released - -The new makefile system is not able to produce shared libraries -on Unix with the exception of Linux - libtool is really great. -Therefore, the build system defaults to static libraries on -anything but Linux for now. - -Work in wxPen, wxBrush and wxDC to match wxMSW more exactly and -to implement missing feature etc. - -Reimplemented radio buttons. The first of a group of such buttons -is now marked by having the wxRB_GROUP style. - -Complete redesign of all stream classes, including tests for them -in the samples. - -Controls now send the same messages (or more importantly none if -changed programmatically) as per wxMSW. - -New implementation of wxSocket using an intermediate library called -GSocket. This willl hopefully change in the future. - -Reworked in-place editing of wxListCtrl and wxTreeCtrl. - -Fixed bug reporting two refreshes when scrolling. - -Corrected bug in wxComboBox client data code. - -Corrected reported but unverified bug in BMP loading code. - -Added a few more methods to wxStaticBitmap. - -Integration of wxHTML code in the main library, including wxZIPStream, -wxFilesystem, wxHTMLHelpController and others. - -Added a wrapper for ffile() etc functions. - -Updates to wxDynamicLibrary. - -New documentation. - -New version of wxPython, of course. - -Fixed in unenclosed number of other bugs... - -25th June '99: Seventh wxGTK 2.1 snapshot released - -Many fixes to th new makefile system. The last version gave -immediate crashes on all Unices except Linux when linked -dynamically against an application. I reordered the object -files in the library as I guess that this was the cause. - -Added icons to message box. This also slightly killed the -layout so this needs to be changed again. - -wxGTK now chooses the best visual available on the display instead -of the default one. - -Fixed wxProgressDialog again. - -Some more corrections I forgot. - -New wxPython (includes new layout system and printing). - -15th June '99: Sixth wxGTK 2.1 snapshot released - - -The biggest change is the completely rewritten configure/makefile -system using automake. The main argument for switching to automake -is that the resulting makefiles should be more portable so that -people can use the native make utilities instead of GNU make. The -new makefile sytem also handles dependencies correctly, allows for -shared-only compilation, can be invoked from any directory for -concurrent builds wihtin one source tree, uses libtool for greater -shared-library platform support, has a functinonal "make uninstall", -works with GTK, Motif and WINE, conforms better to GNU standards -as far as configure option names are concerned and is easier to -maintain. - -Applied patches to compile wxGTK on OS/2. - -Configure checks for byte-order and new defines for byte swapping -with respect to the byte-order. Added test for this to typetest sample. -Also made BMP handler bigendian safe so that it should work on -Solaris and such. - -Small changes to basic drawing stuff: made wxColour actually compare -RGB values in the == operator, added new constructor to wxMask, -corrected initial background colour for DCs, it is now possible -to use a wxWindowDC etc before there is any window (this doesn't -make any sense, but it is what wxMSW does.) - -Added support for the PRIMARY SELECTION to the wxClipboard -class. - -Fixed redraw bug when scrolling window-less widgets out -of the visible area (actually a work-around for a GTK bug). - -Regrouped some samples, created new one for various versions -of the wxTextCtrl. - -Added wxWindow::Reparent() and wxFrame::MakeModal(). - -Improved handling of column width in wxListCtrl and made -this more compatible with the wxMSW version. Also removed -a bug from the wxImageList returning an off-by-one id for -added images. - -Fixed keyboard hotkeys and resizing for wxMDIChildFrame -menu bars. - -Added flag to wxSplitterWindow to update its children's -sizes "live" instead of moving a XOR'ed bar around - this -is a resource-draining option. Also corrected cursors -in splitter window. - -New way to show "disabled" or greyed toolbar items. - -Rewrote parts of the tree ctrl to allow multiple selections -and variable size items (Sylvain). These new function do not -exist in the native Win32 tree control. - -Implemented global cursors and wxBusyCursor etc. Also removed -another cursor misbehaviour. - -Updated many parts of the documentation to reflect changes -in wxWindows 2.1, wxPython and more exact description of -cross-platform issues as well as platform differences. - -Many other fixes, mainly by others... - -Further compile fixes for different architectures. - - - -25th May '99: Fifth wxGTK 2.1 snapshot released - - - -This is mostly a bug-fix release. We are having funny -times to make wxGTK work well with different micro -versions of GTK 1.2 - which is very close to impossible. -All versions give warnings, although their number might -vary a lot. I use GTK 1.2.3 and only get wanrnings in -one sample (notebook) and that one is due to a bug in -GTK - some people using GTK 1.2.2 reported hundreds of warnings -getting spitted out for what seems like no reason. - -This snapshot contains the beginnings of our merging of -headers, meaning that in the future all ports will -use the same headers and will share a lot more code. -We have taken this moment to reorganize some code and -hope to have eliminated much bad C++ code, as reported -primarily by SGI's compilers (Vadim Zeitlin). - -Rewritten char and key event propagation routines -to reflect documentation and do the same on wxGTK -as on wxMSW. If you are interested in ascii chars -and cursor key etc, intercept EVT_CHAR, if you -are interested in which key actually got pressed, -intercept EVT_KEYDOWN (Norbert Irmer). - -Control that are given -1 as their ID no longer -get arbitrary positive IDs assigned but arbitrary -negative IDs. This had caused some trouble with ID clashes. - -wxWindow and wxScrolledWindow no longer use the -wxScrollEvent, but the newly invented wxScrollWinEvent -so that no mixing up of events sent from wxSliders -or wxScrollbars placed in a wxWindow can occur. - -Added wxProgressDialog for use with long background -work such as printing. - -Added drawing sample and scrolling sample, both of -which show some misbehaviours... - -When drawing with the wxXOR logical mode, wxGTK now uses -GdkXOR (instead of GdkInvert) and when drawing in wxINVERT logical -mode, wxGTK now uses GdkInvert (as before). When you did some -rubberband dragging and you used wxXOR and a black pen, then -you should change wxINVERT. - -Applied more patches for SGI and HP-UX compilation. - -More updates for wxSockets (Guilhem Lavaux). Seems to be nearly -finished. - -You can now use threads within your GUI again. Well, -at least if you know what you are doing and you had a look -at the threads sample. - -wxGLCanvas updated so that it can share display lists -over several windows and to not exhibit any flicker. -(Norber Irmer). - -wxNotebook revamped so that its process of creation matches -wxMSW's more closely, also avoiding problems with wrong page -number. Added InsertPage() and the possibility to prevent -switching pages by intercepting the PAGE_CHANGING event. Also, -wxNotebooks now get shown even if all pages are empty. - -Added Activate() to wxMDIChildFrame (Russel). - -Improved wxSplitterWindow behaviour and visual feed-back when -given a minimal size etc (Bruce DeVisser). - -Minor updates to wxTreeCtrl, wxListBox, printing, wxClipboard, -wxString, wxThreads and many others. - -Also wxMSW got a big face-lift, not to mention the new wxMac release... - - - -11th May '99: Fourth wxGTK 2.1 snapshot released - - -This is mostly a bug-fix release. This affects wxSocket, wxThread, -and a few GUI classes. Also more work has been done and window -placement and decorations etc. which we hope to have finished now. - -Applied patches for FreeBSD and SGI compilation (not yet finshed). - -Updated wxPython to beta 9. - -Made wxGLCanvas work again - strangely it flickers now... - -wxStaticText is currently broken with GTK 1.2.2 (which I don't -yet have and thus could not fix). Also, scrolling subwindows -(although much improved including a sample) doesn't work perfectly -due to a bug in GTK 1.2.1 (probably 1.2.2 as well). - -Added wxStaticLine. - -Note that the next release might bring about changes to keyboard -handling and scroll event intercepting from wxScrolledWindow. - -By and large much of the code has stabilized and won't be much -different in the final wxWindows 2.1 release. Please test as -much as you can. - -The next release will have a new build system. - - - -3rd May '99: Third wxGTK 2.1 snapshot released - - -Updated INSTALL.txt and SYMBOLS.txt. - -Support for Unicode is now almost complete. Most samples work in -both Unicode and non-Unicode mode. Thanks to Ove Kaaven and Vadim. - -Internal changes required for wxOLE and addition of a very experimental -wxOLE code section using GNOME's Bonobo library (from GNOME's CVS). - -New version of wxPython that works with the wxGTK 2.1. -This now includes a very comprensive test/demo suite. Thanks to -Robin Dunn, Harm v.d. Heijden and others. Beware of the hang-man... - -More fine tuning of focus handling and GUI widgets. - -Complete rewrite of wxSocket classes (still experimental). -Thanks to Guilhem Lavaux. - -wxMenuBar supports underlined shortcuts like Windows does, -indicated by a leading & character. wxMenus now have hotkeys -such as in wxXt and wxMSW. - -Rewritten MDI subsystem. - -Correcetions and additions to the printing framework including -a paper type database (Julian). - -Several controls now support more style flags for modifying -look (and feel) of the controls and windows. - -New implementation of idle handlers, which now send an idle -event only once after the event queue has been emptied (which -is what happens in the wxMSW port as well), not regularly. -This no longer forces wxGTK applications to sleep (by having -to call usleep()) in idle time - giving more CPU slices to -the application if desired. - -wxGLCanvas (the OpenGl for wxWindows) now accepts keyboard input. - -The usual number of compile and bug fixes from all involved. - - - -21st April '99: Second wxGTK 2.1 snapshot released - - -Added much code for Unicode support. Still experimental, but looks very -cool - thanks to Ove Kaaven and Vadim Zeitlin. If you are very brave, then -you can compile wxGTK with "configure --with-unicode". - -More updates on the dreaded issue of making frames and dialogs impossible -to resize etc. - -Drag and Drop works now under GTK 1.2 - at least basically when dragging -and dropping text. The API is not entirely fixed yet but seems quite -good now. Support for different actions (copy/move/link/..) still missing. -I also removed support for GTK 1.0 Drag and Drop - this is just broken -and unusable in GTK 1.0 and I don't want to fix it. - -I now embed the JPEG library and handlers for JPEG and GIF have been -added to the existing PNG and BMP (and XPM for GTK version only). In -the future, the RPMs will not contain these libraries but depend on -the image libraries to be preinstalled whereas the source *.tgz will -ship with everything that is needed for wxGTK so that no downloading -of ten image libs will be required - also avoiding problems with ten -different kinds of libJPEG-6.0.1.7.IV beta 7. We also updated the -PNG code to the newest PNG version. - -wxImage now makes use of the fast rendering code as provided by -GTK 1.2 whenever possible. This should mean a speed-up for graphics -heavy apps. - -Many fixes all over. Also should compile with GTK 1.2.0 as opposed -to only with GTK 1.2.1 now. - -wxPython still doesn't compile, I think. - - - -12th April '99: First wxGTK 2.1 snapshot released - - -This is the first developers' version of wxWindows 2.1 for GTK. It's main -new feature is that it supports GTK 1.2 (as opposed to GTK 1.0) which -will make development within the GNOME evironment a lot easier. - -Apart from the move to GTK 1.2 and the changes (some major) that were -required as part of that work, enhancement or corrections have been -made to many of the non-GUI classes and functions (such as wxClipboard, -wxThread, wxSocket, wxConfig) -and a few GUI classes (accelerators in menus, listbox always with -scrollbar, wxFrame honours Motif Window Manager hints, corrected tab -traversal for broken GTK 1.0 widgets). - -There have been slight changes to the priting dialogs and their -setup data (which might break apps using this code in previous -versions). Also, a bug concerning printing white has been fixed -(actually not tested). - -Although this is only the first 2.1 snapshot, there is little reason not -to use it as many bugs from version 2.0 have been corrected. There are, -pf course, still a few problem left with GTK 1.2 (some of which relate -to bugs in GTK). - -I think I preserved backward compatility with GTK 1.0 and if not it -should be easy to fix - but mostly I don't care. - -Drag'N'Drop is currently completely broken. Also, wxPython currently -doesn't compile with this release. The OpenGL canvas still seems to -work. - -Major targets for the final release (still a long way): a new configure -system, support JPEG and GIF formats, wxHTML, super-duppah frame layout -stuff, syntax-highlighting editor, possibly Unicode, possibly some GNOME -gooddies, possibly world domination. - - - -5th March '99: wxWindows 2.0 released - - -This is the final version of wxWindows 2.0 for GTK. The versions for -Windows and Motif (and also this version) are available form Julian Smart's -site. The Mac version is still under development. - - - -19th February '99: wxWindows 2.0 beta 5 - - -This is the fifth beta release and it contains mostly bug fixes and -updates for documentation. - -Applied compile fixes for Solaris (different flavours and compilers). - - - -12th February '99: wxWindows 2.0 beta 4 - - -This is the fourth beta release and it contains mostly bug fixes and -updates for documentation. - -Tracked a few more cases, where the bahaviour between wxMSW and wxGTK -differed. This was the case for closing a dialog or frame as well as -for clearing a device context or setting its background colour and some -other minor details. - -Most standard dialogs have been face-liftet a little. - -Implememted default buttons for GTK. - -Fixed many bugs. You guessed it. - - - -29th January '99: wxWindows 2.0 beta 3 - - -This is the third beta release and it contains mostly bug fixes. - -There is one field where we haven't been able to fix the API yet, and that -it Drag'n'Drop. This is mostly due to the fact that DnD in -GTK 1.0 is hardly usable and much different from GTK 1.2 which means that -we have to design a common API for Windows, GTK 1.0 and GTK 1.2. Although -we are trying to prevent that, it is possible that wxWindows 2.0 (being -based on GTK 1.0) will not have proper DnD support. - -The major changes are that tool tips have been added, threads have been completely -rewritten, the ODBC code has been updated and improved, the socket code works -better now. - -Classes for managing MIME-types under Windows and Unix have been added. - -There is now a wxGLCanvas class for OpenGl/Mesa for the Windows, GTK and -Motif ports. Come see the penguins flying... - -Documentation has received a big face lift - it now covers nearly all the -classes, at least. - -The usual amount of bug fixes. Countless. - -A few member functions of wxString have been renamed. - -For those who are using the ever-so-popular wxImage class (which -now available on Motif and Windows as well) in 8-bit mode: wxGTK -now creates a color cube upon start-up in 8-bit mode and thus the -generation of bitmaps from images has been speeded up 20 times. - -It is now possible to develop with wxGTK without having the GTK 1.0 header -files installed so that having the GTK 1.2 header files installed no longer -is any problem. We also provide RPMs for RedHat glibc 2 based systems, compiled -with egcs 1.1.1 on SuSE 6.0. Note that the RPM will not work in -SuSE 6.0 as SuSE decided to ship 6.0 with a broken GTK+ package. - - - -6th January '99: wxWindows 2.0 beta 2 - - -This is the second beta release and contains it mostly build and -bug fixes. Threads work well now on (up-to-date) glibc 2 systems, -commercial Unices and Windows. - - - -20th December '98: wxWindows 2.0 beta 1 - - -This is the first beta release and we have used the time before -this release to tidy up some parts of the API. All releases from -now on will be source code compatible but we reserve binary compatibility -for the final release. Because of this, the actual library name of -the beta version will not be 2.0 but 1.99, so that we prevent -conflicts with the final library later on. After the final release -we'll only fix bugs so that there will be no reason to link any -program statically with wxGTK. - -We changed the name of the shared library to include the version of -the GTK used so that no conflicts emerge with simultaneous -versions of wxWindows for GTK 1.0 and for GTK 1.2 and so on. - -As you can see, we have not moved to GTK 1.1.X as the different -development versions are too different and buggy to be useful. We'll -wait for a stable GTK 1.2 release (hardly 1.2.0) and start porting -then. - -wxGTK now compiles without problems on anything between gcc 2.7.2 on -Linux-x86 and egcs 1.1 on Linux-Alpha and egcs 1.0 on Sparc. This isn't -as easy as it sounds... - -Available form this site are the Python bindings of wxWindows. -Thanks to Robin Dunn for this tremendous contribution. -Tkinter is dead, Java is dead, wxPython rules! That's all there is to say. - -Although only a few new classes have been added, many have been polished -up substantially, the most visible are wxListCtrl, wxTreeCtrl and -all classes related to printing. Also the DialogEd now functions -much better than before. Drag'n'Drop is fucntional but probably won't -be perfect until we use GTK 1.2 and its much improved DnD features. - -wxClipboard has arrived and works for text. Other formats have not been -tested carefully yet. - -wxMiniFrame has been added which might be useful for docking toolbars -etc. Someone has already done that for the MSW port and we hope to -include his very nice work later. - -wxDirDialog has been added (thanks to Harm von der Heijden). - -The entite "tab traveral" system for moving from item to item in -a dialog has been rewritten. It now completely overrides the -not-so-well-done GTK native tab system. - -Quite much has been done to improve the wxImage class, which is now -available in the Windows port as well. Very useful for anything related -to image processing. wxGTK also uses this class internally e.g. to scale -bitmaps when the scale factor (e.g. zooming) of a drawing context -has changed. - -Some of the small and handy classes (wxDate, wxTime, wxVariant) have -received a face-lift. wxList has been rewritten to make it possible -to write type-safe lists. The collection of utility functions (wxFileFind etc) -has been revamped and cleaned-up (thanks to Vadim Zeitlin, who has also -greatly enhanced many basic classes, ranging wxString to the debug and -log system). - -We removed some constructors of GDI classes (such as wxPen, wxColour) -which took a pointer as a parameter. This lead to many errors among users -resulting in unexpected behaviour so it was decided to remove these -constructors. - -As the number of users and the number of test programs and samples -is steadialy rising the core classes of wxWindows for MSW and GTK 1.0 -can be considered to be very stable if not outright bug-free. I haven't -seen a crash for weeks now and wxWindows' internal debug features also -have improved every week, making stepping-through with a debugger almost -completely unnecessary as the library reports possible errors itself -(when in debug mode). - diff --git a/docs/gtk/install.txt b/docs/gtk/install.txt deleted file mode 100644 index 33d915d787..0000000000 --- a/docs/gtk/install.txt +++ /dev/null @@ -1,419 +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 Linux for the first time and don't like to read -install instructions just do (in the base dir): - -> ./configure --with-gtk -> make -> su -> make install -> ldconfig -> exit - -Afterwards you can continue with - -> 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 currently -be installed, so you'd have to use local version of the library for that purpose. -For building three versions (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_flag -make -cd .. - -* The most simple errors ------------------------- - -configure reports, that you don't have GTK 1.X installed although you are -very sure you have. Well, you have installed it, but you also have another -version of the GTK installed, which you may need to remove 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 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, albeit 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.0.6 at my ftp site. 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. - -* Building wxGTK on OS/2 --------------------------- - -Please send comments and question about the OS/2 installation -to Andrea Venturoli and patches to -make the installation work (better) to me (Robert Roebling). - -You'll need OS/2 Warp (4.00FP#6), X-Free86/2 (3.3.3), -gtk+ (?), emx (0.9d fix 1), flex (2.5.4), yacc (1.8), -korn shell (5.2.13), Autoconf (?), GNU file utilities (3.6), -GNU text utilities (1.3), GNU shell utilites (1.12), m4 (1.4), -sed (2.05), grep (2.0), Awk (3.0.3), GNU Make (3.76.1). - -Open an OS/2 prompt and switch to the directory above. -First set some global environment variables we need: - -SET CXXFLAGS=-Zmtd -D__ST_MT_ERRNO__ -SET OSTYPE=OS2X -SET COMSPEC=sh - -Notice you can choose whatever you want, if you don't like OS2X. - -* Building wxGTK on SGI --------------------------- - -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. - -* 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 - -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 -------------------- - -Given below are the commands to change the default behaviour, -i.e. if it says "--disable-threads" it means that threads -are enabled by default. - -Many of the confiugre options have been thoroughly tested -in wxWindows snapshot 6, but not yet all (ODBC not). - -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: - - --without-gtk Don't 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-no_rtti Enable compilation without creation of - C++ RTTI information in object files. - This will speed-up compilation and reduce - binary size. - - --enable-no_exceptions Enable compilation without creation of - C++ exception information in object files. - This will speed-up compilation and reduce - binary size. Also fewer crashes during the - actual compilation... - - --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 -------------------- - -Many of the confiugre options have been thoroughly tested -in wxWindows snapshot 6, but not yet all (ODBC not). - -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. Not yet. } - - --disable-resources 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. - - --disable-file Disables the wxFile class. - - --disable-textfile Disables the wxTextFile class. - - --disable-intl Disables the internationalisation. - - --disable-validators Disables validators. - - --disable-accel Disables accel. - -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 --------------------------- - -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 -GNU libtool version 1.3 - -and quite possibly - -GNU make -GNU C++ - -and if you have all this then you probably know enough to -go ahead yourself :-) - ----------------------- - -In the hope that it will be useful, - - Robert Roebling - - 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 34fcf18016..0000000000 --- a/docs/gtk/readme.txt +++ /dev/null @@ -1,62 +0,0 @@ - - Welcome to wxWindows/Gtk 2.1 snapshot 9, - -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 with snapshot 9, wxWindows uses a completely -new make file system on Unix which no longer uses the -various GNU tools and I hope that I'll never again have -to write any more makefiles. - -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 or when not using Linux -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 list. 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 92adcfb9e9..0000000000 --- a/docs/gtk/todo.txt +++ /dev/null @@ -1,40 +0,0 @@ - --------------------- High priority --------------------- - -Finalise DnD API. - -More testing of Unicode support. - -Make wxSockets work on all platform. - -Add ID based i18n system as a replacement for the - unelegant gettext system. - -Add controls to toolbar. - -Add TIFF handler. Someone? (Hint, hint). - -Improve, update translations. Install *.mo files somewehere. - -Sleep, eat, walk, study, shave, read, play piano and wash less. - --------------------- Medium priority --------------------- - -Show accelerator control labels and actually implement them - -> Changed in GTK 1.2 (so let's do it for 1.2). Difficult. - --------------------- Low priority --------------------- - -Right aligned checkboxes: focus highlighting is wrong, tooltips can't be set can't be set - -OwnerDraw for wxListCtrl and others - -> Postponed. - -Implement wxPalette - -> I never understood that. Postponed. - -Implement different visuals and displays - -> I never understood that. Postponed. - -Cooperation with Qt - -> Would be nice. diff --git a/docs/html/faq.htm b/docs/html/faq.htm deleted file mode 100644 index cbe471dcb6..0000000000 --- a/docs/html/faq.htm +++ /dev/null @@ -1,43 +0,0 @@ - - - -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 2cf955358a..0000000000 --- a/docs/html/faqgen.htm +++ /dev/null @@ -1,235 +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.

- -To build source from CVS, see the file BuildCVS.txt in the top-level wxWindows distribution -directory.

- -

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; -wxStudio, 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 085980f7b7..0000000000 --- a/docs/html/faqmsw.htm +++ /dev/null @@ -1,247 +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.

- -

How are the wxWindows makefiles edited under Windows?

- -As of wxWindows 2.1, there is a new system written by Vadim Zeitlin, that -generates the makefiles from templates using tmake.

- -Here are Vadim's notes:

- -

-To use these new makefiles, you don't need anything (but see below). -However, you should NOT modify them because these files will be -rewritten when I regenerate them using tmake the next time. So, if -you find a problem with any of these makefiles (say, makefile.b32) -you'll need to modify the corresponding template (b32.t in this -example) and regenerate the makefile using tmake.

- -tmake can be found at -www.troll.no/freebies/tmake.html. -It's a Perl5 program and so it needs Perl (doh). There is a binary for -Windows (available from the same page), but I haven't used it, so -I don't know if it works as flawlessly as "perl tmake" does (note -for people knowing Perl: don't try to run tmake with -w, it won't -do you any good). Using it extremely simple: to regenerate makefile.b32 -just go to distrib/msw/tmake and type

- -

tmake -t b32 wxwin.pro -o ../../src/msw/makefile.b32

- -The makefiles are untested - I don't have any of Borland, Watcom or -Symantec and I don't have enough diskspace to recompile even with -VC6 using makefiles. The new makefiles are as close as possible to the -old ones, but not closer: in fact, there has been many strange things -(should I say bugs?) in some of makefiles, some files were not compiled -without any reason etc. Please test them and notify me about any problems. -Better yet, modify the template files to generate the correct makefiles -and check them in.

- -The templates are described in tmake ref manual (1-2 pages of text) -and are quite simple. They do contain some Perl code, but my Perl is -primitive (very C like) so it should be possible for anybody to make -trivial modifications to it (I hope that only trivial modifications -will be needed). I've tagged the ol makefiles as MAKEFILES_WITHOUT_TMAKE -in the cvs, so you can always retrieve them and compare the new ones, -this will make it easier to solve the problems you might have.

- -Another important file is filelist.txt: it contains the list of all -files to be compiled. Some of them are only compiled in 16/32 bit mode. -Some other are only compiled with some compilers (others can't compile -them) - all this info is contained in this file.

- -So now adding a new file to wxWindows is as easy as modifying filelist.txt -(and Makefile.ams for Unix ports) and regenerating the makefiles - no -need to modify all files manually any more.

- - Finally, there is also a file vc6.t which I use myself: this one -generates a project file for VC++ 6.0 (I didn't create vc5.t because -I don't need it and can't test it, but it should be trivial to create -one from vc6.t - probably the only things to change would be the -version number in the very beginning and the /Z option - VC5 doesn't -support edit-and=continue). This is not an officially supported way -of building wxWindows (that is, nobody guarantees that it will work), -but it has been very useful to me and I hope it will be also for -others. To generate wxWindows.dsp run

- -

tmake -t vc6 wxwin.pro -o ../../wxWindows.dsp

- -Then just include this project in any workspace or open it from VC IDE -and it will create a new workspace for you.

- -If all goes well, I'm planning to create a template file for Makefile.ams -under src/gtk and src/motif and also replace all makefiles in the samples -subdirectories with the project files from which all the others will be -generated. At least it will divide the number of files in samples -directory by 10 (and the number of files to be maintained too). -

- -
- - - - 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 c5336612d0..0000000000 --- a/docs/html/index.htm +++ /dev/null @@ -1,274 +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. -
  • caret: a sample to test the wxCaret class. -
  • 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. -
  • html: a number of demos for the wxHTML class library, used inside -applications and also as a help facility. -
  • 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). -
  • richedit: a work-in-progress rich text editor with plain text and HTML export -facilities. -
  • 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. -
  • text: demonstrates single and multiline text controls, -and clipboard operations. -
  • 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 2242fffd96..0000000000 Binary files a/docs/html/logo.gif and /dev/null differ diff --git a/docs/html/news.htm b/docs/html/news.htm deleted file mode 100644 index a085388f3d..0000000000 --- a/docs/html/news.htm +++ /dev/null @@ -1,292 +0,0 @@ - - - -News - - - - - - - - - - -
- -News - -
- -

August 6th, 1999

- -Today, a snapshot release of the MSW and the GTK ports has been -made. The two snapshots are synchronized and have been tested -for several weeks and should thus be considered to be quite stable. - -Among the many new features that have appeared since version 2.0 -was release are: - -

    -
  • A great number of incompatiblities between the GTK and the MSW port have been removed. This -holds escecially true for the way, time and order, controls send notifications to the user program. -
  • Practically all widgets have been updated, removing bugs or adding missing features to -specific ports (mostly the GTK port). -
  • The GTK port now supports GTK version 1.2 as well as 1.0, giving access to the many new -features, such as e.g. menu accelerators. -
  • Many of the non-GUI classes have been reworked and new ones added, the stream classes -having undergone a complete rewrite. -
  • The addition of code to handle Unicode has begun and is in an advanced state. -
  • The Python bindings (wxPython) have been largely improved and upadted to the newest -API and features. -
- - - -

July 31st, 1999

- -We are glad to announce the start of the work on the new wxWindows port - wxBeOS -which will implement wxWindows 2 API for BeOS. -Thanks to Be for donating licenses to wxWindows project to make it possible. -

-If you're interested in helping with this new port, please write to wxWindows -developers mailing list! - -

May 27th, 1999

- -

    -
  • Beta 1 of wxWindows 2 for Mac has been released, thanks to Stefan Csomor's amazing efforts. -
  • Work continues on the development branch of wxWindows 2 for MSW, GTK and Motif. Vadim has been reworking the -MSW implementation to solve some internal design problems, as well as factoring out base classes to make -development easier. -
  • Work on consistent drag and drop support in GTK and MSW continues. -
- -

March 1st, 1999

- -wxWindows 2 launch day!

- -

    -
  • wxWindows 2 officially launched, after more than two years' development of -the API and ports to Windows, GTK and Motif (Mac to follow). -Download wxWindows 2. -
- -

November 26th 1998

- -

    -
  • wxWindows 1.68E contains minor bug fixes and now compiles with MS VC++ 6.0, and -(hopefully) BC++ 5.0, as well as Cygwin b20. -
  • The latest wxWindows 2.0 alpha shows good progress -on the Motif port, with a tabbed MDI implementation, a nice wxToolBar class and most -major classes working. wxWindows 2.0 for Windows now works with VC++ 6.0, BC++ 5.0 and -Cygwin b20. There's a problem linking with Mingw32, I don't know why this is, perhaps -something to do with differences in the way pragmas are handled. -
  • There is also good progress with Stefan Csomor's wxMac 2.0: watch this space. A preview -is available here. -
  • Work is finally underway on a wxWindows IDE! -
  • Aleksandras Gluchovas is working on a docking window implementation and the results -are pretty impressive so far. Here's a screenshot; -source code is here and a WIN32 executable -is here. The source also includes -work on persistent storage classes. -
- -

September 13th 1998

- -

- -

August 23rd 1998

- -

    -
  • wxGTK and wxMSW 2.0 progress continues apace. The API is being unified quite successfully, -and most of the samples now compile under both ports. -
  • We are looking for sponsorship of wxMotif 2.0. -
- -

April 28th 1998

- -

    -
  • wxWindows 1.68C has been released. This mainly provides compatibility with Gnu-Win32 b19 -and Mingw32. -
  • wxWindows 2.0 beta 9 has been released. Again, this provides Gnu-Win32 b19/Mingw32 compatibility -plus a few small bug fixes. -
- -

March 22nd 1998

- -

    -
  • The mailing list addresses have changed: please see the mailing list page -for details. You may need to re-subscribe if you subscribed since February 1998. -
- -

January 5th 1998

- -

    -
  • Happy New Year! -
  • wxWindows 1.68B is available. -
  • wxWindows 2.0 has another port in progress - wxGTK, -by Robert Roebling (see also the information on the same page about Robert's FADE desktop -environment project). -
  • The Windows and Xt/Motif ports to 2.0 are progressing well. A large proportion of the documentation -has been done. One of the main things to resolve is how transformations (such as scaling -and translation) will be done in 2.0, but we're heading towards agreement. -
  • There is a new wxWindows Developers Site in preparation, for people developing ports of -wxWindows. There are newsgroups and a wxwin-developers mailing list. -
  • 40 wxWindows CD-ROMs have been sold, mostly outside the U.K. -
  • Antonia Charlotte Smart was born on November 1st 1997. Naturally, she's as cute as her parents. -
- -

August 13th 1997

- -

    -
  • Added Getting Started page for new users. -
  • There's a good review of wxWindows by Oliver Niedung and Stefan Gunther in -iX, a German computer magazine. -
- -

July 24th 1997

- -

- -

July 22nd 1997

- -

    -
  • wxWindows 1.67 is nearly there... -
  • Check out Forty Thieves, a great card game -by Chris Breeze of Hitachi Europe Limited. -
- -

July 16th 1997

- -

    -
  • Jobst Schmalenbach has set up Australian mirrors of the wxWindows ftp and Web sites: -please see the Mirrors page. -
  • Arthur Tetzlaff-Deas is starting to look afresh at a port of wxWindows 2.0 to -NeXTStep. This is more relevant now that the NeXT OS will be essential to the Apple Mac's future. -
  • The next release of wxWindows for Motif/XView/Windows should be within the next two weeks or so. I have abandoned -documentation in wxHelp form in favour of the much better quality HTML format, which I -will be including with the distribution from now on. -
- -

July 7th 1997

- -

    -
  • For news on wxWindows 2.0 development, please see What's coming next? -- developments include DLL and experimental Netscape Plugin support. The estimate for a release -date has been put back to October 1997 - to be out of the way before Smart Jr. arrives in November... -
  • Negotiations with a U.S. company about development of wxWindows into a commercial product -fell through, since it was not possible to agree about the continuation of a version -of wxWindows that maintains the free, collaborative spirit that currently exists. -
- -

May 18th 1997

- -

    -
  • wxWindows 2.0 development (mostly for the Windows platform) is on track thanks to funding for wxWin-related consultancy -- thank you to those concerned! This work is still on the free version of 2.0, although an additional -commercial version may be developed sometime in the future. Markus Holzem continues to generously donate -his spare time for Motif/Xt developments, and Greg Whitehead is looking into the Mac version of 2.0. -
  • Guilhem Lavaux has contributed a first version of -wxSocket, a set of classes for -network programming based on work by Andrew Davison. Currently this works on Motif/Xt and is coded but not yet tested -for Windows. The wxIPC classes on the UNIX side have been rewritten to take advantage of the new -classes. wxSocket is a great contribution that will be a part of wxWindows 2.0. Meanwhile, do check -it out and help Guilhem debug and develop it further. -
  • Other noteworthy contributions in recent weeks include a patch for using bitmap -masks on X for transparency -effects - another Lavaux effort! - plus thread classes -by Wolfram Gloger, updates to wxXt by Markus Holzem, -a start at OLE control support by Norbert Grotz, -an improved Winstall by Stefan Hammes, -and wxPreferences by Bart Jourquin -to simulate .ini files on UNIX.

    -Check out the Contributions page for more. -

- -

- -

May 8th 1997

- -

    -
  • Hitachi Europe Limited have used wxWindows both to implement and to illustrate -their WebReuser tool - a link to their pages has been -added to the Applications page. -
  • Another interesting link in the Applications page is -WipeOut, a C++ integrated development -environment for Linux. -
  • Fixes to make wxWindows 1.66F work with VC++ 5.0 are in the -ports/msvc50 -directory. -
- -

- -

April 20th 1997

- -

    -
  • wxWindows is listed in the Scientific Applications on Linux index, -here. -
  • There is a new page for issues with the current release which I would -encourage you to read. -
  • The wxWindows Web pages can be switched to non-frames mode, for those who find frames irritating -(and who use browsers that don't implement Back properly :-)). -
  • The Contrib page has some new entries. -
  • wxWindows 2.0 progress is steady. -
  • Greg Whitehead is taking a look at what's involved for a Mac port of 2.0, possibly using MetroWerks' PowerPlant -classes to speed up development. -
- -

-

March 13th 1997

- -

    -
  • Check out C-LAB's Lean Integration Platform written in wxWindows/wxLisp: it's -a multi-platform workflow tool. Nice Web pages! -
  • I've written some tips to help you code for easy porting to wxWindows 2.0. -
  • wxWin 2.0 progress: I've eliminated the need for the dreaded CTL3D library for Windows 95 applications. -New MDI classes are working, plus wxStatusBar, wxScrolledWindow. Markus is starting work on the Motif -port, with wxXt 2.0 as a second priority. But financial help to keep -the momentum going is needed! -
- -

- -

February 25th 1997

- -

    -
  • Yura Bidus (yari_b@automedi.com) has successfully adapted wxWindows 1.66B to compile as a DLL under -Borland C++. He will be patching 1.66F and investigating using VC++ for building the DLL. -
  • Early experiments indicate that application files using wxWindows 2.0 -and GNU-WIN32 will be at least twice as fast to compile as 1.66, due to elimination of base classes -and restructuring to avoid including windows.h. -
- -

- -

January 29th 1997

- -

    -
  • wxWindows 1.66F has been semi-released -for people to test before the official release. It works with GNU-WIN32, and contains miscellaneous bug fixes. -
  • ITA, Inc. have sent a debugged and -enhanced Mac port (building on 1.61). -
  • Markus Holzem and Julian Smart are designing wxWindows 2.0, which should make wxWindows into a force -to be reckoned with against other free and commercial libraries. The What's coming next? -page will shortly contain more details. -
  • The mailing lists are up and running again, with new subscription and discussion -list addresses. -
- -

- - - - - - diff --git a/docs/html/standard.htm b/docs/html/standard.htm deleted file mode 100644 index 196224130c..0000000000 --- a/docs/html/standard.htm +++ /dev/null @@ -1,780 +0,0 @@ - - - wxWindows Programmer Style Guide - - - - - - - - - - - - -
- -wxWindows Programmer Style Guide - -
- -

- -by Vadim Zeitlin

- -This guide is intended for people who are (or intending to start) writing code -for wxWindows class library. - -

-The guide is separated into two parts: the first one addresses the general -compatibility issues and is not wxWindows-specific. The advises in this part -will hopefully help you to write programs which compile and run on greater -variety of platforms. The second part details the wxWindows code organization and -its goal it to make wxWindows as uniform as possible without imposing too -many restrictions on the programmer. -

-Acknowledgements: This guide is partly based on -C++ portability guide by David Williams. - -

-

General C++ Rules

- - -

- -

wxWindows Rules

- - -
- -

General C++ Rules

-
    -
  • New or not widely supported C++ features
  • - -

    The usage of all features in this section is not recommended for one reason: they appeared in C++ relatively recently and are not yet -supported by all compilers. Moreover, when they're supported, there are -differences between different vendor's implementations. It's understandable that -you might love one (or all) of these features, but you surely can write C++ -programs without them. Where possible, workarounds to compensate for absence -of your favourite C++ abilities are indicated. -

    Just to suppress any doubts that there are compilers which don't support -these new features, you can think about Win16 (a.k.a. Win 3.1) compilers, -none of which supports any feature from the list below. - -

      -

    1. Don't use C++ templates
    2. -Besides the reasons mentioned above, template usage also makes the -program compile much slower (200%-300% is not uncommon) and their support -even in the compilers which have had it for a long time is far from perfect -(the best example is probably gcc). -

      Workaround: The things you would like to use templates for are, -most commonly, polymorphic containers (in the sense that they can contain objects of -any type without compromising C++ type system, i.e. using void * -is out of question). wxWindows provides dynamic -arrays and lists which are sufficient in 99% of cases - please don't hesitate -to use them. Lack of template is not a reason to use static arrays or -type-less (passing by void *) containers. - -

    3. Don't use C++ exceptions
    4. -The C++ exception system is an error-reporting mechanism. Another reasons not to use it, -besides portability, are the performance penalty it imposes (small, but, at least for -current compilers, non-zero), and subtle problems with -memory/resource deallocation it may create (the place where you'd like to use -C++ exceptions most of all are the constructors, but you need to be very -careful in order to be able to do it). -

      Workaround: there is no real workaround, of course, or the exceptions -wouldn't have been added to the language. However, there are several rules which -might help here:

      - -

        -
      1. Every function returns an integer (or at least boolean) error code. -

        There is no such thing as a function that never fails - even if it can't - fail now, it might do it later, when modified to be more powerful/general. - Put the int or bool return type from the very beginning!

        -

      2. Every function you call may fail - check the return code! -

        Never rely on the function's success, always test for a possible error.

        -

      3. Tell the user about the error, don't silently ignore them. -

        Exceptions are always caught and, normally, processed when they're - caught. In the same manner, the error return code must always be processed - somehow. You may choose to ignore it, but at least tell the user that - something wrong happened using wxLogError or - wxLogWarning functions. All wxWindows - functions (must) log the error messages on failure - this can be disabled - by using wxLogNull object before calling it. -

        Examples:

          -
        • Wrong: -
          -void ReadAddressBookFile(const wxString& strName)
          -{
          -  wxFile file;
          -  
          -  if ( !file.Open(strFile) )
          -    return;
          -  
          -  ...process it...
          -}
          -        
          -
        • Correct: -
          -// returns false if the address book couldn't be read
          -bool ReadAddressBookFile(const wxString& strName)
          -{
          -  wxFile file;
          -  
          -  if ( !file.Open(strFile) ) {
          -    // wxFile logged an error because file couldn't be opened which
          -    // contains the system error code, however it doesn't know what
          -    // this file is for and an error message "can't open $GLCW.ADB"
          -    // can be quite confusing for the user. Here we say what we mean.
          -    wxLogError("Can't read address book from '%s'!", 
          -	       strName.c_str());
          -    return false;
          -  }
          -  
          -  ...process it...
          -    
          -  return true;
          -}
          -	
          - or, if it's not an error if file doesn't exist (here we could just check - its existence, but let's suppose that there is no wxFile::Exists()) - we can also write: -
          -// returns false if address book file doesn't exist
          -bool ReadAddressBookFile(const wxString& strName)
          -{
          -  wxFile file;
          -  
          -  // start a block inside which all log messages are suppressed
          -  {
          -    wxLogNull noLog;
          -    if ( !file.Open(strFile) )
          -      return false;
          -  }
          -  
          -  ...process it...
          -  
          -  return true;
          -}
          -        
        • -
        -
      - -

    5. Don't use RTTI
    6. -RTTI stands for Run-Time Type Information and there is probably no other -reason not to use it except the portability issue and the fact that it adds -sizeof(void *) bytes to any class having virtual functions (at least, -in the implementations I'm aware of). -

      Workaround: use wxWindows RTTI system which allows you to do almost -everything which the new C++ RTTI, except that, of course, you have to use -macros instead of the (horrible looking, BTW) dynamic_cast. - -

    7. Don't use namespaces
    8. -This topic is subject to change with time, however for the moment all wxWindows -classes/functions live in the global namespace. -

      Workaround: None. - -

    9. Don't use STL
    10. -STL is the new C++ standard library, proposing all kinds of template containers -and generic algorithm implementations. Templates are the heart (and almost -everything else) of the library, so its usage is out of question. Besides, even -with the compilers which do support templates, STL has many of its own problems, -there are many "not 100% standard compatible" vendor implementations, none of existing debuggers understands its -complicated data structures, ... the list can go on (almost) forever. -

      Workaround: Use wxString, dynamic arrays and lists and other wxWindows -classes. wxString has many of the most often used functions of std::string STL -class (typedef to be precise). -

    11. Don't declare variables inside for() -
    12. -The scope of a variable declared inside for() statement changed several -years ago, however many compilers still will complain about second declaration -of i in the following code: -

      -  for ( int i = 0; i < 10; i++ ) {
      -    ...
      -  }
      -
      -  ...
      -
      -  for ( int i = 0; i < 10; i++ ) {
      -    ...
      -  }
      -
      -Even if it's perfectly legal now. -

      Workaround: write this instead: -

      -  int i;
      -  for ( i = 0; i < 10; i++ ) {
      -    ...
      -  }
      -
      -  ...
      -
      -  for ( i = 0; i < 10; i++ ) {
      -    ...
      -  }
      -
      - -

    13. Don't use nested classes
    14. -Nested classes are, without doubt, a very good thing because they allow to hide -"private" (in the sense that they're used only inside the library) classes and, -generally, put the related things together. -

      Unfortunately, some compilers have trouble understanding them, so we must -sacrifice the ideals of software design to get a working program in this case. -

      Workaround: instead of -

      -  // in the header
      -  class PublicLibClass {
      -  ...
      -  private:
      -    class PrivateLibClass { ... } m_object;
      -  };
      -
      -you can try the following: -
      -  // in the header
      -  class PrivateLibClass; // fwd decl
      -  class PublicLibClass {
      -  ...
      -  private:
      -   class PrivateLibClass *m_pObject;
      -  };
      -  
      -  // in the .cpp file
      -  class PrivateLibClass { ... };
      -  
      -  PublicLibClass::PublicLibClass()
      -  {
      -    m_pObject = new PrivateLibClass;
      -    
      -    ...
      -  }
      -  
      -  PublicLibClass::~PublicLibClass()
      -  {
      -    delete m_pObject;
      -  }
      -
      -

      A nice side effect is that you don't need to recompile all the files -including the header if you change the PrivateLibClass declaration (it's -an example of a more general interface/implementation separation idea). -

    - -
    -
  • General recommendations
  • -While the recommendations in the previous section may not apply to you if you're -only working with perfect compilers which implement the very newest directives of -C++ standard, this section contains compiler- (and language-) independent advice -which must be followed if you wish to write correct, i.e. working, programs. It -also contains some C/C++ specific remarks in the end which are less -important. -

      -

    1. No global variables with constructors
    2. -In C++, the constructors of global variables are called before the -main() function (or WinMain() or any other program entry point) -starts executing. Thus, there is no possibility to initialize anything -before the constructor call. The order of construction is largely -implementation-defined, meaning that there is no guarantee that one global -object will be initialized before another one (except if they are both defined -in the same translation unit, i.e. .cpp file). Most importantly, no custom -memory allocation operators are installed at the moment of execution of global -variables constructors, so a (less restrictive) rule is that you should have -no global variables which allocate memory (or do anything else non-trivial) in -the constructor. Of course, if an object doesn't allocate memory in its constructor -right now, it may start making it later, so you can only be sure about this if -you don't use any variables of object (as opposed to simple: -int, ...) types. Example: currently, wxString doesn't allocate memory -in its default constructor, so you might think that having a global (initially) -empty wxString is safe. However, if wxString starts allocating some minimal -amount of memory in its default constructor (which doesn't look unreasonable), -you would have all kinds of problems with new -and delete operators (overloaded in wxWindows), especially because the first new called -is the standard one (before wxWindows overloads them) and delete will -be the overloaded operator. - -

    3. Turn on all warnings and eradicate them
    4. -Give the compiler a chance to help you - turn on all warnings! You should always -use the maximum available warning level of your compiler and understand and -correct each of them. If, for whatever reasons, a compiler gives a warning on -some perfectly legal line of code and you can't change it, please insert a -comment indicating it in the code. Most oftenly, however, all compiler warnings -may be avoided (not suppressed!) with minimal changes to your code. - -

    5. Don't rely on sizeof(int) == 2...
    6. -You should never assume any absolute constraints on data type sizes. Currently, -we have 16-bit, 32-bit and 64-bit machines and even inside each class data type -sizes are different. A small table illustrates it quite well: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Architecture/OSsizeof(short)sizeof(int)sizeof(long)sizeof(void *)
      i386/Windows 3.12242 or 4
      i386/Windows 952444
      Merced/Win642448
      Alpha/Linux????????????
      - -

    7. No assignments in conditional expressions
    8. -Although close to the heart of many C programmers (I plead guilty), code like -classical if ( (c = getchar()) != EOF ) is bad because it prevents you -from enabling "assignment in conditional expression" warning (see also -above) warning which is helpful to detect common -mistypes like if ( x = 2 ) instead of if ( x == 2 ). - -

    9. Use #if 0 rather than comments to temporarily - disable blocks of code
    10. -If you have to temporarily disable some code, use -

      -  #if 0 // VZ: I think this code is unneeded, it probably must be removed
      -    ...
      -  #endif // 0
      -
      -instead of -
      -  /*
      -    ...
      -  */
      -
      -The reason is simple: if there are any /* ... */ comments inside -... the second version will, of course, miserably fail. - -

    11. Don't use extra semi-colons on top level
    12. -Some compilers don't pay any attention to extra semicolons on top level, as in -

      -  class Foo { };;
      -
      -while others complain loudly about it. Of course, you would rarely put 2 -semicolons yourself, but it may happen if you're using a macro -(IMPLEMENT_something, for example) which already has a ';' inside and -put another one after it. -
    - -
    -
  • Unix/DOS differences
  • - Two operating systems supported by wxWindows right now are (different flavours -of) Unix and Windows 3.1/95/NT (although Mac, OS/2 and other ports exist/are -being developed as well). The main differences between them are summarized -here. - -

      -

    1. Use .cpp for C++ source file extension
    2. -There is, unfortunately, no standard exceptions for C++ source files. Different -people use .C, .cc, .cpp, .cxx, .c++ and probably several others I forgot. Some -compilers don't care about extension, but there are also other ones which can't -be made to compile any file with "wrong" extension. Such compilers are very -common in DOS/Windows land, that's why the .cpp extension is the least likely to -cause any problems - it's the standard one under DOS and will probably be -accepted by any Unix compiler as well (any counter examples?). The extension -for the header files is .h. - -

    3. Don't use backslash ('\\') in #includes
    4. -Although it's too silly to mention, please don't use backslashes in -#include preprocessor statement. Even not all Windows compilers accept -it, without speaking about all other ones. - -

    5. Avoid carriage returns in cross-platform code
    6. -This problem will hopefully not arise at all, with CVS taking care of this -stuff, however it's perhaps not useless to remember that many Unix compilers -(including, but not limited to, gcc) don't accept carriage returns -(= = '\r') in C/C++ code. - -

    7. Use only lower case filenames
    8. -DOS/Windows 3.1 isn't case sensitive, Windows 95/NT are case preserving, but not -case sensitive. To avoid all kinds of problems with compiling under Unix (or -any other fully case-sensitive OS), please use only lower case letters in the -filenames. - -

    9. Terminate the files with a new-line
    10. -While DOS/Windows compilers don't seem to mind, their Unix counterparts don't -like files without terminating new-line. Such files also give a warning message -when loaded to vim (the Unix programmer's editor of choice :-)), so please think -about terminating the last line. -

    - -
    -
  • Style choices
  • - All wxWindows specific style guidelines are specified in the next -section, here are the choices which are not completely arbitrary, -but have some deeper and not wxWindows-specific meaning. - -

      -

    1. Naming conventions: use m_ for members
    2. -It's extremely important to write readable code. One of the first steps in this -direction is the choice of naming convention. It may be quite vague or strictly -define the names of all the variables and function in the program, however it -surely must somehow allow the reader to distinguish between variable and -functions and local variables and member variables from the first glance. -

      The first requirement is commonly respected, but for some strange reasons, the -second isn't, even if it's much more important because, after all, the immediate -context usually allows you to distinguish a variable from a function in -C/C++ code. On the other hand, you cannot say what x in the -following code fragment is: -

      -  void Foo::Bar(int x_)
      -  {
      -    ...
      -      
      -    x = x_;
      -    
      -    ...
      -  }
      -
      -It might be either a local variable (unluckily the function is too long so you -don't see the variable declarations when you look at x = x_ line), a -member variable or a global variable - you have no way of knowing. -

      The wxWindows naming convention gives you, the reader of the code, much more -information about x. In the code above you know that it's a local -variable because:

      -

        -
      1. global variables are always prefixed with g_
      2. -
      3. member variables are always prefixed with m_
      4. -
      5. static variables are always prefixed with s_
      6. -
      -

      Examples: -

      -  extern int g_x; // of course, 'x' is not the best name for a global...
      -
      -  void Bar()
      -  {
      -    int x;
      -  }
      -
      -  class Foo {
      -    public:
      -      void SetX(int x) { m_x = x; }
      -    private:
      -      int m_x;
      -  };
      -
      -As you see, it also solves once and for all the old C++ programmer's question: -how to call SetX() parameter? The answer is simple: just call it -x because there is no ambiguity with Foo::m_x. -

      The prefixes can be combined to give ms_ and gs_ for static -member (a.k.a. class) variables and static global variables. -

      The convention is, of course, completely worthless if it is not followed: -nothing like being sure that x is a local variable in the code fragment -above and discovering later the following lines in the header: -

      -  class Foo {
      -    ...
      -    int x;  // I don't like wxWindows naming convention
      -  };
      -
      -Please do use these prefixes, they make your code much easier to read. Also -please notice that it has nothing to do with the so-called Hungarian notation -which is used in wxMSW part of wxWindows code and which encodes the type -of the variable in its name - it is actually quite useful in C, but has little -or no sense in C++. - -

    3. Don't use void for functions without - arguments
    4. -In ANSI C, void Foo() takes an arbitrary number of arbitrarily typed -arguments (although the form void Foo(...) is preferred) and void -Foo(void) doesn't take any arguments. In C++, however, the situation is -different and both declarations are completely equivalent. As there is no need -to write void in this situation, let's not write it - it can only be -confusing and create an impression that it really means something when it's not -at all the case. - -

    5. Don't use const for non pointer/reference - arguments
    6. -In both C and C++ an argument passed by value cannot be modified - or, more -precisely, if it is modified in the called function, only the local copy is -really changed, not the caller's variable. So, semantically speaking, there is -no difference between void Foo(int) and void Foo(const int). -However, the const keyword is confusing here, adds nothing to the code -and even cannot be removed if Foo() is virtual and overridden (because -the names are mangled differently). So, for arguments passed by value -you shouldn't use const. -

      Of course, it doesn't apply to functions such as -void PrintMessage(const char *text) where const is mandatory. -

    -
- -

- -

wxWindows rules

- - -

- -


-Please send any comments to
Vadim Zeitlin. - -
- - - diff --git a/docs/html/wxbook.htm b/docs/html/wxbook.htm deleted file mode 100644 index c40507fe9a..0000000000 --- a/docs/html/wxbook.htm +++ /dev/null @@ -1,168 +0,0 @@ - - - -wxWindows Book - - - - - - - - - - -
- -wxWindows Book - -
- -

- -

-About | -Participants | -Publication | -Suggestions | -Format | -Contents -
- -
- -

About the wxWindows book

- -Discussions have been taking place on the wxwin-developers list about -collaboratively writing a wxWindows book. The concensus is to write a tutorial -book for people with reasonable C++ experience, with the possibility of including the API reference either in a very compact -form at the back of the book, or as a separate volume. The book would almost certainly -contain a CD-ROM with wxWindows and its documentation. It would probably be available -for free on-line, publisher permitting.

- -Goals for the book:

- -

    -
  1. to allow users to become accomplished wxWindows developers rapidly; -
  2. to be useful over a longer period than just the first few weeks, since -there are a lot of complex areas to address and not all features will be -used up-front in a project; -
  3. to promote wxWindows to a wider audience; -
  4. to make at least some money for the authors. -
- -

- -Audience: beginners + experienced wxWindows users, but with reasonable C++ -knowledge.

- -It is suggested that any financial return from the book be allocated on a points system, -with a predefined number of points for chapters, indexing, editing, proof-reading etc.

- -


- -

Participants

- -So far, the following people are interested in taking part in this project:

- -

    -
  • Tom Ryan, SciTech Software. -
  • Robin Dunn. Chapter on wxPython. -
  • Matt Heck, SurveyorCorp Inc. - -
      -
    1. a case study of how and why we've used wxWindows at Surveyor Corp., and - how it's worked out so far; -
    2. an appendix something similar about how to use wxLIVID for video capture and display; -
    3. proofreading -
    -
    -
  • Julian Smart. -
  • Vadim Zeitlin. -
  • Vaclav Slavik. wxHTML section -
  • Stefan Csomor. the sequence of events i.e. which action provokes which event sequence, -this is implicit for the use on MSW, but very important for other systems; and porting to new platforms -
  • Karsten Ballueder. short tutorials on some useful -GNU tools, like autoconf/configure/make, programming -strategies, etc. -
- -
- -

Publication

- -Tom Ryan originally wrote:

- -

-Hi Guys,
-
-I just wanted to let you know that I have spoken with officials here 
-at California State University, Chico and they are potentially 
-interested in publishing a book on wxWindows!  A wxWindows 
-book would give wxWindows a great deal of exposure.
-
-These discussions came out of the fact that CSUC wanted to 
-switch from MFC to wxWindows in their GUI programming classes, 
-but there was not a book available for students to work with. 
-
-I was thinking that the first edition could be primarily the reference 
-documentation combined with a basic wxTutorial and examples. In 
-this case, it would be fairly straightforward to get something out 
-initially and then we could take it from there.
-
- -

- -Ben Allfree has also expressed an interest -in publishing a wxWindows book, and distributing it via Amazon. Ben was thinking -in terms of a quickie job using the existing reference manual.

- -Another publishing name to think of is O'Reilly. They would probably give us a lot -of guidance for style, formatting, etc.

- -Roald Ribe writes: -"Thinking in Java -is published both as a PDF for internet (by the author) and in print by Prentice Hall."

- -


- -

Suggestions and comments

- -
    -
  • Chapter on converting from MFC. (Julian Smart) -
  • A chapter on why some inconsistencies are almost always going to show up in a -multiplatform toolkit, how to avoid them, how to deal with when you have -no choice, and (if wxBook explains the internals or philosophy of -wxWindows at all) how wxWindows attempts to minimize the number we -encounter. (Matt Heck) -
  • Creating the shortest possible path to writing "Hello World" from scratch in wxWindows. (Matt Heck) -
  • How will royalties for subsequent editions be shared out? (Tom Ryan) -
  • "My personal feeling is that this project will wind up being developed -by a small team, led by an editor that will wind up doing about half -of the total amount of work." (Tom Ryan) -
- -
- -

Text format

- -This depends partly on the publisher, but one possibility is to target Word but have -submissions in a number of formats including Latex. We should eventually write a style -and formatting guide.

- -


- -

Contents

- -This is open to suggestion.

- -Last year, Mike Lorenz of VisionX -suggested this -tutorial outline, which could -be a good starting point.

- - - - - - diff --git a/docs/index.htm b/docs/index.htm deleted file mode 100644 index 7225bf9ba6..0000000000 --- a/docs/index.htm +++ /dev/null @@ -1,37 +0,0 @@ - - - -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 8a61076d3b..0000000000 Binary files a/docs/latex/porting/back.gif and /dev/null differ diff --git a/docs/latex/porting/books.bmp b/docs/latex/porting/books.bmp deleted file mode 100644 index cf1e148734..0000000000 Binary files a/docs/latex/porting/books.bmp and /dev/null differ diff --git a/docs/latex/porting/books.gif b/docs/latex/porting/books.gif deleted file mode 100644 index 036d016fb1..0000000000 Binary files a/docs/latex/porting/books.gif and /dev/null differ diff --git a/docs/latex/porting/bullet.bmp b/docs/latex/porting/bullet.bmp deleted file mode 100644 index 6481f5143b..0000000000 Binary files a/docs/latex/porting/bullet.bmp and /dev/null differ diff --git a/docs/latex/porting/contents.gif b/docs/latex/porting/contents.gif deleted file mode 100644 index 3dddfa3dd5..0000000000 Binary files a/docs/latex/porting/contents.gif and /dev/null differ diff --git a/docs/latex/porting/forward.gif b/docs/latex/porting/forward.gif deleted file mode 100644 index 88c3739ffb..0000000000 Binary files a/docs/latex/porting/forward.gif and /dev/null differ 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 bfd15ce82c..0000000000 Binary files a/docs/latex/proplist/back.gif and /dev/null differ diff --git a/docs/latex/proplist/body.tex b/docs/latex/proplist/body.tex deleted file mode 100644 index 41ff42a71f..0000000000 --- a/docs/latex/proplist/body.tex +++ /dev/null @@ -1,106 +0,0 @@ -\chapter{Introduction}\label{introduction} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -The Property Sheet Classes help the programmer to specify complex dialogs and -their relationship with their associated data. By specifying data as a -wxPropertySheet containing wxProperty objects, the programmer can use -a range of available or custom wxPropertyView classes to allow the user to -edit this data. Classes derived from wxPropertyView act as mediators between the -wxPropertySheet and the actual window (and associated panel items). - -For example, the wxPropertyListView is a kind of wxPropertyView which displays -data in a Visual Basic-style property list (see \helpref{the next section}{appearance} for -screen shots). This is a listbox containing names and values, with -an edit control and other optional controls via which the user edits the selected -data item. - -wxPropertyFormView is another kind of wxPropertyView which mediates between -the data and a panel or dialog box which has already been created. This makes it a contender for -the replacement of wxForm, since programmer-controlled layout is going to be much more -satisfactory. If automatic layout is desired, then wxPropertyListView could be used instead. - -The main intention of this class library was to provide property {\it list} behaviour, but -it has been generalised as much as possible so that the concept of a property sheet and its viewers -can reduce programming effort in a range of user interface tasks. - -For further details on the classes and how they are used, please see \helpref{Property classes overview}{propertyoverview}. - -\section{The appearance and behaviour of a property list view}\label{appearance} - -The property list, as seen in an increasing number of development tools -such as Visual Basic and Delphi, is a convenient and compact method for -displaying and editing a number of items without the need for one -control per item, and without the need for designing a special form. The -controls are as follows: - -\begin{itemize}\itemsep=0pt -\item A listbox showing the properties and their current values, which has double-click -properties dependent on the nature of the current property; -\item a text editing area at the top of the display, allowing the user to edit -the currently selected property if appropriate; -\item `confirm' and `cancel' buttons to confirm or cancel an edit (for the property, not the -whole sheet); -\item an optional list that appears when the user can make a choice from several known possible values; -\item a small Edit button to invoke `detailed editing' (perhaps showing or hiding the above value list, or -maybe invoking a common dialog); -\item optional OK/Close, Cancel and Help buttons for the whole dialog. -\end{itemize} - -The concept of `detailed editing' versus quick editing gives the user a choice -of editing mode, so novice and expert behaviour can be catered for, or the user can just -use what he feels comfortable with. - -Behaviour alters depending on the kind of property being edited. For example, a boolean value has -the following behaviour: - -\begin{itemize}\itemsep=0pt -\item Double-clicking on the item toggles between TRUE and FALSE. -\item Showing the value list enables the user to select TRUE or FALSE. -\item The user may be able to type in the word TRUE or FALSE, or the edit control -may be read-only to disallow this since it is error-prone. -\end{itemize} - -A list of strings may pop up a dialog for editing them, a simple string just allows text editing, -double-clicking a colour property may show a colour selector, double-clicking on a filename property may -show a file selector (in addition to being able to type in the name in the edit control), etc. - -Note that the `type' of property, such as string or integer, does not -necessarily determine the behaviour of the property. The programmer has -to be able to specify different behaviours for the same type, depending -on the meaning of the property. For example, a colour and a filename may -both be strings, but their editing behaviour should be different. This -is why objects of type wxPropertyValidator need to be used, to define -behaviour for a given class of properties or even specific property -name. Objects of class wxPropertyView contain a list of property -registries, which enable reuse of bunches of these validators in -different circumstances. Or a wxProperty can be explicitly set to use a -particular validator object. - -The following screen shot of the property classes test program shows the -user editing a string, which is constrained to be one of three possible -values. - -$$\image{8cm;0cm}{prop1.eps}$$\\ - -The second picture shows the user having entered a integer that -was outside the range specified to the validator. Note that in this picture, -the value list is hidden because it is not used when editing an integer. - -$$\image{8cm;0cm}{prop2.eps}$$ - -\chapter{Files}\label{files} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -The property class library comprises the following files: - -\begin{itemize}\itemsep=0pt -\item prop.h: base property class header -\item proplist.h: wxPropertyListView and associated classes -\item propform.h: wxPropertyListView and associated classes -\item prop.cpp: base property class implementation -\item proplist.cpp: wxPropertyListView and associated class implementions -\item propform.cpp: wxPropertyFormView and associated class implementions -\end{itemize} diff --git a/docs/latex/proplist/books.bmp b/docs/latex/proplist/books.bmp deleted file mode 100644 index cf1e148734..0000000000 Binary files a/docs/latex/proplist/books.bmp and /dev/null differ diff --git a/docs/latex/proplist/books.gif b/docs/latex/proplist/books.gif deleted file mode 100644 index 4c67b72954..0000000000 Binary files a/docs/latex/proplist/books.gif and /dev/null differ diff --git a/docs/latex/proplist/bullet.bmp b/docs/latex/proplist/bullet.bmp deleted file mode 100644 index aad8fc793e..0000000000 Binary files a/docs/latex/proplist/bullet.bmp and /dev/null differ diff --git a/docs/latex/proplist/changes.tex b/docs/latex/proplist/changes.tex deleted file mode 100644 index d3513d14fa..0000000000 --- a/docs/latex/proplist/changes.tex +++ /dev/null @@ -1,27 +0,0 @@ -\chapter{Change log}\label{changes} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -January - December 1998, Version 2.0 - -\begin{itemize}\itemsep=0pt -\item Conversion to wxWindows 2.0. -\end{itemize} - -November 26th 1995, Version 1.1 - -\begin{itemize}\itemsep=0pt -\item Added wxListOfStringsListValidator - allows adding, deleting, editing -strings. -\item Added wxPropertyValue::ClearList, wxPropertyValue::Delete, -wxPropertyValue::wxPropertyValue(wxStringList *). -\item Added wxPropertyValue::Set/GetModified, wxPropertySheet::SetAllModified. -\item Added wxPropertyView::OnPropertyChanged support, for immediate feedback. -\end{itemize} - -October 1995, Version 1.0 - -\begin{itemize}\itemsep=0pt -\item First release. -\end{itemize} - diff --git a/docs/latex/proplist/classes.tex b/docs/latex/proplist/classes.tex deleted file mode 100644 index 00dcfe294a..0000000000 --- a/docs/latex/proplist/classes.tex +++ /dev/null @@ -1,1785 +0,0 @@ -\chapter{Alphabetical class reference}\label{classref} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\overview{Property classes overview}{propertyoverview} - -\section{\class{wxBoolFormValidator}: wxPropertyFormValidator}\label{wxboolformvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a boolean value for a form view. The associated panel item must be a wxCheckBox. - -\membersection{wxBoolFormValidator::wxBoolFormValidator} - -\func{void}{wxBoolFormValidator}{\param{long }{flags=0}} - -Constructor. - -\section{\class{wxBoolListValidator}: wxPropertyListValidator}\label{wxboollistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a boolean value for a list view. - -\membersection{wxBoolListValidator::wxBoolListValidator} - -\func{void}{wxBoolListValidator}{\param{long }{flags=0}} - -Constructor. - -\section{\class{wxIntegerFormValidator}: wxPropertyFormValidator}\label{wxintegerformvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of integer values for a form view. The associated panel item must be a wxText -or wxSlider. - -\membersection{wxIntegerFormValidator::wxIntegerFormValidator} - -\func{void}{wxIntegerFormValidator}{\param{long }{min=0}, \param{long }{max=0}, - \param{long}{ flags=0}} - -Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check. - - -\section{\class{wxIntegerListValidator}: wxPropertyListValidator}\label{wxintegerlistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of integer values for a list view. - -\membersection{wxIntegerListValidator::wxIntegerListValidator} - -\func{void}{wxIntegerListValidator}{\param{long }{min=0}, \param{long }{max=0}, - \param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}} - -Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check. - -\section{\class{wxFilenameListValidator}: wxPropertyListValidator}\label{wxfilenamelistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a filename for a list view, allowing the user to edit it textually and also popping up -a file selector in ``detailed editing" mode. - -\membersection{wxFilenameListValidator::wxFilenameListValidator} - -\func{void}{wxFilenameListValidator}{\param{wxString }{message = ``Select a file"}, \param{wxString }{wildcard = ``*.*"}, - \param{long}{ flags=0}} - -Constructor. Supply an optional message and wildcard. - -\section{\class{wxListOfStringsListValidator}: wxPropertyListValidator}\label{wxlistofstringslistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a list of strings for a list view. When editing the property, -a dialog box is presented for adding, deleting or editing entries in the list. -At present no constraints may be supplied. - -You can construct a string list property value by constructing a wxStringList object. - -For example: - -\begin{verbatim} - myListValidatorRegistry.RegisterValidator((wxString)"stringlist", - new wxListOfStringsListValidator); - - wxStringList *strings = new wxStringList("earth", "fire", "wind", "water", NULL); - - sheet->AddProperty(new wxProperty("fred", strings, "stringlist")); -\end{verbatim} - -\membersection{wxListOfStringsListValidator::wxListofStringsListValidator} - -\func{void}{wxListOfStringsListValidator}{\param{long}{ flags=0}} - -Constructor. - -\section{\class{wxProperty}: wxObject}\label{wxproperty} - -The {\bf wxProperty} class represents a property, with a \helpref{wxPropertyValue}{wxpropertyvalue}\rtfsp -containing the actual value, a name a role, an optional validator, and -an optional associated window. - -A property might correspond to an actual C++ data member, or it -might correspond to a conceptual property, such as the width of a window. -There is no explicit data member {\it wxWindow::width}, but it may be convenient -to invent such a property for the purposes of editing attributes of the window. -The properties in the property sheet can be mapped to ``reality" by -whatever means (in this case by calling wxWindow::SetSize when the user has -finished editing the property sheet). - -A validator may be associated with the property in order to ensure that this and -only this validator will be used for editing and validating the property. -An alternative method is to use the {\it role} parameter to specify what kind -of validator would be appropriate; for example, specifying ``filename" for the role -would allow the property view to find an appropriate validator at edit time. - - -\membersection{wxProperty::wxProperty} - -\func{void}{wxProperty}{\void} - -\func{void}{wxProperty}{\param{wxProperty\& }{prop}} - -\func{void}{wxProperty}{\param{wxString}{ name}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}} - -\func{void}{wxProperty}{\param{wxString}{ name}, \param{const wxPropertyValue\&}{ val}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}} - -Constructors. - -\membersection{wxProperty::\destruct{wxProperty}} - -\func{void}{\destruct{wxProperty}}{\void} - -Destructor. Destroys the wxPropertyValue, and the property validator if there is one. However, if the -actual C++ value in the wxPropertyValue is a pointer, the data in that variable is not destroyed. - -\membersection{wxProperty::GetValue} - -\func{wxPropertyValue\&}{GetValue}{\void} - -Returns a reference to the property value. - -\membersection{wxProperty::GetValidator} - -\func{wxPropertyValidator *}{GetValidator}{\void} - -Returns a pointer to the associated property validator (if any). - -\membersection{wxProperty::GetName} - -\func{wxString\&}{GetName}{\void} - -Returns the name of the property. - -\membersection{wxProperty::GetRole} - -\func{wxRole\&}{GetRole}{\void} - -Returns the role of the property, to be used when choosing an appropriate validator. - -\membersection{wxProperty::GetWindow} - -\func{wxWindow *}{GetWindow}{\void} - -Returns the window associated with the property (if any). - -\membersection{wxProperty::SetValue} - -\func{void}{SetValue}{\param{wxPropertyValue\&}{ val}} - -Sets the value of the property. - -\membersection{wxProperty::SetName} - -\func{void}{SetName}{\param{wxString\&}{ name}} - -Sets the name of the property. - -\membersection{wxProperty::SetRole} - -\func{void}{SetRole}{\param{wxString\&}{ role}} - -Sets the role of the property. - -\membersection{wxProperty::SetValidator} - -\func{void}{SetValidator}{\param{wxPropertyValidator *}{validator}} - -Sets the validator: this will be deleted when the property is deleted. - -\membersection{wxProperty::SetWindow} - -\func{void}{SetWindow}{\param{wxWindow *}{win}} - -Sets the window associated with the property. - -\membersection{wxProperty::operator $=$} - -\func{void}{operator $=$}{\param{const wxPropertyValue\&}{ val}} - -Assignment operator. - -\section{\class{wxPropertyFormValidator}: wxPropertyValidator}\label{wxpropertyformvalidator} - -The {\bf wxPropertyFormValidator} abstract class is the root of classes that define validation -for a wxPropertyFormView. - - -\section{\class{wxPropertyFormDialog}: wxDialogBox}\label{wxpropertyformdialog} - -The {\bf wxPropertyFormDialog} class is a prepackaged dialog which can -be used for viewing a form property sheet. Pass a property form view object, and the dialog -will pass OnClose and OnDefaultAction listbox messages to the view class for -processing. - -\membersection{wxPropertyFormDialog::wxPropertyFormDialog} - -\func{void}{wxPropertyFormDialog}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title}, - \param{Bool}{ modal=FALSE}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1}, - \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}} - -Constructor. - -\membersection{wxPropertyFormDialog::\destruct{wxPropertyFormDialog}} - -\func{void}{\destruct{wxPropertyFormDialog}}{\void} - -Destructor. - - -\section{\class{wxPropertyFormFrame}: wxFrame}\label{wxpropertyformframe} - -The {\bf wxPropertyFormFrame} class is a prepackaged frame which can -be used for viewing a property form. Pass a property form view object, and the frame -will pass OnClose messages to the view class for processing. - -Call Initialize to create the panel and associate the view; override OnCreatePanel -if you wish to use a panel class other than the default wxPropertyFormPanel. - -\membersection{wxPropertyFormFrame::wxPropertyFormFrame} - -\func{void}{wxPropertyFormFrame}{\param{wxPropertyFormView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title}, - \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1}, - \param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}} - -Constructor. - -\membersection{wxPropertyFormFrame::\destruct{wxPropertyFormFrame}} - -\func{void}{\destruct{wxPropertyFormFrame}}{\void} - -Destructor. - -\membersection{wxPropertyFormFrame::GetPropertyPanel} - -\func{wxPanel *}{GetPropertyPanel}{\void} - -Returns the panel associated with the frame. - -\membersection{wxPropertyFormFrame::Initialize} - -\func{Bool}{Initialize}{\void} - -Must be called to create the panel and associate the view with the panel and frame. - -\membersection{wxPropertyFormFrame::OnCreatePanel} - -\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyFormView *}{view}} - -Creates a panel. Override this to create a panel type other than wxPropertyFormPanel. - - -\section{\class{wxPropertyFormPanel}: wxPanel}\label{wxpropertyformpanel} - -The {\bf wxPropertyFormPanel} class is a prepackaged panel which can -be used for viewing a property form. Pass a property form view object, and the panel -will pass OnDefaultAction listbox messages to the view class for -processing. - -\membersection{wxPropertyFormPanel::wxPropertyFormPanel} - -\func{void}{wxPropertyFormPanel}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent}, - \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1}, - \param{long}{ style=0}, \param{char *}{name=``panel"}} - -Constructor. - -\membersection{wxPropertyFormPanel::\destruct{wxPropertyFormPanel}} - -\func{void}{\destruct{wxPropertyFormPanel}}{\void} - -Destructor. - - - -\section{\class{wxPropertyFormValidator}: wxPropertyValidator}\label{wxpropertyformvalidatir} - -\overview{wxPropertyFormValidator overview}{wxpropertyformvalidatoroverview} - -The {\bf wxPropertyFormValidator} class defines a base class for form validators. By overriding virtual functions, -the programmer can create custom behaviour for kinds of property. - -\membersection{wxPropertyFormValidator::wxPropertyFormValidator} - -\func{void}{wxPropertyFormValidator}{\param{long}{ flags = 0}} - -Constructor. - -\membersection{wxPropertyFormValidator::\destruct{wxPropertyFormValidator}} - -\func{void}{\destruct{wxPropertyFormValidator}}{\void} - -Destructor. - -\membersection{wxPropertyFormValidator::OnCommand} - -\func{Bool}{OnCommand}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view}, - \param{wxWindow *}{parentWindow}, \param{wxCommandEvent\& }{event}} - -Called when the control corresponding to the property receives a command (if not intercepted -by a callback associated with the actual control). - -\membersection{wxPropertyFormValidator::OnCheckValue} - -\func{Bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the view checks the property value. The value checked by this validator should be taken from the -panel item corresponding to the property. - -\membersection{wxPropertyFormValidator::OnDisplayValue} - -\func{Bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view}, - \param{wxWindow *}{parentWindow}} - -Should display the property value in the appropriate control. - -\membersection{wxPropertyFormValidator::OnDoubleClick} - -\func{Bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the control corresponding to the property is double clicked (listboxes only). - -\membersection{wxPropertyFormValidator::OnRetrieveValue} - -\func{Bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view}, - \param{wxWindow *}{parentWindow}} - -Should do the transfer from the property editing area to the property itself. - - -\section{\class{wxPropertyFormView}: wxPropertyView}\label{wxpropertyformview} - -\overview{wxPropertyFormView overview}{wxpropertyformviewoverview} - -The {\bf wxPropertyFormView} class shows a wxPropertySheet as a view onto a panel or dialog -box which has already been created. - -\membersection{wxPropertyFormView::wxPropertyFormView} - -\func{void}{wxPropertyFormView}{\param{long}{ flags = 0}} - -Constructor. - -\membersection{wxPropertyFormView::\destruct{wxPropertyFormView}} - -\func{void}{\destruct{wxPropertyFormView}}{\void} - -Destructor. - -\membersection{wxPropertyFormView::AssociateNames}\label{wxpropertyformviewassociatenames} - -\func{void}{AssociateNames}{\void} - -Associates the properties with the controls on the panel. For each panel item, if the -panel item name is the same as a property name, the two objects will be associated. -This function should be called manually since the programmer may wish to do the -association manually. - -\membersection{wxPropertyFormView::Check}\label{wxpropertyformviewcheck} - -\func{Bool}{Check}{\void} - -Checks all properties by calling the appropriate validators; returns FALSE if a validation failed. - -\membersection{wxPropertyFormView::GetPanel}\label{wxpropertyformviewgetpanel} - -\func{wxPanel *}{GetPanel}{\void} - -Returns the panel associated with the view. - -\membersection{wxPropertyFormView::GetManagedWindow}\label{wxpropertyformviewgetmanagedwindow} - -\func{wxWindow *}{GetManagedWindow}{\void} - -Returns the managed window (a frame or dialog) associated with the view. - -\membersection{wxPropertyFormView::OnOk}\label{wxpropertyformviewonok} - -\func{void}{OnOk}{\void} - -Virtual function that will be called when the OK button on the physical window is pressed. -By default, checks and updates the form values, closes and deletes the frame or dialog, then deletes the view. - -\membersection{wxPropertyFormView::OnCancel}\label{wxpropertyformviewoncancel} - -\func{void}{OnCancel}{\void} - -Virtual function that will be called when the Cancel button on the physical window is pressed. -By default, closes and deletes the frame or dialog, then deletes the view. - -\membersection{wxPropertyFormView::OnHelp}\label{wxpropertyformviewonhelp} - -\func{void}{OnHelp}{\void} - -Virtual function that will be called when the Help button on the physical window is pressed. -This needs to be overridden by the application for anything interesting to happen. - -\membersection{wxPropertyFormView::OnRevert}\label{wxpropertyformviewonrevert} - -\func{void}{OnRevert}{\void} - -Virtual function that will be called when the Revert button on the physical window is pressed. -By default transfers the wxProperty values to the panel items (in effect -undoing any unsaved changes in the items). - -\membersection{wxPropertyFormView::OnUpdate}\label{wxpropertyformviewonupdate} - -\func{void}{OnUpdate}{\void} - -Virtual function that will be called when the Update button on the physical window is pressed. -By defaults transfers the displayed values to the wxProperty objects. - -\membersection{wxPropertyFormView::SetManagedWindow}\label{wxpropertyformviewsetmanagedwindow} - -\func{void}{SetManagedWindow}{\param{wxWindow *}{win}} - -Sets the managed window (a frame or dialog) associated with the view. - -\membersection{wxPropertyFormView::TransferToDialog}\label{wxpropertyformviewtransfertodialog} - -\func{Bool}{TransferToDialog}{\void} - -Transfers property values to the controls in the dialog. - -\membersection{wxPropertyFormView::TransferToPropertySheet}\label{wxpropertyformviewtransfertopropertysheet} - -\func{Bool}{TransferToPropertySheet}{\void} - -Transfers property values from the controls in the dialog to the property sheet. - - -\section{\class{wxPropertyListDialog}: wxDialogBox}\label{wxpropertylistdialog} - -The {\bf wxPropertyListDialog} class is a prepackaged dialog which can -be used for viewing a property list. Pass a property list view object, and the dialog -will pass OnClose and OnDefaultAction listbox messages to the view class for -processing. - -\membersection{wxPropertyListDialog::wxPropertyListDialog} - -\func{void}{wxPropertyListDialog}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title}, - \param{Bool}{ modal=FALSE}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1}, - \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}} - -Constructor. - -\membersection{wxPropertyListDialog::\destruct{wxPropertyListDialog}} - -\func{void}{\destruct{wxPropertyListDialog}}{\void} - -Destructor. - - -\section{\class{wxPropertyListFrame}: wxFrame}\label{wxpropertylistframe} - -The {\bf wxPropertyListFrame} class is a prepackaged frame which can -be used for viewing a property list. Pass a property list view object, and the frame -will pass OnClose messages to the view class for processing. - -Call Initialize to create the panel and associate the view; override OnCreatePanel -if you wish to use a panel class other than the default wxPropertyListPanel. - -\membersection{wxPropertyListFrame::wxPropertyListFrame} - -\func{void}{wxPropertyListFrame}{\param{wxPropertyListView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title}, - \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1}, - \param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}} - -Constructor. - -\membersection{wxPropertyListFrame::\destruct{wxPropertyListFrame}} - -\func{void}{\destruct{wxPropertyListFrame}}{\void} - -Destructor. - -\membersection{wxPropertyListFrame::GetPropertyPanel} - -\func{wxPanel *}{GetPropertyPanel}{\void} - -Returns the panel associated with the frame. - -\membersection{wxPropertyListFrame::Initialize} - -\func{Bool}{Initialize}{\void} - -Must be called to create the panel and associate the view with the panel and frame. - -\membersection{wxPropertyListFrame::OnCreatePanel} - -\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyListView *}{view}} - -Creates a panel. Override this to create a panel type other than wxPropertyListPanel. - - -\section{\class{wxPropertyListPanel}: wxPanel}\label{wxpropertylistpanel} - -The {\bf wxPropertyListPanel} class is a prepackaged panel which can -be used for viewing a property list. Pass a property list view object, and the panel -will pass OnDefaultAction listbox messages to the view class for -processing. - -\membersection{wxPropertyListPanel::wxPropertyListPanel} - -\func{void}{wxPropertyListPanel}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent}, - \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1}, - \param{long}{ style=0}, \param{char *}{name=``panel"}} - -Constructor. - -\membersection{wxPropertyListPanel::\destruct{wxPropertyListPanel}} - -\func{void}{\destruct{wxPropertyListPanel}}{\void} - -Destructor. - - - - -\section{\class{wxPropertyListValidator}: wxPropertyValidator}\label{wxpropertylistvalidator} - -\overview{wxPropertyListValidator overview}{wxpropertylistvalidatoroverview} - -The {\bf wxPropertyListValidator} abstract class is the base class for -deriving validators for property lists. - -\membersection{wxPropertyListValidator::wxPropertyListValidator} - -\func{void}{wxPropertyListValidator}{\param{long}{ flags = wxPROP\_ALLOW\_TEXT\_EDITING}} - -Constructor. - -\membersection{wxPropertyListValidator::\destruct{wxPropertyListValidator}} - -\func{void}{\destruct{wxPropertyListValidator}}{\void} - -Destructor. - -\membersection{wxPropertyListValidator::OnCheckValue} - -\func{Bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the Tick (Confirm) button is pressed or focus is list. Return FALSE if the value -was invalid, which is a signal restores the old value. Return TRUE if the value was valid. - -\membersection{wxPropertyListValidator::OnClearControls} - -\func{Bool}{OnClearControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Allows the clearing (enabling, disabling) of property list controls, when the focus leaves the current property. - -\membersection{wxPropertyListValidator::OnClearDetailControls} - -\func{Bool}{OnClearDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the focus is lost, if the validator is in detailed editing mode. - -\membersection{wxPropertyListValidator::OnDisplayValue} - -\func{Bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Should display the value in the appropriate controls. The default implementation gets the -textual value from the property and inserts it into the text edit control. - -\membersection{wxPropertyListValidator::OnDoubleClick} - -\func{Bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the property is double clicked. Extra functionality can be provided, -such as cycling through possible values. - -\membersection{wxPropertyListValidator::OnEdit} - -\func{Bool}{OnEdit}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the Edit (detailed editing) button is pressed. The default implementation -calls wxPropertyListView::BeginDetailedEditing; a filename validator (for example) overrides -this function to show the file selector. - -\membersection{wxPropertyListValidator::OnPrepareControls} - -\func{Bool}{OnPrepareControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called to allow the validator to setup the display, such enabling or disabling buttons, and -setting the values and selection in the standard listbox control (the one optionally used for displaying -value options). - -\membersection{wxPropertyListValidator::OnPrepareDetailControls} - -\func{Bool}{OnPrepareDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the property is edited `in detail', i.e. when the Edit button is pressed. - -\membersection{wxPropertyListValidator::OnRetrieveValue} - -\func{Bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when Tick (Confirm) is pressed or focus is lost or view wants to update -the property list. Should do the transfer from the property editing area to the property itself - -\membersection{wxPropertyListValidator::OnSelect} - -\func{Bool}{OnSelect}{\param{Bool}{ select}, \param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -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). - -\membersection{wxPropertyListValidator::OnValueListSelect} - -\func{Bool}{OnValueListSelect}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view}, - \param{wxWindow *}{parentWindow}} - -Called when the value listbox is selected. The default behaviour is to copy -string to text control, and retrieve the value into the property. - - - -\section{\class{wxPropertyListView}: wxPropertyView}\label{wxpropertylistview} - -\overview{wxPropertyListView overview}{wxpropertylistviewoverview} - -The {\bf wxPropertyListView} class shows a wxPropertySheet as a Visual Basic-style property list. - -\membersection{wxPropertyListView::wxPropertyListView} - -\func{void}{wxPropertyListView}{\param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}} - -Constructor. - -The {\it flags} argument can be a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxPROP\_BUTTON\_CLOSE -\item wxPROP\_BUTTON\_OK -\item wxPROP\_BUTTON\_CANCEL -\item wxPROP\_BUTTON\_CHECK\_CROSS -\item wxPROP\_BUTTON\_HELP -\item wxPROP\_DYNAMIC\_VALUE\_FIELD -\item wxPROP\_PULLDOWN -\end{itemize} - -\membersection{wxPropertyListView::\destruct{wxPropertyListView}} - -\func{void}{\destruct{wxPropertyListView}}{\void} - -Destructor. - -\membersection{wxPropertyListView::AssociatePanel}\label{wxpropertylistviewassociatepanel} - -\func{void}{AssociatePanel}{\param{wxPanel *}{panel}} - -Associates the window on which the controls will be displayed, with the view (sets an internal pointer to the window). - -\membersection{wxPropertyListView::BeginShowingProperty}\label{wxpropertylistviewbeginshowingproperty} - -\func{Bool}{BeginShowingProperty}{\param{wxProperty *}{property}} - -Finds the appropriate validator and loads the property into the controls, by calling -wxPropertyValidator::OnPrepareControls and then wxPropertyListView::DisplayProperty. - -\membersection{wxPropertyListView::DisplayProperty}\label{wxpropertylistviewdisplayproperty} - -\func{Bool}{DisplayProperty}{\param{wxProperty *}{property}} - -Calls wxPropertyValidator::OnDisplayValue for the current property's validator. This function -gets called by wxPropertyListView::BeginShowingProperty, which is in turn called -from ShowProperty, called by OnPropertySelect, called by the listbox callback when selected. - -\membersection{wxPropertyListView::EndShowingProperty}\label{wxpropertylistviewendshowingproperty} - -\func{Bool}{EndShowingProperty}{\param{wxProperty *}{property}} - -Finds the appropriate validator and unloads the property from the controls, by calling -wxPropertyListView::RetrieveProperty, wxPropertyValidator::OnClearControls and (if we're in -detailed editing mdoe) wxPropertyValidator::OnClearDetailControls. - -\membersection{wxPropertyListView::GetPanel}\label{wxpropertylistviewgetpanel} - -\func{wxPanel *}{GetPanel}{\void} - -Returns the panel associated with the view. - -\membersection{wxPropertyListView::GetManagedWindow}\label{wxpropertylistviewgetmanagedwindow} - -\func{wxWindow *}{GetManagedWindow}{\void} - -Returns the managed window (a frame or dialog) associated with the view. - -\membersection{wxPropertyListView::GetWindowCancelButton}\label{wxpropertylistviewgetwindowcancelbutton} - -\func{wxButton *}{GetWindowCancelButton}{\void} - -Returns the window cancel button, if any. - -\membersection{wxPropertyListView::GetWindowCloseButton}\label{wxpropertylistviewgetwindowclosebutton} - -\func{wxButton *}{GetWindowCloseButton}{\void} - -Returns the window close or OK button, if any. - -\membersection{wxPropertyListView::GetWindowHelpButton}\label{wxpropertylistviewgetwindowhelpbutton} - -\func{wxButton *}{GetWindowHelpButton}{\void} - -Returns the window help button, if any. - -\membersection{wxPropertyListView::SetManagedWindow}\label{wxpropertylistviewsetmanagedwindow} - -\func{void}{SetManagedWindow}{\param{wxWindow *}{win}} - -Sets the managed window (a frame or dialog) associated with the view. - -\membersection{wxPropertyListView::UpdatePropertyDisplayInList}\label{wxpropertylistviewupdatepropdisplay} - -\func{Bool}{UpdatePropertyDisplayInList}{\param{wxProperty *}{property}} - -Updates the display for the given changed property. - -\membersection{wxPropertyListView::UpdatePropertyList}\label{wxpropertylistviewupdateproplist} - -\func{Bool}{UpdatePropertyList}{\param{Bool }{clearEditArea = TRUE}} - -Updates the whole property list display. - - -\section{\class{wxPropertySheet}: wxObject}\label{wxpropertysheet} - -\overview{wxPropertySheet overview}{wxpropertysheetoverview} - -The {\bf wxPropertySheet} class is used for storing a number of -wxProperty objects (essentially names and values). - -\membersection{wxPropertySheet::wxPropertySheet} - -\func{void}{wxPropertySheet}{\param{const wxString}{ name = ""}} - -Constructor. Sets property sheet's name to name if present. - -\membersection{wxPropertySheet::\destruct{wxPropertySheet}} - -\func{void}{\destruct{wxPropertySheet}}{\void} - -Destructor. Destroys all contained properties. - -\membersection{wxPropertySheet::AddProperty}\label{wxpropertysheetaddproperty} - -\func{void}{AddProperty}{\param{wxProperty *}{property}} - -Adds a property to the sheet. - -\membersection{wxPropertySheet::Clear}\label{wxpropertysheetclear} - -\func{void}{Clear}{\void} - -Clears all the properties from the sheet (deleting them). - -\membersection{wxPropertySheet::GetName}\label{wxpropertysheetgetname} - -\func{wxString}{GetName}{\void} - -Gets the sheet's name. - -\membersection{wxPropertySheet::GetProperty}\label{wxpropertysheetgetproperty} - -\func{wxProperty *}{GetProperty}{\param{wxString}{ name}} - -Gets a property by name. - -\membersection{wxPropertySheet::GetProperties}\label{wxpropertysheetgetproperties} - -\func{wxList\&}{GetProperties}{\void} - -Returns a reference to the internal list of properties. - -\membersection{wxPropertySheet::HasProperty}\label{wxpropertysheethasproperty} - -\func{bool}{HasProperty}{\param{wxString}{ propname}} - -Returns true if sheet contains property propname. - -\membersection{wxPropertySheet::RemoveProperty}\label{wxpropertysheetremoveproperty} - -\func{void}{RemoveProperty}{\param{wxString}{ propname}} - -Removes property propname from sheet, deleting it. - -\membersection{wxPropertySheet::SetName}\label{wxpropertysheetsetname} - -\func{void}{SetName}{\param{wxString}{ sheetname}} - -Set the sheet's name to sheetname - -\membersection{wxPropertySheet::SetProperty}\label{wxpropertysheetsetproperty} - -\func{bool}{SetProperty}{\param{wxString}{ propname}, \param{wxPropertyValue}{ value}} - -Sets property propname to value. Returns false if property is not a member of sheet. - -\membersection{wxPropertySheet::SetAllModified} - -\func{void}{SetAllModified}{\param{Bool}{ flag}} - -Sets the `modified' flag of each property value. - - - -\section{\class{wxPropertyValidator}: wxEvtHandler}\label{wxpropertyvalidator} - -\overview{wxPropertyValidator overview}{wxpropertyvalidatoroverview} - -The {\bf wxPropertyValidator} abstract class is the base class for deriving -validators for properties. - -\membersection{wxPropertyValidator::wxPropertyValidator} - -\func{void}{wxPropertyValidator}{\param{long}{ flags = 0}} - -Constructor. - -\membersection{wxPropertyValidator::\destruct{wxPropertyValidator}} - -\func{void}{\destruct{wxPropertyValidator}}{\void} - -Destructor. - -\membersection{wxPropertyValidator::GetFlags} - -\func{long}{GetFlags}{\void} - -Returns the flags for the validator. - -\membersection{wxPropertyValidator::GetValidatorProperty} - -\func{wxProperty *}{GetValidatorProperty}{\void} - -Gets the property for the validator. - -\membersection{wxPropertyValidator::SetValidatorProperty} - -\func{void}{SetValidatorProperty}{\param{wxProperty *}{property}} - -Sets the property for the validator. - - -\section{\class{wxPropertyValidatorRegistry}: wxHashTable}\label{wxpropertyvalidatorregistry} - -The {\bf wxPropertyValidatorRegistry} class is used for storing validators, -indexed by the `role name' of the property, by which groups of property -can be identified for the purpose of validation and editing. - -\membersection{wxPropertyValidatorRegistry::wxPropertyValidatorRegistry} - -\func{void}{wxPropertyValidatorRegistry}{\void} - -Constructor. - -\membersection{wxPropertyValidatorRegistry::\destruct{wxPropertyValidatorRegistry}} - -\func{void}{\destruct{wxPropertyValidatorRegistry}}{\void} - -Destructor. - -\membersection{wxPropertyValidatorRegistry::Clear} - -\func{void}{ClearRegistry}{\void} - -Clears the registry, deleting the validators. - -\membersection{wxPropertyValidatorRegistry::GetValidator} - -\func{wxPropertyValidator *}{GetValidator}{\param{wxString\& }{roleName}} - -Retrieve a validator by the property role name. - -\membersection{wxPropertyValidatorRegistry::RegisterValidator}\label{wxpropertyvalidatorregistervalidator} - -\func{void}{RegisterValidator}{\param{wxString\& }{roleName}, \param{wxPropertyValidator *}{validator}} - -Register a validator with the registry. {\it roleName} is a name indicating the -role of the property, such as ``filename''. Later, when a validator is chosen for -editing a property, this role name is matched against the class names of the property, -if the property does not already have a validator explicitly associated with it. - - -\section{\class{wxPropertyValue}: wxObject}\label{wxpropertyvalue} - -The {\bf wxPropertyValue} class represents the value of a property, -and is normally associated with a wxProperty object. - -A wxPropertyValue has one of the following types: - -\begin{itemize}\itemsep=0pt -\item wxPropertyValueNull -\item wxPropertyValueInteger -\item wxPropertyValueReal -\item wxPropertyValueBool -\item wxPropertyValueString -\item wxPropertyValueList -\item wxPropertyValueIntegerPtr -\item wxPropertyValueRealPtr -\item wxPropertyValueBoolPtr -\item wxPropertyValueStringPtr -\end{itemize} - -\membersection{wxPropertyValue::wxPropertyValue} - -\func{void}{wxPropertyValue}{\void} - -Default constructor. - -\func{void}{wxPropertyValue}{\param{const wxPropertyValue\& }{copyFrom}} - -Copy constructor. - -\func{void}{wxPropertyValue}{\param{char *}{val}} - -Construction from a string value. - -\func{void}{wxPropertyValue}{\param{long}{ val}} - -Construction from an integer value. You may need to cast to (long) to -avoid confusion with other constructors (such as the Bool constructor). - -\func{void}{wxPropertyValue}{\param{Bool}{ val}} - -Construction from a boolean value. - -\func{void}{wxPropertyValue}{\param{float}{ val}} - -Construction from a floating point value. - -\func{void}{wxPropertyValue}{\param{double}{ val}} - -Construction from a floating point value. - -\func{void}{wxPropertyValue}{\param{wxList *}{ val}} - -Construction from a list of wxPropertyValue objects. The -list, but not each contained wxPropertyValue, will be deleted -by the constructor. The wxPropertyValues will be assigned to -this wxPropertyValue list. In other words, so do not delete wxList or -its data after calling this constructor. - -\func{void}{wxPropertyValue}{\param{wxStringList *}{ val}} - -Construction from a list of strings. The list (including the strings -contained in it) will be deleted by the constructor, so do not -destroy {\it val} explicitly. - -\func{void}{wxPropertyValue}{\param{char **}{val}} - -Construction from a string pointer. - -\func{void}{wxPropertyValue}{\param{long *}{val}} - -Construction from an integer pointer. - -\func{void}{wxPropertyValue}{\param{Bool *}{val}} - -Construction from an boolean pointer. - -\func{void}{wxPropertyValue}{\param{float *}{val}} - -Construction from a floating point pointer. - -The last four constructors use pointers to various C++ types, and do not -store the types themselves; this allows the values to stand in for actual -data values defined elsewhere. - -\membersection{wxPropertyValue::\destruct{wxPropertyValue}} - -\func{void}{\destruct{wxPropertyValue}}{\void} - -Destructor. - -\membersection{wxPropertyValue::Append} - -\func{void}{Append}{\param{wxPropertyValue *}{expr}} - -Appends a property value to the list. - -\membersection{wxPropertyValue::BoolValue} - -\func{Bool}{BoolValue}{\void} - -Returns the boolean value. - -\membersection{wxPropertyValue::BoolValuePtr} - -\func{Bool *}{BoolValuePtr}{\void} - -Returns the pointer to the boolean value. - -\membersection{wxPropertyValue::ClearList} - -\func{void}{ClearList}{\void} - -Deletes the contents of the list. - -\membersection{wxPropertyValue::Delete} - -\func{void}{Delete}{\param{wxPropertyValue *}{expr}} - -Deletes {\it expr} from this list. - -\membersection{wxPropertyValue::GetFirst} - -\func{wxPropertyValue *}{GetFirst}{\void} - -Gets the first value in the list. - -\membersection{wxPropertyValue::GetLast} - -\func{wxPropertyValue *}{GetFirst}{\void} - -Gets the last value in the list. - -\membersection{wxPropertyValue::GetModified} - -\func{Bool}{GetModified}{\void} - -Returns TRUE if the value was modified since being created -(or since SetModified was called). - -\membersection{wxPropertyValue::GetNext} - -\func{wxPropertyValue *}{GetNext}{\void} - -Gets the next value in the list (the one after `this'). - -\membersection{wxPropertyValue::GetStringRepresentation} - -\func{wxString}{GetStringRepresentation}{\void} - -Gets a string representation of the value. - -\membersection{wxPropertyValue::IntegerValue} - -\func{long}{IntegerValue}{\void} - -Returns the integer value. - -\membersection{wxPropertyValue::Insert} - -\func{void}{Insert}{\param{wxPropertyValue *}{expr}} - -Inserts a property value at the front of a list. - -\membersection{wxPropertyValue::IntegerValuePtr} - -\func{long *}{IntegerValuePtr}{\void} - -Returns the pointer to the integer value. - -\membersection{wxPropertyValue::Nth} - -\func{wxPropertyValue *}{Nth}{\param{int}{ n}} - -Returns the nth value of a list expression (starting from zero). - -\membersection{wxPropertyValue::Number} - -\func{int}{Number}{\void} - -Returns the number of elements in a list expression. - -\membersection{wxPropertyValue::RealValue} - -\func{float}{RealValue}{\void} - -Returns the floating point value. - -\membersection{wxPropertyValue::RealValuePtr} - -\func{float *}{RealValuePtr}{\void} - -Returns the pointer to the floating point value. - -\membersection{wxPropertyValue::SetModified} - -\func{void}{SetModified}{\param{Bool}{ flag}} - -Sets the `modified' flag. - -\membersection{wxPropertyValue::StringValue} - -\func{char *}{StringValue}{\void} - -Returns the string value. - -\membersection{wxPropertyValue::StringValuePtr} - -\func{char **}{StringValuePtr}{\void} - -Returns the pointer to the string value. - -\membersection{wxPropertyValue::Type} - -\func{wxPropertyValueType}{Type}{\void} - -Returns the value type. - -\membersection{wxPropertyValue::operator $=$} - -\func{void}{operator $=$}{\param{const wxPropertyValue\& }{val}} - -\func{void}{operator $=$}{\param{const char *}{val}} - -\func{void}{operator $=$}{\param{const long }{val}} - -\func{void}{operator $=$}{\param{const Bool }{val}} - -\func{void}{operator $=$}{\param{const float }{val}} - -\func{void}{operator $=$}{\param{const char **}{val}} - -\func{void}{operator $=$}{\param{const long *}{val}} - -\func{void}{operator $=$}{\param{const Bool *}{val}} - -\func{void}{operator $=$}{\param{const float *}{val}} - -Assignment operators. - - - -\section{\class{wxPropertyView}: wxEvtHandler}\label{wxpropertyview} - -\overview{wxPropertyView overview}{wxpropertyviewoverview} - -The {\bf wxPropertyView} abstract class is the base class for views -of property sheets, acting as intermediaries between properties and -actual windows. - -\membersection{wxPropertyView::wxPropertyView} - -\func{void}{wxPropertyView}{\param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}} - -Constructor. - -The {\it flags} argument can be a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxPROP\_BUTTON\_CLOSE -\item wxPROP\_BUTTON\_OK -\item wxPROP\_BUTTON\_CANCEL -\item wxPROP\_BUTTON\_CHECK\_CROSS -\item wxPROP\_BUTTON\_HELP -\item wxPROP\_DYNAMIC\_VALUE\_FIELD -\item wxPROP\_PULLDOWN -\end{itemize} - -\membersection{wxPropertyView::\destruct{wxPropertyView}} - -\func{void}{\destruct{wxPropertyView}}{\void} - -Destructor. - -\membersection{wxPropertyView::AddRegistry}\label{wxpropertyviewaddregistry} - -\func{void}{AddRegistry}{\param{wxPropertyValidatorRegistry *}{registry}} - -Adds a registry (list of property validators) the view's list of registries, which is initially empty. - -\membersection{wxPropertyView::FindPropertyValidator}\label{wxpropertyviewfindpropertyvalidator} - -\func{wxPropertyValidator *}{FindPropertyValidator}{\param{wxProperty *}{property}} - -Finds the property validator that is most appropriate to this property. - -\membersection{wxPropertyView::GetPropertySheet}\label{wxpropertyviewgetpropertysheet} - -\func{wxPropertySheet *}{GetPropertySheet}{\void} - -Gets the property sheet for this view. - -\membersection{wxPropertyView::GetRegistryList}\label{wxpropertyviewgetregistrylist} - -\func{wxList\&}{GetRegistryList}{\void} - -Returns a reference to the list of property validator registries. - -\membersection{wxPropertyView::OnOk}\label{wxpropertyviewonok} - -\func{void}{OnOk}{\void} - -Virtual function that will be called when the OK button on the physical window is pressed (if it exists). - -\membersection{wxPropertyView::OnCancel}\label{wxpropertyviewoncancel} - -\func{void}{OnCancel}{\void} - -Virtual function that will be called when the Cancel button on the physical window is pressed (if it exists). - -\membersection{wxPropertyView::OnClose}\label{wxpropertyviewonclose} - -\func{Bool}{OnClose}{\void} - -Virtual function that will be called when the physical window is closed. The default implementation returns FALSE. - -\membersection{wxPropertyView::OnHelp}\label{wxpropertyviewonhelp} - -\func{void}{OnHelp}{\void} - -Virtual function that will be called when the Help button on the physical window is pressed (if it exists). - -\membersection{wxPropertyView::OnPropertyChanged}\label{wxpropertyviewonpropertychanged} - -\func{void}{OnPropertyChanged}{\param{wxProperty *}{property}} - -Virtual function called by a view or validator when a property's value changed. Validators -must be written correctly for this to be called. You can override this function -to respond immediately to property value changes. - -\membersection{wxPropertyView::OnUpdateView}\label{wxpropertyviewonupdateview} - -\func{Bool}{OnUpdateView}{\void} - -Called by the viewed object to update the view. The default implementation just returns -FALSE. - -\membersection{wxPropertyView::SetPropertySheet}\label{wxpropertyviewsetpropertysheet} - -\func{void}{SetPropertySheet}{\param{wxPropertySheet *}{sheet}} - -Sets the property sheet for this view. - -\membersection{wxPropertyView::ShowView}\label{wxpropertyviewshowview} - -\func{void}{ShowView}{\param{wxPropertySheet *}{sheet}, \param{wxPanel *}{panel}} - -Associates this view with the given panel, and shows the view. - -\section{\class{wxRealFormValidator}: wxPropertyFormValidator}\label{wxrealformvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of real values for form views. The associated panel item must be a wxText. - -\membersection{wxRealFormValidator::wxRealFormValidator} - -\func{void}{wxRealFormValidator}{\param{float }{min=0.0}, \param{float }{max=0.0}, - \param{long}{ flags=0}} - -Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check. - - -\section{\class{wxStringFormValidator}: wxPropertyFormValidator}\label{wxstringformvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a string value for a form view, with an optional choice of possible values. -The associated panel item must be a wxText, wxListBox or wxChoice. For wxListBox and wxChoice items, -if the item is empty, the validator attempts to initialize the item from the strings in -the validator. Note that this does not happen for XView wxChoice items since XView cannot reinitialize a wxChoice. - -\membersection{wxStringFormValidator::wxStringFormValidator} - -\func{void}{wxStringFormValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}} - -Constructor. Supply a list of strings to indicate a choice, or no strings to allow the -user to freely edit the string. The string list will be deleted when the validator is deleted. - - -\section{\class{wxRealListValidator}: wxPropertyListValidator}\label{wxreallistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of real values for property lists. - -\membersection{wxRealListValidator::wxreallistvalidator} - -\func{void}{wxRealListValidator}{\param{float }{min=0.0}, \param{float }{max=0.0}, - \param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}} - -Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check. - - -\section{\class{wxStringListValidator}: wxPropertyListValidator}\label{wxstringlistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a string value, with an optional choice of possible values. - -\membersection{wxStringListValidator::wxStringListValidator} - -\func{void}{wxStringListValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}} - -Constructor. Supply a list of strings to indicate a choice, or no strings to allow the -user to freely edit the string. The string list will be deleted when the validator is deleted. - - -\chapter{Classes by category}\label{classesbycat} - -A classification of property sheet classes by category. - -\section{Data classes} - -\begin{itemize}\itemsep=0pt -\item \helpref{wxProperty}{wxproperty} -\item \helpref{wxPropertyValue}{wxpropertyvalue} -\item \helpref{wxPropertySheet}{wxpropertysheet} -\end{itemize} - - -\section{Validator classes}\label{validatorclasses} - -Validators check that the values the user has entered for a property are -valid. They can also define specific ways of entering data, such as a -file selector for a filename, and they are responsible for transferring -values between the wxProperty and the physical display. - -Base classes: - -\begin{itemize}\itemsep=0pt -\item \helpref{wxPropertyValidator}{wxproperty} -\item \helpref{wxPropertyListValidator}{wxpropertylistvalidator} -\item \helpref{wxPropertyFormValidator}{wxpropertyformvalidator} -\end{itemize} - -List view validators: - -\begin{itemize}\itemsep=0pt -\item \helpref{wxBoolListValidator}{wxboollistvalidator} -\item \helpref{wxFilenameListValidator}{wxfilenamelistvalidator} -\item \helpref{wxIntegerListValidator}{wxintegerlistvalidator} -\item \helpref{wxListOfStringsListValidator}{wxlistofstringslistvalidator} -\item \helpref{wxRealListValidator}{wxreallistvalidator} -\item \helpref{wxStringListValidator}{wxstringlistvalidator} -\end{itemize} - -Form view validators: - -\begin{itemize}\itemsep=0pt -\item \helpref{wxBoolFormValidator}{wxboolformvalidator} -\item \helpref{wxIntegerFormValidator}{wxintegerformvalidator} -\item \helpref{wxRealFormValidator}{wxrealformvalidator} -\item \helpref{wxStringFormValidator}{wxstringformvalidator} -\end{itemize} - -\section{View classes}\label{viewclasses} - -View classes mediate between a property sheet and a physical window. - -\begin{itemize}\itemsep=0pt -\item \helpref{wxPropertyView}{wxpropertyview} -\item \helpref{wxPropertyListView}{wxpropertylistview} -\item \helpref{wxPropertyFormView}{wxpropertyformview} -\end{itemize} - -\section{Window classes}\label{windowclasses} - -The class library defines some window classes that can be used as-is with a suitable -view class and property sheet. - -\begin{itemize}\itemsep=0pt -\item \helpref{wxPropertyFormFrame}{wxpropertyformframe} -\item \helpref{wxPropertyFormDialog}{wxpropertyformdialog} -\item \helpref{wxPropertyFormPanel}{wxpropertyformpanel} -\item \helpref{wxPropertyListFrame}{wxpropertylistframe} -\item \helpref{wxPropertyListDialog}{wxpropertylistdialog} -\item \helpref{wxPropertyListPanel}{wxpropertylistpanel} -\end{itemize} - -\section{Registry classes} - -A validator registry is a list of validators that can be applied to properties in a property sheet. -There may be one or more registries per property view. - -\begin{itemize}\itemsep=0pt -\item \helpref{wxPropertyValidatorRegistry}{wxpropertyvalidatorregistry} -\end{itemize} - - -\chapter{Topic overviews}\label{overviews} - -This chapter contains a selection of topic overviews. - -\section{Property classes overview}\label{propertyoverview} - -The property classes help a programmer to express relationships between -data and physical windows, in particular: - -\begin{itemize}\itemsep=0pt -\item the transfer of data to and from the physical controls; -\item the behaviour of various controls and custom windows for particular -types of data; -\item the validation of data, notifying the user when incorrect data is entered, -or even better, constraining the input so only valid data can be entered. -\end{itemize} - -With a consistent framework, the programmer should be able to use existing -components and design new ones in a principled manner, to solve many data entry -requirements. - -Each datum is represented in a \helpref{wxProperty}{wxproperty}, which has a name and a value. -Various C++ types are permitted in the value of a property, and the property can store a pointer -to the data instead of a copy of the data. A \helpref{wxPropertySheet}{wxpropertysheet} represents a number of these properties. - -These two classes are independent from the way in which the data is visually manipulated. To -mediate between property sheets and windows, the abstract class \helpref{wxPropertyView}{wxpropertyview} is -available for programmers to derive new kinds of view. One kind of view that is available is the \helpref{wxPropertyListView}{wxpropertylistview}, -which displays the data in a Visual Basic-style list, with a small number of controls for editing -the currently selected property. Another is \helpref{wxPropertyFormView}{wxpropertyformview} which -mediates between an existing dialog or panel and the property sheet. - -The hard work of mediation is actually performed by validators, which are instances of classes -derived from \helpref{wxPropertyValidator}{wxpropertyvalidator}. A validator is associated with -a particular property and is responsible for -responding to user interface events, and displaying, updating and checking the property value. -Because a validator's behaviour depends largely on the kind of view being used, there has to be -a separate hierarchy of validators for each class of view. So for wxPropertyListView, there is -an abstract class \helpref{wxPropertyListValidator}{wxpropertylistvalidator} from which concrete -classes are derived, such as \helpref{wxRealListValidator}{wxreallistvalidator} and -\rtfsp\helpref{wxStringListValidator}{wxstringlistvalidator}. - -A validator can be explicitly set for a property, so there is no doubt which validator -should be used to edit that property. However, it is also possible to define a registry -of validators, and have the validator chosen on the basis of the {\it role} of the property. -So a property with a ``filename" role would match the ``filename" validator, which pops -up a file selector when the user double clicks on the property. - -You don't have to define your own frame or window classes: there are some predefined -that will work with the property list view. See \helpref{Window classes}{windowclasses} for -further details. - -\subsection{Example 1: Property list view} - -The following code fragment shows the essentials of creating a registry of -standard validators, a property sheet containing some properties, and -a property list view and dialog or frame. RegisterValidators will be -called on program start, and PropertySheetTest is called in response to a -menu command. - -Note how some properties are created with an explicit reference to -a validator, and others are provided with a ``role'' which can be matched -against a validator in the registry. - -The interface generated by this test program is shown in the section \helpref{Appearance and -behaviour of a property list view}{appearance}. - -\begin{verbatim} -void 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); -} - -void PropertyListTest(Bool useDialog) -{ - 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))); - - wxPropertyListView *view = - new wxPropertyListView(NULL, - wxPROP_BUTTON_CHECK_CROSS|wxPROP_DYNAMIC_VALUE_FIELD|wxPROP_PULLDOWN); - - wxDialogBox *propDialog = NULL; - wxPropertyListFrame *propFrame = NULL; - if (useDialog) - { - propDialog = new wxPropertyListDialog(view, NULL, "Property Sheet Test", TRUE, -1, -1, 400, 500); - } - else - { - propFrame = new wxPropertyListFrame(view, NULL, "Property Sheet Test", -1, -1, 400, 500); - } - - 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); - } -} -\end{verbatim} - -\subsection{Example 2: Property form view} - -This example is similar to Example 1, but uses a property form view to -edit a property sheet using a predefined dialog box. - -\begin{verbatim} -void RegisterValidators(void) -{ - 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 PropertyFormTest(Bool useDialog) -{ - 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 wxPropertyFormDialog(view, NULL, "Property Form Test", TRUE, -1, -1, 400, 300); - } - else - { - propFrame = new wxPropertyFormFrame(view, NULL, "Property Form Test", -1, -1, 400, 300); - propFrame->Initialize(); - } - - wxPanel *panel = propDialog ? propDialog : propFrame->GetPropertyPanel(); - panel->SetLabelPosition(wxVERTICAL); - - // Add items to the panel - - (void) new wxButton(panel, (wxFunction)NULL, "OK", -1, -1, -1, -1, 0, "ok"); - (void) new wxButton(panel, (wxFunction)NULL, "Cancel", -1, -1, 80, -1, 0, "cancel"); - (void) new wxButton(panel, (wxFunction)NULL, "Update", -1, -1, 80, -1, 0, "update"); - (void) new wxButton(panel, (wxFunction)NULL, "Revert", -1, -1, -1, -1, 0, "revert"); - panel->NewLine(); - - // The name of this text item matches the "fred" property - (void) new wxText(panel, (wxFunction)NULL, "Fred", "", -1, -1, 90, -1, 0, "fred"); - (void) new wxCheckBox(panel, (wxFunction)NULL, "Yes or no", -1, -1, -1, -1, 0, "tough choice"); - (void) new wxSlider(panel, (wxFunction)NULL, "Sliding scale", 0, -50, 50, 100, -1, -1, wxHORIZONTAL, "ian"); - panel->NewLine(); - (void) new wxListBox(panel, (wxFunction)NULL, "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); - } -} -\end{verbatim} - -\section{Validator classes overview}\label{validatoroverview} - -Classes: \helpref{Validator classes}{validatorclasses} - -The validator classes provide functionality for mediating between a wxProperty and -the actual display. There is a separate family of validator classes for each -class of view, since the differences in user interface for these views implies -that little common functionality can be shared amongst validators. - -\subsection{wxPropertyValidator overview}\label{wxpropertyvalidatoroverview} - -Class: \helpref{wxPropertyValidator}{wxpropertyvalidator} - -This class is the root of all property validator classes. It contains a small -amount of common functionality, including functions to convert between -strings and C++ values. - -A validator is notionally an object which sits between a property and its displayed -value, and checks that the value the user enters is correct, giving an error message -if the validation fails. In fact, the validator does more than that, and is akin to -a view class but at a finer level of detail. It is also responsible for -loading the dialog box control with the value from the property, putting it back -into the property, preparing special controls for editing the value, and -may even invoke special dialogs for editing the value in a convenient way. - -In a property list dialog, there is quite a lot of scope for supplying custom dialogs, -such as file or colour selectors. For a form dialog, there is less scope because -there is no concept of `detailed editing' of a value: one control is associated with -one property, and there is no provision for invoking further dialogs. The reader -may like to work out how the form view could be extended to provide some of the -functionality of the property list! - -Validator objects may be associated explictly with a wxProperty, or they may be -indirectly associated by virtue of a property `kind' that matches validators having -that kind. In the latter case, such validators are stored in a validator registry -which is passed to the view before the dialog is shown. If the validator takes -arguments, such as minimum and maximum values in the case of a wxIntegerListValidator, -then the validator must be associated explicitly with the property. The validator -will be deleted when the property is deleted. - -\subsection{wxPropertyListValidator overview}\label{wxpropertylistvalidatoroverview} - -Class: \helpref{wxPropertyListValidator}{wxpropertylistvalidator} - -This class is the abstract base class for property list view validators. -The list view acts upon a user interface containing a list of properties, -a text item for direct property value editing, confirm/cancel buttons for the value, -a pulldown list for making a choice between values, and OK/Cancel/Help buttons -for the dialog (see \helpref{property list appearance}{appearance}). - -By overriding virtual functions, the programmer can create custom -behaviour for different kinds of property. Custom behaviour can use just the -available controls on the property list dialog, or the validator can -invoke custom editors with quite different controls, which pop up in -`detailed editing' mode. - -See the detailed class documentation for the members you should override -to give your validator appropriate behaviour. - -\subsection{wxPropertyFormValidator overview}\label{wxpropertyformvalidatoroverview} - -This class is the abstract base class for property form view validators. -The form view acts upon an existing dialog box or panel, where either the -panel item names correspond to property names, or the programmer has explicitly -associated the panel item with the property. - -By overriding virtual functions, the programmer determines how -values are displayed or retrieved, and the checking that the validator does. - -See the detailed class documentation for the members you should override -to give your validator appropriate behaviour. - -\section{View classes overview}\label{viewoverview} - -Classes: \helpref{View classes}{viewclasses} - -An instance of a view class relates a property sheet with an actual window. -Currently, there are two classes of view: wxPropertyListView and wxPropertyFormView. - -\subsection{wxPropertyView overview}\label{wxpropertyviewoverview} - -Class: \helpref{wxPropertyView}{wxpropertyview} - -This is the abstract base class for property views. - -\subsection{wxPropertyListView overview}\label{wxpropertylistviewoverview} - -Class: \helpref{wxPropertyListView}{wxpropertylistview} - -The property list view defines the relationship between a property sheet and -a property list dialog or panel. It manages user interface events such as -clicking on a property, pressing return in the text edit field, and clicking -on Confirm or Cancel. These events cause member functions of the -class to be called, and these in turn may call member functions of -the appropriate validator to be called, to prepare controls, check the property value, -invoke detailed editing, etc. - -\subsection{wxPropertyFormView overview}\label{wxpropertyformviewoverview} - -Class: \helpref{wxPropertyFormView}{wxpropertyformview} - -The property form view manages the relationship between a property sheet -and an existing dialog or panel. - -You must first create a panel or dialog box for the view to work on. -The panel should contain panel items with names that correspond to -properties in your property sheet; or you can explicitly set the -panel item for each property. - -Apart from any custom panel items that you wish to control independently -of the property-editing items, wxPropertyFormView takes over the -processing of item events. It can also control normal dialog behaviour such -as OK, Cancel, so you should also create some standard buttons that the property view -can recognise. Just create the buttons with standard names and the view -will do the rest. The following button names are recognised: - -\begin{itemize}\itemsep=0pt -\item {\bf ok}: indicates the OK button. Calls wxPropertyFormView::OnOk. By default, -checks and updates the form values, closes and deletes the frame or dialog, then deletes the view. -\item {\bf cancel}: indicates the Cancel button. Calls wxPropertyFormView::OnCancel. By default, -closes and deletes the frame or dialog, then deletes the view. -\item {\bf help}: indicates the Help button. Calls wxPropertyFormView::OnHelp. This needs -to be overridden by the application for anything interesting to happen. -\item {\bf revert}: indicates the Revert button. Calls wxPropertyFormView::OnRevert, -which by default transfers the wxProperty values to the panel items (in effect -undoing any unsaved changes in the items). -\item {\bf update}: indicates the Revert button. Calls wxPropertyFormView::OnUpdate, which -by defaults transfers the displayed values to the wxProperty objects. -\end{itemize} - -\section{wxPropertySheet overview}\label{wxpropertysheetoverview} - -Classes: \helpref{wxPropertySheet}{wxpropertysheet}, \helpref{wxProperty}{wxproperty}, \helpref{wxPropertyValue}{wxpropertyvalue} - -A property sheet defines zero or more properties. This is a bit like an explicit representation of -a C++ object. wxProperty objects can have values which are pointers to C++ values, or they -can allocate their own storage for values. - -Because the property sheet representation is explicit and can be manipulated by -a program, it is a convenient form to be used for a variety of -editing purposes. wxPropertyListView and wxPropertyFormView are two classes that -specify the relationship between a property sheet and a user interface. You could imagine -other uses for wxPropertySheet, for example to generate a form-like user interface without -the need for GUI programming. Or for storing the names and values of command-line switches, with the -option to subsequently edit these values using a wxPropertyListView. - -A typical use for a property sheet is to represent values of an object -which are only implicit in the current representation of it. For -example, in Visual Basic and similar programming environments, you can -`edit a button', or rather, edit the button's properties. One of the -properties you can edit is {\it width} - but there is no explicit -representation of width in a wxWindows button; instead, you call SetSize -and GetSize members. To translate this into a consisent, -property-oriented scheme, we could derive a new class -wxButtonWithProperties, which has two new functions: SetProperty and -GetProperty. SetProperty accepts a property name and a value, and calls -an appropriate function for the property that is being passed. -GetProperty accepts a property name, returning a property value. So -instead of having to use the usual arbitrary set of C++ member functions -to set or access attributes of a window, programmer deals merely with -SetValue/GetValue, and property names and values. -We now have a single point at which we can modify or query an object by specifying -names and values at run-time. (The implementation of SetProperty and GetProperty -is probably quite messy and involves a large if-then-else statement to -test the property name and act accordingly.) - -When the user invokes the property editor for a wxButtonWithProperties, the system -creates a wxPropertySheet with `imaginary' properties such as width, height, font size -and so on. For each property, wxButtonWithProperties::GetProperty is called, and the result is -passed to the corresponding wxProperty. The wxPropertySheet is passed to a wxPropertyListView -as described elsewhere, and the user edits away. When the user has finished editing, the system calls -wxButtonWithProperties::SetProperty to transfer the wxProperty value back into the button -by way of an appropriate call, wxWindow::SetSize in the case of width and height properties. - - - diff --git a/docs/latex/proplist/contents.gif b/docs/latex/proplist/contents.gif deleted file mode 100644 index 3dddfa3dd5..0000000000 Binary files a/docs/latex/proplist/contents.gif and /dev/null differ diff --git a/docs/latex/proplist/forward.gif b/docs/latex/proplist/forward.gif deleted file mode 100644 index 9c81e8c92f..0000000000 Binary files a/docs/latex/proplist/forward.gif and /dev/null differ diff --git a/docs/latex/proplist/prop.tex b/docs/latex/proplist/prop.tex deleted file mode 100644 index cb1a4a25a9..0000000000 --- a/docs/latex/proplist/prop.tex +++ /dev/null @@ -1,47 +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 wxWindows Property Sheet Classes Version 2.0} -\winhelponly{\author{by Julian Smart, Anthemion Software\\$$\image{}{prop1}$$}} -\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{classes.tex} -\input{changes.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/docs/latex/proplist/prop1.bmp b/docs/latex/proplist/prop1.bmp deleted file mode 100644 index 92c6beec8b..0000000000 Binary files a/docs/latex/proplist/prop1.bmp and /dev/null differ diff --git a/docs/latex/proplist/prop1.eps b/docs/latex/proplist/prop1.eps deleted file mode 100644 index 02ac7d68cf..0000000000 --- a/docs/latex/proplist/prop1.eps +++ /dev/null @@ -1,539 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: prop1.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 167 292 445 500 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -167 292 translate - -% size of image (on paper, in 1/72inch coords) -278 208 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 42 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00 -ffff00 0000ff 00ffff ffffff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in color map - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - % and put it in position i*3 in block - block exch 3 mul rgbval putinterval - } for - block 0 bcount 127 sub 3 mul getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in colormap - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - 0 1 bcount { block exch 3 mul rgbval putinterval } for - - block 0 bcount 1 add 3 mul getinterval - } ifelse - } % end of proc - false 3 colorimage -} bind def - - -278 208 8 % dimensions of data -[278 0 0 -208 0 208] % mapping matrix -rlecmapimage - -7f067f0614060000 -81060d7f0d7f0d110d810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d068106047f047f040c040106810700 -82060d068106048204060d820d060783070d0702010203098102047f047a040106810700 - -82060d068106048704060b060001020781070283020702098109028102047f0446040e0d -81000d0d0d81000481040d0d0d81000481040682060700 -82060d0681060482040806810600820002078507020902070201028109047f044604810d -060b068307000d060b068207000482040d060b068207000481040682060700 -82060d0681060481040685060800040307820702098409020702098109040104050d2d04 -030d0204010d1a04050d6604810d060b068307000d06810600070001068207000482040d -060b068207000481040682060700 -82060d068106048704060b0604000a0789070209020702070209040104010d0204010d1d -04010d0b04010d0104010d0104010d1204010d0704010d1004010d5504810d060b068307 -000d06810600070001068207000482040d06010601000306010001068207000481040682 -060700 -82060d068106048204070681060001000107010286070209020702040104010d0204010d -1d04010d0b04010d0504010d1204010d0704010d1004010d5504810d060b068307000d06 -820600060506810006830607000482040d06020601000106010002068207000481040682 -060700 -82060d0681060485040d0607060d010d8407020002090109820200040104010d0204010d -81040d010d0104030d0104040d0204030d0104020d81040d010d81040d820d040d810d04 -0304010d0504040d0204030d0204030d0104020d0604010d0404030d0204020d0104020d -5404810d060b068307000d06820600060506810006830607000482040d06030603000306 -8207000481040682060700 -82060d068106048104070507010006020204050d0104010d0104010d0104010d81040d81 -0d0481040d820d040d810d0481040d820d040d810d0481040d810d0481040d820d040d81 -0d040404030d0204020d81040d820d040d810d0481040d820d040d810d0481040d820d04 -0d810d040604010d0304010d0104010d81040d820d040d820d040d810d045404810d060b -068307000d06820600060506810006830607000482040d06040601000406820700048104 -0682060700 -82060d068106048104050505010006030204010d0504010d0104010d0104010d81040d81 -0d0481040d820d040d040d81040d810d0481040d810d0481040d820d040d810d04070401 -0d0104010d0104010d81040d040d81040d040d81040d810d040604010d0304050d010401 -0d0204010d5504810d060b068307000d06820600060506810006830607000482040d0603 -06030003068207000481040682060700 -82060d0681060481040c010c8205080c830c05030a020a81030a810a040104010d050401 -0d0104010d0104010d81040d810d0481040d820d040d810d040304010d0104010d010401 -0d81040d810d040704010d0104010d0104010d81040d810d040304010d0404010d070401 -0d0304010d0604010d0104010d5504810d060b068307000d068206000605068100068306 -07000482040d06020601000106010002068207000481040682060700 -82060d068106048c040c05070507050c05030a030a840a03000a040104010d0504010d01 -04010d0104010d81040d810d0481040d820d040d810d0481040d820d040d810d0481040d -810d040104020d0504010d0104010d0104010d0104010d81040d810d0481040d820d040d -810d0481040d820d040d810d040604010d0304010d0104010d81040d820d040d820d040d -810d045404810d060106050003068307000d06820600060506810006830607000482040d -06010601000306010001068207000481040682060700 -82060d0681060482040c08020886070c05030a030a010a82030a040104010d0504010d02 -04030d0104040d0204030d0104010d0204010d0104010d0704030d0204010d0104010d01 -04030d0204030d0204010d0604010d0404030d0204020d0204010d5404810d0601060500 -03068307000d06810600070001068207000482040d060b068207000481040682060700 -82060d0681060482040c080208010c8205030a810a0384030a030a041404010d1404010d -7f041804810d060b068307000d060b068207000482040d060b0682070004810406820607 -00 -82060d0681060482040c080308850c05030a030a010a82000a041404010d1204020d7f04 -1904810d070c0782000d070c0781000482040d070c0781000481040682060700 -82060d0681060483040c05080208850c05030a030a810a0382030a047f0446041f000104 -0f0001040106810700 -82060d0681060481040c050c8205030a050a7f047b040106810700 -82060d068106047f047f040c040106810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d0637067f073907810d061c06810700 -82060d06030616000306160001068107007f00360082060d0681060015000406810700 -82060d06020681000d140d820700068206000d140d8507000607000d7f0d350d84060d06 -000d140d820700060206810700 -82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d -84060d06000d130d01078100060206810700 -82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d -84060d06000d810d06110601078100060206810700 -82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d -84060d06000d810d06110601078100060206810700 -82060d06020682000d0603068100060606810006030601078100068306000d0612060107 -84000607000d820d000d7f0d320d84060d06000d810d06110601078100060206810700 -82060d06020682000d06030683000600060306810006040601078100068306000d061206 -010785000607000d0081000d7f0d320d84060d06000d810d061106010781000602068107 -00 -82060d06020682000d06040683000600060106810006050601078100068306000d060b06 -8100060406010785000607000d000100810d0081000d820d000d810d0081000d810d0002 -007f0d220d84060d06000d810d06110601078100060206810700 -82060d06020682000d06050685000600060006060601078100068306000d060a06830006 -00060306010785000607000d0081000d810d0082000d000100810d0082000d0081000d81 -0d0081000d7f0d200d84060d06000d810d06110601078100060206810700 -82060d06020682000d0606068300060006070601078100068306000d0609068300060006 -0406010785000607000d0081000d810d0082000d000100810d0082000d0081000d810d00 -81000d7f0d200d84060d06000d810d06110601078100060206810700 -82060d06020682000d0607068300060006060601078100068306000d0604068100060106 -83000600060506010785000607000d0081000d010d0200810d000100010d0100010d0100 -7f0d210d84060d06000d810d06110601078100060206810700 -82060d06020682000d06060685000600060006050601078100068306000d060306870006 -0006000600060606010785000607000d0081000d010d0200810d000100010d0100010d01 -007f0d210d84060d06000d810d06110601078100060206810700 -82060d06020682000d06050681000601068300060006040601078100068306000d060406 -850006000600060706010784000607000d810d0081000d810d0081000d010d0100020d03 -007f0d220d84060d06000d810d0603060100810600820006008100060406010781000602 -06810700 -82060d06020682000d06040681000603068300060006030601078100068306000d060506 -83000600060806010784000607000d7f0d350d84060d06000d810d060306010081060082 -000600810006040601078100060206810700 -82060d06020682000d060306010005060100040601078100068306000d06060681000609 -06010784000607000d7f0d350d84060d06000d810d06110601078100060206810700 -82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d -84060d06000d810d06110601078100060206810700 -82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d -84060d06000d810d06110601078100060206810700 -82060d06020682000d0714078100068306000d07140784000607000d7f0d350d85060d06 -000d0714078100060206810700 -82060d06020682000d0714078100068306000d07140784000607000d7f0d350d84060d06 -000715078100060206810700 -82060d06030616000306160001068207000d7f0d350d82060d0681060015000406810700 - -82060d0637068107067f063706810d061c06810700 -82060d0637067f0d3a0d1d06810700 -82060d0601067f077f070a07810d060106810700 -82060d0601068107007f007f00070082060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d010d0300010d0400020d03007f0d720d82060d060106810700 -82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d -810d0081000d7f0d700d82060d060106810700 -82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0004007f -0d710d82060d060106810700 -82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d -7f0d740d82060d060106810700 -82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d -810d0081000d7f0d700d82060d060106810700 -82060d0601068207000d010d0300010d0100010d0100010d03007f0d720d82060d060106 -810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d060106ff0700040a040a040a040a040a040a040a040a040a040a040a040a040a04 -0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04 -0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04 -0a040a040a040a040a040a040a040a040a040a040a040a040a040aff040a040a040a040a -040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a -040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a -040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a -040a040a040a040a040a040a8c040a040a040a040a040a060d060106810700 -82060d0601068307000a047f047f04050482060d060106810700 -82060d060106820700047f047f040504830a060d060106810700 -82060d0601068307000a0482040d047f047f04020482060d060106810700 -82060d0601068207000481040d810d047f047f040104830a060d060106810700 -82060d0601068307000a0d020d81040d810d0482040d0481040d810d0481040d020d7f04 -720482060d060106810700 -82060d0601068207000481040d810d0481040d820d040d010d81040d820d040d810d0481 -040d810d047f046f04830a060d060106810700 -82060d0601068407000a040d810d0481040d820d040d010d81040d820d040d810d048104 -0d810d047f04700482060d060106810700 -82060d0601068207000481040d810d040104020d81040d010d0104010d0104010d7f0470 -04830a060d060106810700 -82060d0601068407000a040d810d040104020d81040d010d0104010d0104010d7f047104 -82060d060106810700 -82060d060106820700040104010d0104010d0204010d0204030d7f047104830a060d0601 -06810700 -82060d0601068307000a047f047f04050482060d060106810700 -82060d060106820700047f047f040504830a060d060106810700 -82060d060106ff07000a040a040a040a040a040a040a040a040a040a040a040a040a040a -040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a -040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a -040a040a040a040a040a040a040a040a040a040a040a040a040a04ff0a040a040a040a04 -0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04 -0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04 -0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04 -0a040a040a040a040a040a048c0a040a040a040a040a04060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d010d81000d810d0081000d7f0d7e0d82060d060106810700 -82060d0601068207000d810d0081000d810d0081000d7f0d7e0d82060d060106810700 -82060d0601068307000d000200810d000300010d0300010d0300020d03007f0d690d8206 -0d060106810700 -82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100 -010d0100810d0081000d810d0081000d7f0d670d82060d060106810700 -82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0500 -810d0004007f0d680d82060d060106810700 -82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100 -040d01007f0d6c0d82060d060106810700 -82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100 -010d0100810d0081000d810d0081000d7f0d670d82060d060106810700 -82060d0601068207000d010d0100810d0081000d810d0082000d0081000d020d0300020d -03007f0d690d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068207000d7f0d7f0d060d82060d060106810700 -82060d0601068107067f067f060806810d060106810700 -82060d0601067f0d7f0d0b0d0206810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d0601067f077f070b070206810700 -82060d0601068107007f007f000800810d060106810700 -82060d0601068207000d7f0d760d0e060100810d060106810700 -82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400400d82060d060a0681 -070082000d060106810700 -82060d0601068207000d010d81000d190d81000d120d81000d7b0d85000d000d000d3f0d -82060d060a0681070082000d060106810700 -82060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d008400 -0d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d0200 -5f0d81000d020d0100810d0082000d0081000d810d0081000d010d02002c0d82060d0603 -06810006040681070082000d060106810700 -82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d -000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d820d -000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d81000d5d -0d81000d030d0100030d81000d010d81000d820d000d010d81000d2a0d82060d06020602 -00040681070082000d060106810700 -82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d -000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d000d01 -0d81000d020d81000d020d81000d040d04005e0d81000d030d81000d030d81000d010d81 -000d810d0003002b0d82060d0601060400030681070082000d060106810700 -82060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d810d00 -81000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d -820d000d010d81000d020d81000d020d81000d040d81000d610d81000d030d81000d030d -81000d810d0081000d820d000d2e0d82060d068106000500020681070082000d06010681 -0700 -82060d0601068207000d020d0200030d0200030d0100810d0081000d810d000200810d00 -0100810d000100080d0300810d000100810d000100010d0200020d0400020d0300020d03 -005d0d0200020d0300030d0100810d0081000d810d0002002b0d82060d060a0681070082 -000d060106810700 -82060d0601068207000d1a0d81000d7f0d590d82060d060a0681070082000d0601068107 -00 -82060d0601068207000d170d02007f0d5b0d82060d060a0681070082000d060106810700 - -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d8106070c070100810d060106810700 -82060d0601068207000d7f0d760d1000810d060106810700 -82060d0601068207000d7f0d760d92060d060d060d060d060d060d060d060d000d060106 -810700 -82060d0601068207000d7f0d770d91060d060d060d060d060d060d060d06000d06010681 -0700 -82060d0601068207000d030d81000d7f0d2d0d81000d020d0300390d92060d060d060d06 -0d060d060d060d060d000d060106810700 -82060d0601068207000d7f0d320d0100030d81000d3c0d91060d060d060d060d060d060d -060d06000d060106810700 -82060d0601068207000d010d0200040d0200010d0100810d0081000d7f0d1c0d83000d00 -0d020d81000d3b0d92060d060d060d060d060d060d060d060d000d060106810700 -82060d0601068207000d030d81000d020d81000d010d81000d810d0081000d820d000d7f -0d1a0d81000d820d000d020d02003b0d91060d060d060d060d060d060d060d06000d0601 -06810700 -82060d0601068207000d030d81000d030d0300010d81000d010d81000d7f0d1a0d040005 -0d81000d380d92060d060d060d060d060d060d060d060d000d060106810700 -82060d0601068207000d030d81000d020d81000d010d81000d820d000d010d81000d7f0d -1d0d81000d010d81000d010d81000d380d0e060100810d060106810700 -82060d0601068207000d010d0400010d0800810d0001007f0d1c0d0200020d02003a0d81 -060d0b0d81070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d020003 -0d0300390d82060d060a0681070082000d060106810700 -82060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d8100 -0d010d81000d3b0d82060d060a0681070082000d060106810700 -82060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f0d18 -0d81000d020d81000d3b0d82060d060a0681070082000d060106810700 -82060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d7f0d -170d81000d030d02003a0d82060d060a0681070082000d060106810700 -82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f -0d160d81000d070d81000d380d82060d060a0681070082000d060106810700 -82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f -0d150d81000d040d81000d010d81000d380d82060d060a0681070082000d060106810700 - -82060d0601068207000d810d000300020d0400010d0400010d04007f0d140d0400020d02 -003a0d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d030d81000d0a0d0100050d81000d7f0d5b0d82060d060a068107 -0082000d060106810700 -82060d0601068207000d110d81000d7f0d620d82060d060a0681070082000d0601068107 -00 -82060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d020001 -0d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200330d82060d060a -0681070082000d060106810700 -82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d02 -0d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d008100 -0d820d000d820d000d010d81000d310d82060d060a0681070082000d060106810700 -82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d03 -0d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d810d -000300320d82060d060a0681070082000d060106810700 -82060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81000d -020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d000d01 -0d81000d820d000d350d82060d060a0681070082000d060106810700 -82060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d0800 -810d0001007f0d060d0200010d0200810d000100010d0300320d82060d060a0681070082 -000d060106810700 -82060d0601068207000d040d81000d7f0d6f0d82060d060a0681070082000d0601068107 -00 -82060d0601068207000d010d02007f0d710d82060d060a0681070082000d060106810700 - -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700 -82060d0601068207000d810d0081000d060d81000d7f0d690d82060d060a068107008200 -0d060106810700 -82060d0601068207000d010d81000d0b0d81000d7f0d640d82060d060a0681070082000d -060106810700 -82060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d000d02 -0d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d0100810d00 -81000d020d02002c0d82060d060a0681070082000d060106810700 -82060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d000d -000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d000d -010d81000d810d0081000d820d000d820d000d010d81000d2a0d82060d060a0681070082 -000d060106810700 -82060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d85000d00 -0d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81 -000d820d000d010d81000d810d0003002b0d82060d060a0681070082000d060106810700 - -82060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d81000d86 -0d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d8100 -0d820d000d010d81000d820d000d010d81000d820d000d2e0d82060d060a068107008200 -0d060106810700 -82060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d0002 -007f0d060d0200810d000100010d0200010d0200810d000100010d03002b0d8106070c07 -0100810d060106810700 -82060d0601068207000d240d81000d7f0d4f0d1000810d060106810700 -82060d0601068207000d230d02007f0d4f0d0e060100810d060106810700 -82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700 -82060d060106820700047f04760482060d060a0681070082000d060106810700 -82060d060106820700047f04760482060d060a0681070082000d060106810700 -82060d060106820700047f04760482060d060a0681070082000d060106810700 -82060d060106820700047f04760482060d060a0681070082000d060106810700 -82060d060106820700043404810d041304010d7f04290482060d06810600050002068107 -0082000d060106810700 -82060d060106820700041d04810d042b04810d046204810d04430482060d060106040003 -0681070082000d060106810700 -82060d060106820700040204030d0204020d0104010d81040d810d040204030d81040d03 -0d0204010d81040d810d040104020d0204020d0204010d81040d810d040204020d030401 -0d82040d046104040d0104020d81040d010d0104020d330482060d060206020004068107 -0082000d060106810700 -82060d060106820700040104810d040104810d0482040d040104810d0481040d810d0482 -040d0482040d040404810d040504010d0304810d040104810d040204810d040204010d01 -04810d0482040d040104810d0482040d0481040d810d046204810d040404810d04010481 -0d0482040d040104810d04310482060d060306810006040681070082000d060106810700 - -82060d060106820700040104810d040404810d040104810d0482040d040104810d040104 -020d0204810d040504810d040404030d0304810d040204810d040104810d0481040d030d -0104810d040104810d046204810d040404850d040d040d0482040d040104810d04310482 -060d060a0681070082000d060106810700 -82060d060106820700040104810d040404810d040104810d0482040d040104810d040404 -810d0482040d040104810d040104810d040304810d040104810d040204810d040204810d -040104810d0482040d040404810d040104810d046204810d040104810d0486040d040d04 -0d0482040d040104810d04310482060d060a0681070082000d060106810700 -82060d060106820700040204030d0204020d0104020d81040d010d81040d020d0304020d -0204030d0204050d81040d030d81040d010d81040d010d0104030d0204040d6304020d03 -04830d040d040204020d330482060d060a0681070082000d060106810700 -82060d060106820700047f04760482060d060a0681070082000d060106810700 -82060d060106820700047f0476048106070c070100810d060106810700 -82060d060106820700047f0476041000810d060106810700 -82060d0601068107067f0677061000810d060106810700 -82060d0601067f0d7f0d0b0d0206810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -82060d067f067f061006810700 -8106077f077f0712070000 -7f007f001500 - -% -% Compression made this file 6.27% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/docs/latex/proplist/prop1.gif b/docs/latex/proplist/prop1.gif deleted file mode 100644 index 4344434d20..0000000000 Binary files a/docs/latex/proplist/prop1.gif and /dev/null differ diff --git a/docs/latex/proplist/prop2.bmp b/docs/latex/proplist/prop2.bmp deleted file mode 100644 index d909f41abc..0000000000 Binary files a/docs/latex/proplist/prop2.bmp and /dev/null differ diff --git a/docs/latex/proplist/prop2.eps b/docs/latex/proplist/prop2.eps deleted file mode 100644 index 398e70c553..0000000000 --- a/docs/latex/proplist/prop2.eps +++ /dev/null @@ -1,664 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: prop2.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 167 221 466 500 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -167 221 translate - -% size of image (on paper, in 1/72inch coords) -299 279 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 42 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00 -ffff00 0000ff 00ffff ffffff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in color map - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - % and put it in position i*3 in block - block exch 3 mul rgbval putinterval - } for - block 0 bcount 127 sub 3 mul getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in colormap - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - 0 1 bcount { block exch 3 mul rgbval putinterval } for - - block 0 bcount 1 add 3 mul getinterval - } ifelse - } % end of proc - false 3 colorimage -} bind def - - -299 279 8 % dimensions of data -[299 0 0 -279 0 279] % mapping matrix -rlecmapimage - -7f0003007f072607 -07077f067f0618068100070707 -070781060d7f0d7f0d150d820700070707 -070782060d067f067f061406820700070707 -070782060d067f067f061406820700070707 -070782060d068106077f077f0710070106820700070707 -070782060d068106078207060d820d060783070d0702010203098102077f077e07010682 -0700070707 -070782060d068106078707060b060001020781070283020702098109028102077f074a07 -0e0d81000d0d0d81000781070d0d0d81000781070683060700070707 -070782060d0681060782070806810600820002078507020902070201028109077f074a07 -810d060b068307000d060b068207000782070d060b068207000781070683060700070707 - -070782060d06810607810706850608000403078207020984090207020981090701070506 -2d070306020701061a0705066a07810d060b068307000d06810600070001068207000782 -070d060b068207000781070683060700070707 -070782060d068106078707060b0604000a07890702090207020702090701070106020701 -061d0701060b07010601070106010701061207010607070106100701065907810d060b06 -8307000d06810600070001068207000782070d0601060100030601000106820700078107 -0683060700070707 -070782060d0681060701070106020001070102860702090207020701070106020701061d -0701060b070106050701061207010607070106100701065907810d060b068307000d0682 -0600060506810006830607000782070d0602060100010601000206820700078107068306 -0700070707 -070782060d0681060785070d0607060d010d840702000209010982020007010701060207 -010681070601060107030601070406020703060107020681070601068107068206070681 -060703070106050704060207030602070306010702060607010604070306020702060107 -02065807810d060b068307000d06820600060506810006830607000782070d0603060300 -03068207000781070683060700070707 -070782060d06810607070701000602020705060107010601070106010701068107068106 -078107068206070681060781070682060706810607810706810607810706820607068106 -070407030602070206810706820607068106078107068206070681060781070682060706 -81060706070106030701060107010681070682060706820607068106075807810d060b06 -8307000d06820600060506810006830607000782070d0604060100040682070007810706 -83060700070707 -070782060d06810607810705050501000603020701060507010601070106010701068107 -068106078107068206070604068107068106078107068106078107068206070681060707 -070106010701060107010681070604068107060406810706810607060701060307050601 -070106020701065907810d060b068307000d06820600060506810006830607000782070d -060306030003068207000781070683060700070707 -070782060d0681060781070c010c8205080c830c05030a020a81030a810a070107010605 -070106010701060107010681070681060781070682060706810607030701060107010601 -070106810706810607070701060107010601070106810706810607030701060407010607 -0701060307010606070106010701065907810d060b068307000d06820600060506810006 -830607000782070d06020601000106010002068207000781070683060700070707 -070782060d068106078c070c05070507050c05030a030a840a03000a0701070106050701 -060107010601070106810706810607810706820607068106078107068206070681060781 -070681060701070206050701060107010601070106010701068107068106078107068206 -070681060781070682060706810607060701060307010601070106810706820607068206 -07068106075807810d060106050003068307000d06820600060506810006830607000782 -070d06010601000306010001068207000781070683060700070707 -070782060d0681060782070c08020886070c05030a030a010a82030a0701070106050701 -060207030601070406020703060107010602070106010701060707030602070106010701 -06010703060207030602070106060701060407030602070206020701065807810d060106 -050003068307000d06810600070001068207000782070d060b0682070007810706830607 -00070707 -070782060d0681060782070c080208010c8205030a810a0384030a030a07140701061407 -01067f071c07810d060b068307000d060b068207000782070d060b068207000781070683 -060700070707 -070782060d0681060782070c080308850c05030a030a010a82000a071407010612070206 -7f071d07810d070c0782000d070c0781000782070d070c07810007810706830607000707 -07 -070782060d0681060783070c05080208850c05030a030a810a0382030a077f074a071f00 -01070f0001070106820700070707 -070782060d0681060781070c050c8205030a050a7f077f070106820700070707 -070782060d068106077f077f0710070106820700070707 -070782060d067f067f061406820700070707 -070782060d067f067f061406820700070707 -070782060d0637067f073d07810d061c06820700070707 -070782060d06030616000306160001068107007f003a0082060d06810600150004068207 -00070707 -070782060d06020681000d140d820700068206000d140d8507000607000d7f0d390d8406 -0d06000d140d820700060206820700070707 -070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d -390d84060d06000d130d01078100060206820700070707 -070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d -390d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d -390d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d0603068100060606810006030601078100068306000d061206 -010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d810d -06110601078100060206820700070707 -070782060d06020682000d060306020003060200040601078100068306000d060b068100 -060406010784000607000d810d000100010d0100810d0082000d0082000d0082000d0082 -000d0081000d7f0d210d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d060406020001060200050601078100068306000d060a060200 -0406010785000607000d000200010d0100810d0082000d0082000d0082000d0082000d00 -81000d7f0d210d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d0605060500060601078100068306000d060906030004060107 -87000607000d000d0081000d810d0082000d0082000d0082000d0082000d0082000d0081 -000d7f0d210d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d0606060300070601078100068306000d060806030005060107 -84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d -7f0d210d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d0606060300070601078100068306000d060306010001060300 -0606010784000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d -0081000d7f0d210d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d0605060500060601078100068306000d060306060007060107 -84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d -7f0d210d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d060406020001060200050601078100068306000d0604060400 -0806010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d -810d060306010781060782070607810706040601078100060206820700070707 -070782060d06020682000d060306020003060200040601078100068306000d0605060200 -0906010784000607000d7f0d390d84060d06000d810d0603060107810607820706078107 -06040601078100060206820700070707 -070782060d06020682000d060306010005060100040601078100068306000d0606068100 -060906010784000607000d7f0d390d84060d06000d810d06110601078100060206820700 -070707 -070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d -390d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d -390d84060d06000d810d06110601078100060206820700070707 -070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8506 -0d06000d0714078100060206820700070707 -070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8406 -0d06000715078100060206820700070707 -070782060d06030616000306160001068207000d7f0d390d82060d068106001500040682 -0700070707 -070782060d0637068107067f063b06810d061c06820700070707 -070782060d0637067f0d3e0d1d06820700070707 -070782060d0601067f077f070e07810d060106820700070707 -070782060d0601068107007f007f000b0082060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d040d0100120d01007f0d150d0200550d82060d0601068207 -00070707 -070782060d0601068207000d030d81000d140d81000d7f0d130d81000d010d81000d530d -82060d060106820700070707 -070782060d0601068207000d020d0300010d0100810d0081000d010d0200030d0100820d -000d7f0d130d81000d010d81000d530d82060d060106820700070707 -070782060d0601068207000d030d81000d030d0100030d81000d010d81000d820d000d81 -0d0081000d7f0d130d81000d010d81000d530d82060d060106820700070707 -070782060d0601068207000d030d81000d030d81000d030d0400010d81000d010d81000d -7f0d130d81000d010d81000d530d82060d060106820700070707 -070782060d0601068207000d030d81000d030d81000d030d81000d040d81000d010d8100 -0d7f0d130d81000d010d81000d530d82060d060106820700070707 -070782060d0601068207000d020d0300010d0300030d0300020d04007f0d140d0200550d -82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400090d0100480d82 -060d060106820700070707 -070782060d0601068207000d010d81000d190d81000d120d81000d7c0d81000d820d000d -090d81000d470d82060d060106820700070707 -070782060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d00 -84000d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d -02005e0d83000d000d020d0200040d81000d030d0300020d0200390d82060d0601068207 -00070707 -070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d -820d000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d -820d000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d8100 -0d5c0d0200020d81000d010d81000d020d81000d020d81000d040d81000d010d81000d37 -0d82060d060106820700070707 -070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d -820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d00 -0d010d81000d020d81000d020d81000d040d04005d0d83000d000d020d0300030d81000d -030d0200020d0400380d82060d060106820700070707 -070782060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d81 -0d0081000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81 -000d820d000d010d81000d020d81000d020d81000d040d81000d600d81000d030d81000d -010d81000d020d81000d060d81000d820d000d3b0d82060d060106820700070707 -070782060d0601068207000d020d0200030d0200030d0100810d0081000d810d00020081 -0d000100810d000100080d0300810d000100810d000100010d0200020d0400020d030002 -0d03005c0d0200030d0500810d000300010d0300030d0300380d82060d06010682070007 -0707 -070782060d0601068207000d1a0d81000d7f0d6d0d82060d060106820700070707 -070782060d0601068207000d170d02007f0d6f0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d060106820700047f047f040a0482060d060106820700070707 -070782060d060106820700047f047f040a0482060d060106820700070707 -070782060d060106820700047f047f040a0482060d060106820700070707 -070782060d060106820700047f047f040a0482060d060106820700070707 -070782060d060106820700040304810d047f043204010d4f0482060d0601068207000707 -07 -070782060d060106820700047f043904810d044e0482060d060106820700070707 -070782060d060106820700040104020d0404020d0104010d81040d810d047f042404810d -044e0482060d060106820700070707 -070782060d060106820700040304810d040204810d040104810d0481040d810d0482040d -047f041a04040d0304810d044e0482060d060106820700070707 -070782060d060106820700040304810d040304030d0104810d040104810d047f04230481 -0d044e0482060d060106820700070707 -070782060d060106820700040304810d040204810d040104810d0482040d040104810d04 -7f042304810d044e0482060d060106820700070707 -070782060d060106820700040104040d0104080d81040d010d7f042104040d4d0482060d -060106820700070707 -070782060d060106820700047f047f040a0482060d060106820700070707 -070782060d060106820700047f047f040a0482060d060106820700070707 -070782060d060106820700047f047f040a0482060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d02 -00030d03004d0d82060d060106820700070707 -070782060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d -81000d010d81000d4f0d82060d060106820700070707 -070782060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f -0d180d81000d020d81000d4f0d82060d060106820700070707 -070782060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d -7f0d170d81000d030d02004e0d82060d060106820700070707 -070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100 -0d7f0d160d81000d070d81000d4c0d82060d060106820700070707 -070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100 -0d7f0d150d81000d040d81000d010d81000d4c0d82060d060106820700070707 -070782060d0601068207000d810d000300020d0400010d0400010d04007f0d140d040002 -0d02004e0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d030d81000d0a0d0100050d81000d7f0d6f0d82060d060106 -820700070707 -070782060d0601068207000d110d81000d7f0d760d82060d060106820700070707 -070782060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d02 -00010d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200470d82060d -060106820700070707 -070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100 -0d020d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d00 -81000d820d000d820d000d010d81000d450d82060d060106820700070707 -070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100 -0d030d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d -810d000300460d82060d060106820700070707 -070782060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81 -000d020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d00 -0d010d81000d820d000d490d82060d060106820700070707 -070782060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d -0800810d0001007f0d060d0200010d0200810d000100010d0300460d82060d0601068207 -00070707 -070782060d0601068207000d040d81000d7f0d7f0d030d82060d060106820700070707 -070782060d0601068207000d010d02007f0d7f0d050d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d810d0081000d060d81000d7f0d7d0d82060d060106820700 -070707 -070782060d0601068207000d010d81000d0b0d81000d7f0d780d82060d06010682070007 -0707 -070782060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d00 -0d020d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d010081 -0d0081000d020d0200400d82060d060106820700070707 -070782060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d -000d000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d -000d010d81000d810d0081000d820d000d820d000d010d81000d3e0d82060d0601068207 -00070707 -070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d8500 -0d000d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d01 -0d81000d820d000d010d81000d810d0003003f0d82060d060106820700070707 -070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d8100 -0d860d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d -81000d820d000d010d81000d820d000d010d81000d820d000d420d82060d060106820700 -070707 -070782060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d -0002007f0d060d0200810d000100010d0200010d0200810d000100010d03003f0d82060d -060106820700070707 -070782060d0601068207000d240d81000d7f0d630d82060d060106820700070707 -070782060d0601068207000d230d02007f0d630d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d340d81000d130d01007f0d3d0d82060d0601068207000707 -07 -070782060d0601068207000d1d0d81000d2b0d81000d620d81000d570d82060d06010682 -0700070707 -070782060d0601068207000d020d0300020d0200010d0100810d0081000d020d0300810d -000300020d0100810d0081000d010d0200020d0200020d0100810d0081000d020d020003 -0d0100820d000d610d0400010d0200810d000100010d0200470d82060d06010682070007 -0707 -070782060d0601068207000d010d81000d010d81000d820d000d010d81000d810d008100 -0d820d000d820d000d040d81000d050d0100030d81000d010d81000d020d81000d020d01 -00010d81000d820d000d010d81000d820d000d810d0081000d620d81000d040d81000d01 -0d81000d820d000d010d81000d450d82060d060106820700070707 -070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d -010d0200020d81000d050d81000d040d0300030d81000d020d81000d010d81000d810d00 -0300010d81000d010d81000d620d81000d040d85000d000d000d820d000d010d81000d45 -0d82060d060106820700070707 -070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d -040d81000d820d000d010d81000d010d81000d030d81000d010d81000d020d81000d020d -81000d010d81000d820d000d040d81000d010d81000d620d81000d010d81000d860d000d -000d000d820d000d010d81000d450d82060d060106820700070707 -070782060d0601068207000d020d0300020d0200010d0200810d000100810d000200030d -0200020d0300020d0500810d000300810d000100810d000100010d0300020d0400630d02 -00030d83000d000d020d0200470d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707 -7f077f0726078100070107 -03077f0d7f0d210d820700070107 -0307820d06077f077f071c07840d060700070107 -0307830d0607047f047f041c0483060700070107 -0307830d0607047f047f041c0483060700070107 -0307830d0607047f047f040a040e0d8100048404060700070107 -0307830d0607047f047f040a04810d060b06820700048404060700070107 -0307830d06070481040d040d3a04010d7f044604810d060b068207000484040607000701 -07 -0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0601060107 -030601070106820700048404060700070107 -0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0602060107 -01060107010d83060700048404060700070107 -0307830d06070481040d810d040104010d81040d010d0104030d0104040d0204030d0104 -020d81040d010d81040d820d040d810d040304010d0104010d0104030d0104010d81040d -810d0481040d810d0481040d020d0604030d0104020d81040d010d0104030d0104020d7f -041a04810d0603060307010d0106820700048404060700070107 -0307830d06070481040d040d0104010d0104010d0104010d81040d810d0481040d820d04 -0d810d0481040d820d040d810d0481040d810d0481040d820d040d810d040304010d0104 -010d0404010d81040d820d040d810d0481040d820d040d810d0481040d810d040304010d -0104010d81040d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04 -810d0604060107010d0206820700048404060700070107 -0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d -040d040d81040d810d0481040d810d0481040d820d040d810d040404030d0204040d8104 -0d820d040d810d0481040d820d040d040d0404050d81040d810d0481040d810d0481040d -810d0481040d820d040d810d047f041a04810d0603060307030682070004840406070007 -0107 -0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d -040d810d040304010d0104010d0104010d81040d810d040404030d0104010d0104010d81 -040d820d040d810d0481040d820d040d810d040704010d0404010d0104010d0104010d01 -04010d81040d810d047f041a04810d0602060107010d0107020682070004840406070007 -0107 -0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d -040d810d0481040d820d040d810d0481040d810d040104020d0704010d0204010d010401 -0d81040d820d040d820d040d010d81040d810d0481040d810d040304010d0104010d8104 -0d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04810d06010601 -07010d010601070106820700048404060700070107 -0307830d06070481040d810d040404010d0204030d0104040d0204030d0104010d020401 -0d0104010d0804010d0304040d81040d810d0481040d030d0104030d0604030d0104010d -0104010d0204030d0104010d7f041b04810d060206010d0306010d830607000484040607 -00070107 -0307830d0607041304010d1404010d7f045d04810d060b06820700048404060700070107 - -0307830d0607041304010d1204020d7f045e04810d070c078100048404060700070107 -0307830d0607047f047f040a040f00010483060700070107 -0307830d0607047f047f041c0483060700070107 -0307830d0607047f047f041c0483060700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d06170602037f067f060406820700070107 -0307810d06160681030a830a0600067f067f060206820700070107 -0307810d06150681030a020a83060007067f067f0683060700070107 -0307810d06150681030a030a8100078107067f067f06820700070107 -0307810d06140681030a040a820600078107067f067e06820700070107 -0307810d06140681030a050a8100078107067f067e06820700070107 -0307810d06130681030a060a820600078107067f067d06820700070107 -0307810d06130681030a070a8100078107067f067d06820700070107 -0307810d06120681030a080a820600078107067f067c06820700070107 -0307810d06120681030a010a810600010081060a010a8100078107067f067c0682070007 -0107 -0307810d06110681030a020a0400020a820600078107067f067b06820700070107 -0307810d06110681030a020a0400030a8100078107061606810006030681000605068100 -0627068100061b0681000620068100062c06040001060200140681000602060400010602 -0001068100060a06820700070107 -0307810d06100681030a030a0400030a8206000781070615068100060306810006050681 -000621068100060306810006230681000618068100060906810006200681000603068100 -060106810006120681000602068100060306810006010683000600060a06820700070107 - -0307810d06100681030a030a0400040a8100078107061606810006010681000606068100 -062106810006030681000623068100061806810006090681000620068100060306810006 -0106810006120681000602068100060306810006010683000600060a06820700070107 -0307810d060f0681030a040a0400040a8206000781070615068100060106810006010602 -000106830006000601068100068106000100040602008106008100068206000601068100 -068106008100068106008100060206030002060200050602000106820006008100060306 -840006000600810006810600810006810600010002060300010602000106010003060300 -020602000106010082060006820600068206000681060001000206020001068200060081 -000606060300010681000601068100060306020001068200060081000601060300030603 -000106810006010683000600060a06820700070107 -0307810d060f0681030a040a810300010081030a040a8100078107061506810006010681 -000604068500060006000601068300060006010681000602068100068206000684060006 -000601068300060006840600060006030681000601068300060006010681000606068200 -060081000682060006020682000600810006840600060006820600060106830006000601 -068300060006010683000600060306810006010683000600060106830006000682060006 -820600068406000600060106830006000601068200060081000682060006050681000601 -068300060006010681000606068200060081000684060006000601068100060206810006 -01068300060006010683000600060a06820700070107 -0307810d060e0681030a050a810600010081060a040a8206000781070615068300060006 -020603008406000600060106820006000300030681000682060006840600060006010681 -000682060006010681000603068100060106820006000300040603008206000601068100 -060206830006000601068300060006810600030082060006010682000600030082060006 -030681000601068200060003008206000689060006000600060006000300810600030082 -060006010681000602060100040683000600060106810006030603008206000601068300 -060006010681000606068300060006010683000600060a06820700070107 -0307810d060e0681030a060a0200070a8100078107061506830006000601068100060106 -850006000600060106830006000606068100068206000684060006000601068100060106 -810006820600060306810006010683000600060606810006010683000600060106810006 -020683000600060106830006000682060006030681000601068300060006030681000603 -068100060106830006000603068100068a06000600060006000600060306810006030681 -000601068100060906830006000601068100060206810006010683000600060106830006 -0006010681000606068300060006010683000600060a06820700070107 -0307810d060d0681030a070a830300030a060a8206000781070615068100060206810006 -010685000600060006810600830006000601068100060206810006820600068406000600 -068106008300060006840600060006030681000601068300060006010681000602068100 -060106830006000601068100060206830006000601068300060006820600060106830006 -000601068300060006010683000600060306810006010683000600060106830006000601 -068100060106810006820600060106830006000601068300060006010681000605068100 -060106830006000601068100060206810006010683000600060106830006000601068100 -0602068100060106830006000601068100060c06820700070107 -0307810d060d0681030a070a830600060a070a8100078107061506810006030603008206 -000681060083000600068106000100040681000682060006820600068106008300060006 -810600810006010681000602060300020602000506030082060006010681000602068300 -060006010681000682060006810600010002060300010602000106810006030603000206 -020002068100068206000601068100060106020002060200010681000601068100060606 -020002060200050603008206000601068100068106000200040602000206020001068100 -060a06820700070107 -0307810d060c0681030a090a81000a080a820600078107067c0681000677068207000701 -07 -0307810d060c0681030a150a810007810706780603007906820700070107 -0307810d060b0681030a090a8106008200060a070a820600078107067f06750682070007 -0107 -0307810d060b0681030a090a0300090a8100078107067f067506820700070107 -0307810d060a0681030a0a0a0300090a820600078107067f067406820700070107 -0307810d060a0681030a0a0a8106008200060a090a8100078107067f0674068207000701 -07 -0307810d060a0681030a190a81000701077f067406820700070107 -0307810d060a0681030a180a8206000701077f067406820700070107 -0307810d060b0681030a160a8206000702077f067406820700070107 -0307810d060c06810300160004077f067406820700070107 -0307810d060e061a077f067506820700070107 -0307810d060f0618077f067606820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d066b0648006a06820700070107 -0307810d066a064a006906820700070107 -0307810d066a060100450d8107008100066806820700070107 -0307810d066a060100440d010701006906820700070107 -0307810d066a060100010d18069100060006000600060006000600060006000617060107 -01006906820700070107 -0307810d066a060100010d4206010701006906820700070107 -0307810d066a060100010d18068100060d068100061706010701006906820700070107 -0307810d066a060100010d1b060300020681000601068100061906010701006906820700 -070107 -0307810d066a060100010d18068300060006020681000682060006820600068206000617 -06010701006906820700070107 -0307810d066a060100010d1a0681000602068100068406000600061b0601070100690682 -0700070107 -0307810d066a060100010d18068300060006020681000681060081000602068100061706 -010701006906820700070107 -0307810d066a060100010d1a0681000602068100068106008100061c0601070100690682 -0700070107 -0307810d066a060100010d18068300060006020681000684060006000601068100061706 -010701006906820700070107 -0307810d066a060100010d1a06810006020681000682060006820600061a060107010069 -06820700070107 -0307810d066a060100010d18068300060006020681000682060006010683000600061706 -010701006906820700070107 -0307810d066a060100010d1b060300020681000602068100061806010701006906820700 -070107 -0307810d066a060100010d18068100060d068100061706010701006906820700070107 -0307810d066a060100010d4206010701006906820700070107 -0307810d066a060100010d18069100060006000600060006000600060006000617060107 -01006906820700070107 -0307810d066a060100810d07440701006906820700070107 -0307810d066a060100460701006906820700070107 -0307810d066a064a006906820700070107 -0307810d066b0648006a06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -0307810d067f067f061f06820700070107 -7f077f0726078100070107 -02077f007f0024000207 -7f077f072a07 -7f077f072a07 -7f077f072a07 -7f077f072a07 -7f077f072a07 -7f077f072a07 - -% -% Compression made this file 5.68% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/docs/latex/proplist/prop2.gif b/docs/latex/proplist/prop2.gif deleted file mode 100644 index ec9b857234..0000000000 Binary files a/docs/latex/proplist/prop2.gif and /dev/null differ diff --git a/docs/latex/proplist/readme.txt b/docs/latex/proplist/readme.txt deleted file mode 100644 index f54a18a687..0000000000 --- a/docs/latex/proplist/readme.txt +++ /dev/null @@ -1,39 +0,0 @@ - -Prototype dialog editor and property sheet classes --------------------------------------------------- - -Julian Smart, October 4th 1995 ------------------------------- - -Here's what I've done so far on a lightweight dialog editor. The 16-bit -Windows binaries in the bin directory are dialoged.exe (the dialog -editor) and test.exe (a small property sheet demo). - -Main points: - - - You can create a new dialog box and add items to it. - - You can move items around, and right-click - to edit a few properties (very incomplete). - - Can't write out .wxr files yet. Loading code is in - wxWindows, but writing code is absent: should be put - into wxWindows. - - No attempt at resources other than dialogs yet. - Should have menu editor too. - - Should *somehow* have a protocol to allow - existing resources e.g. in wxCLIPS/wxPython - to be edited in situ. - This should be made simpler by the existance of - the plug-in event handler mechanism, which means you - can temporarily handle all the events yourself. - - See dialoged.cc: the main program is tiny because - it's meant to be embeddable. - - The wxPropertySheet (set of) classes are very - general and should be put into wxWin and documented. - -Comments, chivvying and help all appreciated. Maybe if -I documented what I had, it would be easier for others -to do some work on it. - -Regards, - -Julian \ No newline at end of file diff --git a/docs/latex/proplist/tex2rtf.ini b/docs/latex/proplist/tex2rtf.ini deleted file mode 100644 index 90c6676d9c..0000000000 --- a/docs/latex/proplist/tex2rtf.ini +++ /dev/null @@ -1,21 +0,0 @@ -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -contentsDepth = 2 -listItemIndent=40 -generateHPJ = yes -htmlBrowseButtons = bitmap -winHelpVersion = 3 -winHelpContents = yes -winHelpTitle = "Property Classes Manual" -truncateFilenames = yes -\overview [2] {\rtfonly{See also }\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}} -\htmlonly{\image{}{books.gif}}\helpref{#1}{#2} -\sethotspotcolour{on}\sethotspotunderline{on}} - diff --git a/docs/latex/proplist/up.gif b/docs/latex/proplist/up.gif deleted file mode 100644 index 316d0d2a14..0000000000 Binary files a/docs/latex/proplist/up.gif and /dev/null differ diff --git a/docs/latex/proplist/wxprop.hpj b/docs/latex/proplist/wxprop.hpj deleted file mode 100644 index d03da3049f..0000000000 --- a/docs/latex/proplist/wxprop.hpj +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS] -BMROOT=d:\wx2\wxWind~1\utils\wxprop\docs ; Assume that bitmaps are where the source is -TITLE=Property Classes Manual -CONTENTS=Contents -COMPRESS=HIGH - -[FILES] -wxprop.rtf - -[CONFIG] -CreateButton("Up", "&Up", "JumpId(`wxprop.hlp', `Contents')") -BrowseButtons() - -[MAP] - -[BITMAPS] - diff --git a/docs/latex/wx/.cvsignore b/docs/latex/wx/.cvsignore deleted file mode 100644 index 0ae54cf41f..0000000000 --- a/docs/latex/wx/.cvsignore +++ /dev/null @@ -1,13 +0,0 @@ -WX.GID -WX.HLP -wx.ref -wx.cnt -Wx.rtf -Wx.con -minimald.hpj -minimald.ref -minimald.con -MINIMALD.HLP -minimald.GID -minimald.cnt -minimald.rtf diff --git a/docs/latex/wx/accel.tex b/docs/latex/wx/accel.tex deleted file mode 100644 index 6466f512be..0000000000 --- a/docs/latex/wx/accel.tex +++ /dev/null @@ -1,198 +0,0 @@ -\section{\class{wxAcceleratorEntry}}\label{wxacceleratorentry} - -An object used by an application wishing to create an \helpref{accelerator table}{wxacceleratortable}. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxAcceleratorTable}{wxacceleratortable}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAcceleratorEntry::wxAcceleratorEntry}\label{wxacceleratorentryconstr} - -\func{}{wxAcceleratorEntry}{\void} - -Default constructor. - -\func{}{wxAcceleratorEntry}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}} - -Constructor. - -\wxheading{Parameters} - -\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates -which modifier key is held down.} - -\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.} - -\docparam{cmd}{The menu or control command identifier.} - -\membersection{wxAcceleratorEntry::GetCommand}\label{wxacceleratorentrygetcommand} - -\constfunc{int}{GetCommand}{\void} - -Returns the command identifier for the accelerator table entry. - -\membersection{wxAcceleratorEntry::GetFlags}\label{wxacceleratorentrygetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns the flags for the accelerator table entry. - -\membersection{wxAcceleratorEntry::GetKeyCode}\label{wxacceleratorentrygetkeycode} - -\constfunc{int}{GetKeyCode}{\void} - -Returns the keycode for the accelerator table entry. - -\membersection{wxAcceleratorEntry::Set}\label{wxacceleratorentryset} - -\func{void}{Set}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}} - -Sets the accelerator entry parameters. - -\wxheading{Parameters} - -\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates -which modifier key is held down.} - -\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.} - -\docparam{cmd}{The menu or control command identifier.} - -\section{\class{wxAcceleratorTable}}\label{wxacceleratortable} - -An accelerator table allows the application to specify a table of keyboard shortcuts for -menus or other commands. On Windows, menu or button commands are supported; on GTK, -only menu commands are supported. - -The object {\bf wxNullAcceleratorTable} is defined to be a table with no data, and is the -initial accelerator table for a window. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Example} - -{\small% -\begin{verbatim} - wxAcceleratorEntry entries[4]; - entries[0].Set(wxACCEL_CTRL, (int) 'N', ID_NEW_WINDOW); - entries[1].Set(wxACCEL_CTRL, (int) 'X', wxID_EXIT); - entries[2].Set(wxACCEL_SHIFT, (int) 'A', ID_ABOUT); - entries[3].Set(wxACCEL_NONE, WXK_DELETE, wxID_CUT); - wxAcceleratorTable accel(4, entries); - frame->SetAcceleratorTable(accel); -\end{verbatim} -} - -\wxheading{Remarks} - -An accelerator takes precedence over normal processing and can be a convenient way to program some event handling. -For example, you can use an accelerator table to enable a dialog with a multi-line text control to -accept CTRL-Enter as meaning 'OK' (but not in GTK at present). - -\wxheading{See also} - -\helpref{wxAcceleratorEntry}{wxacceleratorentry}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAcceleratorTable::wxAcceleratorTable}\label{wxacceleratortableconstr} - -\func{}{wxAcceleratorTable}{\void} - -Default constructor. - -\func{}{wxAcceleratorTable}{\param{const wxAcceleratorTable\& }{bitmap}} - -Copy constructor. - -\func{}{wxAcceleratorTable}{\param{int}{ n}, \param{wxAcceleratorEntry}{ entries[]}} - -Creates from an array of \helpref{wxAcceleratorEntry}{wxacceleratorentry} objects. - -\func{}{wxAcceleratorTable}{\param{const wxString\&}{ resource}} - -Loads the accelerator table from a Windows resource (Windows only). - -\wxheading{Parameters} - -\docparam{n}{Number of accelerator entries.} - -\docparam{entries}{The array of entries.} - -\docparam{resource}{Name of a Windows accelerator.} - -\membersection{wxAcceleratorTable::\destruct{wxAcceleratorTable}} - -\func{}{\destruct{wxAcceleratorTable}}{\void} - -Destroys the wxAcceleratorTable object. - -\membersection{wxAcceleratorTable::Ok}\label{wxacceleratortableok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if the accelerator table is valid. - -\membersection{wxAcceleratorTable::operator $=$} - -\func{wxAcceleratorTable\& }{operator $=$}{\param{const wxAcceleratorTable\& }{accel}} - -Assignment operator. This operator does not copy any data, but instead -passes a pointer to the data in {\it accel} and increments a reference -counter. It is a fast operation. - -\wxheading{Parameters} - -\docparam{accel}{Accelerator table to assign.} - -\wxheading{Return value} - -Returns 'this' object. - -\membersection{wxAcceleratorTable::operator $==$} - -\func{bool}{operator $==$}{\param{const wxAcceleratorTable\& }{accel}} - -Equality operator. This operator tests whether the internal data pointers are -equal (a fast test). - -\wxheading{Parameters} - -\docparam{accel}{Accelerator table to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the accelerator tables were effectively equal, FALSE otherwise. - -\membersection{wxAcceleratorTable::operator $!=$} - -\func{bool}{operator $!=$}{\param{const wxAcceleratorTable\& }{accel}} - -Inequality operator. This operator tests whether the internal data pointers are -unequal (a fast test). - -\wxheading{Parameters} - -\docparam{accel}{Accelerator table to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the accelerator tables were unequal, FALSE otherwise. - - diff --git a/docs/latex/wx/activevt.tex b/docs/latex/wx/activevt.tex deleted file mode 100644 index 515282ef28..0000000000 --- a/docs/latex/wx/activevt.tex +++ /dev/null @@ -1,60 +0,0 @@ -\section{\class{wxActivateEvent}}\label{wxactivateevent} - -An activate event is sent when a window or application is being activated -or deactivated. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process an activate event, use these event handler macros to direct input to a member -function that takes a wxActivateEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_ACTIVATE(func)}}{Process a wxEVT\_ACTIVATE event.} -\twocolitem{{\bf EVT\_ACTIVATE\_APP(func)}}{Process a wxEVT\_ACTIVATE\_APP event.} -\end{twocollist}% - -\wxheading{Remarks} - -A top-level window (a dialog or frame) receives an activate event when is -being activated or deactivated. This is indicated visually by the title -bar changing colour, and a subwindow gaining the keyboard focus. - -An application is activated or deactivated when one of its frames becomes activated, -or a frame becomes inactivate resulting in all application frames being inactive. (Windows only) - -\wxheading{See also} - -\helpref{wxWindow::OnActivate}{wxwindowonactivate},\rtfsp -\helpref{wxApp::OnActivate}{wxapponactivate},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxActivateEvent::wxActivateEvent} - -\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{bool}{ active = TRUE}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxActivateEvent::m\_active} - -\member{bool}{m\_active} - -TRUE if the window or application was activated. - -\membersection{wxActivateEvent::GetActive}\label{wxactivateeventgetactive} - -\constfunc{bool}{GetActive}{\void} - -Returns TRUE if the application or window is being activated, FALSE otherwise. - diff --git a/docs/latex/wx/alignv.bmp b/docs/latex/wx/alignv.bmp deleted file mode 100644 index cee82bcfa4..0000000000 Binary files a/docs/latex/wx/alignv.bmp and /dev/null differ diff --git a/docs/latex/wx/alignv.gif b/docs/latex/wx/alignv.gif deleted file mode 100644 index 65e12eaf50..0000000000 Binary files a/docs/latex/wx/alignv.gif and /dev/null differ diff --git a/docs/latex/wx/app.tex b/docs/latex/wx/app.tex deleted file mode 100644 index 12e553cd56..0000000000 --- a/docs/latex/wx/app.tex +++ /dev/null @@ -1,455 +0,0 @@ -\section{\class{wxApp}}\label{wxapp} - -The {\bf wxApp} class represents the application itself. It is used -to: - -\begin{itemize}\itemsep=0pt -\item set and get application-wide properties; -\item implement the windowing system message or event loop; -\item initiate application processing via \helpref{wxApp::OnInit}{wxapponinit}; -\item allow default processing of events not handled by other -objects in the application. -\end{itemize} - -You should use the macro IMPLEMENT\_APP(appClass) in your application implementation -file to tell wxWindows how to create an instance of your application class. - -Use DECLARE\_APP(appClass) in a header file if you want the wxGetApp function (which returns -a reference to your application object) to be visible to other files. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxApp overview}{wxappoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxApp::wxApp} - -\func{void}{wxApp}{\void} - -Constructor. Called implicitly with a definition of a wxApp object. - -The argument is a language identifier; this is an experimental -feature and will be expanded and documented in future versions. - -\membersection{wxApp::\destruct{wxApp}} - -\func{void}{\destruct{wxApp}}{\void} - -Destructor. Will be called implicitly on program exit if the wxApp -object is created on the stack. - -\membersection{wxApp::argc}\label{wxappargc} - -\member{int}{argc} - -Number of command line arguments (after environment-specific processing). - -\membersection{wxApp::argv}\label{wxappargv} - -\member{char **}{argv} - -Command line arguments (after environment-specific processing). - -\membersection{wxApp::CreateLogTarget}\label{wxappcreatelogtarget} - -\func{virtual wxLog*}{CreateLogTarget}{\void} - -Creates a wxLog class for the application to use for logging errors. The default -implementation returns a new wxLogGui class. - -\wxheading{See also} - -\helpref{wxLog}{wxlog} - -\membersection{wxApp::Dispatch}\label{wxappdispatch} - -\func{void}{Dispatch}{\void} - -Dispatches the next event in the windowing system event queue. - -This can be used for programming event loops, e.g. - -\begin{verbatim} - while (app.Pending()) - Dispatch(); -\end{verbatim} - -\wxheading{See also} - -\helpref{wxApp::Pending}{wxapppending} - -\membersection{wxApp::GetAppName}\label{wxappgetappname} - -\constfunc{wxString}{GetAppName}{\void} - -Returns the application name. - -\wxheading{Remarks} - -wxWindows sets this to a reasonable default before -calling \helpref{wxApp::OnInit}{wxapponinit}, but the application can reset it at will. - -\membersection{wxApp::GetAuto3D}\label{wxappgetauto3d} - -\constfunc{bool}{GetAuto3D}{\void} - -Returns TRUE if 3D control mode is on, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxApp::SetAuto3D}{wxappsetauto3d} - -\membersection{wxApp::GetClassName}\label{wxappgetclassname} - -\constfunc{wxString}{GetClassName}{\void} - -Gets the class name of the application. The class name may be used in a platform specific -manner to refer to the application. - -\wxheading{See also} - -\helpref{wxApp::SetClassName}{wxappsetclassname} - -\membersection{wxApp::GetExitOnDelete}\label{wxappgetexitondelete} - -\constfunc{bool}{GetExitOnDelete}{\void} - -Returns TRUE if the application will exit when the top-level window is deleted, FALSE -otherwise. - -\wxheading{See also} - -\helpref{wxApp::SetExitOnDelete}{wxappsetexitondelete} - -\membersection{wxApp::GetTopWindow}\label{wxappgettopwindow} - -\constfunc{wxWindow *}{GetTopWindow}{\void} - -Returns a pointer to the top window. - -\wxheading{Remarks} - -If the top window hasn't been set using \helpref{wxApp::SetTopWindow}{wxappsettopwindow}, this -function will find the first top-level window (frame or dialog) and return that. - -\wxheading{See also} - -\helpref{wxApp::SetTopWindow}{wxappsettopwindow} - -\membersection{wxApp::ExitMainLoop}\label{wxappexitmainloop} - -\func{void}{ExitMainLoop}{\void} - -Call this to explicitly exit the main message (event) loop. -You should normally exit the main loop (and the application) by deleting -the top window. - -\membersection{wxApp::Initialized}\label{wxappinitialized} - -\func{bool}{Initialized}{\void} - -Returns TRUE if the application has been initialized (i.e. if\rtfsp -\helpref{wxApp::OnInit}{wxapponinit} has returned successfully). This can be useful for error -message routines to determine which method of output is best for the -current state of the program (some windowing systems may not like -dialogs to pop up before the main loop has been entered). - -\membersection{wxApp::MainLoop}\label{wxappmainloop} - -\func{int}{MainLoop}{\void} - -Called by wxWindows on creation of the application. Override this if you wish -to provide your own (environment-dependent) main loop. - -\wxheading{Return value} - -Returns 0 under X, and the wParam of the WM\_QUIT message under Windows. - -\membersection{wxApp::OnActivate}\label{wxapponactivate} - -\func{void}{OnActivate}{\param{wxActivateEvent\& }{event}} - -Provide this member function to know whether the application is being -activated or deactivated (Windows only). - -\wxheading{See also} - -\helpref{wxWindow::OnActivate}{wxwindowonactivate}, \helpref{wxActivateEvent}{wxactivateevent} - -\membersection{wxApp::OnExit}\label{wxapponexit} - -\func{int}{OnExit}{\void} - -Provide this member function for any processing which needs to be done as -the application is about to exit. - -\membersection{wxApp::OnCharHook}\label{wxapponcharhook} - -\func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}} - -This event handler function is called (under Windows only) to allow the window to intercept keyboard events -before they are processed by child windows. - -\wxheading{Parameters} - -\docparam{event}{The keypress event.} - -\wxheading{Remarks} - -Use the wxEVT\_CHAR\_HOOK macro in your event table. - -If you use this member, you can selectively consume keypress events by calling\rtfsp -\helpref{wxEvent::Skip}{wxeventskip} for characters the application is not interested in. - -\wxheading{See also} - -\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnChar}{wxwindowonchar},\rtfsp -\helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, \helpref{wxDialog::OnCharHook}{wxdialogoncharhook} - -\membersection{wxApp::OnIdle}\label{wxapponidle} - -\func{void}{OnIdle}{\param{wxIdleEvent\& }{event}} - -Override this member function for any processing which needs to be done -when the application is idle. You should call wxApp::OnIdle from your own function, -since this forwards OnIdle events to windows and also performs garbage collection for -windows whose destruction has been delayed. - -wxWindows' strategy for OnIdle processing is as follows. After pending user interface events for an -application have all been processed, wxWindows sends an OnIdle event to the application object. wxApp::OnIdle itself -sends an OnIdle event to each application window, allowing windows to do idle processing such as updating -their appearance. If either wxApp::OnIdle or a window OnIdle function requested more time, by -caling \helpref{wxIdleEvent::ReqestMore}{wxidleeventrequestmore}, wxWindows will send another OnIdle -event to the application object. This will occur in a loop until either a user event is found to be -pending, or OnIdle requests no more time. Then all pending user events are processed until the system -goes idle again, when OnIdle is called, and so on. - -\wxheading{See also} - -\helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent},\rtfsp -\helpref{wxWindow::SendIdleEvents}{wxappsendidleevents} - -\membersection{wxApp::OnEndSession}\label{wxapponendsession} - -\func{void}{OnEndSession}{\param{wxCloseEvent\& }{event}} - -This is an event handler function called when the operating system or GUI session is -about to close down. The application has a chance to silently save information, -and can optionally close itself. - -Use the EVT\_END\_SESSION event table macro to handle query end session events. - -The default handler calls \helpref{wxWindow::Close}{wxwindowclose} with a TRUE argument -(forcing the application to close itself silently). - -\wxheading{Remarks} - -Under X, OnEndSession is called in response to the 'die' event. - -Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message. - -\wxheading{See also} - -\helpref{wxWindow::Close}{wxwindowclose},\rtfsp -\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent},\rtfsp -\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession} - -\membersection{wxApp::OnInit}\label{wxapponinit} - -\func{bool}{OnInit}{\void} - -This must be provided by the application, and will usually create the -application's main window, optionally calling \helpref{wxApp::SetTopWindow}{wxappsettopwindow}. - -Return TRUE to continue processing, FALSE to exit the application. - -\membersection{wxApp::OnQueryEndSession}\label{wxapponqueryendsession} - -\func{void}{OnQueryEndSession}{\param{wxCloseEvent\& }{event}} - -This is an event handler function called when the operating system or GUI session is -about to close down. Typically, an application will try to save unsaved documents -at this point. - -If \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns TRUE, the application -is allowed to veto the shutdown by calling \helpref{wxCloseEvent::Veto}{wxcloseeventveto}. -The application might veto the shutdown after prompting for documents to be saved, and the -user has cancelled the save. - -Use the EVT\_QUERY\_END\_SESSION event table macro to handle query end session events. - -You should check whether the application is forcing the deletion of the window -using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE, -destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}. -If not, it is up to you whether you respond by destroying the window. - -The default handler calls \helpref{wxWindow::Close}{wxwindowclose} on the top-level window, -and vetoes the shutdown if Close returns FALSE. This will be sufficient for many applications. - -\wxheading{Remarks} - -Under X, OnQueryEndSession is called in response to the 'save session' event. - -Under Windows, OnQueryEndSession is called in response to the WM\_QUERYENDSESSION message. - -\wxheading{See also} - -\helpref{wxWindow::Close}{wxwindowclose},\rtfsp -\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent},\rtfsp -\helpref{wxApp::OnEndSession}{wxapponendsession} - -\membersection{wxApp::ProcessMessage}\label{wxappprocessmessage} - -\func{bool}{ProcessMessage}{\param{MSG *}{msg}} - -Windows-only function for processing a message. This function -is called from the main message loop, checking for windows that -may wish to process it. The function returns TRUE if the message -was processed, FALSE otherwise. If you use wxWindows with another class -library with its own message loop, you should make sure that this -function is called to allow wxWindows to receive messages. For example, -to allow co-existance with the Microsoft Foundation Classes, override -the PreTranslateMessage function: - -\begin{verbatim} -// Provide wxWindows message loop compatibility -BOOL CTheApp::PreTranslateMessage(MSG *msg) -{ - if (wxTheApp && wxTheApp->ProcessMessage(msg)) - return TRUE; - else - return CWinApp::PreTranslateMessage(msg); -} -\end{verbatim} - -\membersection{wxApp::Pending}\label{wxapppending} - -\func{bool}{Pending}{\void} - -Returns TRUE if unprocessed events are in the window system event queue -(MS Windows and Motif). - -\wxheading{See also} - -\helpref{wxApp::Dispatch}{wxappdispatch} - -\membersection{wxApp::SendIdleEvents}\label{wxappsendidleevents} - -\func{bool}{SendIdleEvents}{\void} - -Sends idle events to all top-level windows. - -\func{bool}{SendIdleEvents}{\param{wxWindow*}{ win}} - -Sends idle events to a window and its children. - -\wxheading{Remarks} - -These functions poll the top-level windows, and their children, for idle event processing. -If TRUE is returned, more OnIdle processing is requested by one or more window. - -\wxheading{See also} - -\helpref{wxApp::OnIdle}{wxapponidle}, \helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent} - -\membersection{wxApp::SetAppName}\label{wxappsetappname} - -\func{void}{SetAppName}{\param{const wxString\& }{name}} - -Sets the name of the application. The name may be used in dialogs -(for example by the document/view framework). A default name is set by -wxWindows. - -\wxheading{See also} - -\helpref{wxApp::GetAppName}{wxappgetappname} - -\membersection{wxApp::SetAuto3D}\label{wxappsetauto3d} - -\func{void}{SetAuto3D}{\param{const bool}{ auto3D}} - -Switches automatic 3D controls on or off. - -\wxheading{Parameters} - -\docparam{auto3D}{If TRUE, all controls will be created with 3D appearances unless -overridden for a control or dialog. The default is TRUE} - -\wxheading{Remarks} - -This has an effect on Windows only. - -\wxheading{See also} - -\helpref{wxApp::GetAuto3D}{wxappgetauto3d} - -\membersection{wxApp::SetClassName}\label{wxappsetclassname} - -\func{void}{SetClassName}{\param{const wxString\& }{name}} - -Sets the class name of the application. This may be used in a platform specific -manner to refer to the application. - -\wxheading{See also} - -\helpref{wxApp::GetClassName}{wxappgetclassname} - -\membersection{wxApp::SetExitOnDelete}\label{wxappsetexitondelete} - -\func{void}{SetExitOnDelete}{\param{bool}{ flag}} - -Allows the programmer to specify whether the application will exit when the -top-level frame is deleted. - -\wxheading{Parameters} - -\docparam{flag}{If TRUE (the default), the application will exit when the top-level frame is -deleted. If FALSE, the application will continue to run.} - -\wxheading{Remarks} - -Currently, setting this to FALSE only has an effect under Windows. - -\membersection{wxApp::SetTopWindow}\label{wxappsettopwindow} - -\func{void}{SetTopWindow}{\param{wxWindow* }{window}} - -Sets the `top' window. You can call this from within \helpref{wxApp::OnInit}{wxapponinit} to -let wxWindows know which is the main window. You don't have to set the top window; -it's only a convenience so that (for example) certain dialogs without parents can use a -specific window as the top window. If no top window is specified by the application, -wxWindows just uses the first frame or dialog in its top-level window list, when it -needs to use the top window. - -\wxheading{Parameters} - -\docparam{window}{The new top window.} - -\wxheading{See also} - -\helpref{wxApp::GetTopWindow}{wxappgettopwindow}, \helpref{wxApp::OnInit}{wxapponinit} - -\membersection{wxApp::GetStdIcon}\label{wxappgetstdicon} - -\func{virtual wxIcon}{GetStdIcon}{\param{int }{which}} const - -Returns the icons used by wxWindows internally, e.g. the ones used for -message boxes. This function is used internally and -can be overridden by the user to change the default icons. - -\wxheading{Parameters} - -\docparam{which}{One of the wxICON_XXX defines and chooses which icon to return.} - diff --git a/docs/latex/wx/array.tex b/docs/latex/wx/array.tex deleted file mode 100644 index 7f16a2a273..0000000000 --- a/docs/latex/wx/array.tex +++ /dev/null @@ -1,540 +0,0 @@ -\section{\class{wxArray}}\label{wxarray} - -This section describes the so called {\it dynamic arrays}. This is a C -array-like data structure i.e. the member access time is constant (and not -linear according to the number of container elements as for linked lists). However, these -arrays are dynamic in the sense that they will automatically allocate more -memory if there is not enough of it for adding a new element. They also perform -range checking on the index values but in debug mode only, so please be sure to -compile your application in debug mode to use it (see \helpref{debugging overview}{debuggingoverview} for -details). So, unlike the arrays in some other -languages, attempt to access an element beyond the arrays bound doesn't -automatically expand the array but provokes an assertion failure instead in -debug build and does nothing (except possibly crashing your program) in the -release build. - -The array classes were designed to be reasonably efficient, both in terms of -run-time speed and memory consumption and the executable size. The speed of -array item access is, of course, constant (independent of the number of elements) -making them much more efficient than linked lists (\helpref{wxList}{wxlist}). -Adding items to the arrays is also implemented in more or less constant time - -but the price is preallocating the memory in advance. In the \helpref{memory management}{wxarraymemorymanagement} section -you may find some useful hints about optimizing wxArray memory usage. As for executable size, all -wxArray functions are inline, so they do not take {\it any space at all}. - -wxWindows has three different kinds of array. All of them derive from -wxBaseArray class which works with untyped data and can not be used directly. -The standard macros WX\_DEFINE\_ARRAY(), WX\_DEFINE\_SORTED\_ARRAY() and -WX\_DEFINE\_OBJARRAY() are used to define a new class deriving from it. The -classes declared will be called in this documentation wxArray, wxSortedArray and -wxObjArray but you should keep in mind that no classes with such names actually -exist, each time you use one of WX\_DEFINE\_XXXARRAY macro you define a class -with a new name. In fact, these names are "template" names and each usage of one -of the macros mentioned above creates a template specialization for the given -element type. - -wxArray is suitable for storing integer types and pointers which it does not -treat as objects in any way, i.e. the element pointed to by the pointer is not -deleted when the element is removed from the array. It should be noted that -all of wxArray's functions are inline, so it costs strictly nothing to define as -many array types as you want (either in terms of the executable size or the -speed) as long as at least one of them is defined and this is always the case -because wxArrays are used by wxWindows internally. This class has one serious -limitation: it can only be used for storing integral types (bool, char, short, -int, long and their unsigned variants) or pointers (of any kind). An attempt -to use with objects of sizeof() greater than sizeof(long) will provoke a -runtime assertion failure, however declaring a wxArray of floats will not (on -the machines where sizeof(float) <= sizeof(long)), yet it will {\bf not} work, -please use wxObjArray for storing floats and doubles (NB: a more efficient -wxArrayDouble class is scheduled for the next release of wxWindows). - -wxSortedArray is a wxArray variant which should be used when searching in the -array is a frequently used operation. It requires you to define an additional -function for comparing two elements of the array element type and always stores -its items in the sorted order (according to this function). Thus, it's - \helpref{Index()}{wxarrayindex} function execution time is $O(log(N))$ instead of -$O(N)$ for the usual arrays but the \helpref{Add()}{wxarrayadd} method is -slower: it is $O(log(N))$ instead of constant time (neglecting time spent in -memory allocation routine). However, in a usual situation elements are added to -an array much less often than searched inside it, so wxSortedArray may lead to -huge performance improvements compared to wxArray. Finally, it should be -noticed that, as wxArray, wxSortedArray can be only used for storing integral -types or pointers. - -wxObjArray class treats its elements like "objects". It may delete them when -they are removed from the array (invoking the correct destructor) and copies -them using the objects copy constructor. In order to implement this behaviour -the definition of the wxObjArray arrays is split in two parts: first, you should -declare the new wxObjArray class using WX\_DECLARE\_OBJARRAY() macro and then -you must include the file defining the implementation of template type: - and define the array class with WX\_DEFINE\_OBJARRAY() macro -from a point where the full (as opposed to `forward') declaration of the array -elements class is in scope. As it probably sounds very complicated here is an -example: - -\begin{verbatim} -#include - -// we must forward declare the array because it's used inside the class -// declaration -class MyDirectory; -class MyFile; - -// this defines two new types: ArrayOfDirectories and ArrayOfFiles which can be -// now used as shown below -WX_DECLARE_OBJARRAY(MyDirectory, ArrayOfDirectories); -WX_DECLARE_OBJARRAY(MyFile, ArrayOfFiles); - -class MyDirectory -{ -... - ArrayOfDirectories m_subdirectories; // all subdirectories - ArrayOfFiles m_files; // all files in this directory -}; - -... - -// now that we have MyDirectory declaration in scope we may finish the -// definition of ArrayOfDirectories -#include // this is a magic incantation which must be done! -WX_DEFINE_OBJARRAY(ArrayOfDirectories); - -// that's all! -\end{verbatim} - -It is not as elegant as writing - -\begin{verbatim} -typedef std::vector ArrayOfDirectories; -\end{verbatim} - -but is not that complicated and allows the code to be compiled with any, however -dumb, C++ compiler in the world. - -Things are much simpler for wxArray and wxSortedArray however: it is enough -just to write - -\begin{verbatim} -WX_DEFINE_ARRAY(MyDirectory *, ArrayOfDirectories); -WX_DEFINE_SORTED_ARRAY(MyFile *, ArrayOfFiles); -\end{verbatim} - -\wxheading{See also:} - -\helpref{Container classes overview}{wxcontaineroverview}, \helpref{wxList}{wxlist} - -\wxheading{Required headers:} - - for wxArray and wxSortedArray and additionally -for wxObjArray. - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Macros for template array definition} - -To use an array you must first define the array class. This is done with the -help of the macros in this section. The class of array elements must be (at -least) forward declared for WX\_DEFINE\_ARRAY, WX\_DEFINE\_SORTED\_ARRAY and -WX\_DECLARE\_OBJARRAY macros and must be fully declared before you use -WX\_DEFINE\_OBJARRAY macro. - -\helpref{WX\_DEFINE\_ARRAY}{wxdefinearray}\\ -\helpref{WX\_DEFINE\_SORTED\_ARRAY}{wxdefinesortedarray}\\ -\helpref{WX\_DECLARE\_OBJARRAY}{wxdeclareobjarray}\\ -\helpref{WX\_DEFINE\_OBJARRAY}{wxdefineobjarray} - -\membersection{Constructors and destructors} - -Array classes are 100\% C++ objects and as such they have the appropriate copy -constructors and assignment operators. Copying wxArray just copies the elements -but copying wxObjArray copies the arrays items. However, for memory-efficiency -sake, neither of these classes has virtual destructor. It is not very important -for wxArray which has trivial destructor anyhow, but it does mean that you -should avoid deleting wxObjArray through a wxBaseArray pointer (as you would -never use wxBaseArray anyhow it shouldn't be a problem) and that you should not -derive your own classes from the array classes. - -\helpref{wxArray default constructor}{wxarrayctordef}\\ -\helpref{wxArray copy constructors and assignment operators}{wxarrayctorcopy}\\ -\helpref{\destruct{wxArray}}{wxarraydtor} - -\membersection{Memory management}\label{wxarraymemorymanagement} - -Automatic array memory management is quite trivial: the array starts by -preallocating some minimal amount of memory (defined by -WX\_ARRAY\_DEFAULT\_INITIAL\_SIZE) and when further new items exhaust already -allocated memory it reallocates it adding 50\% of the currently allocated -amount, but no more than some maximal number which is defined by -ARRAY\_MAXSIZE\_INCREMENT constant. Of course, this may lead to some memory -being wasted (ARRAY\_MAXSIZE\_INCREMENT in the worst case, i.e. 4Kb in the -current implementation), so the \helpref{Shrink()}{wxarrayshrink} function is -provided to unallocate the extra memory. The \helpref{Alloc()}{wxarrayalloc} -function can also be quite useful if you know in advance how many items you are -going to put in the array and will prevent the array code from reallocating the -memory more times than needed. - -\helpref{Alloc}{wxarrayalloc}\\ -\helpref{Shrink}{wxarrayshrink} - -\membersection{Number of elements and simple item access} - -Functions in this section return the total number of array elements and allow to -retrieve them - possibly using just the C array indexing $[]$ operator which -does exactly the same as \helpref{Item()}{wxarrayitem} method. - -\helpref{Count}{wxarraycount}\\ -\helpref{GetCount}{wxarraygetcount}\\ -\helpref{IsEmpty}{wxarrayisempty}\\ -\helpref{Item}{wxarrayitem}\\ -\helpref{Last}{wxarraylast} - -\membersection{Adding items} - -\helpref{Add}{wxarrayadd}\\ -\helpref{Insert}{wxarrayinsert} - -\membersection{Removing items} - -\helpref{WX\_CLEAR\_ARRAY}{wxcleararray}\\ -\helpref{Empty}{wxarrayempty}\\ -\helpref{Clear}{wxarrayclear}\\ -\helpref{Remove}{wxarrayremove} - -\membersection{Searching and sorting} - -\helpref{Index}{wxarrayindex}\\ -\helpref{Sort}{wxarraysort} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{WX\_DEFINE\_ARRAY}\label{wxdefinearray} - -\func{}{WX\_DEFINE\_ARRAY}{\param{}{T}, \param{}{name}} - -This macro defines a new array class named {\it name} and containing the -elements of type {\it T}. Example: - -\begin{verbatim} -WX_DEFINE_ARRAY(int, wxArrayInt); - -class MyClass; -WX_DEFINE_ARRAY(MyClass *, wxArrayOfMyClass); -\end{verbatim} - -Note that wxWindows predefines the following standard array classes: wxArrayInt, -wxArrayLong and wxArrayPtrVoid. - -\membersection{WX\_DEFINE\_SORTED\_ARRAY}\label{wxdefinesortedarray} - -\func{}{WX\_DEFINE\_SORTED\_ARRAY}{\param{}{T}, \param{}{name}} - -This macro defines a new sorted array class named {\it name} and containing -the elements of type {\it T}. Example: - -\begin{verbatim} -WX_DEFINE_SORTED_ARRAY(int, wxArrayInt); - -class MyClass; -WX_DEFINE_SORTED_ARRAY(MyClass *, wxArrayOfMyClass); -\end{verbatim} - -You will have to initialize the objects of this class by passing a comparaison -function to the array object constructor like this: -\begin{verbatim} -int CompareInts(int n1, int n2) -{ - return n1 - n2; -} - -wxArrayInt sorted(CompareInts); - -int CompareMyClassObjects(MyClass *item1, MyClass *item2) -{ - // sort the items by their address... - return Stricmp(item1->GetAddress(), item2->GetAddress()); -} - -wxArrayOfMyClass another(CompareMyClassObjects); -\end{verbatim} - -\membersection{WX\_DECLARE\_OBJARRAY}\label{wxdeclareobjarray} - -\func{}{WX\_DECLARE\_OBJARRAY}{\param{}{T}, \param{}{name}} - -This macro declares a new object array class named {\it name} and containing -the elements of type {\it T}. Example: - -\begin{verbatim} -class MyClass; -WX_DEFINE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"! -\end{verbatim} - -You must use \helpref{WX\_DEFINE\_OBJARRAY()}{wxdefineobjarray} macro to define -the array class - otherwise you would get link errors. - -\membersection{WX\_DEFINE\_OBJARRAY}\label{wxdefineobjarray} - -\func{}{WX\_DEFINE\_OBJARRAY}{\param{}{name}} - -This macro defines the methods of the array class {\it name} not defined by the -\helpref{WX\_DECLARE\_OBJARRAY()}{wxdeclareobjarray} macro. You must include the -file before using this macro and you must have the full -declaration of the class of array elements in scope! If you forget to do the -first, the error will be caught by the compiler, but, unfortunately, many -compilers will not give any warnings if you forget to do the second - but the -objects of the class will not be copied correctly and their real destructor will -not be called. - -Example of usage: - -\begin{verbatim} -// first declare the class! -class MyClass -{ -public: - MyClass(const MyClass&); - - ... - - virtual ~MyClass(); -}; - -#include -WX_DEFINE_OBJARRAY(wxArrayOfMyClass); -\end{verbatim} - -\membersection{WX\_CLEAR\_ARRAY}\label{wxcleararray} - -\func{void}{WX\_CLEAR\_ARRAY}{\param{wxArray\& }{array}} - -This macro may be used to delete all elements of the array before emptying it. -It can not be used with wxObjArrays - but they will delete their elements anyhow -when you call Empty(). - -\membersection{Default constructors}\label{wxarrayctordef} - -\func{}{wxArray}{\void} - -\func{}{wxObjArray}{\void} - -Default constructor initializes an empty array object. - -\func{}{wxSortedArray}{\param{int (*)(T first, T second)}{compareFunction}} - -There is no default constructor for wxSortedArray classes - you must initialize it -with a function to use for item comparaison. It is a function which is passed -two arguments of type {\it T} where {\it T} is the array element type and which -should return a negative, zero or positive value according to whether the first -element passed to it is less than, equal to or greater than the second one. - -\membersection{wxArray copy constructor and assignment operator}\label{wxarrayctorcopy} - -\func{}{wxArray}{\param{const wxArray\& }{array}} - -\func{}{wxSortedArray}{\param{const wxSortedArray\& }{array}} - -\func{}{wxObjArray}{\param{const wxObjArray\& }{array}} - -\func{wxArray\&}{operator$=$}{\param{const wxArray\& }{array}} - -\func{wxSortedArray\&}{operator$=$}{\param{const wxSortedArray\& }{array}} - -\func{wxObjArray\&}{operator$=$}{\param{const wxObjArray\& }{array}} - -The copy constructors and assignment operators perform a shallow array copy -(i.e. they don't copy the objects pointed to even if the source array contains -the items of pointer type) for wxArray and wxSortedArray and a deep copy (i.e. -the array element are copied too) for wxObjArray. - -\membersection{wxArray::\destruct{wxArray}}\label{wxarraydtor} - -\func{}{\destruct{wxArray}}{\void} - -\func{}{\destruct{wxSortedArray}}{\void} - -\func{}{\destruct{wxObjArray}}{\void} - -The wxObjArray destructor deletes all the items owned by the array. This is not -done by wxArray and wxSortedArray versions - you may use -\helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro for this. - -\membersection{wxArray::Add}\label{wxarrayadd} - -\func{void}{Add}{\param{T }{item}} - -\func{void}{Add}{\param{T *}{item}} - -\func{void}{Add}{\param{T \&}{item}} - -Appends a new element to the array (where {\it T} is the type of the array -elements.) - -The first version is used with wxArray and wxSortedArray. The second and the -third are used with wxObjArray. There is an important difference between -them: if you give a pointer to the array, it will take ownership of it, i.e. -will delete it when the item is deleted from the array. If you give a reference -to the array, however, the array will make a copy of the item and will not take -ownership of the original item. Once again, it only makes sense for wxObjArrays -because the other array types never take ownership of their elements. - -\membersection{wxArray::Alloc}\label{wxarrayalloc} - -\func{void}{Alloc}{\param{size\_t }{count}} - -Preallocates memory for a given number of array elements. It is worth calling -when the number of items which are going to be added to the array is known in -advance because it will save unneeded memory reallocation. If the array already -has enough memory for the given number of items, nothing happens. - -\membersection{wxArray::Clear}\label{wxarrayclear} - -\func{void}{Clear}{\void} - -This function does the same as \helpref{Empty()}{wxarrayempty} and additionally -frees the memory allocated to the array. - -\membersection{wxArray::Count}\label{wxarraycount} - -\constfunc{size\_t}{Count}{\void} - -Same as \helpref{GetCount()}{wxarraygetcount}. This function is deprecated - -it exists only for compatibility. - -\membersection{wxObjArray::Detach}\label{wxobjarraydetach} - -\func{T *}{Detach}{\param{size\_t }{index}} - -Removes the element from the array, but, unlike, - -\helpref{Remove()}{wxarrayremove} doesn't delete it. The function returns the -pointer to the removed element. - -\membersection{wxArray::Empty}\label{wxarrayempty} - -\func{void}{Empty}{\void} - -Empties the array. For wxObjArray classes, this destroys all of the array -elements. For wxArray and wxSortedArray this does nothing except marking the -array of being empty - this function does not free the allocated memory, use -\helpref{Clear()}{wxarrayclear} for this. - -\membersection{wxArray::GetCount}\label{wxarraygetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Return the number of items in the array. - -\membersection{wxArray::Index}\label{wxarrayindex} - -\func{int}{Index}{\param{T\& }{item}, \param{bool }{searchFromEnd = FALSE}} - -\func{int}{Index}{\param{T\& }{item}} - -The first version of the function is for wxArray and wxObjArray, the second is -for wxSortedArray only. - -Searches the element in the array, starting from either beginning or the end -depending on the value of {\it searchFromEnd} parameter. wxNOT\_FOUND is -returned if the element is not found, otherwise the index of the element is -returned. - -Linear search is used for the wxArray and wxObjArray classes but binary search -in the sorted array is used for wxSortedArray (this is why searchFromEnd -parameter doesn't make sense for it). - -\membersection{wxArray::Insert}\label{wxarrayinsert} - -\func{void}{Insert}{\param{T }{item}, \param{size\_t }{n}} - -\func{void}{Insert}{\param{T *}{item}, \param{size\_t }{n}} - -\func{void}{Insert}{\param{T \&}{item}, \param{size\_t }{n}} - -Insert a new item into the array before the item {\it n} - thus, {\it Insert(something, 0u)} will -insert an item in such way that it will become the -first array element. - -Please see \helpref{Add()}{wxarrayadd} for explanation of the differences -between the overloaded versions of this function. - -\membersection{wxArray::IsEmpty}\label{wxarrayisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns TRUE if the array is empty, FALSE otherwise. - -\membersection{wxArray::Item}\label{wxarrayitem} - -\constfunc{T\&}{Item}{\param{size\_t }{index}} - -Returns the item at the given position in the array. If {\it index} is out of -bounds, an assert failure is raised in the debug builds but nothing special is -done in the release build. - -The returned value is of type "reference to the array element type" for all of -the array classes. - -\membersection{wxArray::Last}\label{wxarraylast} - -\constfunc{T\&}{Last}{\void} - -Returns the last element in the array, i.e. is the same as Item(GetCount() - 1). -An assert failure is raised in the debug mode if the array is empty. - -The returned value is of type "reference to the array element type" for all of -the array classes. - -\membersection{wxArray::Remove}\label{wxarrayremove} - -\func{\void}{Remove}{\param{size\_t }{index}} - -\func{\void}{Remove}{\param{T }{item}} - -Removes the element from the array either by index or by value. When an element -is removed from wxObjArray it is deleted by the array - use -\helpref{Detach()}{wxobjarraydetach} if you don't want this to happen. On the -other hand, when an object is removed from a wxArray nothing happens - you -should delete the it manually if required: - -\begin{verbatim} -T *item = array[n]; -delete item; -array.Remove(n) -\end{verbatim} - -See also \helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro which deletes all -elements of a wxArray (supposed to contain pointers). - -\membersection{wxArray::Shrink}\label{wxarrayshrink} - -\func{void}{Shrink}{\void} - -Frees all memory unused by the array. If the program knows that no new items -will be added to the array it may call Shrink() to reduce its memory usage. -However, if a new item is added to the array, some extra memory will be -allocated again. - -\membersection{wxArray::Sort}\label{wxarraysort} - -\func{void}{Sort}{\param{CMPFUNC }{compareFunction}} - -The notation CMPFUNC should be read as if we had the following declaration: - -\begin{verbatim} -template int CMPFUNC(T *first, T *second); -\end{verbatim} - -where {\it T} is the type of the array elements. I.e. it is a function returning -{\it int} which is passed two arguments of type {\it T *}. - -Sorts the array using the specified compare function: this function should -return a negative, zero or positive value according to whether the first element -passed to it is less than, equal to or greater than the second one. - -wxSortedArray doesn't have this function because it is always sorted. - diff --git a/docs/latex/wx/arrstrng.tex b/docs/latex/wx/arrstrng.tex deleted file mode 100644 index ab2cd02788..0000000000 --- a/docs/latex/wx/arrstrng.tex +++ /dev/null @@ -1,249 +0,0 @@ -\section{\class{wxArrayString}}\label{wxarraystring} - -wxArrayString is an efficient container for storing -\helpref{wxString}{wxstring} objects. It has the same features as all -\helpref{wxArray}{wxarray} classes, i.e. it dynamically expands when new items -are added to it (so it is as easy to use as a linked list), but the access -time to the elements is constant, instead of being linear in number of -elements as in the case of linked lists. It is also very size efficient and -doesn't take more space than a C array {\it wxString[]} type. wxArrayString -uses its knowledge of internals of wxString class to achieve this. - -This class is used in the same way as other dynamic \helpref{arrays}{wxarray}, -except that no {\it WX\_DEFINE\_ARRAY} declaration is needed for it. When a -string is added or inserted in the array, a copy of the string is created, so -the original string may be safely deleted (e.g. if it was a {\it char *} -pointer the memory it was using can be freed immediately after this). In -general, there is no need to worry about string memory deallocation when using -this class - it will always free the memory it uses itself. - -The references returned by \helpref{Item}{wxarraystringitem}, -\helpref{Last}{wxarraystringlast} or -\helpref{operator[]}{wxarraystringoperatorindex} are not constant, so the -array elements may be modified in place like this - -\begin{verbatim} - array.Last().MakeUpper(); -\end{verbatim} - -Finally, none of the methods of this class is virtual including its -destructor, so this class should not be derived from. - -\wxheading{Derived from} - -Although this is not true strictly speaking, this class may be considered as a -specialization of \helpref{wxArray}{wxarray} class for the wxString member -data: it is not implemented like this, but it does have all of the wxArray -functions. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxArray}{wxarray}, \helpref{wxString}{wxstring}, \helpref{wxString overview}{wxstringoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxArrayString::wxArrayString}\label{wxarraystringctor} - -\func{}{wxArrayString}{\void} - -\func{}{wxArrayString}{\param{const wxArrayString\&}{ array}} - -Default and copy constructors. - -\membersection{wxArrayString::\destruct{wxArrayString}}\label{wxarraystringdtor} - -\func{}{\destruct{wxArrayString}}{} - -Destructor frees memory occupied by the array strings. For the performance -reasons it is not virtual, so this class should not be derived from. - -\membersection{wxArrayString::operator=}\label{wxarraystringoperatorassign} - -\func{wxArrayString \&}{operator $=$}{\param{const wxArrayString\&}{ array}} - -Assignment operator. - -\membersection{wxArrayString::operator[]}\label{wxarraystringoperatorindex} - -\func{wxString\&}{operatorp[]}{\param{size\_t }{nIndex}} - -Return the array element at position {\it nIndex}. An assert failure will -result from an attempt to access an element beyond the end of array in debug -mode, but no check is done in release mode. - -This is the operator version of \helpref{Item}{wxarraystringitem} method. - -\membersection{wxArrayString::Add}\label{wxarraystringadd} - -\func{void}{Add}{\param{const wxString\& }{str}} - -Appends a new item to the array. - -See also: \helpref{Insert}{wxarraystringinsert} - -\membersection{wxArrayString::Alloc}\label{wxarraystringalloc} - -\func{void}{Alloc}{\param{size\_t }{nCount}} - -Preallocates enough memory to store {\it nCount} items. This function may be -used to improve array class performance before adding a known number of items -consecutively. - -See also: \helpref{Dynamic array memory management}{wxarraymemorymanagement} - -\membersection{wxArrayString::Clear}\label{wxarraystringclear} - -\func{void}{Clear}{\void} - -Clears the array contents and frees memory. - -See also: \helpref{Empty}{wxarraystringempty} - -\membersection{wxArrayString::Count}\label{wxarraystringcount} - -\constfunc{size\_t}{Count}{\void} - -Returns the number of items in the array. This function is deprecated and is -for backwards compatibility only, please use -\helpref{GetCount}{wxarraystringgetcount} instead. - -\membersection{wxArrayString::Empty}\label{wxarraystringempty} - -\func{void}{Empty}{\void} - -Empties the array: after a call to this function -\helpref{GetCount}{wxarraystringgetcount} will return $0$. However, this -function does not free the memory used by the array and so should be used when -the array is going to be reused for storing other strings. Otherwise, you -should use \helpref{Clear}{wxarraystringclear} to empty the array and free -memory. - -\membersection{wxArrayString::GetCount}\label{wxarraystringgetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Returns the number of items in the array. - -\membersection{wxArrayString::Index}\label{wxarraystringindex} - -\func{int}{Index}{\param{const char *}{ sz}, \param{bool}{ bCase = TRUE}, \param{bool}{ bFromEnd = FALSE}} - -Search the element in the array, starting from the beginning if -{\it bFromEnd} is FALSE or from end otherwise. If {\it bCase}, comparison is -case sensitive (default), otherwise the case is ignored. - -Returns index of the first item matched or wxNOT\_FOUND if there is no match. - -\membersection{wxArrayString::Insert}\label{wxarraystringinsert} - -\func{void}{Insert}{\param{const wxString\& }{str}, \param{size\_t}{ nIndex}} - -Insert a new element in the array before the position {\it nIndex}. Thus, for -example, to insert the string in the beginning of the array you would write - -\begin{verbatim} -Insert("foo", 0); -\end{verbatim} - -If {\it nIndex} is equal to {\it GetCount() + 1} this function behaves as -\helpref{Add}{wxarraystringadd}. - -\membersection{wxArrayString::IsEmpty}\label{wxarraystringisempty} - -\func{}{IsEmpty}{} - -Returns TRUE if the array is empty, FALSE otherwise. This function returns the -same result as {\it GetCount() == 0} but is probably easier to read. - -\membersection{wxArrayString::Item}\label{wxarraystringitem} - -\constfunc{wxString\&}{Item}{\param{size\_t }{nIndex}} - -Return the array element at position {\it nIndex}. An assert failure will -result from an attempt to access an element beyond the end of array in debug -mode, but no check is done in release mode. - -See also \helpref{operator[]}{wxarraystringoperatorindex} for the operator -version. - -\membersection{wxArrayString::Last}\label{wxarraystringlast} - -\func{}{Last}{} - -Returns the last element of the array. Attempt to access the last element of -an empty array will result in assert failure in debug build, however no checks -are done in release mode. - -\membersection{wxArrayString::Remove (by value)}\label{wxarraystringremoveval} - -\func{void}{Remove}{\param{const char *}{ sz}} - -Removes the first item matching this value. An assert failure is provoked by -an attempt to remove an element which does not exist in debug build. - -See also: \helpref{Index}{wxarraystringindex}, \helpref{Remove}{wxarraystringremove} - -\membersection{wxArrayString::Remove (by index)}\label{wxarraystringremove} - -\func{void}{Remove}{\param{size\_t }{nIndex}} - -Removes the item at given position. - -See also: \helpref{Remove}{wxarraystringremoveval} - -\membersection{wxArrayString::Shrink}\label{wxarraystringshrink} - -\func{void}{Shrink}{\void} - -Releases the extra memory allocated by the array. This function is useful to -minimize the array memory consumption. - -See also: \helpref{Alloc}{wxarraystringalloc}, \helpref{Dynamic array memory management}{wxarraymemorymanagement} - -\membersection{wxArrayString::Sort (alphabetically)}\label{wxarraystringsort} - -\func{void}{Sort}{\param{bool}{ reverseOrder = FALSE}} - -Sorts the array in alphabetical order or in reverse alphabetical order if -{\it reverseOrder} is TRUE. - -See also: \helpref{Sort}{wxarraystringsortcallback} - -\membersection{wxArrayString::Sort (user defined)}\label{wxarraystringsortcallback} - -\func{void}{Sort}{\param{CompareFunction }{compareFunction}} - -Sorts the array using the specified {\it compareFunction} for item comparison. -{\it CompareFunction} is defined as a function taking two {\it const -wxString\&} parameters and returning {\it int} value less than, equal to or -greater than 0 if the first string is less than, equal to or greater than the -second one. - -\wxheading{Example} - -The following example sorts strings by their length. - -\begin{verbatim} -static int CompareStringLen(const wxString& first, const wxString& second) -{ - return first.length() - second.length(); -} - -... - -wxArrayString array; - -array.Add("one"); -array.Add("two"); -array.Add("three"); -array.Add("four"); - -array.Sort(CompareStringLen); -\end{verbatim} - -See also: \helpref{Sort}{wxarraystringsort} - diff --git a/docs/latex/wx/autoobj.tex b/docs/latex/wx/autoobj.tex deleted file mode 100644 index bfb0d2e6d3..0000000000 --- a/docs/latex/wx/autoobj.tex +++ /dev/null @@ -1,201 +0,0 @@ -\section{\class{wxAutomationObject}}\label{wxautomationobject} - -The {\bf wxAutomationObject} class represents an OLE automation object containing a single data member, -an IDispatch pointer. It contains a number of functions that make it easy to perform -automation operations, and set and get properties. The class makes heavy use of the \helpref{wxVariant}{wxvariant} class. - -The usage of these classes is quite close to OLE automation usage in Visual Basic. The API is -high-level, and the application can specify multiple properties in a single string. The following example -gets the current Excel instance, and if it exists, makes the active cell bold. - -{\small -\begin{verbatim} - wxAutomationObject excelObject; - if (excelObject.GetInstance("Excel.Application")) - excelObject.PutProperty("ActiveCell.Font.Bold", TRUE); -\end{verbatim} -} - -Note that this class works under Windows only, and currently only for Visual C++. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxVariant}{wxvariant} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAutomationObject::wxAutomationObject}\label{wxautomationobjectctor} - -\func{}{wxAutomationObject}{\param{WXIDISPATCH*}{ dispatchPtr = NULL}} - -Constructor, taking an optional IDispatch pointer which will be released when the -object is deleted. - -\membersection{wxAutomationObject::\destruct{wxAutomationObject}}\label{wxautomationobjectdtor} - -\func{}{\destruct{wxAutomationObject}}{\void} - -Destructor. If the internal IDispatch pointer is non-null, it will be released. - -\membersection{wxAutomationObject::CallMethod}\label{wxautomationobjectcallmethod} - -\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{int}{ noArgs}, - \param{wxVariant }{args[]}} - -\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{...}{}} - -Calls an automation method for this object. The first form takes a method name, number of -arguments, and an array of variants. The second form takes a method name and zero to six -constant references to variants. Since the variant class has constructors for the basic -data types, and C++ provides temporary objects automatically, both of the following lines -are syntactically valid: - -{\small -\begin{verbatim} - wxVariant res = obj.CallMethod("Sum", wxVariant(1.2), wxVariant(3.4)); - wxVariant res = obj.CallMethod("Sum", 1.2, 3.4); -\end{verbatim} -} - -Note that {\it method} can contain dot-separated property names, to save the application -needing to call GetProperty several times using several temporary objects. For example: - -{\small -\begin{verbatim} - object.CallMethod("ActiveCell.Font.ShowDialog", "My caption"); -\end{verbatim} -} - -\membersection{wxAutomationObject::CreateInstance}\label{wxautomationobjectcreateinstance} - -\constfunc{bool}{CreateInstance}{\param{const wxString\&}{ classId}} - -Creates a new object based on the class id, returning TRUE if the object was successfully created, -or FALSE if not. - -\membersection{wxAutomationObject::GetDispatchPtr}\label{wxautomationobjectgetdispatchptr} - -\constfunc{IDispatch*}{GetDispatchPtr}{\void} - -Gets the IDispatch pointer. - -\membersection{wxAutomationObject::GetInstance}\label{wxautomationobjectgetinstance} - -\constfunc{bool}{GetInstance}{\param{const wxString\&}{ classId}} - -Retrieves the current object associated with a class id, and attaches the IDispatch pointer -to this object. Returns TRUE if a pointer was succesfully retrieved, FALSE otherwise. - -Note that this cannot cope with two instances of a given OLE object being active simultaneously, -such as two copies of Excel running. Which object is referenced cannot currently be specified. - -\membersection{wxAutomationObject::GetObject}\label{wxautomationobjectgetobject} - -\constfunc{bool}{GetObject}{\param{wxAutomationObject\&}{obj} \param{const wxString\&}{ property}, - \param{int}{ noArgs = 0}, \param{wxVariant }{args[] = NULL}} - -Retrieves a property from this object, assumed to be a dispatch pointer, and initialises {\it obj} with it. -To avoid having to deal with IDispatch pointers directly, use this function in preference -to \helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty} when retrieving objects -from other objects. - -Note that an IDispatch pointer is stored as a void* pointer in wxVariant objects. - -\wxheading{See also} - -\helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty} - -\membersection{wxAutomationObject::GetProperty}\label{wxautomationobjectgetproperty} - -\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs}, - \param{wxVariant }{args[]}} - -\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{...}{}} - -Gets a property value from this object. The first form takes a property name, number of -arguments, and an array of variants. The second form takes a property name and zero to six -constant references to variants. Since the variant class has constructors for the basic -data types, and C++ provides temporary objects automatically, both of the following lines -are syntactically valid: - -{\small -\begin{verbatim} - wxVariant res = obj.GetProperty("Range", wxVariant("A1")); - wxVariant res = obj.GetProperty("Range", "A1"); -\end{verbatim} -} - -Note that {\it property} can contain dot-separated property names, to save the application -needing to call GetProperty several times using several temporary objects. - -\membersection{wxAutomationObject::Invoke}\label{wxautomationobjectinvoke} - -\constfunc{bool}{Invoke}{\param{const wxString\&}{ member}, \param{int}{ action}, - \param{wxVariant\& }{retValue}, \param{int}{ noArgs}, \param{wxVariant}{ args[]}, - \param{const wxVariant*}{ ptrArgs[] = 0}} - -This function is a low-level implementation that allows access to the IDispatch Invoke function. -It is not meant to be called directly by the application, but is used by other convenience functions. - -\wxheading{Parameters} - -\docparam{member}{The member function or property name.} - -\docparam{action}{Bitlist: may contain DISPATCH\_PROPERTYPUT, DISPATCH\_PROPERTYPUTREF, -DISPATCH\_METHOD.} - -\docparam{retValue}{Return value (ignored if there is no return value)}. - -\docparam{noArgs}{Number of arguments in {\it args} or {\it ptrArgs}.} - -\docparam{args}{If non-null, contains an array of variants.} - -\docparam{ptrArgs}{If non-null, contains an array of constant pointers to variants.} - -\wxheading{Return value} - -TRUE if the operation was successful, FALSE otherwise. - -\wxheading{Remarks} - -Two types of argument array are provided, so that when possible pointers are used for efficiency. - -\membersection{wxAutomationObject::PutProperty}\label{wxautomationobjectputproperty} - -\constfunc{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs}, - \param{wxVariant }{args[]}} - -\func{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{...}{}} - -Puts a property value into this object. The first form takes a property name, number of -arguments, and an array of variants. The second form takes a property name and zero to six -constant references to variants. Since the variant class has constructors for the basic -data types, and C++ provides temporary objects automatically, both of the following lines -are syntactically valid: - -{\small -\begin{verbatim} - obj.PutProperty("Value", wxVariant(23)); - obj.PutProperty("Value", 23); -\end{verbatim} -} - -Note that {\it property} can contain dot-separated property names, to save the application -needing to call GetProperty several times using several temporary objects. - -\membersection{wxAutomationObject::SetDispatchPtr}\label{wxautomationobjectsetdispatchptr} - -\func{void}{SetDispatchPtr}{\param{WXIDISPATCH*}{ dispatchPtr}} - -Sets the IDispatch pointer. This function does not check if there is already an IDispatch pointer. - -You may need to cast from IDispatch* to WXIDISPATCH* when calling this function. - diff --git a/docs/latex/wx/back.gif b/docs/latex/wx/back.gif deleted file mode 100644 index 8a61076d3b..0000000000 Binary files a/docs/latex/wx/back.gif and /dev/null differ diff --git a/docs/latex/wx/bbutton.tex b/docs/latex/wx/bbutton.tex deleted file mode 100644 index 5466e1b2ce..0000000000 --- a/docs/latex/wx/bbutton.tex +++ /dev/null @@ -1,235 +0,0 @@ -\section{\class{wxBitmapButton}}\label{wxbitmapbutton} - -A bitmap button is a control that contains a bitmap. -It may be placed on a \helpref{dialog box}{wxdialog} or \helpref{panel}{wxpanel}, or indeed -almost any other window. - -\wxheading{Derived from} - -\helpref{wxButton}{wxbutton}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -A bitmap button can be supplied with a single bitmap, and wxWindows will draw -all button states using this bitmap. If the application needs more control, additional bitmaps for -the selected state, unpressed focussed state, and greyed-out state may be supplied. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBU\_AUTODRAW}}{If -this is specified, the button will be drawn automatically using the label bitmap only, providing -a 3D-look border. If this style is not specified, the button will be drawn without borders and using all -provided bitmaps.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event, -when the button is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxButton}{wxbutton} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmapButton::wxBitmapButton}\label{wxbitmapbuttonconstr} - -\func{}{wxBitmapButton}{\void} - -Default constructor. - -\func{}{wxBitmapButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxBitmap\& }{bitmap},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxBU\_AUTODRAW}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}} - -Constructor, creating and showing a button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Button identifier. A value of -1 indicates a default value.} - -\docparam{bitmap}{Bitmap to be displayed.} - -\docparam{pos}{Button position.} - -\docparam{size}{Button size. If the default size (-1, -1) is specified then the button is sized -appropriately for the bitmap.} - -\docparam{style}{Window style. See \helpref{wxBitmapButton}{wxbitmapbutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -The {\it bitmap} parameter is normally the only bitmap you need to provide, and wxWindows will -draw the button correctly in its different states. If you want more control, call -any of the functions \helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus},\rtfsp -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled}. - -Note that the bitmap passed is smaller than the actual button created. - -\wxheading{See also} - -\helpref{wxBitmapButton::Create}{wxbitmapbuttoncreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxBitmapButton::\destruct{wxBitmapButton}} - -\func{}{\destruct{wxBitmapButton}}{\void} - -Destructor, destroying the button. - -\membersection{wxBitmapButton::Create}\label{wxbitmapbuttoncreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxBitmap\& }{bitmap},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}} - -Button creation function for two-step creation. For more details, see \helpref{wxBitmapButton::wxBitmapButton}{wxbitmapbuttonconstr}. - -\membersection{wxBitmapButton::GetBitmapDisabled}\label{wxbitmapbuttongetbitmapdisabled} - -\constfunc{wxBitmap\&}{GetBitmapLabel}{\void} - -Returns the bitmap for the disabled state. - -\wxheading{Return value} - -A reference to the disabled state bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled} - -\membersection{wxBitmapButton::GetBitmapFocus}\label{wxbitmapbuttongetbitmapfocus} - -\constfunc{wxBitmap\&}{GetBitmapFocus}{\void} - -Returns the bitmap for the focussed state. - -\wxheading{Return value} - -A reference to the focussed state bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus} - -\membersection{wxBitmapButton::GetBitmapLabel}\label{wxbitmapbuttongetbitmaplabel} - -\constfunc{wxBitmap\&}{GetBitmapLabel}{\void} - -Returns the label bitmap (the one passed to the constructor). - -\wxheading{Return value} - -A reference to the button's label bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel} - -\membersection{wxBitmapButton::GetBitmapSelected}\label{wxbitmapbuttongetbitmapselected} - -\constfunc{wxBitmap\&}{GetBitmapSelected}{\void} - -Returns the bitmap for the selected state. - -\wxheading{Return value} - -A reference to the selected state bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected} - -\membersection{wxBitmapButton::SetBitmapDisabled}\label{wxbitmapbuttonsetbitmapdisabled} - -\func{void}{SetBitmapDisabled}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the disabled button appearance. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to set.} - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapDisabled}{wxbitmapbuttongetbitmapdisabled},\rtfsp -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp -\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus} - -\membersection{wxBitmapButton::SetBitmapFocus}\label{wxbitmapbuttonsetbitmapfocus} - -\func{void}{SetBitmapFocus}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the button appearance when it has the keyboard focus. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to set.} - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapFocus}{wxbitmapbuttongetbitmapfocus},\rtfsp -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp -\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled} - -\membersection{wxBitmapButton::SetBitmapLabel}\label{wxbitmapbuttonsetbitmaplabel} - -\func{void}{SetBitmapLabel}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap label for the button. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap label to set.} - -\wxheading{Remarks} - -This is the bitmap used for the unselected state, and for all other states -if no other bitmaps are provided. - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapLabel}{wxbitmapbuttongetbitmaplabel} - -\membersection{wxBitmapButton::SetBitmapSelected}\label{wxbitmapbuttonsetbitmapselected} - -\func{void}{SetBitmapSelected}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the selected (depressed) button appearance. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to set.} - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapSelected}{wxbitmapbuttongetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus},\rtfsp -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled} - diff --git a/docs/latex/wx/bitmap.tex b/docs/latex/wx/bitmap.tex deleted file mode 100644 index efe5732d7b..0000000000 --- a/docs/latex/wx/bitmap.tex +++ /dev/null @@ -1,719 +0,0 @@ -\section{\class{wxBitmap}}\label{wxbitmap} - -%\overview{Overview}{wxbitmapoverview} -% -This class encapsulates the concept of a platform-dependent bitmap, -either monochrome or colour. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullBitmap} - -\wxheading{See also} - -\helpref{wxBitmap overview}{wxbitmapoverview}, -\helpref{supported bitmap file formats}{supportedbitmapformats}, -\helpref{wxDC::Blit}{wxdcblit}, -\helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor}, \helpref{wxBitmap}{wxbitmap}, -\helpref{wxMemoryDC}{wxmemorydc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmap::wxBitmap}\label{wxbitmapconstr} - -\func{}{wxBitmap}{\void} - -Default constructor. - -\func{}{wxBitmap}{\param{const wxBitmap\& }{bitmap}} - -Copy constructor. - -\func{}{wxBitmap}{\param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a bitmap from the given data, which can be of arbitrary type. -Windows only, I think. - -\func{}{wxBitmap}{\param{const char}{ bits[]}, \param{int}{ width}, \param{int}{ height}\\ - \param{int}{ depth = 1}} - -Creates a bitmap from an array of bits. - -Note that the bit depth is ignored on GTK+ and Motif. If you want to create a bitmap -from something else than a 1-bit data array, use the \helpref{wxImage}{wximage} class. - -\func{}{wxBitmap}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a new bitmap. A depth of -1 indicates the depth of the current screen or -visual. Some platforms only support 1 for monochrome and -1 for the current colour -setting. - -\func{}{wxBitmap}{\param{const char**}{ bits}} - -Creates a bitmap from XPM data. - -\func{}{wxBitmap}{\param{const wxString\& }{name}, \param{long}{ type}} - -Loads a bitmap from a file or resource. - -\wxheading{Parameters} - -\docparam{bits}{Specifies an array of pixel values.} - -\docparam{width}{Specifies the width of the bitmap.} - -\docparam{height}{Specifies the height of the bitmap.} - -\docparam{depth}{Specifies the depth of the bitmap. If this is omitted, the display depth of the -screen is used.} - -\docparam{name}{This can refer to a resource name under MS Windows, or a filename under MS Windows and X. -Its meaning is determined by the {\it type} parameter.} - -\docparam{type}{May be one of the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP}}}{Load a Windows bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP\_RESOURCE}}}{Load a Windows bitmap from the resource database.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_GIF}}}{Load a GIF bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XBM}}}{Load an X bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XPM}}}{Load an XPM bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_RESOURCE}}}{Load a Windows resource name.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration. -If all possible wxWindows settings are used, the Windows platform supports BMP file, BMP resource, -XPM data, and XPM. Under wxGTK, the available formats are BMP file, XPM data, XPM file, and PNG file. -Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file.} - -\wxheading{Remarks} - -The first form constructs a bitmap object with no data; an assignment or another member function such as Create -or LoadFile must be called subsequently. - -The second and third forms provide copy constructors. Note that these do not copy the -bitmap data, but instead a pointer to the data, keeping a reference count. They are therefore -very efficient operations. - -The fourth form constructs a bitmap from data whose type and value depends on -the value of the {\it type} argument. - -The fifth form constructs a (usually monochrome) bitmap from an array of pixel values, under both -X and Windows. - -The sixth form constructs a new bitmap. - -The seventh form constructs a bitmap from pixmap (XPM) data, if wxWindows has been configured -to incorporate this feature. - -To use this constructor, you must first include an XPM file. For -example, assuming that the file {\tt mybitmap.xpm} contains an XPM array -of character pointers called mybitmap: - -\begin{verbatim} -#include "mybitmap.xpm" - -... - -wxBitmap *bitmap = new wxBitmap(mybitmap); -\end{verbatim} - -The eighth form constructs a bitmap from a file or resource. {\it name} can refer -to a resource name under MS Windows, or a filename under MS Windows and X. - -Under Windows, {\it type} defaults to wxBITMAP\_TYPE\_BMP\_RESOURCE. -Under X, {\it type} defaults to wxBITMAP\_TYPE\_XPM. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{wxBitmap(name, flag)}}{Loads a bitmap from a file} -\twocolitem{\bf{wxBitmap(data, type, width, height, depth=1)}}{Creates -a bitmap from the given data, which can be of arbitrary type.} -\twocolitem{\bf{wxNoRefBitmap(name, flag)}}{This one won't own the -reference, so Python won't call the destructor, this is good for toolbars -and such where the parent will manage the bitmap.} -\twocolitem{\bf{wxEmptyBitmap(width, height, depth = -1)}}{Creates an -empty bitmap with the given specifications} -\end{twocollist}} -} - -\membersection{wxBitmap::\destruct{wxBitmap}} - -\func{}{\destruct{wxBitmap}}{\void} - -Destroys the wxBitmap object and possibly the underlying bitmap data. -Because reference counting is used, the bitmap may not actually be -destroyed at this point - only when the reference count is zero will the -data be deleted. - -If the application omits to delete the bitmap explicitly, the bitmap will be -destroyed automatically by wxWindows when the application exits. - -Do not delete a bitmap that is selected into a memory device context. - -\membersection{wxBitmap::AddHandler}\label{wxbitmapaddhandler} - -\func{static void}{AddHandler}{\param{wxBitmapHandler*}{ handler}} - -Adds a handler to the end of the static list of format handlers. - -\docparam{handler}{A new bitmap format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::CleanUpHandlers} - -\func{static void}{CleanUpHandlers}{\void} - -Deletes all bitmap handlers. - -This function is called by wxWindows on exit. - -\membersection{wxBitmap::Create} - -\func{virtual bool}{Create}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a fresh bitmap. If the final argument is omitted, the display depth of -the screen is used. - -\func{virtual bool}{Create}{\param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a bitmap from the given data, which can be of arbitrary type. - -\wxheading{Parameters} - -\docparam{width}{The width of the bitmap in pixels.} - -\docparam{height}{The height of the bitmap in pixels.} - -\docparam{depth}{The depth of the bitmap in pixels. If this is -1, the screen depth is used.} - -\docparam{data}{Data whose type depends on the value of {\it type}.} - -\docparam{type}{A bitmap type identifier - see \helpref{wxBitmap::wxBitmap}{wxbitmapconstr} for a list -of possible values.} - -\wxheading{Return value} - -TRUE if the call succeeded, FALSE otherwise. - -\wxheading{Remarks} - -The first form works on all platforms. The portability of the second form depends on the -type of data. - -\wxheading{See also} - -\helpref{wxBitmap::wxBitmap}{wxbitmapconstr} - -\membersection{wxBitmap::FindHandler} - -\func{static wxBitmapHandler*}{FindHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name. - -\func{static wxBitmapHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ bitmapType}} - -Finds the handler associated with the given extension and type. - -\func{static wxBitmapHandler*}{FindHandler}{\param{long }{bitmapType}} - -Finds the handler associated with the given bitmap type. - -\docparam{name}{The handler name.} - -\docparam{extension}{The file extension, such as ``bmp".} - -\docparam{bitmapType}{The bitmap type, such as wxBITMAP\_TYPE\_BMP.} - -\wxheading{Return value} - -A pointer to the handler if found, NULL otherwise. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::GetDepth} - -\constfunc{int}{GetDepth}{\void} - -Gets the colour depth of the bitmap. A value of 1 indicates a -monochrome bitmap. - -\membersection{wxBitmap::GetHandlers} - -\func{static wxList\&}{GetHandlers}{\void} - -Returns the static list of bitmap format handlers. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::GetHeight}\label{wxbitmapgetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height of the bitmap in pixels. - -\membersection{wxBitmap::GetPalette}\label{wxbitmapgetpalette} - -\constfunc{wxPalette*}{GetPalette}{\void} - -Gets the associated palette (if any) which may have been loaded from a file -or set for the bitmap. - -\wxheading{See also} - -\helpref{wxPalette}{wxpalette} - -\membersection{wxBitmap::GetMask}\label{wxbitmapgetmask} - -\constfunc{wxMask*}{GetMask}{\void} - -Gets the associated mask (if any) which may have been loaded from a file -or set for the bitmap. - -\wxheading{See also} - -\helpref{wxBitmap::SetMask}{wxbitmapsetmask}, \helpref{wxMask}{wxmask} - -\membersection{wxBitmap::GetWidth}\label{wxbitmapgetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width of the bitmap in pixels. - -\wxheading{See also} - -\helpref{wxBitmap::GetHeight}{wxbitmapgetheight} - -\membersection{wxBitmap::InitStandardHandlers} - -\func{static void}{InitStandardHandlers}{\void} - -Adds the standard bitmap format handlers, which, depending on wxWindows -configuration, can be handlers for Windows bitmap, Windows bitmap resource, and XPM. - -This function is called by wxWindows on startup. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::InsertHandler} - -\func{static void}{InsertHandler}{\param{wxBitmapHandler*}{ handler}} - -Adds a handler at the start of the static list of format handlers. - -\docparam{handler}{A new bitmap format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::LoadFile}\label{wxbitmaploadfile} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}} - -Loads a bitmap from a file or resource. - -\wxheading{Parameters} - -\docparam{name}{Either a filename or a Windows resource name. -The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP\_RESOURCE}}{Load a Windows bitmap from the resource database.} -\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{Remarks} - -A palette may be associated with the bitmap if one exists (especially for -colour Windows bitmaps), and if the code supports it. You can check -if one has been created by using the \helpref{GetPalette}{wxbitmapgetpalette} member. - -\wxheading{See also} - -\helpref{wxBitmap::SaveFile}{wxbitmapsavefile} - -\membersection{wxBitmap::Ok}\label{wxbitmapok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if bitmap data is present. - -\membersection{wxBitmap::RemoveHandler} - -\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name, and removes it. The handler -is not deleted. - -\docparam{name}{The handler name.} - -\wxheading{Return value} - -TRUE if the handler was found and removed, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::SaveFile}\label{wxbitmapsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}, \param{wxPalette* }{palette = NULL}} - -Saves a bitmap in the named file. - -\wxheading{Parameters} - -\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Save a Windows bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Save a GIF bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Save an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration.} - -\docparam{palette}{An optional palette used for saving the bitmap.} -% TODO: this parameter should -%probably be eliminated; instead the app should set the palette before saving. - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{Remarks} - -Depending on how wxWindows has been configured, not all formats may be available. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile} - -\membersection{wxBitmap::SetDepth}\label{wxbitmapsetdepth} - -\func{void}{SetDepth}{\param{int }{depth}} - -Sets the depth member (does not affect the bitmap data). - -\wxheading{Parameters} - -\docparam{depth}{Bitmap depth.} - -\membersection{wxBitmap::SetHeight}\label{wxbitmapsetheight} - -\func{void}{SetHeight}{\param{int }{height}} - -Sets the height member (does not affect the bitmap data). - -\wxheading{Parameters} - -\docparam{height}{Bitmap height in pixels.} - -\membersection{wxBitmap::SetMask}\label{wxbitmapsetmask} - -\func{void}{SetMask}{\param{wxMask* }{mask}} - -Sets the mask for this bitmap. - -\wxheading{Remarks} - -The bitmap object owns the mask once this has been called. - -\wxheading{See also} - -\helpref{wxBitmap::GetMask}{wxbitmapgetmask}, \helpref{wxMask}{wxmask} - -\membersection{wxBitmap::SetOk} - -\func{void}{SetOk}{\param{int }{isOk}} - -Sets the validity member (does not affect the bitmap data). - -\wxheading{Parameters} - -\docparam{isOk}{Validity flag.} - -\membersection{wxBitmap::SetPalette}\label{wxbitmapsetpalette} - -\func{void}{SetPalette}{\param{wxPalette* }{palette}} - -Sets the associated palette: it will be deleted in the wxBitmap -destructor, so if you do not wish it to be deleted automatically, -reset the palette to NULL before the bitmap is deleted. - -\wxheading{Parameters} - -\docparam{palette}{The palette to set.} - -\wxheading{Remarks} - -The bitmap object owns the palette once this has been called. - -\wxheading{See also} - -\helpref{wxPalette}{wxpalette} - -\membersection{wxBitmap::SetWidth} - -\func{void}{SetWidth}{\param{int }{width}} - -Sets the width member (does not affect the bitmap data). - -\wxheading{Parameters} - -\docparam{width}{Bitmap width in pixels.} - -\membersection{wxBitmap::operator $=$} - -\func{wxBitmap\& }{operator $=$}{\param{const wxBitmap\& }{bitmap}} - -Assignment operator. This operator does not copy any data, but instead -passes a pointer to the data in {\it bitmap} and increments a reference -counter. It is a fast operation. - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap to assign.} - -\wxheading{Return value} - -Returns 'this' object. - -\membersection{wxBitmap::operator $==$} - -\func{bool}{operator $==$}{\param{const wxBitmap\& }{bitmap}} - -Equality operator. This operator tests whether the internal data pointers are -equal (a fast test). - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the bitmaps were effectively equal, FALSE otherwise. - -\membersection{wxBitmap::operator $!=$} - -\func{bool}{operator $!=$}{\param{const wxBitmap\& }{bitmap}} - -Inequality operator. This operator tests whether the internal data pointers are -unequal (a fast test). - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the bitmaps were unequal, FALSE otherwise. - -\section{\class{wxBitmapHandler}}\label{wxbitmaphandler} - -\overview{Overview}{wxbitmapoverview} - -This is the base class for implementing bitmap file loading/saving, and bitmap creation from data. -It is used within wxBitmap and is not normally seen by the application. - -If you wish to extend the capabilities of wxBitmap, derive a class from wxBitmapHandler -and add the handler using \helpref{wxBitmap::AddHandler}{wxbitmapaddhandler} in your -application initialisation. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmapHandler::wxBitmapHandler}\label{wxbitmaphandlerconstr} - -\func{}{wxBitmapHandler}{\void} - -Default constructor. In your own default constructor, initialise the members -m\_name, m\_extension and m\_type. - -\membersection{wxBitmapHandler::\destruct{wxBitmapHandler}} - -\func{}{\destruct{wxBitmapHandler}}{\void} - -Destroys the wxBitmapHandler object. - -\membersection{wxBitmapHandler::Create} - -\func{virtual bool}{Create}{\param{wxBitmap* }{bitmap}, \param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a bitmap from the given data, which can be of arbitrary type. The wxBitmap object {\it bitmap} is -manipulated by this function. - -\wxheading{Parameters} - -\docparam{bitmap}{The wxBitmap object.} - -\docparam{width}{The width of the bitmap in pixels.} - -\docparam{height}{The height of the bitmap in pixels.} - -\docparam{depth}{The depth of the bitmap in pixels. If this is -1, the screen depth is used.} - -\docparam{data}{Data whose type depends on the value of {\it type}.} - -\docparam{type}{A bitmap type identifier - see \helpref{wxBitmapHandler::wxBitmapHandler}{wxbitmapconstr} for a list -of possible values.} - -\wxheading{Return value} - -TRUE if the call succeeded, FALSE otherwise (the default). - -\membersection{wxBitmapHandler::GetName} - -\constfunc{wxString}{GetName}{\void} - -Gets the name of this handler. - -\membersection{wxBitmapHandler::GetExtension} - -\constfunc{wxString}{GetExtension}{\void} - -Gets the file extension associated with this handler. - -\membersection{wxBitmapHandler::GetType} - -\constfunc{long}{GetType}{\void} - -Gets the bitmap type associated with this handler. - -\membersection{wxBitmapHandler::LoadFile}\label{wxbitmaphandlerloadfile} - -\func{bool}{LoadFile}{\param{wxBitmap* }{bitmap}, \param{const wxString\&}{ name}, \param{long}{ type}} - -Loads a bitmap from a file or resource, putting the resulting data into {\it bitmap}. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap object which is to be affected by this operation.} - -\docparam{name}{Either a filename or a Windows resource name. -The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{See \helpref{wxBitmap::wxBitmap}{wxbitmapconstr} for values this can take.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}\\ -\helpref{wxBitmap::SaveFile}{wxbitmapsavefile}\\ -\helpref{wxBitmapHandler::SaveFile}{wxbitmaphandlersavefile} - -\membersection{wxBitmapHandler::SaveFile}\label{wxbitmaphandlersavefile} - -\func{bool}{SaveFile}{\param{wxBitmap* }{bitmap}, \param{const wxString\& }{name}, \param{int}{ type}, \param{wxPalette* }{palette = NULL}} - -Saves a bitmap in the named file. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap object which is to be affected by this operation.} - -\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{See \helpref{wxBitmap::wxBitmap}{wxbitmapconstr} for values this can take.} - -\docparam{palette}{An optional palette used for saving the bitmap.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}\\ -\helpref{wxBitmap::SaveFile}{wxbitmapsavefile}\\ -\helpref{wxBitmapHandler::LoadFile}{wxbitmaphandlerloadfile} - -\membersection{wxBitmapHandler::SetName} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the handler name. - -\wxheading{Parameters} - -\docparam{name}{Handler name.} - -\membersection{wxBitmapHandler::SetExtension} - -\func{void}{SetExtension}{\param{const wxString\& }{extension}} - -Sets the handler extension. - -\wxheading{Parameters} - -\docparam{extension}{Handler extension.} - -\membersection{wxBitmapHandler::SetType} - -\func{void}{SetType}{\param{long }{type}} - -Sets the handler type. - -\wxheading{Parameters} - -\docparam{name}{Handler type.} - - diff --git a/docs/latex/wx/bmpdatob.tex b/docs/latex/wx/bmpdatob.tex deleted file mode 100644 index 634794c0e1..0000000000 --- a/docs/latex/wx/bmpdatob.tex +++ /dev/null @@ -1,116 +0,0 @@ -\section{\class{wxBitmapDataObject}}\label{wxbitmapdataobject} - -wxBitmapDataObject is a specialization of wxDataObject for bitmap data. It can be -used without change to paste data into the \helpref{wxClipboard}{wxclipboard} -or a \helpref{wxDropSource}{wxdropsource}. A user may wish to derive a new class -from this class for providing a bitmap on-demand in order to minimize memory consumption -when offering data in several formats, such as a bitmap and GIF. - -In order to offer bitmap data on-demand \helpref{GetSize}{wxbitmapdataobjectgetsize} -and \helpref{WriteData}{wxbitmapdataobjectwritedata} will have to be overridden. - -\wxheading{Derived from} - -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmapDataObject::wxBitmapDataObject}\label{wxbitmapdataobjectwxbitmapdataobject} - -\func{}{wxBitmapDataObject}{\void} - -Default constructor. Call \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap} later -or override \helpref{WriteData}{wxbitmapdataobjectwritedata} and -\helpref{GetSize}{wxbitmapdataobjectgetsize} for providing data on-demand. - -\func{}{wxBitmapDataObject}{\param{const wxBitmap\& }{bitmap}} - -Constructor, passing a bitmap. - -\membersection{wxBitmapDataObject::GetSize}\label{wxbitmapdataobjectgetsize} - -\constfunc{virtual size\_t}{GetSize}{\void} - -Returns the data size. By default, returns the size of the bitmap data -set in the constructor or using \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap}. -This can be overridden to provide size data on-demand. Note that you'd -have to call the inherited GetSize method as this is the only way -to get to know the transfer size of the bitmap in a platform dependent -way - a bitmap has different size under GTK and Windows. In practice, -this would look like this: - -\begin{verbatim} -size_t MyBitmapDataObject::GetSize() -{ - // Get bitmap from global container. This container - // should be able to "produce" data in all formats - // offered by the application but store it only in - // one format to reduce memory consumption. - - wxBitmap my_bitmap = my_global_container->GetBitmap(); - - // temporarily set bitmap - - SetBitmap( my_bitmap ); - - size_t ret = wxBitmapDataObject::GetSize(); - - // unset bitmap again - - SetBitmap( wxNullBitmap ); - - retrun ret; -} -\end{verbatim} - -TODO: Offer a nicer way to do this. Maybe by providing a platform -dependent function in this class like - -\begin{verbatim} -size_t GetBitmapSize( const wxBitmap &bitmap ) -\end{verbatim} - -\membersection{wxBitmapDataObject::GetBitmap}\label{wxbitmapdataobjectgettext} - -\constfunc{virtual wxBitmap}{GetBitmap}{\void} - -Returns the bitmap associated with the data object. You may wish to override -this method when offering data on-demand, but this is not required by -wxWindows' internals. Use this method to get data in bitmap form from -the \helpref{wxClipboard}{wxclipboard}. - -\membersection{wxBitmapDataObject::SetBitmap}\label{wxbitmapdataobjectsetbitmap} - -\func{virtual void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap associated with the data object. This method is called -internally when retrieving data from the \helpref{wxClipboard}{wxclipboard} -and may be used to paste data to the clipboard directly (instead of -on-demand). - -\membersection{wxBitmapDataObject::WriteData}\label{wxbitmapdataobjectwritedata} - -\constfunc{virtual void}{WriteData}{\param{void}{*dest} } - -Write the data owned by this class to {\it dest}. By default, this -calls \helpref{WriteBitmap}{wxbitmapdataobjectwritebitmap} with the bitmap -set in the constructor or using \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap}. -This can be overridden to provide bitmap data on-demand; in this case -\helpref{WriteBitmap}{wxbitmapdataobjectwritebitmap} must be called from -within th overriding WriteData() method. - -\membersection{wxBitmapDataObject::WriteBitmap}\label{wxbitmapdataobjectwritebitmap} - -\constfunc{void}{WriteBitmap}{\param{const wxBitmap\& }{bitmap}\param{void}{*dest} } - -Writes the the bitmap {\it bitmap} to {\it dest}. This method must be called -from \helpref{WriteData}{wxbitmapdataobjectwritedata}. - diff --git a/docs/latex/wx/body.tex b/docs/latex/wx/body.tex deleted file mode 100644 index bd979202d7..0000000000 --- a/docs/latex/wx/body.tex +++ /dev/null @@ -1,740 +0,0 @@ -\chapter{Introduction}\label{introduction} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{What is wxWindows?} - -wxWindows is a C++ framework providing GUI (Graphical User -Interface) and other facilities on more than one platform. Version 2.0 currently -supports MS Windows (16-bit, Windows 95 and Windows NT), Unix with GTK+, and Unix with Motif. -A Mac port is in an advanced state, an OS/2 port and a port to the MGL graphics library -have been started. - -wxWindows was originally developed at the Artificial Intelligence -Applications Institute, University of Edinburgh, for internal use. -wxWindows has been released into the public domain in the hope -that others will also find it useful. Version 2.0 is written and -maintained by Julian Smart, Robert Roebling, Vadim Zeitlin and others. - -This manual discusses wxWindows in the context of multi-platform -development.\helpignore{For more detail on the wxWindows version 2.0 API -(Application Programming Interface) please refer to the separate -wxWindows reference manual.} - -Please note that in the following, ``MS Windows" often refers to all -platforms related to Microsoft Windows, including 16-bit and 32-bit -variants, unless otherwise stated. All trademarks are acknowledged. - -\section{Why another cross-platform development tool?} - -wxWindows was developed to provide a cheap and flexible way to maximize -investment in GUI application development. While a number of commercial -class libraries already existed for cross-platform development, -none met all of the following criteria: - -\begin{enumerate}\itemsep=0pt -\item low price; -\item source availability; -\item simplicity of programming; -\item support for a wide range of compilers. -\end{enumerate} - -Since wxWindows was started, several other free or almost-free GUI frameworks have -emerged. However, none has the range of features, flexibility, documentation and the -well-established development team that wxWindows has. - -As public domain software and a project open to everyone, wxWindows has -benefited from comments, ideas, bug fixes, enhancements and the sheer -enthusiasm of users, especially via the Internet. This gives wxWindows a -certain advantage over its commercial competitors (and over free libraries -without an independent development team), plus a robustness against -the transience of one individual or company. This openness and -availability of source code is especially important when the future of -thousands of lines of application code may depend upon the longevity of -the underlying class library. - -Version 2.0 goes much further than previous versions in terms of generality and features, -allowing applications to be produced -that are often indistinguishable from those produced using single-platform -toolkits such as Motif and MFC. - -The importance of using a platform-independent class library cannot be -overstated, since GUI application development is very time-consuming, -and sustained popularity of particular GUIs cannot be guaranteed. -Code can very quickly become obsolete if it addresses the wrong -platform or audience. wxWindows helps to insulate the programmer from -these winds of change. Although wxWindows may not be suitable for -every application (such as an OLE-intensive program), it provides access to most of the functionality a -GUI program normally requires, plus some extras such as network programming -and PostScript output, and can of course be extended as needs dictate. As a bonus, it provides -a cleaner programming interface than the native -APIs. Programmers may find it worthwhile to use wxWindows even if they -are developing on only one platform. - -It is impossible to sum up the functionality of wxWindows in a few paragraphs, but -here are some of the benefits: - -\begin{itemize}\itemsep=0pt -\item Low cost (free, in fact!) -\item You get the source. -\item Available on a variety of popular platforms. -\item Works with almost all popular C++ compilers. -\item Several example programs. -\item Over 900 pages of printable and on-line documentation. -\item Includes Tex2RTF, to allow you to produce your own documentation -in Windows Help, HTML and Word RTF formats. -\item Simple-to-use, object-oriented API. -\item Flexible event system. -\item Graphics calls include lines, rounded rectangles, splines, polylines, etc. -\item Constraint-based layout option. -\item Print/preview and document/view architectures. -\item Toolbar, notebook, tree control, advanced list control classes. -\item PostScript generation under Unix, normal MS Windows printing on the -PC. -\item MDI (Multiple Document Interface) support. -\item Can be used to create DLLs under Windows, dynamic libraries on Unix. -\item Common dialogs for file browsing, printing, colour selection, etc. -\item Under MS Windows, support for creating metafiles and copying -them to the clipboard. -\item An API for invoking help from applications. -\item Dialog Editor for building dialogs. -\item Network support via a family of socket and protocol classes. -\end{itemize} - -\section{Changes from version 1.xx}\label{versionchanges} - -These are a few of the major differences between versions 1.xx and 2.0. - -Removals: - -\begin{itemize}\itemsep=0pt -\item XView is no longer supported; -\item all controls (panel items) no longer have labels attached to them; -\item wxForm has been removed; -\item wxCanvasDC, wxPanelDC removed (replaced by wxClientDC, wxWindowDC, wxPaintDC which -can be used for any window); -\item wxMultiText, wxTextWindow, wxText removed and replaced by wxTextCtrl; -\item classes no longer divided into generic and platform-specific parts, for efficiency. -\end{itemize} - -Additions and changes: - -\begin{itemize}\itemsep=0pt -\item class hierarchy changed, and restrictions about subwindow nesting lifted; -\item header files reorganised to conform to normal C++ standards; -\item classes less dependent on each another, to reduce executable size; -\item wxString used instead of char* wherever possible; -\item the number of separate but mandatory utilities reduced; -\item the event system has been overhauled, with -virtual functions and callbacks being replaced with MFC-like event tables; -\item new controls, such as wxTreeCtrl, wxListCtrl, wxSpinButton; -\item less inconsistency about what events can be handled, so for example -mouse clicks or key presses on controls can now be intercepted; -\item the status bar is now a separate class, wxStatusBar, and is -implemented in generic wxWindows code; -\item some renaming of controls for greater consistency; -\item wxBitmap has the notion of bitmap handlers to allow for extension to new formats -without ifdefing; -\item new dialogs: wxPageSetupDialog, wxFileDialog, wxDirDialog, -wxMessageDialog, wxSingleChoiceDialog, wxTextEntryDialog; -\item GDI objects are reference-counted and are now passed to most functions -by reference, making memory management far easier; -\item wxSystemSettings class allows querying for various system-wide properties -such as dialog font, colours, user interface element sizes, and so on; -\item better platform look and feel conformance; -\item toolbar functionality now separated out into a family of classes with the -same API; -\item device contexts are no longer accessed using wxWindow::GetDC - they are created -temporarily with the window as an argument; -\item events from sliders and scrollbars can be handled more flexibly; -\item the handling of window close events has been changed in line with the new -event system; -\item the concept of {\it validator} has been added to allow much easier coding of -the relationship between controls and application data; -\item the documentation has been revised, with more cross-referencing. -\end{itemize} - -Platform-specific changes: - -\begin{itemize}\itemsep=0pt -\item The Windows header file (windows.h) is no longer included by wxWindows headers; -\item wx.dll supported under Visual C++; -\item the full range of Windows 95 window decorations are supported, such as modal frame -borders; -\item MDI classes brought out of wxFrame into separate classes, and made more flexible. -\end{itemize} - -\section{wxWindows requirements}\label{requirements} - -To make use of wxWindows, you currently need one or both of the -following setups. - -(a) PC: - -\begin{enumerate}\itemsep=0pt -\item A 486 or higher PC running MS Windows. -\item A Windows compiler: most are supported, but please see {\tt install.txt} for -details. Supported compilers include Microsoft Visual C++ 4.0 or higher, Borland C++, Cygwin, -Metrowerks CodeWarrior. -\item At least 60 MB of disk space. -\end{enumerate} - -(b) Unix: - -\begin{enumerate}\itemsep=0pt -\item Almost any C++ compiler, including GNU C++ (EGCS 1.1.1 or above). -\item Almost any Unix workstation, and one of: GTK+ 1.0, GTK+ 1.2, Motif 1.2 or higher, Lesstif. -\item At least 60 MB of disk space. -\end{enumerate} - -\section{Availability and location of wxWindows} - -wxWindows is currently available from the Artificial Intelligence -Applications Institute by anonymous FTP and World Wide Web: - -\begin{verbatim} - ftp://www.remstar.com/pub/wxwin - http://www.wxwindows.org -\end{verbatim} - -\section{Acknowledgments} - -Thanks are due to AIAI for being willing to release the original version of -wxWindows into the public domain, and to our patient partners. - -We would particularly like to thank the following for their contributions to wxWindows, and the many others who have been involved in -the project over the years. Apologies for any unintentional omissions from this list. - -Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI, Patrick Albert, Karsten Ballueder, Michael Bedward, Kai Bendorf, Yura Bidus, Keith -Gary Boyce, Chris Breeze, Pete Britton, Ian Brown, C. Buckley, Dmitri Chubraev, Robin Corbet, Cecil Coupe, Andrew Davison, Neil Dudman, Robin -Dunn, Hermann Dunkel, Jos van Eijndhoven, Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries, Dominic Gallagher, -Wolfram Gloger, Norbert Grotz, Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle, Harco de Hilster, Cord Hockemeyer, Markus -Holzem, Olaf Klein, Leif Jensen, Bart Jourquin, Guilhem Lavaux, Jan Lessner, Nicholas Liebmann, Torsten Liermann, Per Lindqvist, Thomas Runge, Tatu -M\"{a}nnist\"{o}, Scott Maxwell, Thomas Myers, Oliver Niedung, Hernan Otero, Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti, -Garrett Potts, Marcel Rasche, Robert Roebling, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton, Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith, -Kari Syst\"{a}, Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli, Vadim Zeitlin, Xiaokun Zhu, Edward Zimmermann. - -`Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos -T.J. van Eijndhoven of Eindhoven University of Technology. The code has -been used in wxGraphLayout with his permission. - -We also acknowledge the author of XFIG, the excellent Unix drawing tool, -from the source of which we have borrowed some spline drawing code. -His copyright is included below. - -{\it XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to -use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided -that the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation, and that the name of M.I.T. not be used in advertising or -publicity pertaining to distribution of the software without specific, -written prior permission. M.I.T. makes no representations about the -suitability of this software for any purpose. It is provided ``as is'' -without express or implied warranty.} - -\chapter{Multi-platform development with wxWindows}\label{multiplat} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This chapter describes the practical details of using wxWindows. Please -see the file install.txt for up-to-date installation instructions, and -changes.txt for differences between versions. - -\section{Include files} - -The main include file is {\tt "wx/wx.h"}; this includes the most commonly -used modules of wxWindows. - -To save on compilation time, include only those header files relevant to the -source file. If you are using precompiled headers, you should include -the following section before any other includes: - -\begin{verbatim} -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -// Include your minimal set of headers here, or wx.h -#include -#endif - -... now your other include files ... -\end{verbatim} - -The file {\tt "wx/wxprec.h"} includes {\tt "wx/wx.h"}. Although this incantation -may seem quirky, it is in fact the end result of a lot of experimentation, -and several Windows compilers to use precompilation (those tested are Microsoft Visual C++, Borland C++ -and Watcom C++). - -Borland precompilation is largely automatic. Visual C++ requires specification of {\tt "wx/wxprec.h"} as -the file to use for precompilation. Watcom C++ is automatic apart from the specification of -the .pch file. Watcom C++ is strange in requiring the precompiled header to be used only for -object files compiled in the same directory as that in which the precompiled header was created. -Therefore, the wxWindows Watcom C++ makefiles go through hoops deleting and recreating -a single precompiled header file for each module, thus preventing an accumulation of many -multi-megabyte .pch files. - -\section{Libraries} - -Please the wxGTK or wxMotif documentation for use of the Unix version of wxWindows. -Under Windows, use the library wx.lib for stand-alone Windows -applications, or wxdll.lib for creating DLLs. - -\section{Configuration} - -Options are configurable in the file -\rtfsp{\tt "wx/XXX/setup.h"} where XXX is the required platform (such as msw, motif, gtk, mac). Some settings are a matter -of taste, some help with platform-specific problems, and -others can be set to minimize the size of the library. Please see the setup.h file -and {\tt install.txt} files for details on configuration. - -\section{Makefiles} - -At the moment there is no attempt to make Unix makefiles and -PC makefiles compatible, i.e. one makefile is required for -each environment. wxGTK has its own configure system which can also -be used with wxMotif, although wxMotif has a simple makefile system of its own. - -Sample makefiles for Unix (suffix .UNX), MS C++ (suffix .DOS and .NT), Borland -C++ (.BCC and .B32) and Symantec C++ (.SC) are included for the library, demos -and utilities. - -The controlling makefile for wxWindows is in the platform-specific -directory, such as {\tt src/msw} or {\tt src/motif}. - -Please see the platform-specific {\tt install.txt} file for further details. - -\section{Windows-specific files} - -wxWindows application compilation under MS Windows requires at least two -extra files, resource and module definition files. - -\subsection{Resource file}\label{resources} - -The least that must be defined in the Windows resource file (extension RC) -is the following statement: - -\begin{verbatim} -rcinclude "wx/msw/wx.rc" -\end{verbatim} - -which includes essential internal wxWindows definitions. The resource script -may also contain references to icons, cursors, etc., for example: - -\begin{verbatim} -wxicon icon wx.ico -\end{verbatim} - -The icon can then be referenced by name when creating a frame icon. See -the MS Windows SDK documentation. - -\normalbox{Note: include wx.rc {\it after} any ICON statements -so programs that search your executable for icons (such -as the Program Manager) find your application icon first.} - -\subsection{Module definition file} - -A module definition file (extension DEF) is required for 16-bit applications, and -looks like the following: - -\begin{verbatim} -NAME Hello -DESCRIPTION 'Hello' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 -\end{verbatim} - -The only lines which will usually have to be changed per application are -NAME and DESCRIPTION. - -\section{Allocating and deleting wxWindows objects} - -In general, classes derived from wxWindow must dynamically allocated -with {\it new} and deleted with {\it delete}. If you delete a window, -all of its children and descendants will be automatically deleted, -so you don't need to delete these descendants explicitly. - -When deleting a frame or dialog, use {\bf Destroy} rather than {\bf delete} so -that the wxWindows delayed deletion can take effect. This waits until idle time -(when all messages have been processed) to actually delete the window, to avoid -problems associated with the GUI sending events to deleted windows. - -Don't create a window on the stack, because this will interfere -with delayed deletion. - -If you decide to allocate a C++ array of objects (such as wxBitmap) that may -be cleaned up by wxWindows, make sure you delete the array explicitly -before wxWindows has a chance to do so on exit, since calling {\it delete} on -array members will cause memory problems. - -wxColour can be created statically: it is not automatically cleaned -up and is unlikely to be shared between other objects; it is lightweight -enough for copies to be made. - -Beware of deleting objects such as a wxPen or wxBitmap if they are still in use. -Windows is particularly sensitive to this: so make sure you -make calls like wxDC::SetPen(wxNullPen) or wxDC::SelectObject(wxNullBitmap) before deleting -a drawing object that may be in use. Code that doesn't do this will probably work -fine on some platforms, and then fail under Windows. - -\section{Architecture dependency} - -A problem which sometimes arises from writing multi-platform programs is that -the basic C types are not defiend the same on all platforms. This holds true -for both the length in bits of the standard types (such as int and long) as -well as their byte order, which might be little endian (typically -on Intel computers) or big endian (typically on some Unix workstations). wxWindows -defines types and macros that make it easy to write architecture independent -code. The types are: - -wxInt32, wxInt16, wxInt8, wxUint32, wxUint16 = wxWord, wxUint8 = wxByte - -where wxInt32 stands for a 32-bit signed integer type etc. You can also check -which architecture the program is compiled on using the wxBYTE\_ORDER define -which is either wxBIG\_ENDIAN or wxLITTLE\_ENDIAN (in the future maybe wxPDP\_ENDIAN -as well). - -The macros handling bit-swapping with respect to the applications endianness -are described in the \helpref{Macros}{macros} section. - -\section{Conditional compilation} - -One of the purposes of wxWindows is to reduce the need for conditional -compilation in source code, which can be messy and confusing to follow. -However, sometimes it is necessary to incorporate platform-specific -features (such as metafile use under MS Windows). The symbols -listed in the file {\tt symbols.txt} may be used for this purpose, -along with any user-supplied ones. - -\section{C++ issues} - -The following documents some miscellaneous C++ issues. - -\subsection{Templates} - -wxWindows does not use templates since it is a notoriously unportable feature. - -\subsection{RTTI} - -wxWindows does not use run-time type information since wxWindows provides -its own run-time type information system, implemented using macros. - -\subsection{Type of NULL} - -Some compilers (e.g. the native IRIX cc) define NULL to be 0L so that -no conversion to pointers is allowed. Because of that, all these -occurences of NULL in the GTK port use an explicit conversion such -as - -{\small -\begin{verbatim} - wxWindow *my_window = (wxWindow*) NULL; -\end{verbatim} -} - -It is recommended to adhere to this in all code using wxWindows as -this make the code (a bit) more portable. - -\subsection{Precompiled headers} - -Some compilers, such as Borland C++ and Microsoft C++, support -precompiled headers. This can save a great deal of compiling time. The -recommended approach is to precompile {\tt "wx.h"}, using this -precompiled header for compiling both wxWindows itself and any -wxWindows applications. For Windows compilers, two dummy source files -are provided (one for normal applications and one for creating DLLs) -to allow initial creation of the precompiled header. - -However, there are several downsides to using precompiled headers. One -is that to take advantage of the facility, you often need to include -more header files than would normally be the case. This means that -changing a header file will cause more recompilations (in the case of -wxWindows, everything needs to be recompiled since everything includes {\tt "wx.h"}!) - -A related problem is that for compilers that don't have precompiled -headers, including a lot of header files slows down compilation -considerably. For this reason, you will find (in the common -X and Windows parts of the library) conditional -compilation that under Unix, includes a minimal set of headers; -and when using Visual C++, includes {\tt wx.h}. This should help provide -the optimal compilation for each compiler, although it is -biassed towards the precompiled headers facility available -in Microsoft C++. - -\section{File handling} - -When building an application which may be used under different -environments, one difficulty is coping with documents which may be -moved to different directories on other machines. Saving a file which -has pointers to full pathnames is going to be inherently unportable. One -approach is to store filenames on their own, with no directory -information. The application searches through a number of locally -defined directories to find the file. To support this, the class {\bf -wxPathList} makes adding directories and searching for files easy, and -the global function {\bf wxFileNameFromPath} allows the application to -strip off the filename from the path if the filename must be stored. -This has undesirable ramifications for people who have documents of the -same name in different directories. - -As regards the limitations of DOS 8+3 single-case filenames versus -unrestricted Unix filenames, the best solution is to use DOS filenames -for your application, and also for document filenames {\it if} the user -is likely to be switching platforms regularly. Obviously this latter -choice is up to the application user to decide. Some programs (such as -YACC and LEX) generate filenames incompatible with DOS; the best -solution here is to have your Unix makefile rename the generated files -to something more compatible before transferring the source to DOS. -Transferring DOS files to Unix is no problem, of course, apart from EOL -conversion for which there should be a utility available (such as -dos2unix). - -See also the File Functions section of the reference manual for -descriptions of miscellaneous file handling functions. - -\begin{comment} -\chapter{Utilities supplied with wxWindows}\label{utilities} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -A number of `extras' are supplied with wxWindows, to complement -the GUI functionality in the main class library. These are found -below the utils directory and usually have their own source, library -and documentation directories. For other user-contributed packages, -see the directory ftp://www.remstar.com/pub/wxwin/contrib, which is -more easily accessed via the Contributions page on the Web site. - -\section{wxHelp}\label{wxhelp} - -wxHelp is a stand-alone program, written using wxWindows, -for displaying hypertext help. It is necessary since not all target -systems (notably X) supply an adequate -standard for on-line help. wxHelp is modelled on the MS Windows help -system, with contents, search and browse buttons, but does not reformat -text to suit the size of window, as WinHelp does, and its input files -are uncompressed ASCII with some embedded font commands and an .xlp -extension. Most wxWindows documentation (user manuals and class -references) is supplied in wxHelp format, and also in Windows Help -format. The wxWindows 2.0 project will presently use an HTML widget -in a new and improved wxHelp implementation, under X. - -Note that an application can be programmed to use Windows Help under -MS Windows, and wxHelp under X. An alternative help viewer under X is -Mosaic, a World Wide Web viewer that uses HTML as its native hypertext -format. However, this is not currently integrated with wxWindows -applications. - -wxHelp works in two modes---edit and end-user. In edit mode, an ASCII -file may be marked up with different fonts and colours, and divided into -sections. In end-user mode, no editing is possible, and the user browses -principally by clicking on highlighted blocks. - -When an application invokes wxHelp, subsequent sections, blocks or -files may be viewed using the same instance of wxHelp since the two -programs are linked using wxWindows interprocess communication -facilities. When the application exits, that application's instance of -wxHelp may be made to exit also. See the {\bf wxHelpControllerBase} entry in the -reference section for how an application controls wxHelp. - -\section{Tex2RTF}\label{textortf} - -Supplied with wxWindows is a utility called Tex2RTF for converting\rtfsp -\LaTeX\ manuals to the following formats: - -\begin{description} -\item[wxHelp] -wxWindows help system format (XLP). -\item[Linear RTF] -Rich Text Format suitable for importing into a word processor. -\item[Windows Help RTF] -Rich Text Format suitable for compiling into a WinHelp HLP file with the -help compiler. -\item[HTML] -HTML is the native format for Mosaic, the main hypertext viewer for -the World Wide Web. Since it is freely available it is a good candidate -for being the wxWindows help system under X, as an alternative to wxHelp. -\end{description} - -Tex2RTF is used for the wxWindows manuals and can be used independently -by authors wishing to create on-line and printed manuals from the same\rtfsp -\LaTeX\ source. Please see the separate documentation for Tex2RTF. - -\section{wxTreeLayout} - -This is a simple class library for drawing trees in a reasonably pretty -fashion. It provides only minimal default drawing capabilities, since -the algorithm is meant to be used for implementing custom tree-based -tools. - -Directed graphs may also be drawn using this library, if cycles are -removed before the nodes and arcs are passed to the algorithm. - -Tree displays are used in many applications: directory browsers, -hypertext systems, class browsers, and decision trees are a few -possibilities. - -See the separate manual and the directory utils/wxtree. - -\section{wxGraphLayout} - -The wxGraphLayout class is based on a tool called `graphplace' by Dr. -Jos T.J. van Eijndhoven of Eindhoven University of Technology. Given a -(possibly cyclic) directed graph, it does its best to lay out the nodes -in a sensible manner. There are many applications (such as diagramming) -where it is required to display a graph with no human intervention. Even -if manual repositioning is later required, this algorithm can make a good -first attempt. - -See the separate manual and the directory utils/wxgraph. - -\section{Colours}\label{coloursampler} - -A colour sampler for viewing colours and their names on each -platform. - -% -\chapter{Tutorial}\label{tutorial} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -To be written. -\end{comment} - -\chapter{Programming strategies}\label{strategies} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This chapter is intended to list strategies that may be useful when -writing and debugging wxWindows programs. If you have any good tips, -please submit them for inclusion here. - -\section{Strategies for reducing programming errors} - -\subsection{Use ASSERT} - -Although I haven't done this myself within wxWindows, it is good -practice to use ASSERT statements liberally, that check for conditions that -should or should not hold, and print out appropriate error messages. -These can be compiled out of a non-debugging version of wxWindows -and your application. Using ASSERT is an example of `defensive programming': -it can alert you to problems later on. - -\subsection{Use wxString in preference to character arrays} - -Using wxString can be much safer and more convenient than using char *. -Again, I haven't practised what I'm preaching, but I'm now trying to use -wxString wherever possible. You can reduce the possibility of memory -leaks substantially, and it's much more convenient to use the overloaded -operators than functions such as strcmp. wxString won't add a significant -overhead to your program; the overhead is compensated for by easier -manipulation (which means less code). - -The same goes for other data types: use classes wherever possible. - -\section{Strategies for portability} - -\subsection{Use relative positioning or constraints} - -Don't use absolute panel item positioning if you can avoid it. Different GUIs have -very differently sized panel items. Consider using the constraint system, although this -can be complex to program. - -Alternatively, you could use alternative .wrc (wxWindows resource files) on different -platforms, with slightly different dimensions in each. Or space your panel items out -to avoid problems. - -\subsection{Use wxWindows resource files} - -Use .wrc (wxWindows resource files) where possible, because they can be easily changed -independently of source code. Bitmap resources can be set up to load different -kinds of bitmap depending on platform (see the section on resource files). - -\section{Strategies for debugging}\label{debugstrategies} - -\subsection{Positive thinking} - -It's common to blow up the problem in one's imagination, so that it seems to threaten -weeks, months or even years of work. The problem you face may seem insurmountable: -but almost never is. Once you have been programming for some time, you will be able -to remember similar incidents that threw you into the depths of despair. But -remember, you always solved the problem, somehow! - -Perseverance is often the key, even though a seemingly trivial problem -can take an apparently inordinate amount of time to solve. In the end, -you will probably wonder why you worried so much. That's not to say it -isn't painful at the time. Try not to worry -- there are many more important -things in life. - -\subsection{Simplify the problem} - -Reduce the code exhibiting the problem to the smallest program possible -that exhibits the problem. If it is not possible to reduce a large and -complex program to a very small program, then try to ensure your code -doesn't hide the problem (you may have attempted to minimize the problem -in some way: but now you want to expose it). - -With luck, you can add a small amount of code that causes the program -to go from functioning to non-functioning state. This should give a clue -to the problem. In some cases though, such as memory leaks or wrong -deallocation, this can still give totally spurious results! - -\subsection{Use a debugger} - -This sounds like facetious advice, but it's surprising how often people -don't use a debugger. Often it's an overhead to install or learn how to -use a debugger, but it really is essential for anything but the most -trivial programs. - -\subsection{Use logging functions} - -There is a variety of logging functions that you can use in your program: -see \helpref{Logging functions}{logfunctions}. - -Using tracing statements may be more convenient than using the debugger -in some circumstances (such as when your debugger doesn't support a lot -of debugging code, or you wish to print a bunch of variables). - -\subsection{Use the wxWindows debugging facilities} - -You can use wxDebugContext to check for -memory leaks and corrupt memory: in fact in debugging mode, wxWindows will -automatically check for memory leaks at the end of the program if wxWindows is suitably -configured. Depending on the operating system and compiler, more or less -specific information about the problem will be logged. - -You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy, -scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking -will save a surprising amount of time in the long run. - -See the \helpref{debugging overview}{debuggingoverview} for further information. - -\subsection{Check Windows debug messages} - -Under Windows, it's worth running your program with DBWIN running or -some other program that shows Windows-generated debug messages. It's -possible it'll show invalid handles being used. You may have fun seeing -what commercial programs cause these normally hidden errors! Microsoft -recommend using the debugging version of Windows, which shows up even -more problems. However, I doubt it's worth the hassle for most -applications. wxWindows is designed to minimize the possibility of such -errors, but they can still happen occasionally, slipping through unnoticed -because they are not severe enough to cause a crash. - -\subsection{Genetic mutation} - -If we had sophisticated genetic algorithm tools that could be applied -to programming, we could use them. Until then, a common -- if rather irrational -- -technique is to just make arbitrary changes to the code until something -different happens. You may have an intuition why a change will make a difference; -otherwise, just try altering the order of code, comment lines out, anything -to get over an impasse. Obviously, this is usually a last resort. - diff --git a/docs/latex/wx/book1.bmp b/docs/latex/wx/book1.bmp deleted file mode 100644 index 3aa28011b9..0000000000 Binary files a/docs/latex/wx/book1.bmp and /dev/null differ diff --git a/docs/latex/wx/books.bmp b/docs/latex/wx/books.bmp deleted file mode 100644 index cf1e148734..0000000000 Binary files a/docs/latex/wx/books.bmp and /dev/null differ diff --git a/docs/latex/wx/books.gif b/docs/latex/wx/books.gif deleted file mode 100644 index 036d016fb1..0000000000 Binary files a/docs/latex/wx/books.gif and /dev/null differ diff --git a/docs/latex/wx/border.bmp b/docs/latex/wx/border.bmp deleted file mode 100644 index 92b490a87d..0000000000 Binary files a/docs/latex/wx/border.bmp and /dev/null differ diff --git a/docs/latex/wx/border.gif b/docs/latex/wx/border.gif deleted file mode 100644 index 4bb9a23bb0..0000000000 Binary files a/docs/latex/wx/border.gif and /dev/null differ diff --git a/docs/latex/wx/boxsizer.tex b/docs/latex/wx/boxsizer.tex deleted file mode 100644 index 2f765063cd..0000000000 --- a/docs/latex/wx/boxsizer.tex +++ /dev/null @@ -1,112 +0,0 @@ -\section{\class{wxBoxSizer}}\label{wxboxsizer} - -The basic idea behind a box sizer is that windows will most often be laid out in rather -simple basic geomerty, typically in a row or a column or several hierachies of either. - -As an exmaple, we will construct a dialog that will contain a text field at the top and -two buttons at the bottom. This can be seen as a top-hierarchy column with the text at -the top and buttons at the bottom and a low-hierchary row with an OK button to the left -and a Cancel button to the right. In many cases (particulary dialogs under Unix and -normal frames) the main window will be resizable by the user and this change of size -will have to get propagated to its children. In our case, we want the text area to grow -with the dialog, whereas the button shall have a fixed size. In addition, there will be -a thin border around all controls to make the dialog look nice and - to make matter worse - -the buttons shall be centred as the width of the dialog changes. - -It is the unique feature of a box sizer, that it can grow in both directions (height and -width) but can distribute its growth in the main direction (horizontal for a row) {\it unevenly} -among its children. In our example case, the vertical sizer is supposed to propagate all its -height changes to only the text area, not to the button area. This is determined by the -{\it option} parameter when adding a window (or another sizer) to a sizer. It is interpreted -as a weight factor, i.e. it can be zero, indicating that the window may not be resized -at all, or above zero. If several windows have a value above zero, the value is interpreted -relative to the sum of all weight factors of the sizer, so when adding two windows with -a value of 1, they will both get resized equally much and each half as much as the sizer -owning them. Then what do we do when a column sizer changes its width? This behaviour is -controlled by {\it flags} (the second parameter of the Add() function): Zero or no flag indicates that -the window will get aligned at the left (in a column sizer) and the top (row sizer), whereas -wxALIGN\_RIGHT and wxALIGN\_BOTTOM will do what they say. The item can also be centered -using the wxCENTRE flag (same as wxCENTER) or it can be forced to grow with the sizer (using -the wxGROW flag (same as wxEXPAND)). - -As mentioned above, any window belonging to a sizer may have border, and it can be specified -which of the four sides may have this border, using the wxTOP, wxLEFT, wxRIGHT and wxBOTTOM -constants or wxALL for all directions (and you may also use wxNORTH, wxWEST etc instead). These -flags can be used in combintaion with the alignement flags above as the second paramter of the -Add() method using the binary or operator |. The sizer of the border also must be made known, -and it is the third parameter in the Add() method. This means, that the entire behaviour of -a sizer and its children can be controlled by the three parameters of the Add() method. - -\begin{verbatim} -// we want to get a dialog that is stretchable because it -// has a text ctrl at the top and two buttons at the bottom - -MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title ) : - wxDialog( parent, id, title, wxDefaultPosition, wxDefaultSize, wxDIALOG_STYLE | wxRESIZE_BORDER ) -{ - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // create text ctrl with minimal size 100x60 - topsizer->Add( - new wxTextCtrl( this, -1, "My text.", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE), - 1, // make vertically stretchable - wxEXPAND | // make horizontally stretchable - wxALL, // and make border all around - 10 ); // set border width to 10 - - - wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL ); - button_sizer->Add( - new wxButton( this, wxID_OK, "OK" ), - 0, // make horizontally unstretchable - wxALL, // make border all around (implicit top alignment) - 10 ); // set border width to 10 - button_sizer->Add( - new wxButton( this, wxID_CANCEL, "Cancel" ), - 0, // make horizontally unstretchable - wxALL, // make border all around (implicit top alignment) - 10 ); // set border width to 10 - - topsizer->Add( - button_sizer, - 0, // make vertically unstretchable - wxCENTER ); // no border and centre horizontally - - SetAutoLayout( TRUE ); // tell dialog to use sizer - SetSizer( topsizer ); // actually set the sizer - - topsizer->Fit( this ); // set size to minimum size as calculated by the sizer - topsizer->SetSizeHints( this ); // set size hints to honour mininum size - -} -\end{verbatim} - - -\wxheading{Derived from} - -\helpref{wxSizer}{wxsizer} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxBoxSizer::wxBoxSizer}\label{wxboxsizerwxboxsizer} - -\func{}{wxBoxSizer}{\param{int }{orient}} - -Constructor for a wxBoxSizer. {\it orient} may be either of wxVERTICAL -or wxHORIZONTAL for creating either a column sizer or a row sizer. - -\membersection{wxBoxSizer::RecalcSizes}\label{wxboxsizerrecalcsizes} - -\func{void}{RecalcSizes}{\void} - - -\membersection{wxBoxSizer::CalcMin}\label{wxboxsizercalcmin} - -\func{wxSize}{CalcMin}{\void} - - -\membersection{wxBoxSizer::GetOrientation}\label{wxboxsizergetorientation} - -\func{int}{GetOrientation}{\void} - diff --git a/docs/latex/wx/brush.tex b/docs/latex/wx/brush.tex deleted file mode 100644 index a12f90b4dd..0000000000 --- a/docs/latex/wx/brush.tex +++ /dev/null @@ -1,365 +0,0 @@ -\section{\class{wxBrush}}\label{wxbrush} - -A brush is a drawing tool for filling in areas. It is used for painting -the background of rectangles, ellipses, etc. It has a colour and a -style. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullBrush} - -Pointers: - -{\bf wxBLUE\_BRUSH\\ -wxGREEN\_BRUSH\\ -wxWHITE\_BRUSH\\ -wxBLACK\_BRUSH\\ -wxGREY\_BRUSH\\ -wxMEDIUM\_GREY\_BRUSH\\ -wxLIGHT\_GREY\_BRUSH\\ -wxTRANSPARENT\_BRUSH\\ -wxCYAN\_BRUSH\\ -wxRED\_BRUSH} - -\wxheading{Remarks} - -On a monochrome display, wxWindows shows -all brushes as white unless the colour is really black. - -Do not initialize objects on the stack before the program commences, -since other required structures may not have been set up yet. Instead, -define global pointers to objects and create them in \helpref{wxApp::OnInit}{wxapponinit} or -when required. - -An application may wish to create brushes with different -characteristics dynamically, and there is the consequent danger that a -large number of duplicate brushes will be created. Therefore an -application may wish to get a pointer to a brush by using the global -list of brushes {\bf wxTheBrushList}, and calling the member function -\rtfsp{\bf FindOrCreateBrush}. - -wxBrush uses a reference counting system, so assignments between brushes are very -cheap. You can therefore use actual wxBrush objects instead of pointers without -efficiency problems. Once one wxBrush object changes its data it will create its -own brush data internally so that other brushes, which previously shared the -data using the reference counting, are not affected. - -%TODO: an overview for wxBrush. -\wxheading{See also} - -\helpref{wxBrushList}{wxbrushlist}, \helpref{wxDC}{wxdc}, \helpref{wxDC::SetBrush}{wxdcsetbrush} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBrush::wxBrush} - -\func{}{wxBrush}{\void} - -Default constructor. The brush will be uninitialised, and \helpref{wxBrush::Ok}{wxbrushok} will -return FALSE. - -\func{}{wxBrush}{\param{const wxColour\&}{ colour}, \param{int}{ style}} - -Constructs a brush from a colour object and style. - -\func{}{wxBrush}{\param{const wxString\& }{colourName}, \param{int}{ style}} - -Constructs a brush from a colour name and style. - -\func{}{wxBrush}{\param{const wxBitmap\& }{stippleBitmap}} - -Constructs a stippled brush using a bitmap. - -\func{}{wxBrush}{\param{const wxBrush\&}{ brush}} - -Copy constructor. This uses reference counting so is a cheap operation. - -\wxheading{Parameters} - -\docparam{colour}{Colour object.} - -\docparam{colourName}{Colour name. The name will be looked up in the colour database.} - -\docparam{style}{One of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).} -\twocolitem{{\bf wxSOLID}}{Solid.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\end{twocollist}} - -\docparam{brush}{Pointer or reference to a brush to copy.} - -\docparam{stippleBitmap}{A bitmap to use for stippling.} - -\wxheading{Remarks} - -If a stipple brush is created, the brush style will be set to wxSTIPPLE. - -\wxheading{See also} - -\helpref{wxBrushList}{wxbrushlist}, \helpref{wxColour}{wxcolour}, \helpref{wxColourDatabase}{wxcolourdatabase} - -\membersection{wxBrush::\destruct{wxBrush}} - -\func{void}{\destruct{wxBrush}}{\void} - -Destructor. - -\wxheading{Remarks} - -The destructor may not delete the underlying brush object of the native windowing -system, since wxBrush uses a reference counting system for efficiency. - -Although all remaining brushes are deleted when the application exits, -the application should try to clean up all brushes itself. This is because -wxWindows cannot know if a pointer to the brush object is stored in an -application data structure, and there is a risk of double deletion. - -\membersection{wxBrush::GetColour}\label{wxbrushgetcolour} - -\constfunc{wxColour\&}{GetColour}{\void} - -Returns a reference to the brush colour. - -\wxheading{See also} - -\helpref{wxBrush::SetColour}{wxbrushsetcolour} - -\membersection{wxBrush::GetStipple}\label{wxbrushgetstipple} - -\constfunc{wxBitmap *}{GetStipple}{\void} - -Gets a pointer to the stipple bitmap. If the brush does not have a wxSTIPPLE style, -this bitmap may be non-NULL but uninitialised (\helpref{wxBitmap::Ok}{wxbitmapok} returns FALSE). - -\wxheading{See also} - -\helpref{wxBrush::SetStipple}{wxbrushsetstipple} - -\membersection{wxBrush::GetStyle}\label{wxbrushgetstyle} - -\constfunc{int}{GetStyle}{\void} - -Returns the brush style, one of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).} -\twocolitem{{\bf wxSOLID}}{Solid.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxBrush::SetStyle}{wxbrushsetstyle}, \helpref{wxBrush::SetColour}{wxbrushsetcolour},\rtfsp -\helpref{wxBrush::SetStipple}{wxbrushsetstipple} - -\membersection{wxBrush::Ok}\label{wxbrushok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if the brush is initialised. It will return FALSE if the default -constructor has been used (for example, the brush is a member of a class, or -NULL has been assigned to it). - -\membersection{wxBrush::SetColour}\label{wxbrushsetcolour} - -\func{void}{SetColour}{\param{wxColour\& }{colour}} - -Sets the brush colour using a reference to a colour object. - -\func{void}{SetColour}{\param{const wxString\& }{colourName}} - -Sets the brush colour using a colour name from the colour database. - -\func{void}{SetColour}{\param{const unsigned char}{ red}, \param{const unsigned char}{ green}, \param{const unsigned char}{ blue}} - -Sets the brush colour using red, green and blue values. - -\wxheading{See also} - -\helpref{wxBrush::GetColour}{wxbrushgetcolour} - -\membersection{wxBrush::SetStipple}\label{wxbrushsetstipple} - -\func{void}{SetStipple}{\param{const wxBitmap\&}{ bitmap}} - -Sets the stipple bitmap. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to use for stippling.} - -\wxheading{Remarks} - -The style will be set to wxSTIPPLE. - -Note that there is a big difference between stippling in X and Windows. -On X, the stipple is a mask between the wxBitmap and current colour. -On Windows, the current colour is ignored, and the bitmap colour is used. -However, for pre-defined modes like wxCROSS\_HATCH, the behaviour is the -same for both platforms. - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap} - -\membersection{wxBrush::SetStyle}\label{wxbrushsetstyle} - -\func{void}{SetStyle}{\param{int}{ style}} - -Sets the brush style. - -\docparam{style}{One of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).} -\twocolitem{{\bf wxSOLID}}{Solid.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.} -\end{twocollist}} - -\wxheading{See also} - -\helpref{wxBrush::GetStyle}{wxbrushgetstyle} - -\membersection{wxBrush::operator $=$}\label{wxbrushassignment} - -\func{wxBrush\&}{operator $=$}{\param{const wxBrush\& }{brush}} - -Assignment operator, using reference counting. Returns a reference -to `this'. - -\membersection{wxBrush::operator $==$}\label{wxbrushequals} - -\func{bool}{operator $==$}{\param{const wxBrush\& }{brush}} - -Equality operator. Two brushes are equal if they contain pointers -to the same underlying brush data. It does not compare each attribute, -so two independently-created brushes using the same parameters will -fail the test. - -\membersection{wxBrush::operator $!=$}\label{wxbrushnotequals} - -\func{bool}{operator $!=$}{\param{const wxBrush\& }{brush}} - -Inequality operator. Two brushes are not equal if they contain pointers -to different underlying brush data. It does not compare each attribute. - -\section{\class{wxBrushList}}\label{wxbrushlist} - -A brush list is a list containing all brushes which have been created. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -There is only one instance of this class: {\bf wxTheBrushList}. Use -this object to search for a previously created brush of the desired -type and create it if not already found. In some windowing systems, -the brush may be a scarce resource, so it can pay to reuse old -resources if possible. When an application finishes, all brushes will -be deleted and their resources freed, eliminating the possibility of -`memory leaks'. However, it is best not to rely on this automatic -cleanup because it can lead to double deletion in some circumstances. - -There are two mechanisms in recent versions of wxWindows which make the -brush list less useful than it once was. Under Windows, scarce resources -are cleaned up internally if they are not being used. Also, a referencing -counting mechanism applied to all GDI objects means that some sharing -of underlying resources is possible. You don't have to keep track of pointers, -working out when it is safe delete a brush, because the referencing counting does -it for you. For example, you can set a brush in a device context, and then -immediately delete the brush you passed, because the brush is `copied'. - -So you may find it easier to ignore the brush list, and instead create -and copy brushes as you see fit. If your Windows resource meter suggests -your application is using too many resources, you can resort to using -GDI lists to share objects explicitly. - -The only compelling use for the brush list is for wxWindows to keep -track of brushes in order to clean them up on exit. It is also kept for -backward compatibility with earlier versions of wxWindows. - -\wxheading{See also} - -\helpref{wxBrush}{wxbrush} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBrushList::wxBrushList}\label{wxbrushlistconstr} - -\func{void}{wxBrushList}{\void} - -Constructor. The application should not construct its own brush list: -use the object pointer {\bf wxTheBrushList}. - -\membersection{wxBrushList::AddBrush}\label{wxbrushlistaddbrush} - -\func{void}{AddBrush}{\param{wxBrush *}{brush}} - -Used internally by wxWindows to add a brush to the list. - -\membersection{wxBrushList::FindOrCreateBrush}\label{wxbrushlistfindorcreatebrush} - -\func{wxBrush *}{FindOrCreateBrush}{\param{const wxColour\& }{colour}, \param{int}{ style}} - -Finds a brush with the specified attributes and returns it, else creates a new brush, adds it -to the brush list, and returns it. - -\func{wxBrush *}{FindOrCreateBrush}{\param{const wxString\& }{colourName}, \param{int}{ style}} - -Finds a brush with the specified attributes and returns it, else creates a new brush, adds it -to the brush list, and returns it. - -Finds a brush of the given specification, or creates one and adds it to the list. - -\wxheading{Parameters} - -\docparam{colour}{Colour object.} - -\docparam{colourName}{Colour name, which should be in the colour database.} - -\docparam{style}{Brush style. See \helpref{wxBrush::SetStyle}{wxbrushsetstyle} for a list of styles.} - -\membersection{wxBrushList::RemoveBrush}\label{wxbrushlistremovebrush} - -\func{void}{RemoveBrush}{\param{wxBrush *}{brush}} - -Used by wxWindows to remove a brush from the list. - - diff --git a/docs/latex/wx/bullet.bmp b/docs/latex/wx/bullet.bmp deleted file mode 100644 index 6481f5143b..0000000000 Binary files a/docs/latex/wx/bullet.bmp and /dev/null differ diff --git a/docs/latex/wx/busycurs.tex b/docs/latex/wx/busycurs.tex deleted file mode 100644 index 1036365275..0000000000 --- a/docs/latex/wx/busycurs.tex +++ /dev/null @@ -1,44 +0,0 @@ -\section{\class{wxBusyCursor}}\label{wxbusycursor} - -This class makes it easy to tell your user that the program is temporarily busy. -Just create a wxBusyCursor object on the stack, and within the current scope, -the hourglass will be shown. - -For example: - -\begin{verbatim} - wxBusyCursor wait; - - for (int i = 0; i < 100000; i++) - DoACalculation(); -\end{verbatim} - -It works by calling \helpref{wxBeginBusyCursor}{wxbeginbusycursor} in the constructor, -and \helpref{wxEndBusyCursor}{wxendbusycursor} in the destructor. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxBeginBusyCursor}{wxbeginbusycursor}, \helpref{wxEndBusyCursor}{wxendbusycursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBusyCursor::wxBusyCursor} - -\func{}{wxBusyCursor}{\param{wxCursor*}{ cursor = wxHOURGLASS\_CURSOR}} - -Constructs a busy cursor object, calling \helpref{wxBeginBusyCursor}{wxbeginbusycursor}. - -\membersection{wxBusyCursor::\destruct{wxBusyCursor}} - -\func{}{\destruct{wxBusyCursor}}{\void} - -Destroys the busy cursor object, calling \helpref{wxEndBusyCursor}{wxendbusycursor}. - diff --git a/docs/latex/wx/busyinfo.tex b/docs/latex/wx/busyinfo.tex deleted file mode 100644 index da43b7e4e1..0000000000 --- a/docs/latex/wx/busyinfo.tex +++ /dev/null @@ -1,34 +0,0 @@ -\section{\class{wxBusyInfo}}\label{wxbusyinfo} - -This class makes it easy to tell your user that the program is temporarily busy. -Just create a wxBusyInfo object on the stack, and within the current scope, -a message window will be shown. - -For example: - -\begin{verbatim} - wxBusyInfo wait("Please wait, working..."); - - for (int i = 0; i < 100000; i++) - DoACalculation(); -\end{verbatim} - -It works by creating a window in the constructor, -and deleting it in the destructor. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBusyInfo::wxBusyInfo} - -\func{}{wxBusyInfo}{\param{const wxString\&}{ msg}} - -Constructs a busy info object, displays {\it msg}. - diff --git a/docs/latex/wx/button.tex b/docs/latex/wx/button.tex deleted file mode 100644 index 7bac1a1118..0000000000 --- a/docs/latex/wx/button.tex +++ /dev/null @@ -1,146 +0,0 @@ -\section{\class{wxButton}}\label{wxbutton} - -A button is a control that contains a text string, -and is one of the commonest elements of a GUI. It may be placed on a -\rtfsp\helpref{dialog box}{wxdialog} or \helpref{panel}{wxpanel}, or indeed -almost any other window. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no special styles for wxButton. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event, -when the button is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxBitmapButton}{wxbitmapbutton} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxButton::wxButton}\label{wxbuttonconstr} - -\func{}{wxButton}{\void} - -Default constructor. - -\func{}{wxButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}} - -Constructor, creating and showing a button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Button identifier. A value of -1 indicates a default value.} - -\docparam{label}{Text to be displayed on the button.} - -\docparam{pos}{Button position.} - -\docparam{size}{Button size. If the default size (-1, -1) is specified then the button is sized -appropriately for the text.} - -\docparam{style}{Window style. See \helpref{wxButton}{wxbutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxButton::Create}{wxbuttoncreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxButton::\destruct{wxButton}} - -\func{}{\destruct{wxButton}}{\void} - -Destructor, destroying the button. - -\membersection{wxButton::Create}\label{wxbuttoncreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}} - -Button creation function for two-step creation. For more details, see \helpref{wxButton::wxButton}{wxbuttonconstr}. - -\membersection{wxButton::GetLabel}\label{wxbuttongetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the string label for the button. - -\wxheading{Return value} - -The button's label. - -\wxheading{See also} - -\helpref{wxButton::SetLabel}{wxbuttonsetlabel} - -\membersection{wxButton::GetDefaultSize}\label{wxbuttongetdefaultsize} - -\func{wxSize}{GetDefaultSize}{\void} - -Returns the default size for the buttons. It is advised to make all the dialog -buttons of the same size and this function allows to retrieve the (platform and -current font dependent size) which should be the best suited for this. - -\membersection{wxButton::SetDefault}\label{wxbuttonsetdefault} - -\func{void}{SetDefault}{\void} - -This sets the button to be the default item for the panel or dialog -box. - -\wxheading{Remarks} - -Under Windows, only dialog box buttons respond to this function. As -normal under Windows and Motif, pressing return causes the default button to -be depressed when the return key is pressed. See also \helpref{wxWindow::SetFocus}{wxwindowsetfocus}\rtfsp -which sets the keyboard focus for windows and text panel items,\rtfsp -and \helpref{wxWindow::GetDefaultItem}{wxwindowgetdefaultitem}. - -Note that under Motif, calling this function immediately after -creation of a button and before the creation of other buttons -will cause misalignment of the row of buttons, since default -buttons are larger. To get around this, call {\it SetDefault}\rtfsp -after you have created a row of buttons: wxWindows will -then set the size of all buttons currently on the panel to -the same size. - -\membersection{wxButton::SetLabel}\label{wxbuttonsetlabel} - -\func{void}{SetLabel}{\param{const wxString\& }{label}} - -Sets the string label for the button. - -\wxheading{Parameters} - -\docparam{label}{The label to set.} - -\wxheading{See also} - -\helpref{wxButton::GetLabel}{wxbuttongetlabel} - diff --git a/docs/latex/wx/calclevt.tex b/docs/latex/wx/calclevt.tex deleted file mode 100644 index 75321f617a..0000000000 --- a/docs/latex/wx/calclevt.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{\class{wxCalculateLayoutEvent}}\label{wxcalculatelayoutevent} - -This event is sent by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} to -calculate the amount of the remaining client area that the window should -occupy. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event, -which asks the window to take a 'bite' out of a rectangle provided by the algorithm.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp -\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp -\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCalculateLayoutEvent::wxCalculateLayoutEvent} - -\func{}{wxCalculateLayoutEvent}{\param{wxWindowID }{id = 0}} - -Constructor. - -\membersection{wxCalculateLayoutEvent::GetFlags}\label{wxcalculatelayouteventgetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns the flags associated with this event. Not currently used. - -\membersection{wxCalculateLayoutEvent::GetRect}\label{wxcalculatelayouteventgetrect} - -\constfunc{wxRect}{GetRect}{\void} - -Before the event handler is entered, returns the remaining parent client area that the window -could occupy. When the event handler returns, this should contain the remaining parent client rectangle, -after the event handler has subtracted the area that its window occupies. - -\membersection{wxCalculateLayoutEvent::SetFlags}\label{wxcalculatelayouteventsetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets the flags associated with this event. Not currently used. - -\membersection{wxCalculateLayoutEvent::SetRect}\label{wxcalculatelayouteventsetrect} - -\func{void}{SetRect}{\param{const wxRect\& }{rect}} - -Call this to specify the new remaining parent client area, after the space occupied by the -window has been subtracted. - diff --git a/docs/latex/wx/category.tex b/docs/latex/wx/category.tex deleted file mode 100644 index d95c767fe7..0000000000 --- a/docs/latex/wx/category.tex +++ /dev/null @@ -1,420 +0,0 @@ -\chapter{Classes by category}\label{classesbycat} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -A classification of wxWindows classes by category. -\twocolwidtha{5cm} - -{\large {\bf Managed windows}} - -There are several types of window that are directly controlled by the -window manager (such as MS Windows, or the Motif Window Manager). -Frames may contain windows, and dialog boxes may directly contain controls. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDialog}{wxdialog}}{Dialog box} -\twocolitem{\helpref{wxFrame}{wxframe}}{Normal frame} -\twocolitem{\helpref{wxMDIParentFrame}{wxmdiparentframe}}{MDI parent frame} -\twocolitem{\helpref{wxMDIChildFrame}{wxmdichildframe}}{MDI child frame} -\twocolitem{\helpref{wxMiniFrame}{wxminiframe}}{A frame with a small title bar} -\twocolitem{\helpref{wxTabbedDialog}{wxtabbeddialog}}{Tabbed dialog} -\end{twocollist} - -See also {\bf Common dialogs}. - -{\large {\bf Miscellaneous windows}} - -The following are a variety of windows that are derived from wxWindow. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxGrid}{wxgrid}}{A grid (table) window} -\twocolitem{\helpref{wxPanel}{wxpanel}}{A window whose colour changes according to current user settings} -\twocolitem{\helpref{wxSashWindow}{wxsashwindow}}{Window with four optional sashes that can be dragged} -\twocolitem{\helpref{wxSashLayoutWindow}{wxsashlayoutwindow}}{Window that can be involved in an IDE-like layout arrangement} -\twocolitem{\helpref{wxScrolledWindow}{wxscrolledwindow}}{Window with automatically managed scrollbars} -\twocolitem{\helpref{wxSplitterWindow}{wxsplitterwindow}}{Window which can be split vertically or horizontally} -\twocolitem{\helpref{wxStatusBar}{wxstatusbar}}{Implements the status bar on a frame} -\twocolitem{\helpref{wxToolBar}{wxtoolbar}}{Toolbar class} -%\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)} -\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class} -\end{twocollist} - -{\large {\bf Common dialogs}} - -\overview{Overview}{commondialogsoverview} - -Common dialogs are ready-made dialog classes which are frequently used -in an application. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDialog}{wxdialog}}{Base class for common dialogs} -\twocolitem{\helpref{wxColourDialog}{wxcolourdialog}}{Colour chooser dialog} -\twocolitem{\helpref{wxDirDialog}{wxdirdialog}}{Directory selector dialog} -\twocolitem{\helpref{wxFileDialog}{wxfiledialog}}{File selector dialog} -\twocolitem{\helpref{wxMultipleChoiceDialog}{wxmultiplechoicedialog}}{Dialog to get one or more selections from a list} -\twocolitem{\helpref{wxSingleChoiceDialog}{wxsinglechoicedialog}}{Dialog to get a single selection from a list and return the string} -\twocolitem{\helpref{wxTextEntryDialog}{wxtextentrydialog}}{Dialog to get a single line of text from the user} -\twocolitem{\helpref{wxFontDialog}{wxfontdialog}}{Font chooser dialog} -\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog} -\twocolitem{\helpref{wxPrintDialog}{wxprintdialog}}{Standard print dialog} -\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog} -\twocolitem{\helpref{wxMessageDialog}{wxmessagedialog}}{Simple message box dialog} -\end{twocollist} - -{\large {\bf Controls}} - -Typically, these are small windows which provide interaction with the user. Controls -that are not static can have \helpref{validators}{wxvalidator} associated with them. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxControl}{wxcontrol}}{The base class for controls} -\twocolitem{\helpref{wxButton}{wxbutton}}{Push button control, displaying text} -\twocolitem{\helpref{wxBitmapButton}{wxbitmapbutton}}{Push button control, displaying a bitmap} -\twocolitem{\helpref{wxCheckBox}{wxcheckbox}}{Checkbox control} -\twocolitem{\helpref{wxCheckListBox}{wxchecklistbox}}{A listbox with a checkbox to the left of each item} -\twocolitem{\helpref{wxChoice}{wxchoice}}{Choice control (a combobox without the editable area)} -\twocolitem{\helpref{wxComboBox}{wxcombobox}}{A choice with an editable area} -\twocolitem{\helpref{wxGauge}{wxgauge}}{A control to represent a varying quantity, such as time remaining} -\twocolitem{\helpref{wxStaticBox}{wxstaticbox}}{A static, or group box for visually grouping related controls} -\twocolitem{\helpref{wxListBox}{wxlistbox}}{A list of strings for single or multiple selection} -\twocolitem{\helpref{wxListCtrl}{wxlistctrl}}{A control for displaying lists of strings and/or icons, plus a multicolumn report view} -\twocolitem{\helpref{wxTabCtrl}{wxtabctrl}}{Manages several tabs} -\twocolitem{\helpref{wxTextCtrl}{wxtextctrl}}{Single or multline text editing control} -\twocolitem{\helpref{wxTreeCtrl}{wxtreectrl}}{Tree (hierachy) control} -\twocolitem{\helpref{wxScrollBar}{wxscrollbar}}{Scrollbar control} -\twocolitem{\helpref{wxSpinButton}{wxspinbutton}}{A spin or `up-down' control} -\twocolitem{\helpref{wxStaticText}{wxstatictext}}{One or more lines of non-editable text} -\twocolitem{\helpref{wxStaticBitmap}{wxstaticbitmap}}{A control to display a bitmap} -\twocolitem{\helpref{wxRadioBox}{wxradiobox}}{A group of radio buttons} -\twocolitem{\helpref{wxRadioButton}{wxradiobutton}}{A round button to be used with others in a mutually exclusive way} -\twocolitem{\helpref{wxSlider}{wxslider}}{A slider that can be dragged by the user} -\end{twocollist} - -{\large {\bf Menus}} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxMenu}{wxmenu}}{Displays a series of menu items for selection} -\twocolitem{\helpref{wxMenuBar}{wxmenubar}}{Contains a series of menus for use with a frame} -\twocolitem{\helpref{wxMenuItem}{wxmenuitem}}{Represents a single menu item} -\end{twocollist} - -{\large {\bf Window layout}} - -There are two different systems for layouting windows (and dialogs in particluar). -One is based upon so-called sizers and it requires less typing, thinking and calculating -and will in almost all cases produce dialogs looking equally well on all platforms, the -other is based on so-called constraints and allows for more detailed layouts. - -These are the classes relevant to the sizer-based layout. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxSizer}{wxsizer}}{Abstract base class} -\twocolitem{\helpref{wxBoxSizer}{wxboxsizer}}{A sizer for laying out windows in a row or column} -\twocolitem{\helpref{wxStaticBoxSizer}{wxstaticboxsizer}}{Same as wxBoxSizer, but with surrounding static box} -\end{twocollist} - -\overview{Overview}{constraintsoverview} over the constraints-based layout. - -These are the classes relevant to constraints-based window layout. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}}{Represents a single constraint dimension} -\twocolitem{\helpref{wxLayoutConstraints}{wxlayoutconstraints}}{Represents the constraints for a window class} -\end{twocollist} - -{\large {\bf Device contexts}} - -\overview{Overview}{dcoverview} - -Device contexts are surfaces that may be drawn on, and provide an -abstraction that allows parameterisation of your drawing code -by passing different device contexts. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxClientDC}{wxclientdc}}{A device context to access the client area outside {\bf OnPaint} events} -\twocolitem{\helpref{wxPaintDC}{wxpaintdc}}{A device context to access the client area inside {\bf OnPaint} events} -\twocolitem{\helpref{wxWindowDC}{wxwindowdc}}{A device context to access the non-client area} -\twocolitem{\helpref{wxScreenDC}{wxscreendc}}{A device context to access the entire screen} -\twocolitem{\helpref{wxDC}{wxdc}}{The device context base class} -\twocolitem{\helpref{wxMemoryDC}{wxmemorydc}}{A device context for drawing into bitmaps} -\twocolitem{\helpref{wxMetafileDC}{wxmetafiledc}}{A device context for drawing into metafiles} -\twocolitem{\helpref{wxPostScriptDC}{wxpostscriptdc}}{A device context for drawing into PostScript files} -\twocolitem{\helpref{wxPrinterDC}{wxprinterdc}}{A device context for drawing to printers} -\end{twocollist} - -{\large {\bf Graphics device interface}} - -\overview{Bitmaps overview}{wxbitmapoverview} - -These classes are related to drawing on device contexts and windows. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxColour}{wxcolour}}{Represents the red, blue and green elements of a colour} -\twocolitem{\helpref{wxBitmap}{wxbitmap}}{Represents a bitmap} -\twocolitem{\helpref{wxBrush}{wxbrush}}{Used for filling areas on a device context} -\twocolitem{\helpref{wxBrushList}{wxbrushlist}}{The list of previously-created brushes} -\twocolitem{\helpref{wxCursor}{wxcursor}}{A small, transparent bitmap representing the cursor} -\twocolitem{\helpref{wxFont}{wxfont}}{Represents fonts} -\twocolitem{\helpref{wxFontList}{wxfontlist}}{The list of previously-created fonts} -\twocolitem{\helpref{wxIcon}{wxicon}}{A small, transparent bitmap for assigning to frames and drawing on device contexts} -\twocolitem{\helpref{wxImage}{wximage}}{A platform-independent image class} -\twocolitem{\helpref{wxImageList}{wximagelist}}{A list of images, used with some controls} -\twocolitem{\helpref{wxMask}{wxmask}}{Represents a mask to be used with a bitmap for transparent drawing} -\twocolitem{\helpref{wxPen}{wxpen}}{Used for drawing lines on a device context} -\twocolitem{\helpref{wxPenList}{wxpenlist}}{The list of previously-created pens} -\twocolitem{\helpref{wxPalette}{wxpalette}}{Represents a table of indices into RGB values} -\twocolitem{\helpref{wxRegion}{wxregion}}{Represents a simple or complex region on a window or device context} -\end{twocollist} - -{\large {\bf Events}} - -\overview{Overview}{eventhandlingoverview} - -An event object contains information about a specific event. Event handlers -(usually member functions) have a single, event argument. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{A window or application activation event} -\twocolitem{\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}}{Used to calculate window layout} -\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{A close window or end session event} -\twocolitem{\helpref{wxCommandEvent}{wxcommandevent}}{An event from a variety of standard controls} -\twocolitem{\helpref{wxDropFilesEvent}{wxdropfilesevent}}{A drop files event} -\twocolitem{\helpref{wxEraseEvent}{wxeraseevent}}{An erase background event} -\twocolitem{\helpref{wxEvent}{wxevent}}{The event base class} -\twocolitem{\helpref{wxFocusEvent}{wxfocusevent}}{A window focus event} -\twocolitem{\helpref{wxKeyEvent}{wxkeyevent}}{A keypress event} -\twocolitem{\helpref{wxIdleEvent}{wxidleevent}}{An idle event} -\twocolitem{\helpref{wxInitDialogEvent}{wxinitdialogevent}}{A dialog initialisation event} -\twocolitem{\helpref{wxJoystickEvent}{wxjoystickevent}}{A joystick event} -\twocolitem{\helpref{wxListEvent}{wxlistevent}}{A list control event} -\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{A menu event} -\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{A mouse event} -\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{A move event} -\twocolitem{\helpref{wxNotebookEvent}{wxnotebookevent}}{A notebook control event} -\twocolitem{\helpref{wxNotifyEvent}{wxnotifyevent}}{A notification event, which can be vetoed} -\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{A paint event} -\twocolitem{\helpref{wxProcessEvent}{wxprocessevent}}{A process ending event} -\twocolitem{\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}}{Used to query layout information} -\twocolitem{\helpref{wxScrollEvent}{wxscrollevent}}{A scroll event from sliders, stand-alone scrollbars and spin buttons} -\twocolitem{\helpref{wxScrollWinEvent}{wxscrollwinevent}}{A scroll event from scrolled windows} -\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{A size event} -\twocolitem{\helpref{wxSocketEvent}{wxsocketevent}}{A socket event} -\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{A system colour change event} -\twocolitem{\helpref{wxTabEvent}{wxtabevent}}{A tab control event} -\twocolitem{\helpref{wxTreeEvent}{wxtreeevent}}{A tree control event} -\twocolitem{\helpref{wxUpdateUIEvent}{wxupdateuievent}}{A user interface update event} -\end{twocollist} - -{\large {\bf Validators}} - -\overview{Overview}{validatoroverview} - -These are the window validators, used for filtering and validating -user input. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxValidator}{wxvalidator}}{Base validator class} -\twocolitem{\helpref{wxTextValidator}{wxtextvalidator}}{Text control validator class} -\twocolitem{\helpref{wxGenericValidator}{wxgenericvalidator}}{Generic control validator class} -\end{twocollist} - -{\large {\bf Data structures}} - -These are the data structure classes supported by wxWindows. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxExpr}{wxexpr}}{A class for flexible I/O} -\twocolitem{\helpref{wxExprDatabase}{wxexprdatabase}}{A class for flexible I/O} -\twocolitem{\helpref{wxDate}{wxdate}}{A class for date manipulation} -\twocolitem{\helpref{wxHashTable}{wxhashtable}}{A simple hash table implementation} -\twocolitem{\helpref{wxList}{wxlist}}{A simple linked list implementation} -\twocolitem{\helpref{wxNode}{wxnode}}{Represents a node in the wxList implementation} -\twocolitem{\helpref{wxObject}{wxobject}}{The root class for most wxWindows classes} -\twocolitem{\helpref{wxPathList}{wxpathlist}}{A class to help search multiple paths} -\twocolitem{\helpref{wxPoint}{wxpoint}}{Representation of a point} -\twocolitem{\helpref{wxRect}{wxrect}}{A class representing a rectangle} -\twocolitem{\helpref{wxRegion}{wxregion}}{A class representing a region} -\twocolitem{\helpref{wxString}{wxstring}}{A string class} -\twocolitem{\helpref{wxStringList}{wxstringlist}}{A class representing a list of strings} -\twocolitem{\helpref{wxRealPoint}{wxrealpoint}}{Representation of a point using floating point numbers} -\twocolitem{\helpref{wxSize}{wxsize}}{Representation of a size} -\twocolitem{\helpref{wxTime}{wxtime}}{A class for time manipulation} -\twocolitem{\helpref{wxVariant}{wxvariant}}{A class for storing arbitrary types -that may change at run-time} -\end{twocollist} - -{\large {\bf Run-time class information system}} - -\overview{Overview}{runtimeclassoverview} - -wxWindows supports run-time manipulation of class information, and dynamic -creation of objects given class names. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxClassInfo}{wxclassinfo}}{Holds run-time class information} -\twocolitem{\helpref{wxObject}{wxobject}}{Root class for classes with run-time information} -\twocolitem{\helpref{Macros}{macros}}{Macros for manipulating run-time information} -\end{twocollist} - -{\large {\bf Debugging features}} - -\overview{Overview}{debuggingoverview} - -wxWindows supports some aspects of debugging an application through -classes, functions and macros. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDebugContext}{wxdebugcontext}}{Provides memory-checking facilities} -%\twocolitem{\helpref{wxDebugStreamBuf}{wxdebugstreambuf}}{A stream buffer writing to the debug stream} -\twocolitem{\helpref{wxLog}{wxlog}}{Logging facility} -\twocolitem{\helpref{Log functions}{logfunctions}}{Error and warning logging functions} -\twocolitem{\helpref{Debugging macros}{debugmacros}}{Debug macros for assertion and checking} -%\twocolitem{\helpref{wxTrace}{wxtrace}}{Tracing facility} -%\twocolitem{\helpref{wxTraceLevel}{wxtracelevel}}{Tracing facility with levels} -\twocolitem{\helpref{WXDEBUG\_NEW}{debugnew}}{Use this macro to give further debugging information} -%\twocolitem{\helpref{WXTRACE}{trace}}{Trace macro} -%\twocolitem{\helpref{WXTRACELEVEL}{tracelevel}}{Trace macro with levels} -\end{twocollist} - -{\large {\bf Interprocess communication}} - -\overview{Overview}{ipcoverview} - -wxWindows provides a simple interprocess communications facilities -based on DDE. [Note that this is currently work in progress and may not -function properly.] - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDDEClient}{wxddeclient}}{Represents a client} -\twocolitem{\helpref{wxDDEConnection}{wxddeconnection}}{Represents the connection between a client and a server} -\twocolitem{\helpref{wxDDEServer}{wxddeserver}}{Represents a server} -\twocolitem{\helpref{wxTCPClient}{wxtcpclient}}{Represents a client} -\twocolitem{\helpref{wxTCPConnection}{wxtcpconnection}}{Represents the connection between a client and a server} -\twocolitem{\helpref{wxTCPServer}{wxtcpserver}}{Represents a server} -\twocolitem{\helpref{wxSocketClient}{wxsocketclient}}{Represents a socket client} -%\twocolitem{\helpref{wxSocketHandler}{wxsockethandler}}{Represents a socket handler} -\twocolitem{\helpref{wxSocketServer}{wxsocketserver}}{Represents a socket server} -\end{twocollist} - -{\large {\bf Document/view framework}} - -\overview{Overview}{docviewoverview} - -wxWindows supports a document/view framework which provides -housekeeping for a document-centric application. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDocument}{wxdocument}}{Represents a document} -\twocolitem{\helpref{wxView}{wxview}}{Represents a view} -\twocolitem{\helpref{wxDocTemplate}{wxdoctemplate}}{Manages the relationship between a document class and a veiw class} -\twocolitem{\helpref{wxDocManager}{wxdocmanager}}{Manages the documents and views in an application} -\twocolitem{\helpref{wxDocChildFrame}{wxdocchildframe}}{A child frame for showing a document view} -\twocolitem{\helpref{wxDocParentFrame}{wxdocparentframe}}{A parent frame to contain views} -%\twocolitem{\helpref{wxMDIDocChildFrame}{wxmdidocchildframe}}{An MDI child frame for showing a document view} -%\twocolitem{\helpref{wxMDIDocParentFrame}{wxmdidocparentframe}}{An MDI parent frame to contain views} -\end{twocollist} - -{\large {\bf Printing framework}} - -\overview{Overview}{printingoverview} - -A printing and previewing framework is implemented to -make it relatively straighforward to provide document printing -facilities. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxPreviewFrame}{wxpreviewframe}}{Frame for displaying a print preview} -\twocolitem{\helpref{wxPreviewCanvas}{wxpreviewcanvas}}{Canvas for displaying a print preview} -\twocolitem{\helpref{wxPreviewControlBar}{wxpreviewcontrolbar}}{Standard control bar for a print preview} -\twocolitem{\helpref{wxPrintDialog}{wxprintdialog}}{Standard print dialog} -\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog} -\twocolitem{\helpref{wxPrinter}{wxprinter}}{Class representing the printer} -\twocolitem{\helpref{wxPrinterDC}{wxprinterdc}}{Printer device context} -\twocolitem{\helpref{wxPrintout}{wxprintout}}{Class representing a particular printout} -\twocolitem{\helpref{wxPrintPreview}{wxprintpreview}}{Class representing a print preview} -\twocolitem{\helpref{wxPrintData}{wxprintdata}}{Represents information about the document being printed} -\twocolitem{\helpref{wxPrintDialogData}{wxprintdialogdata}}{Represents information about the print dialog} -\twocolitem{\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata}}{Represents information about the page setup dialog} -\end{twocollist} - -{\large {\bf Database classes}} - -\overview{Database classes overview}{odbcoverview} - -wxWindows provides two alternative sets of classes for accessing Microsoft's ODBC (Open Database Connectivity) -product. The new version by Remstar is documented in a separate manual. -The older classes are as follows: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDatabase}{wxdatabase}}{Database class} -\twocolitem{\helpref{wxQueryCol}{wxquerycol}}{Class representing a column} -\twocolitem{\helpref{wxQueryField}{wxqueryfield}}{Class representing a field} -\twocolitem{\helpref{wxRecordSet}{wxrecordset}}{Class representing one or more record} -\end{twocollist} - -{\large {\bf Drag and drop and clipboard classes}} - -\overview{Drag and drop and clipboard overview}{wxdndoverview} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDataObject}{wxdataobject}}{Data object class} -\twocolitem{\helpref{wxTextDataObject}{wxtextdataobject}}{Text data object class} -\twocolitem{\helpref{wxFileDataObject}{wxtextdataobject}}{File data object class} -\twocolitem{\helpref{wxBitmapDataObject}{wxbitmapdataobject}}{Bitmap data object class} -\twocolitem{\helpref{wxPrivateDataObject}{wxprivatedataobject}}{Private data object class} -\twocolitem{\helpref{wxClipboard}{wxclipboard}}{Clipboard class} -\twocolitem{\helpref{wxDropTarget}{wxdroptarget}}{Drop target class} -\twocolitem{\helpref{wxFileDropTarget}{wxfiledroptarget}}{File drop target class} -\twocolitem{\helpref{wxTextDropTarget}{wxtextdroptarget}}{Text drop target class} -\twocolitem{\helpref{wxDropSource}{wxdropsource}}{Drop source class} -\end{twocollist} - -{\large {\bf File related classes}} - -wxWindows has several small classes to work with disk files, see \helpref{file classes -overview}{wxfileoverview} for more details. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxFile}{wxfile}}{Low-level file input/output} -\twocolitem{\helpref{wxTempFile}{wxtempfile}}{Class to safely replace an existing file} -\twocolitem{\helpref{wxTextFile}{wxtextfile}}{Class for working with text files as with arrays of lines} -\end{twocollist} - -{\large {\bf Stream classes}} - -wxWindows has its own set of stream classes, as an alternative to often buggy standard stream -libraries, and to provide enhanced functionality. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxStreamBase}{wxstreambase}}{Stream base class} -\twocolitem{\helpref{wxStreamBuffer}{wxstreambuffer}}{Stream buffer class} -\twocolitem{\helpref{wxInputStream}{wxinputstream}}{Input stream class} -\twocolitem{\helpref{wxOutputStream}{wxoutputstream}}{Output stream class} -\twocolitem{\helpref{wxFilterInputStream}{wxfilterinputstream}}{Filtered input stream class} -\twocolitem{\helpref{wxFilterOutputStream}{wxfilteroutputstream}}{Filtered output stream class} -\twocolitem{\helpref{wxDataInputStream}{wxdatainputstream}}{Platform-independent binary data input stream class} -\twocolitem{\helpref{wxDataOutputStream}{wxdataoutputstream}}{Platform-independent binary data output stream class} -\twocolitem{\helpref{wxTextInputStream}{wxtextinputstream}}{Platform-independent text data input stream class} -\twocolitem{\helpref{wxTextOutputStream}{wxtextoutputstream}}{Platform-independent text data output stream class} -\twocolitem{\helpref{wxFileInputStream}{wxfileinputstream}}{File input stream class} -\twocolitem{\helpref{wxFileOutputStream}{wxfileoutputstream}}{File output stream class} -\twocolitem{\helpref{wxZlibInputStream}{wxzlibinputstream}}{Zlib (compression) input stream class} -\twocolitem{\helpref{wxZlibOutputStream}{wxzliboutputstream}}{Zlib (compression) output stream class} -\twocolitem{\helpref{wxSocketInputStream}{wxsocketinputstream}}{Socket input stream class} -\twocolitem{\helpref{wxSocketOutputStream}{wxsocketoutputstream}}{Socket output stream class} -\end{twocollist} - -{\large {\bf Miscellaneous}} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxAcceleratorTable}{wxacceleratortable}}{Accelerator table} -\twocolitem{\helpref{wxApp}{wxapp}}{Application class} -\twocolitem{\helpref{wxAutomationObject}{wxautomationobject}}{OLE automation class} -\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing} -\twocolitem{\helpref{wxHelpController}{wxhelpcontroller}}{Family of classes for controlling help windows} -\twocolitem{\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}}{An alternative window layout facility} -\twocolitem{\helpref{wxProcess}{wxprocess}}{Process class} -\twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class} -\twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class} -\end{twocollist} - diff --git a/docs/latex/wx/checkbox.tex b/docs/latex/wx/checkbox.tex deleted file mode 100644 index 396a731764..0000000000 --- a/docs/latex/wx/checkbox.tex +++ /dev/null @@ -1,109 +0,0 @@ -\section{\class{wxCheckBox}}\label{wxcheckbox} - -A checkbox is a labelled box which is either on (checkmark is visible) -or off (no checkmark). - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no special styles for wxCheckBox. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHECKBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKBOX\_CLICKED event, -when the checkbox is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxRadioButton}{wxradiobutton}, \helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCheckBox::wxCheckBox}\label{wxcheckboxconstr} - -\func{}{wxCheckBox}{\void} - -Default constructor. - -\func{}{wxCheckBox}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Constructor, creating and showing a checkbox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Checkbox identifier. A value of -1 indicates a default value.} - -\docparam{label}{Text to be displayed next to the checkbox.} - -\docparam{pos}{Checkbox position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Checkbox size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxCheckBox}{wxcheckbox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxCheckBox::Create}{wxcheckboxcreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxCheckBox::\destruct{wxCheckBox}} - -\func{}{\destruct{wxCheckBox}}{\void} - -Destructor, destroying the checkbox. - -\membersection{wxCheckBox::Create}\label{wxcheckboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Creates the checkbox for two-step construction. See \helpref{wxCheckBox::wxCheckBox}{wxcheckboxconstr}\rtfsp -for details. - -\membersection{wxCheckBox::GetValue}\label{wxcheckboxgetvalue} - -\constfunc{bool}{GetValue}{\void} - -Gets the state of the checkbox. - -\wxheading{Return value} - -Returns TRUE if it is checked, FALSE otherwise. - -\membersection{wxCheckBox::SetValue}\label{wxcheckboxsetvalue} - -\func{void}{SetValue}{\param{const bool}{ state}} - -Sets the checkbox to the given state. This does not cause a -wxEVT\_COMMAND\_CHECKBOX\_CLICKED event to get emitted. - -\wxheading{Parameters} - -\docparam{state}{If TRUE, the check is on, otherwise it is off.} - - diff --git a/docs/latex/wx/checklst.tex b/docs/latex/wx/checklst.tex deleted file mode 100644 index fbb5812bd7..0000000000 --- a/docs/latex/wx/checklst.tex +++ /dev/null @@ -1,107 +0,0 @@ -\section{\class{wxCheckListBox}}\label{wxchecklistbox} - -A checklistbox is like a listbox, but allows items to be checked or unchecked. - -This class is currently implemented under Windows and GTK. When using this -class under Windows wxWindows must be compiled with USE\_OWNER\_DRAWN set to 1. - -Only the new functions for this class are documented; see also \helpref{wxListBox}{wxlistbox}. - -\wxheading{Derived from} - -\helpref{wxListBox}{wxlistbox}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -See \helpref{wxListBox}{wxlistbox}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHECKLISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKLISTBOX\_TOGGLE event, -when an item in the check list box is checked or unchecked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxListBox}{wxlistbox}, \helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCheckListBox::wxCheckListBox}\label{wxchecklistboxconstr} - -\func{}{wxCheckListBox}{\void} - -Default constructor. - -\func{}{wxCheckListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -Constructor, creating and showing a list box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxCheckListBox}{wxchecklistbox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\pythonnote{The wxCheckListBox constructor in wxPython reduces the \tt{n} -and \tt{choices} arguments are to a single argument, which is -a list of strings.} - -\membersection{wxCheckListBox::\destruct{wxCheckListBox}} - -\func{void}{\destruct{wxCheckListBox}}{\void} - -Destructor, destroying the list box. - -\membersection{wxCheckListBox::Check}\label{wxchecklistboxcheck} - -\func{void}{Check}{\param{int }{item}, \param{bool}{ check = TRUE}} - -Checks the given item. - -\wxheading{Parameters} - -\docparam{item}{Index of item to check.} - -\docparam{check}{TRUE if the item is to be checked, FALSE otherwise.} - -\membersection{wxCheckListBox::IsChecked}\label{wxchecklistboxischecked} - -\constfunc{bool}{IsChecked}{\param{int}{ item}} - -Returns TRUE if the given item is checked, FALSE otherwise. - -\wxheading{Parameters} - -\docparam{item}{Index of item whose check status is to be returned.} - - diff --git a/docs/latex/wx/choice.tex b/docs/latex/wx/choice.tex deleted file mode 100644 index 11f02c3b5f..0000000000 --- a/docs/latex/wx/choice.tex +++ /dev/null @@ -1,212 +0,0 @@ -\section{\class{wxChoice}}\label{wxchoice} - -A choice item is used to select one of a list of strings. Unlike a -listbox, only the selection is visible until the user pulls down the -menu of choices. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no special styles for wxChoice. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHOICE(id, func)}}{Process a wxEVT\_COMMAND\_CHOICE\_SELECTED event, -when an item on the list is selected.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxListBox}{wxlistbox}, \helpref{wxComboBox}{wxcombobox}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxChoice::wxChoice}\label{wxchoiceconstr} - -\func{}{wxChoice}{\void} - -Default constructor. - -\func{}{wxChoice}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``choice"}} - -Constructor, creating and showing a choice. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the choice is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the choice control.} - -\docparam{choices}{An array of strings with which to initialise the choice control.} - -\docparam{style}{Window style. See \helpref{wxChoice}{wxchoice}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxChoice::Create}{wxchoicecreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxChoice constructor in wxPython reduces the \tt{n} -and \tt{choices} arguments are to a single argument, which is -a list of strings.} - -\membersection{wxChoice::\destruct{wxChoice}} - -\func{}{\destruct{wxChoice}}{\void} - -Destructor, destroying the choice item. - -\membersection{wxChoice::Append}\label{wxchoiceappend} - -\func{void}{Append}{\param{const wxString\& }{ item}} - -Adds the item to the end of the choice control. - -\wxheading{Parameters} - -\docparam{item}{String to add.} - -\membersection{wxChoice::Clear}\label{wxchoiceclear} - -\func{void}{Clear}{\void} - -Clears the strings from the choice item. - -\membersection{wxChoice::Create}\label{wxchoicecreate} - -\func{bool}{Create}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``choice"}} - -Creates the choice for two-step construction. See \helpref{wxChoice::wxChoice}{wxchoiceconstr}. - -\membersection{wxChoice::FindString}\label{wxchoicefindstring} - -\constfunc{int}{FindString}{\param{const wxString\& }{string}} - -Finds a choice matching the given string. - -\wxheading{Parameters} - -\docparam{string}{String to find.} - -\wxheading{Return value} - -Returns the position if found, or -1 if not found. - -\membersection{wxChoice::GetColumns}\label{wxchoicegetcolumns} - -\constfunc{int}{GetColumns}{\void} - -Gets the number of columns in this choice item. - -\wxheading{Remarks} - -This is implemented for Motif only. - -\membersection{wxChoice::GetSelection}\label{wxchoicegetselection} - -\constfunc{int}{GetSelection}{\void} - -Gets the id (position) of the selected string, or -1 if there is no selection. - -\membersection{wxChoice::GetString}\label{wxchoicegetstring} - -\constfunc{wxString}{GetString}{\param{int}{ n}} - -Returns the string at the given position. - -\wxheading{Parameters} - -\docparam{n}{The zero-based position.} - -\wxheading{Return value} - -The string at the given position, or the empty string if {\it n} is invalid. - -\membersection{wxChoice::GetStringSelection}\label{wxchoicegetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Gets the selected string, or the empty string if no string is selected. - -\membersection{wxChoice::Number}\label{wxchoicenumber} - -\constfunc{int}{Number}{\void} - -Returns the number of strings in the choice control. - -\membersection{wxChoice::SetColumns}\label{wxchoicesetcolumns} - -\func{void}{SetColumns}{\param{int}{ n = 1}} - -Sets the number of columns in this choice item. - -\wxheading{Parameters} - -\docparam{n}{Number of columns.} - -\wxheading{Remarks} - -This is implemented for Motif only. - -\membersection{wxChoice::SetSelection}\label{wxchoicesetselection} - -\func{void}{SetSelection}{\param{int}{ n}} - -Sets the choice by passing the desired string position. This does not cause -a wxEVT\_COMMAND\_CHOICE\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{n}{The string position to select, starting from zero.} - -\wxheading{See also} - -\helpref{wxChoice::SetStringSelection}{wxchoicesetstringselection} - -\membersection{wxChoice::SetStringSelection}\label{wxchoicesetstringselection} - -\func{void}{SetStringSelection}{\param{const wxString\& }{ string}} - -Sets the choice by passing the desired string. This does not cause -a wxEVT\_COMMAND\_CHOICE\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{string}{The string to select.} - -\wxheading{See also} - -\helpref{wxChoice::SetSelection}{wxchoicesetselection} - - diff --git a/docs/latex/wx/clasinfo.tex b/docs/latex/wx/clasinfo.tex deleted file mode 100644 index bdb9e3fa75..0000000000 --- a/docs/latex/wx/clasinfo.tex +++ /dev/null @@ -1,79 +0,0 @@ -\section{\class{wxClassInfo}}\label{wxclassinfo} - -This class stores meta-information about classes. Instances of this class are -not generally defined directly by an application, but indirectly through use -of macros such as {\bf DECLARE\_DYNAMIC\_CLASS} and {\bf IMPLEMENT\_DYNAMIC\_CLASS}. - -\wxheading{Derived from} - -No parent class. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Overview}{wxclassinfooverview}, \helpref{wxObject}{wxobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxClassInfo::wxClassInfo}\label{wxclassinfoconstr} - -\func{}{wxClassInfo}{\param{char* }{className}, \param{char* }{baseClass1}, \param{char* }{baseClass2}, - \param{int}{ size}, \param{wxObjectConstructorFn }{fn}} - -Constructs a wxClassInfo object. The supplied macros implicitly construct objects of this -class, so there is no need to create such objects explicitly in an application. - -\membersection{wxClassInfo::CreateObject} - -\func{wxObject*}{CreateObject}{\void} - -Creates an object of the appropriate kind. Returns NULL if the class has not been declared -dynamically createable (typically, it's an abstract class). - -\membersection{wxClassInfo::FindClass} - -\func{static wxClassInfo *}{FindClass}{\param{char* }{name}} - -Finds the wxClassInfo object for a class of the given string name. - -\membersection{wxClassInfo::GetBaseClassName1} - -\constfunc{char*}{GetBaseClassName1}{\void} - -Returns the name of the first base class (NULL if none). - -\membersection{wxClassInfo::GetBaseClassName2} - -\constfunc{char*}{GetBaseClassName2}{\void} - -Returns the name of the second base class (NULL if none). - -\membersection{wxClassInfo::GetClassName} - -\constfunc{char *}{GetClassName}{\void} - -Returns the string form of the class name. - -\membersection{wxClassInfo::GetSize} - -\constfunc{int}{GetSize}{\void} - -Returns the size of the class. - -\membersection{wxClassInfo::InitializeClasses} - -\func{static void}{InitializeClasses}{\void} - -Initializes pointers in the wxClassInfo objects for fast execution -of IsKindOf. Called in base wxWindows library initialization. - -\membersection{wxClassInfo::IsKindOf}\label{wxclassinfoiskindof} - -\func{bool}{IsKindOf}{\param{wxClassInfo* }{info}} - -Returns TRUE if this class is a kind of (inherits from) the given class. - - diff --git a/docs/latex/wx/classes.tex b/docs/latex/wx/classes.tex deleted file mode 100644 index f52ddd10e6..0000000000 --- a/docs/latex/wx/classes.tex +++ /dev/null @@ -1,239 +0,0 @@ -\chapter{Alphabetical class reference}\label{classref} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\pagenumbering{arabic}% - -\input accel.tex -\input activevt.tex -\input app.tex -\input array.tex -\input arrstrng.tex -\input autoobj.tex -\input boxsizer.tex -\input busycurs.tex -\input busyinfo.tex -\input button.tex -\input strmbfrd.tex -\input bitmap.tex -\input bbutton.tex -\input bmpdatob.tex -\input brush.tex -\input calclevt.tex -\input checkbox.tex -\input checklst.tex -\input choice.tex -\input clasinfo.tex -\input clientdc.tex -\input clipbrd.tex -\input closeevt.tex -\input colour.tex -\input colordlg.tex -\input combobox.tex -\input command.tex -\input cmdevent.tex -\input cmdproc.tex -\input conditn.tex -\input config.tex -\input control.tex -\input critsect.tex -\input crtslock.tex -\input cursor.tex -\input database.tex -\input dataobj.tex -\input datstrm.tex -\input date.tex -\input dc.tex -\input ddeclint.tex -\input ddeconn.tex -\input ddeservr.tex -\input debugcxt.tex -\input dialog.tex -\input dirdlg.tex -\input docchfrm.tex -\input docmanag.tex -\input docmdich.tex -\input docmdipr.tex -\input docprfrm.tex -\input doctempl.tex -\input document.tex -\input dropevt.tex -\input dropsrc.tex -\input droptrgt.tex -\input eraseevt.tex -\input event.tex -\input evthand.tex -\input expr.tex -\input file.tex -\input fildatob.tex -\input filedlg.tex -\input fildrptg.tex -\input filehist.tex -\input strmfile.tex -\input filesys.tex -\input filesysh.tex -\input filetype.tex -\input fltinstr.tex -\input fltoutst.tex -\input focusevt.tex -\input font.tex -\input fontdlg.tex -\input fontlist.tex -\input frame.tex -\input fsfile.tex -\input ftp.tex -\input gauge.tex -\input gdiobj.tex -\input valgen.tex -\input grid.tex -\input hash.tex -\input helpinst.tex -\input htcell.tex -\input htcolor.tex -\input htcontnr.tex -\input htfilter.tex -\input hthelpct.tex -\input htparser.tex -\input httag.tex -\input httaghnd.tex -\input httagmod.tex -\input htwidget.tex -\input htwindow.tex -\input htwinprs.tex -\input htwinhnd.tex -\input http.tex -\input idleevt.tex -\input icon.tex -\input image.tex -\input imaglist.tex -\input ilayout.tex -\input indlgevt.tex -\input inputstr.tex -\input ipvaddr.tex -\input joystick.tex -\input joyevent.tex -\input keyevent.tex -\input layalgor.tex -\input layout.tex -\input list.tex -\input listbox.tex -\input listctrl.tex -\input listevt.tex -\input locale.tex -\input log.tex -\input longlong.tex -\input mask.tex -\input mdi.tex -\input memorydc.tex -\input strmmem.tex -\input menu.tex -\input menuitem.tex -\input menuevt.tex -\input msgdlg.tex -\input metafile.tex -\input mimetype.tex -\input minifram.tex -\input module.tex -\input mouseevt.tex -\input moveevt.tex -\input mltchdlg.tex -\input mutex.tex -\input mutexlck.tex -\input node.tex -\input notebook.tex -\input noteevt.tex -\input notifevt.tex -\input object.tex -\input outptstr.tex -\input pagedlg.tex -\input paintdc.tex -\input paintevt.tex -\input palette.tex -\input panel.tex -\input pantabv.tex -\input pathlist.tex -\input pen.tex -\input point.tex -\input postscpt.tex -\input prevwin.tex -\input print.tex -\input prvdatob.tex -\input prvtdrpt.tex -\input process.tex -\input progdlg.tex -\input procevt.tex -\input protocol.tex -\input query.tex -\input qylayevt.tex -\input radiobox.tex -\input radiobut.tex -\input realpoin.tex -\input rect.tex -\input recrdset.tex -\input region.tex -\input sashevt.tex -\input sashlayw.tex -\input sashwin.tex -\input sbsizer.tex -\input screendc.tex -\input scrolbar.tex -\input scrlwevt.tex -\input scrolevt.tex -\input scrolwin.tex -\input sngchdlg.tex -\input size.tex -\input sizeevt.tex -\input sizer.tex -\input slider.tex -\input sckaddr.tex -\input socket.tex -%\input gsocket.tex -\input splitevt.tex -\input strmsock.tex -\input spinbutt.tex -\input splitter.tex -\input statbmp.tex -\input statbox.tex -\input stattext.tex -\input statusbr.tex -\input strmbase.tex -\input stream.tex -\input wxstring.tex -\input strlist.tex -\input tokenizr.tex -\input sysclevt.tex -\input settings.tex -\input tab.tex -\input tabctrl.tex -\input tabevent.tex -\input taskbar.tex -\input tcpclint.tex -\input tcpconn.tex -\input tcpservr.tex -\input tempfile.tex -\input text.tex -\input txtdatob.tex -\input txtstrm.tex -\input textdlg.tex -\input txtdrptg.tex -\input valtext.tex -\input textfile.tex -\input thread.tex -\input time.tex -\input timer.tex -\input tipprov.tex -\input toolbar.tex -\input treectrl.tex -\input treeevt.tex -\input upduievt.tex -\input url.tex -\input validatr.tex -\input variant.tex -\input view.tex -\input wave.tex -\input window.tex -\input windowdc.tex -\input zipstrm.tex -\input strmzlib.tex -\input function.tex -\input keycode.tex - diff --git a/docs/latex/wx/clientdc.tex b/docs/latex/wx/clientdc.tex deleted file mode 100644 index 79ae9e0630..0000000000 --- a/docs/latex/wx/clientdc.tex +++ /dev/null @@ -1,36 +0,0 @@ -\section{\class{wxClientDC}}\label{wxclientdc} - -A wxClientDC must be constructed if an application wishes to paint on the -client area of a window from outside an {\bf OnPaint} event. -This should normally be constructed as a temporary stack object; don't store -a wxClientDC object. - -To draw on a window from within {\bf OnPaint}, construct a \helpref{wxPaintDC}{wxpaintdc} object. - -To draw on the whole window including decorations, construct a \helpref{wxWindowDC}{wxwindowdc} object -(Windows only). - -\wxheading{Derived from} - -\helpref{wxWindowDC}{wxwindowdc}\\ -\helpref{wxDC}{wxdc} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxWindowDC}{wxwindowdc}, \helpref{wxScreenDC}{wxscreendc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxClientDC::wxClientDC} - -\func{}{wxClientDC}{\param{wxWindow*}{ window}} - -Constructor. Pass a pointer to the window on which you wish to paint. - - - diff --git a/docs/latex/wx/clipbrd.tex b/docs/latex/wx/clipbrd.tex deleted file mode 100644 index e9b3352026..0000000000 --- a/docs/latex/wx/clipbrd.tex +++ /dev/null @@ -1,125 +0,0 @@ -\section{\class{wxClipboard}}\label{wxclipboard} - -A class for manipulating the clipboard. Note that this is not compatible with the -clipboard class from wxWindows 1.xx, which has the same name but a different implementation. - -To use the clipboard, you call member functions of the global {\bf wxTheClipboard} object. - -Call \helpref{wxClipboard::Open}{wxclipboardopen} to get ownership of the clipboard. If this operation returns TRUE, you -now own the clipboard. Call \helpref{wxClipboard::AddData}{wxclipboardadddata} to put data -on the clipboard (one or more times), or \helpref{wxClipboard::GetData}{wxclipboardgetdata} to -retrieve data from the clipboard. Call \helpref{wxClipboard::Close}{wxclipboardclose} to close -the clipboard and relinquish ownership. You should keep the clipboard open only momentarily. - -For example: - -\begin{verbatim} - // Write some text to the clipboard - if (wxTheClipboard->Open()) - { - // This data objects are held by the clipboard, - // so do not delete them in the app. - wxTheClipboard->AddData( new wxTextDataObject("Some text") ); - wxTheClipboard->Close(); - } - - // Read some text - if (wxTheClipboard->Open()) - { - if (wxTheClipboard->IsSupported( "STRING" )) - { - wxTextDataObject data; - wxTheClipboard->GetData( &data ); - wxMessageBox( data.GetText() ); - } - wxTheClipboard->Close(); - } -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxClipboard::wxClipboard} - -\func{}{wxClipboard}{\void} - -Constructor. - -\membersection{wxClipboard::\destruct{wxClipboard}} - -\func{}{\destruct{wxClipboard}}{\void} - -Destructor. - -\membersection{wxClipboard::AddData}\label{wxclipboardadddata} - -\func{bool}{AddData}{\param{wxDataObject*}{ data}} - -Call this function to add a data object to the clipboard. This function can be called several times -to put different formats on the clipboard. - -\membersection{wxClipboard::Clear}\label{wxclipboardclear} - -\func{void}{Clear}{\void} - -Clears the global clipboard object and the system's clipboard if possible. - -\membersection{wxClipboard::Close}\label{wxclipboardclose} - -\func{bool}{Close}{\void} - -Call this function to close the clipboard, having opened it with \helpref{wxClipboard::Open}{wxclipboardopen}. - -\membersection{wxClipboard::GetData}\label{wxclipboardgetdata} - -\func{bool}{GetData}{\param{wxDataObject*}{ data}} - -Call this function to fill {\it data} with data on the clipboard, if available in the required -format. Returns TRUE on success. - -\membersection{wxClipboard::IsSupported}\label{wxclipboardissupported} - -\func{bool}{IsSupported}{\param{wxDataFormat}{ format}} - -Returns TRUE if the format of the given data object is available on the clipboard. - -\membersection{wxClipboard::Open}\label{wxclipboardopen} - -\func{bool}{Open}{\void} - -Call this function to open the clipboard before calling \helpref{wxClipboard::SetData}{wxclipboardsetdata} -and \helpref{wxClipboard::GetData}{wxclipboardgetdata}. - -Call \helpref{wxClipboard::Close}{wxclipboardclose} when you have finished with the clipboard. You -should keep the clipboard open for only a very short time. - -Returns TRUE on success. This should be tested (as in the sample shown above). - -\membersection{wxClipboard::SetData}\label{wxclipboardsetdata} - -\func{bool}{SetData}{\param{wxDataObject*}{ data}} - -Call this function to set the data object to the clipboard. This function will -clear all previous contents in the clipboard, so calling it several times -does not make any sense. - -\membersection{wxClipboard::UsePrimarySelection}\label{wxclipboarduseprimary} - -\func{void}{UsePrimarySelection}{\param{bool}{ primary = TRUE}} - -On platforms supporting it (currently only GTK), selects the so called -PRIMARY SELECTION as the clipboard as opposed to the normal clipboard, -if {\it primary} is TRUE. - - diff --git a/docs/latex/wx/closeevt.tex b/docs/latex/wx/closeevt.tex deleted file mode 100644 index 781bc9b6b3..0000000000 --- a/docs/latex/wx/closeevt.tex +++ /dev/null @@ -1,99 +0,0 @@ -\section{\class{wxCloseEvent}}\label{wxcloseevent} - -This event class contains information about window and session close events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a close event, use these event handler macros to direct input to member -functions that take a wxCloseEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function. This -event applies to wxFrame and wxDialog classes.} -\twocolitem{{\bf EVT\_QUERY\_END\_SESSION(func)}}{Process a query end session event, supplying the member function. -This event applies to wxApp only.} -\twocolitem{{\bf EVT\_END\_SESSION(func)}}{Process an end session event, supplying the member function. -This event applies to wxApp only.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -\helpref{wxWindow::Close}{wxwindowclose},\rtfsp -\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp -\helpref{wxApp::OnEndSession}{wxapponendsession},\rtfsp -\helpref{Window deletion overview}{windowdeletionoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCloseEvent::wxCloseEvent} - -\func{}{wxCloseEvent}{\param{WXTYPE}{ commandEventType = 0}, \param{int}{ id = 0}} - -Constructor. - -\membersection{wxCloseEvent::CanVeto}\label{wxcloseeventcanveto} - -\func{bool}{CanVeto}{\void} - -Returns TRUE if you can veto a system shutdown or a window close event. -Vetoing a window close event is not possible if the calling code wishes to -force the application to exit, and so this function must be called to check this. - -\membersection{wxCloseEvent::GetLoggingOff}\label{wxcloseeventgetloggingoff} - -\constfunc{bool}{GetLoggingOff}{\void} - -Returns TRUE if the user is logging off. - -\membersection{wxCloseEvent::GetSessionEnding}\label{wxcloseeventgetsessionending} - -\constfunc{bool}{GetSessionEnding}{\void} - -Returns TRUE if the session is ending. - -\membersection{wxCloseEvent::GetForce}\label{wxcloseeventgetforce} - -\constfunc{bool}{GetForce}{\void} - -Returns TRUE if the application wishes to force the window to close. -This will shortly be obsolete, replaced by CanVeto. - -\membersection{wxCloseEvent::SetCanVeto}\label{wxcloseeventsetcanveto} - -\func{void}{SetCanVeto}{\param{bool}{ canVeto}} - -Sets the 'can veto' flag. - -\membersection{wxCloseEvent::SetForce}\label{wxcloseeventsetforce} - -\constfunc{void}{SetForce}{\param{bool}{ force}} - -Sets the 'force' flag. - -\membersection{wxCloseEvent::SetLoggingOff}\label{wxcloseeventsetloggingoff} - -\constfunc{void}{SetLoggingOff}{\param{bool}{ loggingOff}} - -Sets the 'logging off' flag. - -\membersection{wxCloseEvent::Veto}\label{wxcloseeventveto} - -\func{void}{Veto}{\param{bool}{ veto = TRUE}} - -Call this from your event handler to veto a system shutdown or to signal -to the calling application that a window close did not happen. - -You can only veto a shutdown if \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns -TRUE. - - diff --git a/docs/latex/wx/cmdevent.tex b/docs/latex/wx/cmdevent.tex deleted file mode 100644 index 66fa145ec2..0000000000 --- a/docs/latex/wx/cmdevent.tex +++ /dev/null @@ -1,187 +0,0 @@ -\section{\class{wxCommandEvent}}\label{wxcommandevent} - -This event class contains information about command events, which originate from a variety of -simple controls. More complex controls, such as \helpref{wxTreeCtrl}{wxtreectrl}, have separate command event classes. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a menu command event, use these event handler macros to direct input to member -functions that take a wxCommandEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COMMAND(id, event, func)}}{Process a command, supplying the window identifier, -command event identifier, and member function.} -\twocolitem{{\bf EVT\_COMMAND\_RANGE(id1, id2, event, func)}}{Process a command for a range -of window identifiers, supplying the minimum and maximum window identifiers, -command event identifier, and member function.} -\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED command, -which is generated by a wxButton control.} -\twocolitem{{\bf EVT\_CHECKBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKBOX\_CLICKED command, -which is generated by a wxCheckBox control.} -\twocolitem{{\bf EVT\_CHOICE(id, func)}}{Process a wxEVT\_COMMAND\_CHOICE\_SELECTED command, -which is generated by a wxChoice control.} -\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED command, -which is generated by a wxListBox control.} -\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED command, -which is generated by a wxListBox control.} -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED command, -which is generated by a wxTextCtrl control.} -\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_ENTER command, -which is generated by a wxTextCtrl control.} -\twocolitem{{\bf EVT\_MENU(id, func)}}{Process a wxEVT\_COMMAND\_MENU\_SELECTED command, -which is generated by a menu item.} -\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_MENU\_RANGE command, -which is generated by a range of menu items.} -\twocolitem{{\bf EVT\_SLIDER(id, func)}}{Process a wxEVT\_COMMAND\_SLIDER\_UPDATED command, -which is generated by a wxSlider control.} -\twocolitem{{\bf EVT\_RADIOBOX(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBOX\_SELECTED command, -which is generated by a wxRadioBox control.} -\twocolitem{{\bf EVT\_RADIOBUTTON(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED command, -which is generated by a wxRadioButton control.} -\twocolitem{{\bf EVT\_SCROLLBAR(id, func)}}{Process a wxEVT\_COMMAND\_SCROLLBAR\_UPDATED command, -which is generated by a wxScrollBar control. This is provided for compatibility only; -more specific scrollbar event macros should be used instead (see \helpref{wxScrollEvent}{wxscrollevent}).} -\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED command, -which is generated by a wxComboBox control.} -\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.} -\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -for a range id identifiers. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event. -Pass the id of the tool.} -\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event -for a range of ids. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event. -Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.} -\twocolitem{{\bf EVT\_COMMAND\_LEFT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_CLICK command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_LEFT\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_DCLICK command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_RIGHT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_RIGHT\_CLICK command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_SET\_FOCUS(id, func)}}{Process a wxEVT\_COMMAND\_SET\_FOCUS command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_KILL\_FOCUS(id, func)}}{Process a wxEVT\_COMMAND\_KILL\_FOCUS command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_ENTER command, -which is generated by a control.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCommandEvent::m\_clientData} - -\member{char*}{m\_clientData} - -Contains a pointer to client data for listboxes and choices, if the event -was a selection. - -\membersection{wxCommandEvent::m\_commandInt} - -\member{int}{m\_commandInt} - -Contains an integer identifier corresponding to a listbox, choice or -radiobox selection (only if the event was a selection, not a -deselection), or a boolean value representing the value of a checkbox. - -\membersection{wxCommandEvent::m\_commandString} - -\member{char*}{m\_commandString} - -Contains a string corresponding to a listbox or choice selection. - -\membersection{wxCommandEvent::m\_extraLong} - -\member{long}{m\_extraLong} - -Extra information. If the event comes from a listbox selection, it is -a boolean determining whether the event was a selection (TRUE) or a -deselection (FALSE). A listbox deselection only occurs for -multiple-selection boxes, and in this case the index and string values -are indeterminate and the listbox must be examined by the application. - -\membersection{wxCommandEvent::wxCommandEvent} - -\func{}{wxCommandEvent}{\param{WXTYPE}{ commandEventType = 0}, \param{int}{ id = 0}} - -Constructor. - -\membersection{wxCommandEvent::Checked} - -\func{bool}{Checked}{\void} - -Returns TRUE or FALSE for a checkbox selection event. - -\membersection{wxCommandEvent::GetClientData} - -\func{char*}{GetClientData}{\void} - -Returns client data pointer for a listbox or choice selection event -(not valid for a deselection). - -\membersection{wxCommandEvent::GetExtraLong} - -\func{long}{GetExtraLong}{\void} - -Returns the {\bf m\_extraLong} member. - -\membersection{wxCommandEvent::GetInt} - -\func{int}{GetInt}{\void} - -Returns the {\bf m\_commandInt} member. - -\membersection{wxCommandEvent::GetSelection} - -\func{int}{GetSelection}{\void} - -Returns item index for a listbox or choice selection event (not valid for -a deselection). - -\membersection{wxCommandEvent::GetString} - -\func{char*}{GetString}{\void} - -Returns item string for a listbox or choice selection event (not valid for -a deselection). - -\membersection{wxCommandEvent::IsSelection} - -\func{bool}{IsSelection}{\void} - -For a listbox or choice event, returns TRUE if it is a selection, FALSE if it -is a deselection. - -\membersection{wxCommandEvent::SetClientData} - -\func{void}{SetClientData}{\param{char*}{ clientData}} - -Sets the client data for this event. - -\membersection{wxCommandEvent::SetExtraLong} - -\func{void}{SetExtraLong}{\param{int}{ extraLong}} - -Sets the {\bf m\_extraLong} member. - -\membersection{wxCommandEvent::SetInt} - -\func{void}{SetInt}{\param{int}{ intCommand}} - -Sets the {\bf m\_commandInt} member. - -\membersection{wxCommandEvent::SetString} - -\func{void}{SetString}{\param{char*}{ string}} - -Sets the {\bf m\_commandString} member. - diff --git a/docs/latex/wx/cmdproc.tex b/docs/latex/wx/cmdproc.tex deleted file mode 100644 index c4f7b4acce..0000000000 --- a/docs/latex/wx/cmdproc.tex +++ /dev/null @@ -1,110 +0,0 @@ -\section{\class{wxCommandProcessor}}\label{wxcommandprocessor} - -wxCommandProcessor is a class that maintains a history of wxCommands, -with undo/redo functionality built-in. Derive a new class from this -if you want different behaviour. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxCommandProcessor overview}{wxcommandprocessoroverview}, \helpref{wxCommand}{wxcommand} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCommandProcessor::wxCommandProcessor} - -\func{}{wxCommandProcessor}{\param{int}{ maxCommands = 100}} - -Constructor. - -{\it maxCommands} defaults to a rather arbitrary 100, but can be set from 1 to any integer. -If your wxCommand classes store a lot of data, you may wish the limit the number of -commands stored to a smaller number. - -\membersection{wxCommandProcessor::\destruct{wxCommandProcessor}} - -\func{}{\destruct{wxCommandProcessor}}{\void} - -Destructor. - -\membersection{wxCommandProcessor::CanUndo} - -\func{virtual bool}{CanUndo}{\void} - -Returns TRUE if the currently-active command can be undone, FALSE otherwise. - -\membersection{wxCommandProcessor::ClearCommands} - -\func{virtual void}{ClearCommands}{\void} - -Deletes all the commands in the list and sets the current command pointer to NULL. - -\membersection{wxCommandProcessor::Do} - -\func{virtual bool}{Do}{\void} - -Executes (redoes) the current command (the command that has just been undone if any). - -\membersection{wxCommandProcessor::GetCommands} - -\constfunc{wxList\&}{GetCommands}{\void} - -Returns the list of commands. - -\membersection{wxCommandProcessor::GetMaxCommands} - -\constfunc{int}{GetMaxCommands}{\void} - -Returns the maximum number of commands that the command processor stores. - -\membersection{wxCommandProcessor::GetEditMenu} - -\constfunc{wxMenu*}{GetEditMenu}{\void} - -Returns the edit menu associated with the command processor. - -\membersection{wxCommandProcessor::Initialize} - -\func{virtual void}{Initialize}{\void} - -Initializes the command processor, setting the current command to the -last in the list (if any), and updating the edit menu (if one has been -specified). - -\membersection{wxCommandProcessor::SetEditMenu} - -\func{void}{SetEditMenu}{\param{wxMenu* }{menu}} - -Tells the command processor to update the Undo and Redo items on this -menu as appropriate. Set this to NULL if the menu is about to be -destroyed and command operations may still be performed, or the command -processor may try to access an invalid pointer. - -\membersection{wxCommandProcessor::Submit} - -\func{virtual bool}{Submit}{\param{wxCommand *}{command}, \param{bool}{ storeIt = TRUE}} - -Submits a new command to the command processor. The command processor -calls wxCommand::Do to execute the command; if it succeeds, the command -is stored in the history list, and the associated edit menu (if any) updated -appropriately. If it fails, the command is deleted -immediately. Once Submit has been called, the passed command should not -be deleted directly by the application. - -{\it storeIt} indicates whether the successful command should be stored -in the history list. - -\membersection{wxCommandProcessor::Undo} - -\func{virtual bool}{Undo}{\void} - -Undoes the command just executed. - - diff --git a/docs/latex/wx/colordlg.tex b/docs/latex/wx/colordlg.tex deleted file mode 100644 index 98b10e3407..0000000000 --- a/docs/latex/wx/colordlg.tex +++ /dev/null @@ -1,52 +0,0 @@ -\section{\class{wxColourDialog}}\label{wxcolourdialog} - -This class represents the colour chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxColourDialog Overview}{wxcolourdialogoverview}, \helpref{wxColour}{wxcolour}, \helpref{wxColourData}{wxcolourdata} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxColourDialog::wxColourDialog} - -\func{}{wxColourDialog}{\param{wxWindow* }{parent}, \param{wxColourData* }{data = NULL}} - -Constructor. Pass a parent window, and optionally a pointer to a block of colour -data, which will be copied to the colour dialog's colour data. - -\wxheading{See also} - -\helpref{wxColourData}{wxcolourdata} - -\membersection{wxColourDialog::\destruct{wxColourDialog}} - -\func{}{\destruct{wxColourDialog}}{\void} - -Destructor. - -\membersection{wxColourDialog::GetColourData} - -\func{wxColourData\&}{GetColourData}{\void} - -Returns the \helpref{colour data}{wxcolourdata} associated with the colour dialog. - -\membersection{wxColourDialog::ShowModal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxOK\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/colour.tex b/docs/latex/wx/colour.tex deleted file mode 100644 index 51ff6ce6f2..0000000000 --- a/docs/latex/wx/colour.tex +++ /dev/null @@ -1,302 +0,0 @@ -\section{\class{wxColour}}\label{wxcolour} - -A colour is an object representing a combination of Red, Green, and Blue (RGB) intensity values, -and is used to determine drawing colours. See the -entry for \helpref{wxColourDatabase}{wxcolourdatabase} for how a pointer to a predefined, -named colour may be returned instead of creating a new colour. - -Valid RGB values are in the range 0 to 255. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullColour} - -Pointers: - -{\bf wxBLACK\\ -wxWHITE\\ -wxRED\\ -wxBLUE\\ -wxGREEN\\ -wxCYAN\\ -wxLIGHT\_GREY} - -\wxheading{See also} - -\helpref{wxColourDatabase}{wxcolourdatabase}, \helpref{wxPen}{wxpen}, \helpref{wxBrush}{wxbrush},\rtfsp -\helpref{wxColourDialog}{wxcolourdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxColour::wxColour}\label{wxcolourconstr} - -\func{}{wxColour}{\void} - -Default constructor. - -\func{}{wxColour}{\param{const unsigned char}{ red}, \param{const unsigned char}{ green}, \param{const unsigned char}{ blue}} - -Constructs a colour from red, green and blue values. - -\func{}{wxColour}{\param{const wxString\& }{colourNname}} - -Constructs a colour object using a colour name -listed in {\bf wxTheColourDatabase}. - -\func{}{wxColour}{\param{const wxColour\&}{ colour}} - -Copy constructor. - -\wxheading{Parameters} - -\docparam{red}{The red value.} - -\docparam{green}{The green value.} - -\docparam{blue}{The blue value.} - -\docparam{colourName}{The colour name.} - -\docparam{colour}{The colour to copy.} - -\wxheading{See also} - -\helpref{wxColourDatabase}{wxcolourdatabase} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{wxColour(red=0, green=0, blue=0)}}{} -\twocolitem{\bf{wxNamedColour(name)}}{} -\end{twocollist}} -} - - -\membersection{wxColour::Blue}\label{wxcolourblue} - -\constfunc{unsigned char}{Blue}{\void} - -Returns the blue intensity. - -\membersection{wxColour::GetPixel}\label{wxcolourgetpixel} - -\constfunc{long}{GetPixel}{\void} - -Returns a pixel value which is platform-dependent. On Windows, a COLORREF is returned. -On X, an allocated pixel value is returned. - --1 is returned if the pixel is invalid (on X, unallocated). - -\membersection{wxColour::Green}\label{wxcolourgreen} - -\constfunc{unsigned char}{Green}{\void} - -Returns the green intensity. - -\membersection{wxColour::Ok}\label{wxcolourok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if the colour object is valid (the colour has been initialised with RGB values). - -\membersection{wxColour::Red}\label{wxcolourred} - -\constfunc{unsigned char}{Red}{\void} - -Returns the red intensity. - -\membersection{wxColour::Set}\label{wxcolourset} - -\func{void}{Set}{\param{const unsigned char}{ red}, \param{const unsigned char}{ green}, \param{const unsigned char}{ blue}} - -Sets the RGB intensity values. - -\membersection{wxColour::operator $=$}\label{wxcolourassign} - -\func{wxColour\&}{operator $=$}{\param{const wxColour\&}{ colour}} - -Assignment operator, taking another colour object. - -\func{wxColour\&}{operator $=$}{\param{const wxString\&}{ colourName}} - -Assignment operator, using a colour name to be found in the colour database. - -\wxheading{See also} - -\helpref{wxColourDatabase}{wxcolourdatabase} - -\membersection{wxColour::operator $==$}\label{wxcolourequality} - -\func{bool}{operator $==$}{\param{const wxColour\&}{ colour}} - -Tests the equality of two colours by comparing individual red, green blue colours. - -\membersection{wxColour::operator $!=$}\label{wxcolourinequality} - -\func{bool}{operator $!=$}{\param{const wxColour\&}{ colour}} - -Tests the inequality of two colours by comparing individual red, green blue colours. - -\section{\class{wxColourData}}\label{wxcolourdata} - -This class holds a variety of information related to colour dialogs. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxColour}{wxcolour}, \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxColourDialog overview}{wxcolourdialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxColourData::wxColourData}\label{wxcolourdataconstr} - -\func{}{wxColourData}{\void} - -Constructor. Initializes the custom colours to white, the {\it data colour} setting -to black, and the {\it choose full} setting to TRUE. - -\membersection{wxColourData::\destruct{wxColourData}} - -\func{}{\destruct{wxColourData}}{\void} - -Destructor. - -\membersection{wxColourData::GetChooseFull}\label{wxcolourdatagetchoosefull} - -\constfunc{bool}{GetChooseFull}{\void} - -Under Windows, determines whether the Windows colour dialog will display the full dialog -with custom colour selection controls. Has no meaning under other platforms. - -The default value is TRUE. - -\membersection{wxColourData::GetColour}\label{wxcolourdatagetcolour} - -\constfunc{wxColour\&}{GetColour}{\void} - -Gets the current colour associated with the colour dialog. - -The default colour is black. - -\membersection{wxColourData::GetCustomColour}\label{wxcolourdatagetcustomcolour} - -\constfunc{wxColour\&}{GetCustomColour}{\param{int}{ i}} - -Gets the {\it i}th custom colour associated with the colour dialog. {\it i} should -be an integer between 0 and 15. - -The default custom colours are all white. - -\membersection{wxColourData::SetChooseFull}\label{wxcolourdatasetchoosefull} - -\func{void}{SetChooseFull}{\param{const bool }{flag}} - -Under Windows, tells the Windows colour dialog to display the full dialog -with custom colour selection controls. Under other platforms, has no effect. - -The default value is TRUE. - -\membersection{wxColourData::SetColour}\label{wxcolourdatasetcolour} - -\func{void}{SetColour}{\param{const wxColour\&}{ colour}} - -Sets the default colour for the colour dialog. - -The default colour is black. - -\membersection{wxColourData::SetCustomColour}\label{wxcolourdatasetcustomcolour} - -\func{void}{SetColour}{\param{int}{ i}, \param{const wxColour\&}{ colour}} - -Sets the {\it i}th custom colour for the colour dialog. {\it i} should -be an integer between 0 and 15. - -The default custom colours are all white. - -\membersection{wxColourData::operator $=$}\label{wxcolourdataassign} - -\func{void}{operator $=$}{\param{const wxColourData\&}{ data}} - -Assingment operator for the colour data. - -\section{\class{wxColourDatabase}}\label{wxcolourdatabase} - -wxWindows maintains a database of standard RGB colours for a predefined -set of named colours (such as ``BLACK'', ``LIGHT GREY''). The -application may add to this set if desired by using {\it Append}. There -is only one instance of this class: {\bf wxTheColourDatabase}. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -The colours in the standard database are as follows: - -AQUAMARINE, BLACK, BLUE, BLUE VIOLET, BROWN, CADET BLUE, CORAL, -CORNFLOWER BLUE, CYAN, DARK GREY, DARK GREEN, DARK OLIVE GREEN, DARK -ORCHID, DARK SLATE BLUE, DARK SLATE GREY DARK TURQUOISE, DIM GREY, -FIREBRICK, FOREST GREEN, GOLD, GOLDENROD, GREY, GREEN, GREEN YELLOW, -INDIAN RED, KHAKI, LIGHT BLUE, LIGHT GREY, LIGHT STEEL BLUE, LIME GREEN, -MAGENTA, MAROON, MEDIUM AQUAMARINE, MEDIUM BLUE, MEDIUM FOREST GREEN, -MEDIUM GOLDENROD, MEDIUM ORCHID, MEDIUM SEA GREEN, MEDIUM SLATE BLUE, -MEDIUM SPRING GREEN, MEDIUM TURQUOISE, MEDIUM VIOLET RED, MIDNIGHT BLUE, -NAVY, ORANGE, ORANGE RED, ORCHID, PALE GREEN, PINK, PLUM, PURPLE, RED, -SALMON, SEA GREEN, SIENNA, SKY BLUE, SLATE BLUE, SPRING GREEN, STEEL -BLUE, TAN, THISTLE, TURQUOISE, VIOLET, VIOLET RED, WHEAT, WHITE, YELLOW, -YELLOW GREEN. - -\wxheading{See also} - -\helpref{wxColour}{wxcolour} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxColourDatabase::wxColourDatabase}\label{wxcolourdatabaseconstr} - -\func{}{wxColourDatabase}{\void} - -Constructs the colour database. - -\membersection{wxColourDatabase::FindColour}\label{wxcolourdatabasefindcolour} - -\func{wxColour*}{FindColour}{\param{const wxString\& }{colourName}} - -Finds a colour given the name. Returns NULL if not found. - -\membersection{wxColourDatabase::FindName}\label{wxcolourdatabasefindname} - -\constfunc{wxString}{FindName}{\param{const wxColour\&}{ colour}} - -Finds a colour name given the colour. Returns NULL if not found. - -\membersection{wxColourDatabase::Initialize}\label{wxcolourdatabaseinitialize} - -\func{void}{Initialize}{\void} - -Initializes the database with a number of stock colours. Called by wxWindows -on start-up. - - diff --git a/docs/latex/wx/combobox.tex b/docs/latex/wx/combobox.tex deleted file mode 100644 index f30c6a53c3..0000000000 --- a/docs/latex/wx/combobox.tex +++ /dev/null @@ -1,323 +0,0 @@ -\section{\class{wxComboBox}}\label{wxcombobox} - -A combobox is like a combination of an edit control and a listbox. It can be -displayed as static list with editable or read-only text field; or a drop-down list with -text field; or a drop-down list without a text field. - -A combobox permits a single selection only. Combobox items are numbered from zero. - -\wxheading{Derived from} - -\helpref{wxChoice}{wxchoice}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCB\_SIMPLE}}{Creates a combobox with a permanently displayed list.} -\twocolitem{\windowstyle{wxCB\_DROPDOWN}}{Creates a combobox with a drop-down list.} -\twocolitem{\windowstyle{wxCB\_READONLY}}{Creates a combo box consisting of a drop-down list and static text item -displaying the current selection.} -\twocolitem{\windowstyle{wxCB\_SORT}}{Sorts the entries in the list alphabetically.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED event, -when an item on the list is selected.} -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED event, -when the combobox text changes.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxListBox}{wxlistbox}, \helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxChoice}{wxchoice}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxComboBox::wxComboBox}\label{wxcomboboxconstr} - -\func{}{wxComboBox}{\void} - -Default constructor. - -\func{}{wxComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Constructor, creating and showing a combobox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxComboBox}{wxcombobox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxComboBox::Create}{wxcomboboxcreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxComboBox constructor in wxPython reduces the \tt{n} -and \tt{choices} arguments are to a single argument, which is -a list of strings.} - - -\membersection{wxComboBox::\destruct{wxComboBox}} - -\func{}{\destruct{wxComboBox}}{\void} - -Destructor, destroying the combobox. - -\membersection{wxComboBox::Append}\label{wxcomboboxappend} - -\func{void}{Append}{\param{const wxString\& }{item}} - -Adds the item to the end of the combobox. - -\func{void}{Append}{\param{const wxString\& }{ item}, \param{char* }{clientData}} - -Adds the item to the end of the combobox, associating the given data -with the item. - -\wxheading{Parameters} - -\docparam{item}{The string to add.} - -\docparam{clientData}{Client data to associate with the item.} - -\membersection{wxComboBox::Clear}\label{wxcomboboxclear} - -\func{void}{Clear}{\void} - -Clears all strings from the combobox. - -\membersection{wxComboBox::Create}\label{wxcomboboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Creates the combobox for two-step construction. Derived classes -should call or replace this function. See \helpref{wxComboBox::wxComboBox}{wxcomboboxconstr}\rtfsp -for further details. - -\membersection{wxComboBox::Copy}\label{wxcomboboxcopy} - -\func{void}{Copy}{\void} - -Copies the selected text to the clipboard. - -\membersection{wxComboBox::Cut}\label{wxcomboboxcut} - -\func{void}{Cut}{\void} - -Copies the selected text to the clipboard and removes the selection. - -\membersection{wxComboBox::Delete}\label{wxcomboboxdelete} - -\func{void}{Delete}{\param{int}{ n}} - -Deletes an item from the combobox. - -\wxheading{Parameters} - -\docparam{n}{The item to delete, starting from zero.} - -\membersection{wxComboBox::FindString}\label{wxcomboboxfindstring} - -\func{int}{FindString}{\param{const wxString\& }{string}} - -Finds a choice matching the given string. - -\wxheading{Parameters} - -\docparam{string}{The item to find.} - -\wxheading{Return value} - -The position if found, or -1 if not found. - -\membersection{wxComboBox::GetClientData}\label{wxcomboboxgetclientdata} - -\constfunc{char*}{GetClientData}{\param{int}{ n}} - -Returns a pointer to the client data associated with the given item (if any). - -\wxheading{Parameters} - -\docparam{n}{An item, starting from zero.} - -\wxheading{Return value} - -A pointer to the client data, or NULL if the item was not found. - -\membersection{wxComboBox::GetInsertionPoint}\label{wxcomboboxgetinsertionpoint} - -\constfunc{long}{GetInsertionPoint}{\void} - -Returns the insertion point for the combobox's text field. - -\membersection{wxComboBox::GetLastPosition}\label{wxcomboboxgetlastposition} - -\constfunc{long}{GetLastPosition}{\void} - -Returns the last position in the combobox text field. - -\membersection{wxComboBox::GetSelection}\label{wxcomboboxgetselection} - -\constfunc{int}{GetSelection}{\void} - -Gets the position of the selected string, or -1 if there is no selection. - -\membersection{wxComboBox::GetString}\label{wxcomboboxgetstring} - -\constfunc{wxString}{GetString}{\param{int}{ n}} - -Returns the string at position {\it n}. - -\wxheading{Parameters} - -\docparam{n}{The item position, starting from zero.} - -\wxheading{Return value} - -The string if the item is found, otherwise the empty string. - -\membersection{wxComboBox::GetStringSelection}\label{wxcomboboxgetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Gets the selected string. - -\membersection{wxComboBox::GetValue}\label{wxcomboboxgetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Returns the current value in the combobox text field. - -\membersection{wxComboBox::Number}\label{wxcomboboxnumber} - -\constfunc{int}{Number}{\void} - -Returns the number of items in the combobox list. -%TODO: make this GetNumber or GetCount? - -\membersection{wxComboBox::Paste}\label{wxcomboboxpaste} - -\func{void}{Paste}{\void} - -Pastes text from the clipboard to the text field. - -\membersection{wxComboBox::Replace}\label{wxcomboboxreplace} - -\func{void}{Replace}{\param{long}{ from}, \param{long}{ to}, \param{const wxString\& }{text}} - -Replaces the text between two positions with the given text, in the combobox text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The second position.} - -\docparam{text}{The text to insert.} - -\membersection{wxComboBox::Remove}\label{wxcomboboxremove} - -\func{void}{Remove}{\param{long}{ from}, \param{long}{ to}} - -Removes the text between the two positions in the combobox text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - -\membersection{wxComboBox::SetClientData}\label{wxcomboboxsetclientdata} - -\func{void}{SetClientData}{\param{int}{ n}, \param{char* }{data}} - -Associates the given client data pointer with the given item. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item.} - -\docparam{data}{The client data.} - -\membersection{wxComboBox::SetInsertionPoint}\label{wxcomboboxsetinsertionpoint} - -\func{void}{SetInsertionPoint}{\param{long}{ pos}} - -Sets the insertion point in the combobox text field. - -\wxheading{Parameters} - -\docparam{pos}{The new insertion point.} - -\membersection{wxComboBox::SetInsertionPointEnd}\label{wxcomboboxsetinsertionpointend} - -\func{void}{SetInsertionPointEnd}{\void} - -Sets the insertion point at the end of the combobox text field. - -\membersection{wxComboBox::SetSelection}\label{wxcomboboxsetselection} - -\func{void}{SetSelection}{\param{int}{ n}} - -Selects the given item in the combobox list. This does not cause a -wxEVT\_COMMAND\_COMBOBOX\_SELECTED event to get emitted. - -\func{void}{SetSelection}{\param{long}{ from}, \param{long}{ to}} - -Selects the text between the two positions, in the combobox text field. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item to select.} - -\docparam{from}{The first position.} - -\docparam{to}{The second position.} - -\membersection{wxComboBox::SetValue}\label{wxcomboboxsetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{text}} - -Sets the text for the combobox text field. - -\wxheading{Parameters} - -\docparam{text}{The text to set.} - - diff --git a/docs/latex/wx/command.tex b/docs/latex/wx/command.tex deleted file mode 100644 index 7a8552a453..0000000000 --- a/docs/latex/wx/command.tex +++ /dev/null @@ -1,89 +0,0 @@ -\section{\class{wxCommand}}\label{wxcommand} - -wxCommand is a base class for modelling an application command, -which is an action usually performed by selecting a menu item, pressing -a toolbar button or any other means provided by the application to -change the data or view. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\overview{Overview}{wxcommandoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCommand::wxCommand} - -\func{}{wxCommand}{\param{bool}{ canUndo = FALSE}, \param{const wxString\& }{name = NULL}} - -Constructor. wxCommand is an abstract class, so you will need to derive -a new class and call this constructor from your own constructor. - -{\it canUndo} tells the command processor whether this command is undo-able. You -can achieve the same functionality by overriding the CanUndo member function (if for example -the criteria for undoability is context-dependant). - -{\it name} must be supplied for the command processor to display the command name -in the application's edit menu. - -\membersection{wxCommand::\destruct{wxCommand}} - -\func{}{\destruct{wxCommand}}{\void} - -Destructor. - -\membersection{wxCommand::CanUndo} - -\func{bool}{CanUndo}{\void} - -Returns TRUE if the command can be undone, FALSE otherwise. - -\membersection{wxCommand::Do} - -\func{bool}{Do}{\void} - -Override this member function to execute the appropriate action when called. -Return TRUE to indicate that the action has taken place, FALSE otherwise. -Returning FALSE will indicate to the command processor that the action is -not undoable and should not be added to the command history. - -\membersection{wxCommand::GetName} - -\func{wxString}{GetName}{\void} - -Returns the command name. - -\membersection{wxCommand::Undo} - -\func{bool}{Undo}{\void} - -Override this member function to un-execute a previous Do. -Return TRUE to indicate that the action has taken place, FALSE otherwise. -Returning FALSE will indicate to the command processor that the action is -not redoable and no change should be made to the command history. - -How you implement this command is totally application dependent, but typical -strategies include: - -\begin{itemize}\itemsep=0pt -\item Perform an inverse operation on the last modified piece of -data in the document. When redone, a copy of data stored in command -is pasted back or some operation reapplied. This relies on the fact that -you know the ordering of Undos; the user can never Undo at an arbitrary position -in the command history. -\item Restore the entire document state (perhaps using document transactioning). -Potentially very inefficient, but possibly easier to code if the user interface -and data are complex, and an `inverse execute' operation is hard to write. -\end{itemize} - -The docview sample uses the first method, to remove or restore segments -in the drawing. - - diff --git a/docs/latex/wx/conditn.tex b/docs/latex/wx/conditn.tex deleted file mode 100644 index e900499e26..0000000000 --- a/docs/latex/wx/conditn.tex +++ /dev/null @@ -1,65 +0,0 @@ -\section{\class{wxCondition}}\label{wxcondition} - -TODO - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCondition::wxCondition}\label{wxconditionconstr} - -\func{}{wxCondition}{\void} - -Default constructor. - -\membersection{wxCondition::\destruct{wxCondition}} - -\func{}{\destruct{wxCondition}}{\void} - -Destroys the wxCondition object. - -\membersection{wxCondition::Broadcast}\label{wxconditionbroadcast} - -\func{void}{Broadcast}{\void} - -Broadcasts to all waiting objects. - -\membersection{wxCondition::Signal}\label{wxconditionsignal} - -\func{void}{Signal}{\void} - -Signals the object. - -\membersection{wxCondition::Wait}\label{wxconditionwait} - -\func{void}{Wait}{\param{wxMutex\&}{ mutex}} - -Waits indefinitely. - -\func{bool}{Wait}{\param{wxMutex\&}{ mutex}, \param{unsigned long}{ sec}, \param{unsigned long}{ nsec}} - -Waits until a signal is raised or the timeout has elapsed. - -\wxheading{Parameters} - -\docparam{mutex}{wxMutex object.} - -\docparam{sec}{Timeout in seconds} - -\docparam{nsec}{Timeout nanoseconds component (added to {\it sec}).} - -\wxheading{Return value} - -The second form returns if the signal was raised, or FALSE if there was a timeout. - - diff --git a/docs/latex/wx/config.tex b/docs/latex/wx/config.tex deleted file mode 100644 index 8275f459be..0000000000 --- a/docs/latex/wx/config.tex +++ /dev/null @@ -1,711 +0,0 @@ -\section{\class{wxConfigBase}}\label{wxconfigbase} - -wxConfigBase class defines the basic interface of all config classes. It can -not be used by itself (it's an abstract base class) and you'll always use one -of its derivations: wxIniConfig, wxFileConfig, wxRegConfig or any other. - -However, usually you don't even need to know the precise nature of the class -you're working with but you would just use the wxConfigBase methods. This -allows you to write the same code regardless of whether you're working with -the registry under Win32 or text-based config files under Unix (or even -Windows 3.1 .INI files if you're really unlucky). To make writing the portable -code even easier, wxWindows provides a typedef wxConfig -which is mapped onto the native wxConfigBase implementation on the given -platform: i.e. wxRegConfig under Win32, wxIniConfig under Win16 and -wxFileConfig otherwise. - -See \helpref{config overview}{wxconfigoverview} for the descriptions of all -features of this class. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - (to let wxWindows choose a wxConfig class for your platform)\\ - (base config class)\\ - (wxFileconfig class)\\ - (wxRegConfig class)\\ - (wxIniConfig class) - -\wxheading{Example} - -Here is how you would typically use this class: - -\begin{verbatim} - // using wxConfig instead of writing wxFileConfig or wxRegConfig enhances - // portability of the code - wxConfig *config = new wxConfig("MyAppName"); - - wxString str; - if ( config->Read("LastPrompt", &str) ) { - // last prompt was found in the config file/registry and its value is now - // in str - ... - } - else { - // no last prompt... - } - - // another example: using default values and the full path instead of just - // key name: if the key is not found , the value 17 is returned - long value = config->Read("/LastRun/CalculatedValues/MaxValue", -1); - ... - ... - ... - // at the end of the program we would save everything back - config->Write("LastPrompt", str); - config->Write("/LastRun/CalculatedValues/MaxValue", value); - - // the changes will be written back automatically - delete config; -\end{verbatim} - -This basic example, of course, doesn't show all wxConfig features, such as -enumerating, testing for existence and deleting the entries and groups of -entries in the config file, its abilities to automatically store the default -values or expand the environment variables on the fly. However, the main idea -is that using this class is easy and that it should normally do what you -expect it to. - -NB: in the documentation of this class, the words "config file" also mean -"registry hive" for wxRegConfig and, generally speaking, might mean any -physical storage where a wxConfigBase-derived class stores its data. - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Static functions} - -These functions deal with the "default" config object. Although its usage is -not at all mandatory it may be convenient to use a global config object -instead of creating and deleting the local config objects each time you need -one (especially because creating a wxFileConfig object might be a time -consuming operation). In this case, you may create this global config object -in the very start of the program and {\it Set()} it as the default. Then, from -anywhere in your program, you may access it using the {\it Get()} function. Of -course, you should delete it on the program termination (otherwise, not only a -memory leak will result, but even more importantly the changes won't be -written back!). - -As it happens, you may even further simplify the procedure described above: -you may forget about calling {\it Set()}. When {\it Get()} is called and there -is no current object, it will create one using {\it Create()} function. To -disable this behaviour {\it DontCreateOnDemand()} is provided. - -\helpref{Set}{wxconfigbaseset}\\ -\helpref{Get}{wxconfigbaseget}\\ -\helpref{Create}{wxconfigbasecreate}\\ -\helpref{DontCreateOnDemand}{wxconfigbasedontcreateondemand} - -\membersection{Constructor and destructor} - -\helpref{wxConfigBase}{wxconfigbasector}\\ -\helpref{\destruct{wxConfigBase}}{wxconfigbasedtor} - -\membersection{Path management} - -As explained in \helpref{config overview}{wxconfigoverview}, the config classes -support a file system-like hierarchy of keys (files) and groups (directories). -As in the file system case, to specify a key in the config class you must use -a path to it. Config classes also support the notion of the current group, -which makes it possible to use the relative paths. To clarify all this, here -is an example (it's only for the sake of demonstration, it doesn't do anything -sensible!): - -\begin{verbatim} - wxConfig *config = new wxConfig("FooBarApp"); - - // right now the current path is '/' - conf->Write("RootEntry", 1); - - // go to some other place: if the group(s) don't exist, they will be created - conf->SetPath("/Group/Subgroup"); - - // create an entry in subgroup - conf->Write("SubgroupEntry", 3); - - // '..' is understood - conf->Write("../GroupEntry", 2); - conf->SetPath(".."); - - wxASSERT( conf->Read("Subgroup/SubgroupEntry", 0l) == 3 ); - - // use absolute path: it's allowed, too - wxASSERT( conf->Read("/RootEntry", 0l) == 1 ); -\end{verbatim} - -{\it Warning}: it's probably a good idea to always restore the path to its -old value on function exit: - -\begin{verbatim} - void foo(wxConfigBase *config) - { - wxString strOldPath = config->GetPath(); - - config->SetPath("/Foo/Data"); - ... - - config->SetPath(strOldPath); - } -\end{verbatim} - -because otherwise the assert in the following example will surely fail -(we suppose here that {\it foo()} function is the same as above except that it -doesn't save and restore the path): - -\begin{verbatim} - void bar(wxConfigBase *config) - { - config->Write("Test", 17); - - foo(config); - - // we're reading "/Foo/Data/Test" here! -1 will probably be returned... - wxASSERT( config->Read("Test", -1) == 17 ); - } -\end{verbatim} - -Finally, the path separator in wxConfigBase and derived classes is always '/', -regardless of the platform (i.e. it's {\bf not} '$\backslash\backslash$' under Windows). - -\helpref{SetPath}{wxconfigbasesetpath}\\ -\helpref{GetPath}{wxconfigbasegetpath} - -\membersection{Enumeration} - -The functions in this section allow to enumerate all entries and groups in the -config file. All functions here return FALSE when there are no more items. - -You must pass the same index to GetNext and GetFirst (don't modify it). -Please note that it's {\bf not} the index of the current item (you will have -some great surprizes with wxRegConfig if you assume this) and you shouldn't -even look at it: it's just a "cookie" which stores the state of the -enumeration. It can't be stored inside the class because it would prevent you -from running several enumerations simultaneously, that's why you must pass it -explicitly. - -Having said all this, enumerating the config entries/groups is very simple: - -\begin{verbatim} - wxArrayString aNames; - - // enumeration variables - wxString str; - long dummy; - - // first enum all entries - bool bCont = config->GetFirstEntry(str, dummy); - while ( bCont ) { - aNames.Add(str); - - bCont = GetConfig()->GetNextEntry(str, dummy); - } - - ... we have all entry names in aNames... - - // now all groups... - bCont = GetConfig()->GetFirstGroup(str, dummy); - while ( bCont ) { - aNames.Add(str); - - bCont = GetConfig()->GetNextGroup(str, dummy); - } - - ... we have all group (and entry) names in aNames... - -\end{verbatim} - -There are also functions to get the number of entries/subgroups without -actually enumerating them, but you will probably never need them. - -\helpref{GetFirstGroup}{wxconfigbasegetfirstgroup}\\ -\helpref{GetNextGroup}{wxconfigbasegetnextgroup}\\ -\helpref{GetFirstEntry}{wxconfigbasegetfirstentry}\\ -\helpref{GetNextEntry}{wxconfigbasegetnextentry}\\ -\helpref{GetNumberOfEntries}{wxconfigbasegetnumberofentries}\\ -\helpref{GetNumberOfGroups}{wxconfigbasegetnumberofgroups} - -\membersection{Tests of existence} - -\helpref{HasGroup}{wxconfigbasehasgroup}\\ -\helpref{HasEntry}{wxconfigbasehasentry}\\ -\helpref{Exists}{wxconfigbaseexists}\\ -\helpref{GetEntryType}{wxconfigbasegetentrytype} - -\membersection{Miscellaneous accessors} - -\helpref{GetAppName}{wxconfigbasegetappname}\\ -\helpref{GetVendorName}{wxconfigbasegetvendorname} - -\membersection{Key access} - -These function are the core of wxConfigBase class: they allow you to read and -write config file data. All {\it Read} function take a default value which -will be returned if the specified key is not found in the config file. - -Currently, only two types of data are supported: string and long (but it might -change in the near future). To work with other types: for {\it int} or {\it -bool} you can work with function taking/returning {\it long} and just use the -casts. Better yet, just use {\it long} for all variables which you're going to -save in the config file: chances are that \verb$sizeof(bool) == sizeof(int) == sizeof(long)$ anyhow on your system. For {\it float}, {\it double} and, in -general, any other type you'd have to translate them to/from string -representation and use string functions. - -Try not to read long values into string variables and vice versa: although it -just might work with wxFileConfig, you will get a system error with -wxRegConfig because in the Windows registry the different types of entries are -indeed used. - -Final remark: the {\it szKey} parameter for all these functions can contain an -arbitrary path (either relative or absolute), not just the key name. - -\helpref{Read}{wxconfigbaseread}\\ -\helpref{Write}{wxconfigbasewrite}\\ -\helpref{Flush}{wxconfigbaseflush} - -\membersection{Rename entries/groups} - -The functions in this section allow to rename entries or subgroups of the -current group. They will return FALSE on error. typically because either the -entry/group with the original name doesn't exist, because the entry/group with -the new name already exists or because the function is not supported in this -wxConfig implementation. - -\helpref{RenameEntry}{wxconfigbaserenameentry}\\ -\helpref{RenameGroup}{wxconfigbaserenamegroup} - -\membersection{Delete entries/groups} - -The functions in this section delete entries and/or groups of entries from the -config file. {\it DeleteAll()} is especially useful if you want to erase all -traces of your program presence: for example, when you uninstall it. - -\helpref{DeleteEntry}{wxconfigbasedeleteentry}\\ -\helpref{DeleteGroup}{wxconfigbasedeletegroup}\\ -\helpref{DeleteAll}{wxconfigbasedeleteall} - -\membersection{Options} - -Some aspects of wxConfigBase behaviour can be changed during run-time. The -first of them is the expansion of environment variables in the string values -read from the config file: for example, if you have the following in your -config file: - -\begin{verbatim} - # config file for my program - UserData = $HOME/data - - # the following syntax is valud only under Windows - UserData = %windir%\\data.dat -\end{verbatim} - -the call to \verb$config->Read("UserData")$ will return something like -\verb$"/home/zeitlin/data"$ if you're lucky enough to run a Linux system ;-) - -Although this feature is very useful, it may be annoying if you read a value -which containts '\$' or '\%' symbols (\% is used for environment variables -expansion under Windows) which are not used for environment variable -expansion. In this situation you may call SetExpandEnvVars(FALSE) just before -reading this value and SetExpandEnvVars(TRUE) just after. Another solution -would be to prefix the offending symbols with a backslash. - -The following functions control this option: - -\helpref{IsExpandingEnvVars}{wxconfigbaseisexpandingenvvars}\\ -\helpref{SetExpandingEnvVars}{wxconfigbasesetexpandingenvvars}\\ -\helpref{SetRecordDefaults}{wxconfigbasesetrecorddefaults}\\ -\helpref{IsRecordingDefaults}{wxconfigbaseisrecordingdefaults} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{wxConfigBase::wxConfigBase}\label{wxconfigbasector} - -\func{}{wxConfigBase}{\param{const wxString\& }{appName = wxEmptyString}, - \param{const wxString\& }{vendorName = wxEmptyString}, - \param{const wxString\& }{localFilename = wxEmptyString}, - \param{const wxString\& }{globalFilename = wxEmptyString}, - \param{long}{ style = 0}} - -This is the default and only constructor of the wxConfigBase class, and -derived classes. - -\wxheading{Parameters} - -\docparam{appName}{The application name. If this is empty, the class will -normally use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The -application name is used in the registry key on Windows, and can be used to -deduce the local filename parameter if that is missing.} - -\docparam{vendorName}{The vendor name. If this is empty, it is assumed that -no vendor name is wanted, if this is optional for the current config class. -The vendor name is appended to the application name for wxRegConfig.} - -\docparam{localFilename}{Some config classes require a local filename. If this -is not present, but required, the application name will be used instead.} - -\docparam{globalFilename}{Some config classes require a global filename. If -this is not present, but required, the application name will be used instead.} - -\docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and -wxCONFIG\_USE\_GLOBAL\_FILE. The style interpretation depends on the config -class and is ignored by some. For wxFileConfig, these styles determine whether -a local or global config file is created or used. If the flag is present but -the parameter is empty, the parameter will be set to a default. If the -parameter is present but the style flag not, the relevant flag will be added -to the style. For wxFileConfig you can also add wxCONFIG\_USE\_RELATIVE\_PATH -by logicaly or'ing it to either of the _FILE options to tell wxFileConfig to -use relative instead of absolute paths. } - -\wxheading{Remarks} - -By default, environment variable expansion is on and recording defaults is -off. - -\membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor} - -\func{}{\destruct{wxConfigBase}}{\void} - -Empty but ensures that dtor of all derived classes is virtual. - -\membersection{wxConfigBase::Create}\label{wxconfigbasecreate} - -\func{static wxConfigBase *}{Create}{\void} - -Create a new config object: this function will create the "best" -implementation of wxConfig available for the current platform, see comments -near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns the -created object and also sets it as the current one. - -\membersection{wxConfigBase::DontCreateOnDemand}\label{wxconfigbasedontcreateondemand} - -\func{void}{DontCreateOnDemand}{\void} - -Calling this function will prevent {\it Get()} from automatically creating a -new config object if the current one is NULL. It might be useful to call it -near the program end to prevent new config object "accidental" creation. - -\membersection{wxConfigBase::DeleteAll}\label{wxconfigbasedeleteall} - -\func{bool}{DeleteAll}{\void} - -Delete the whole underlying object (disk file, registry key, ...). Primarly -for use by desinstallation routine. - -\membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry} - -\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{ -bDeleteGroupIfEmpty = TRUE}} - -Deletes the specified entry and the group it belongs to if it was the last key -in it and the second parameter is true. - -\membersection{wxConfigBase::DeleteGroup}\label{wxconfigbasedeletegroup} - -\func{bool}{DeleteGroup}{\param{const wxString\& }{ key}} - -Delete the group (with all subgroups) - -\membersection{wxConfigBase::Exists}\label{wxconfigbaseexists} - -\constfunc{bool}{Exists}{\param{wxString\& }{strName}} - -returns TRUE if either a group or an entry with a given name exists - -\membersection{wxConfigBase::Flush}\label{wxconfigbaseflush} - -\func{bool}{Flush}{\param{bool }{bCurrentOnly = FALSE}} - -permanently writes all changes (otherwise, they're only written from object's -destructor) - -\membersection{wxConfigBase::Get}\label{wxconfigbaseget} - -\func{wxConfigBase *}{Get}{\void} - -Get the current config object. If there is no current object, creates one -(using {\it Create}) unless DontCreateOnDemand was called previously. - -\membersection{wxConfigBase::GetAppName}\label{wxconfigbasegetappname} - -\constfunc{wxString}{GetAppName}{\void} - -Returns the application name. - -\membersection{wxConfigBase::GetEntryType}\label{wxconfigbasegetentrytype} - -\constfunc{enum wxConfigBase::EntryType}{GetEntryType}{\param{const wxString\& }{name}} - -Returns the type of the given entry or {\it Unknown} if the entry doesn't -exist. This function should be used to decide which version of Read() should -be used because some of wxConfig implementations will complain about type -mismatch otherwise: e.g., an attempt to read a string value from an integer -key with wxRegConfig will fail. - -The result is an element of enum EntryType: - -\begin{verbatim} - enum EntryType - { - Unknown, - String, - Boolean, - Integer, - Float - }; -\end{verbatim} - -\membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup} - -\constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{ -index}} - -Gets the first group. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\membersection{wxConfigBase::GetFirstEntry}\label{wxconfigbasegetfirstentry} - -\constfunc{bool}{GetFirstEntry}{\param{wxString\& }{str}, \param{long\&}{ -index}} - -Gets the first entry. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\membersection{wxConfigBase::GetNextGroup}\label{wxconfigbasegetnextgroup} - -\constfunc{bool}{GetNextGroup}{\param{wxString\& }{str}, \param{long\&}{ -index}} - -Gets the next group. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\membersection{wxConfigBase::GetNextEntry}\label{wxconfigbasegetnextentry} - -\constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{ -index}} - -Gets the next entry. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\membersection{wxConfigBase::GetNumberOfEntries}\label{wxconfigbasegetnumberofentries} - -\constfunc{uint }{GetNumberOfEntries}{\param{bool }{bRecursive = FALSE}} - -\membersection{wxConfigBase::GetNumberOfGroups}\label{wxconfigbasegetnumberofgroups} - -\constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = FALSE}} - -Get number of entries/subgroups in the current group, with or without its -subgroups. - -\membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath} - -\constfunc{const wxString\&}{GetPath}{\void} - -Retrieve the current path (always as absolute path). - -\membersection{wxConfigBase::GetVendorName}\label{wxconfigbasegetvendorname} - -\constfunc{wxString}{GetVendorName}{\void} - -Returns the vendor name. - -\membersection{wxConfigBase::HasEntry}\label{wxconfigbasehasentry} - -\constfunc{bool}{HasEntry}{\param{wxString\& }{strName}} - -returns TRUE if the entry by this name exists - -\membersection{wxConfigBase::HasGroup}\label{wxconfigbasehasgroup} - -\constfunc{bool}{HasGroup}{\param{const wxString\& }{strName}} - -returns TRUE if the group by this name exists - -\membersection{wxConfigBase::IsExpandingEnvVars}\label{wxconfigbaseisexpandingenvvars} - -\constfunc{bool}{IsExpandingEnvVars}{\void} - -Returns TRUE if we are expanding environment variables in key values. - -\membersection{wxConfigBase::IsRecordingDefaults}\label{wxconfigbaseisrecordingdefaults} - -\func{bool}{IsRecordingDefaults}{\void} const - -Returns TRUE if we are writing defaults back to the config file. - -\membersection{wxConfigBase::Read}\label{wxconfigbaseread} - -\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ -str}} - -Read a string from the key, returning TRUE if the value was read. If the key -was not found, {\it str} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ -str}, \param{const wxString\& }{defaultVal}} - -Read a string from the key. The default value is returned if the key was not -found. - -Returns TRUE if value was really read, FALSE if the default was used. - -\constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const -wxString\& }{defaultVal}} - -Another version of {\it Read()}, returning the string value directly. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}} - -Reads a long value, returning TRUE if the value was found. If the value was -not found, {\it l} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}, -\param{long}{ defaultVal}} - -Reads a long value, returning TRUE if the value was found. If the value was -not found, {\it defaultVal} is used instead. - -\constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{ -defaultVal}} - -Reads a long value from the key and returns it. {\it defaultVal} is returned -if the key is not found. - -NB: writing - -{\small \begin{verbatim} conf->Read("key", 0); \end{verbatim} } - -won't work because the call is ambiguous: compiler can not choose between two -{\it Read} functions. Instead, write: - -{\small \begin{verbatim} conf->Read("key", 0l); \end{verbatim} } - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}} - -Reads a double value, returning TRUE if the value was found. If the value was -not found, {\it d} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}, - \param{double}{ defaultVal}} - -Reads a double value, returning TRUE if the value was found. If the value was -not found, {\it defaultVal} is used instead. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ b}} - -Reads a bool value, returning TRUE if the value was found. If the value was -not found, {\it b} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d}, -\param{bool}{ defaultVal}} - -Reads a bool value, returning TRUE if the value was found. If the value was -not found, {\it defaultVal} is used instead. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{Read(key, default="")}}{Returns a string.} -\twocolitem{\bf{ReadInt(key, default=0)}}{Returns an int.} -\twocolitem{\bf{ReadFloat(key, default=0.0)}}{Returns a floating point number.} -\end{twocollist}} -} - -\membersection{wxConfigBase::RenameEntry}\label{wxconfigbaserenameentry} - -\func{bool}{RenameEntry}{\param{const wxString\& }{ oldName}, \param{const wxString\& }{ newName}} - -Renames an entry in the current group. The entries names (both the old and -the new one) shouldn't contain backslashes, i.e. only simple names and not -arbitrary paths are accepted by this function. - -Returns FALSE if the {\it oldName} doesn't exist or if {\it newName} already -exists. - -\membersection{wxConfigBase::RenameGroup}\label{wxconfigbaserenamegroup} - -\func{bool}{RenameGroup}{\param{const wxString\& }{ oldName}, \param{const wxString\& }{ newName}} - -Renames a subgroup of the current group. The subgroup names (both the old and -the new one) shouldn't contain backslashes, i.e. only simple names and not -arbitrary paths are accepted by this function. - -Returns FALSE if the {\it oldName} doesn't exist or if {\it newName} already -exists. - -\membersection{wxConfigBase::Set}\label{wxconfigbaseset} - -\func{wxConfigBase *}{Set}{\param{wxConfigBase *}{pConfig}} - -Sets the config object as the current one, returns the pointer to the previous -current object (both the parameter and returned value may be NULL) - -\membersection{wxConfigBase::SetExpandingEnvVars}\label{wxconfigbasesetexpandingenvvars} - -\func{void}{SetExpandEnvVars }{\param{bool }{bDoIt = TRUE}} - -Determine whether we wish to expand environment variables in key values. - -\membersection{wxConfigBase::SetPath}\label{wxconfigbasesetpath} - -\func{void}{SetPath}{\param{const wxString\& }{strPath}} - -Set current path: if the first character is '/', it's the absolute path, -otherwise it's a relative path. '..' is supported. If the strPath doesn't -exist it is created. - -\membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults} - -\func{void}{SetRecordDefaults}{\param{bool }{bDoIt = TRUE}} - -Sets whether defaults are written back to the config file. - -If on (default is off) all default values are written back to the config file. -This allows the user to see what config options may be changed and is probably -useful only for wxFileConfig. - -\membersection{wxConfigBase::Write}\label{wxconfigbasewrite} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{ -value}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{long}{ value}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{double}{ value}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{bool}{ value}} - -These functions write the specified value to the config file and return TRUE -on success. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{Write(key, value)}}{Writes a string.} -\twocolitem{\bf{WriteInt(key, value)}}{Writes an int.} -\twocolitem{\bf{WriteFloat(key, value)}}{Writes a floating point number.} -\end{twocollist}} -} - - - - - diff --git a/docs/latex/wx/cont.bmp b/docs/latex/wx/cont.bmp deleted file mode 100644 index 56bed6b028..0000000000 Binary files a/docs/latex/wx/cont.bmp and /dev/null differ diff --git a/docs/latex/wx/cont.gif b/docs/latex/wx/cont.gif deleted file mode 100644 index c88defaa6a..0000000000 Binary files a/docs/latex/wx/cont.gif and /dev/null differ diff --git a/docs/latex/wx/contbox.bmp b/docs/latex/wx/contbox.bmp deleted file mode 100644 index 183b266e63..0000000000 Binary files a/docs/latex/wx/contbox.bmp and /dev/null differ diff --git a/docs/latex/wx/contbox.gif b/docs/latex/wx/contbox.gif deleted file mode 100644 index cb57dee9cb..0000000000 Binary files a/docs/latex/wx/contbox.gif and /dev/null differ diff --git a/docs/latex/wx/contents.gif b/docs/latex/wx/contents.gif deleted file mode 100644 index 3dddfa3dd5..0000000000 Binary files a/docs/latex/wx/contents.gif and /dev/null differ diff --git a/docs/latex/wx/control.tex b/docs/latex/wx/control.tex deleted file mode 100644 index 8cf69429ac..0000000000 --- a/docs/latex/wx/control.tex +++ /dev/null @@ -1,41 +0,0 @@ -\section{\class{wxControl}}\label{wxcontrol} - -This is the base class for a control or `widget'. - -A control is generally a small window which processes user input and/or displays one or more item -of data. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxValidator}{wxvalidator} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxControl::Command}\label{wxcontrolcommand} - -\func{void}{Command}{\param{wxCommandEvent\& }{event}} - -Simulates the effect of the user issuing a command to the item. See \helpref{wxCommandEvent}{wxcommandevent}. - -\membersection{wxControl::GetLabel}\label{wxcontrolgetlabel} - -\func{wxString\&}{GetLabel}{\void} - -Returns the control's text. - -\membersection{wxControl::SetLabel}\label{wxcontrolsetlabel} - -\func{void}{SetLabel}{\param{const wxString\& }{label}} - -Sets the item's text. - diff --git a/docs/latex/wx/cpp.bmp b/docs/latex/wx/cpp.bmp deleted file mode 100644 index 970f98ef16..0000000000 Binary files a/docs/latex/wx/cpp.bmp and /dev/null differ diff --git a/docs/latex/wx/critsect.tex b/docs/latex/wx/critsect.tex deleted file mode 100644 index 74c987e7f8..0000000000 --- a/docs/latex/wx/critsect.tex +++ /dev/null @@ -1,58 +0,0 @@ -\section{\class{wxCriticalSection}}\label{wxcriticalsection} - -A critical section object is used exactly for the same purpose as -\helpref{mutexes}{wxMutex}. The only difference is that under Windows platform -critical sections are only visible inside one process, while mutexes may be -shared between processes, so using critical sections is slightly more -efficient. The terminology is also slightly different: mutex may be locked (or -acquired) and unlocked (or released) while critical section is entered and left -by the program. - -Finally, you should try to use -\helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker} class whenever -possible instead of directly using wxCriticalSection for the same reasons -\helpref{wxMutexLocker}{wxmutexlocker} is preferrable to -\helpref{wxMutex}{wxmutex} - please see wxMutex for an example. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxThread}{wxthread}, \helpref{wxCondition}{wxcondition}, -\helpref{wxMutexLocker}{wxmutexlocker}, \helpref{wxCriticalSection}{wxcriticalsection} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCriticalSection::wxCriticalSection}\label{wxcriticalsectionctor} - -\func{}{wxCriticalSection}{\void} - -Default constructor initializes critical section object. - -\membersection{wxCriticalSection::\destruct{wxCriticalSection}}\label{wxcriticalsectiondtor} - -\func{}{\destruct{wxCriticalSection}}{\void} - -Destructor frees the ressources. - -\membersection{wxCriticalSection::Enter}\label{wxcriticalsectionenter} - -\func{void }{Enter}{\void} - -Enter the critical section (same as locking a mutex). There is no error return -for this function. After entering the critical section protecting some global -data the thread running in critical section may safely use/modify it. - -\membersection{wxCriticalSection::Leave}\label{wxcriticalsectionleave} - -\func{void }{Leave}{\void} - -Leave the critical section allowing other threads use the global data protected -by it. There is no error return for this function. - diff --git a/docs/latex/wx/crtslock.tex b/docs/latex/wx/crtslock.tex deleted file mode 100644 index a9515b8137..0000000000 --- a/docs/latex/wx/crtslock.tex +++ /dev/null @@ -1,36 +0,0 @@ -\section{\class{wxCriticalSectionLocker}}\label{wxcriticalsectionlocker} - -This is a small helper class to be used with \helpref{wxCriticalSection}{wxcriticalsection} -objects. A wxCriticalSectionLocker enters the critical section in the -constructor and leaves it in the destructor making it much more difficult to -forget to leave a critical section (which, in general, will lead to serious -and difficult to debug problems). - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxCriticalSection}{wxcriticalsection}, -\helpref{wxMutexLocker}{wxmutexlocker} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCriticalSectionLocker::wxCriticalSectionLocker}\label{wxcriticalsectionlockerctor} - -\func{}{wxCriticalSectionLocker}{\param{wxCriticalSection *}{criticalsection}} - -Constructs a wxCriticalSectionLocker object associated with given -criticalsection which must be non NULL and enters it. - -\membersection{wxCriticalSectionLocker::\destruct{wxCriticalSectionLocker}}\label{wxcriticalsectionlockerdtor} - -\func{}{\destruct{wxCriticalSectionLocker}}{\void} - -Destuctor leaves the criticalsection. - diff --git a/docs/latex/wx/cursor.tex b/docs/latex/wx/cursor.tex deleted file mode 100644 index 6358c7baf6..0000000000 --- a/docs/latex/wx/cursor.tex +++ /dev/null @@ -1,189 +0,0 @@ -\section{\class{wxCursor}}\label{wxcursor} - -A cursor is a small bitmap usually used for denoting where the mouse -pointer is, with a picture that might indicate the interpretation of a -mouse click. As with icons, cursors in X and MS Windows are created -in a different manner. Therefore, separate cursors will be created for the -different environments. Platform-specific methods for creating a {\bf -wxCursor} object are catered for, and this is an occasion where -conditional compilation will probably be required (see \helpref{wxIcon}{wxicon} for -an example). - -A single cursor object may be used in many windows (any subwindow type). -The wxWindows convention is to set the cursor for a window, as in X, -rather than to set it globally as in MS Windows, although a -global \helpref{::wxSetCursor}{wxsetcursor} is also available for MS Windows use. - -\wxheading{Derived from} - -\helpref{wxBitmap}{wxbitmap}\\ -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullCursor} - -Pointers: - -{\bf wxSTANDARD\_CURSOR\\ -wxHOURGLASS\_CURSOR\\ -wxCROSS\_CURSOR} - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxIcon}{wxicon}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor},\rtfsp -\helpref{::wxSetCursor}{wxsetcursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCursor::wxCursor}\label{wxcursorconstr} - -\func{}{wxCursor}{\void} - -Default constructor. - -\func{}{wxCursor}{\param{const char}{ bits[]}, \param{int }{width}, - \param{int }{ height}, \param{int }{hotSpotX=-1}, \param{int }{hotSpotY=-1}, \param{const char }{maskBits[]=NULL}} - -Constructs a cursor by passing an array of bits (Motif and Xt only). {\it maskBits} is used only under Motif. - -If either {\it hotSpotX} or {\it hotSpotY} is -1, the hotspot will be the centre of the cursor image (Motif only). - -\func{}{wxCursor}{\param{const wxString\& }{cursorName}, \param{long }{type}, \param{int }{hotSpotX=0}, \param{int }{hotSpotY=0}} - -Constructs a cursor by passing a string resource name or filename. - -{\it hotSpotX} and {\it hotSpotY} are currently only used under Windows when loading from an -icon file, to specify the cursor hotspot relative to the top left of the image. - -\func{}{wxCursor}{\param{int}{ cursorId}} - -Constructs a cursor using a cursor identifier. - -\func{}{wxCursor}{\param{const wxCursor\&}{ cursor}} - -Copy constructor. This uses reference counting so is a cheap operation. - -\wxheading{Parameters} - -\docparam{bits}{An array of bits.} - -\docparam{maskBits}{Bits for a mask bitmap.} - -\docparam{width}{Cursor width.} - -\docparam{height}{Cursor height.} - -\docparam{hotSpotX}{Hotspot x coordinate.} - -\docparam{hotSpotY}{Hotspot y coordinate.} - -\docparam{type}{Icon type to load. Under Motif, {\it type} defaults to {\bf wxBITMAP\_TYPE\_XBM}. Under Windows, -it defaults to {\bf wxBITMAP\_TYPE\_CUR\_RESOURCE}. - -Under X, the permitted cursor types are: - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\end{twocollist} - -Under Windows, the permitted types are: - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_CUR}}{Load a cursor from a .cur cursor file (only if USE\_RESOURCE\_LOADING\_IN\_MSW -is enabled in setup.h).} -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_CUR\_RESOURCE}}{Load a Windows resource (as specified in the .rc file).} -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_ICO}}{Load a cursor from a .ico icon file (only if USE\_RESOURCE\_LOADING\_IN\_MSW -is enabled in setup.h). Specify {\it hotSpotX} and {\it hotSpotY}.} -\end{twocollist}} - -\docparam{cursorId}{A stock cursor identifier. May be one of: - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxCURSOR\_ARROW}}{A standard arrow cursor.} -\twocolitem{{\bf wxCURSOR\_BULLSEYE}}{Bullseye cursor.} -\twocolitem{{\bf wxCURSOR\_CHAR}}{Rectangular character cursor.} -\twocolitem{{\bf wxCURSOR\_CROSS}}{A cross cursor.} -\twocolitem{{\bf wxCURSOR\_HAND}}{A hand cursor.} -\twocolitem{{\bf wxCURSOR\_IBEAM}}{An I-beam cursor (vertical line).} -\twocolitem{{\bf wxCURSOR\_LEFT\_BUTTON}}{Represents a mouse with the left button depressed.} -\twocolitem{{\bf wxCURSOR\_MAGNIFIER}}{A magnifier icon.} -\twocolitem{{\bf wxCURSOR\_MIDDLE\_BUTTON}}{Represents a mouse with the middle button depressed.} -\twocolitem{{\bf wxCURSOR\_NO\_ENTRY}}{A no-entry sign cursor.} -\twocolitem{{\bf wxCURSOR\_PAINT\_BRUSH}}{A paintbrush cursor.} -\twocolitem{{\bf wxCURSOR\_PENCIL}}{A pencil cursor.} -\twocolitem{{\bf wxCURSOR\_POINT\_LEFT}}{A cursor that points left.} -\twocolitem{{\bf wxCURSOR\_POINT\_RIGHT}}{A cursor that points right.} -\twocolitem{{\bf wxCURSOR\_QUESTION\_ARROW}}{An arrow and question mark.} -\twocolitem{{\bf wxCURSOR\_RIGHT\_BUTTON}}{Represents a mouse with the right button depressed.} -\twocolitem{{\bf wxCURSOR\_SIZENESW}}{A sizing cursor pointing NE-SW.} -\twocolitem{{\bf wxCURSOR\_SIZENS}}{A sizing cursor pointing N-S.} -\twocolitem{{\bf wxCURSOR\_SIZENWSE}}{A sizing cursor pointing NW-SE.} -\twocolitem{{\bf wxCURSOR\_SIZEWE}}{A sizing cursor pointing W-E.} -\twocolitem{{\bf wxCURSOR\_SIZING}}{A general sizing cursor.} -\twocolitem{{\bf wxCURSOR\_SPRAYCAN}}{A spraycan cursor.} -\twocolitem{{\bf wxCURSOR\_WAIT}}{A wait cursor.} -\twocolitem{{\bf wxCURSOR\_WATCH}}{A watch cursor.} -\end{twocollist}\twocolwidtha{5cm} - -Note that not all cursors are available on all platforms.} - -\docparam{cursor}{Pointer or reference to a cursor to copy.} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{wxCursor(name, flags, hotSpotX=0, -hotSpotY=0)}}{Constructs a cursor from a filename} -\twocolitem{\bf{wxStockCursor(id)}}{Constructs a stock cursor } -\end{twocollist}} -} - -\membersection{wxCursor::\destruct{wxCursor}} - -\func{}{\destruct{wxCursor}}{\void} - -Destroys the cursor. A cursor can be reused for more -than one window, and does not get destroyed when the window is -destroyed. wxWindows destroys all cursors on application exit, although -it's best to clean them up explicitly. - -\membersection{wxCursor::Ok}\label{wxcursorok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if cursor data is present. - -\membersection{wxCursor::operator $=$}\label{wxcursorassignment} - -\func{wxCursor\&}{operator $=$}{\param{const wxCursor\& }{cursor}} - -Assignment operator, using reference counting. Returns a reference -to `this'. - -\membersection{wxCursor::operator $==$}\label{wxcursorequals} - -\func{bool}{operator $==$}{\param{const wxCursor\& }{cursor}} - -Equality operator. Two cursors are equal if they contain pointers -to the same underlying cursor data. It does not compare each attribute, -so two independently-created cursors using the same parameters will -fail the test. - -\membersection{wxCursor::operator $!=$}\label{wxcursornotequals} - -\func{bool}{operator $!=$}{\param{const wxCursor\& }{cursor}} - -Inequality operator. Two cursors are not equal if they contain pointers -to different underlying cursor data. It does not compare each attribute. - - diff --git a/docs/latex/wx/database.tex b/docs/latex/wx/database.tex deleted file mode 100644 index cc884b99d2..0000000000 --- a/docs/latex/wx/database.tex +++ /dev/null @@ -1,277 +0,0 @@ -\section{\class{wxDatabase}}\label{wxdatabase} - -Every database object represents an ODBC connection. -The connection may be closed and reopened. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\overview{wxDatabase overview}{wxdatabaseoverview}, \helpref{wxRecordSet}{wxrecordset} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDatabase::wxDatabase} - -\func{}{wxDatabase}{\void} - -Constructor. The constructor of the first wxDatabase instance of an -application initializes the ODBC manager. - -\membersection{wxDatabase::\destruct{wxDatabase}} - -\func{}{\destruct{wxDatabase}}{\void} - -Destructor. Resets and destroys any associated wxRecordSet instances. - -The destructor of the last wxDatabase instance will deinitialize -the ODBC manager. - -\membersection{wxDatabase::BeginTrans} - -\func{bool}{BeginTrans}{\void} - -Not implemented. - -\membersection{wxDatabase::Cancel} - -\func{void}{Cancel}{\void} - -Not implemented. - -\membersection{wxDatabase::CanTransact} - -\func{bool}{CanTransact}{\void} - -Not implemented. - - -\membersection{wxDatabase::CanUpdate} - -\func{bool}{CanUpdate}{\void} - -Not implemented. - -\membersection{wxDatabase::Close} - -\func{bool}{Close}{\void} - -Resets the statement handles of any associated wxRecordSet objects, -and disconnects from the current data source. - -\membersection{wxDatabase::CommitTrans} - -\func{bool}{CommitTrans}{\void} - -Commits previous transactions. Not implemented. - -\membersection{wxDatabase::ErrorOccured} - -\func{bool}{ErrorOccured}{\void} - -Returns TRUE if the last action caused an error. - -\membersection{wxDatabase::ErrorSnapshot} - -\func{void}{ErrorSnapshot}{\param{HSTMT}{ statement = SQL\_NULL\_HSTMT}} - -This function will be called whenever an ODBC error occured. It stores the -error related information returned by ODBC. If a statement handle of the -concerning ODBC action is available it should be passed to the function. - -\membersection{wxDatabase::GetDatabaseName} - -\func{wxString}{GetDatabaseName}{\void} - -Returns the name of the database associated with the current connection. - -\membersection{wxDatabase::GetDataSource} - -\func{wxString}{GetDataSource}{\void} - -Returns the name of the connected data source. - -\membersection{wxDatabase::GetErrorClass} - -\func{wxString}{GetErrorClass}{\void} - -Returns the error class of the last error. The error class consists of -five characters where the first two characters contain the class -and the other three characters contain the subclass of the ODBC error. -See ODBC documentation for further details. - -\membersection{wxDatabase::GetErrorCode} - -\func{wxRETCODE}{GetErrorCode}{\void} - -Returns the error code of the last ODBC function call. This will be one of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{SQL\_ERROR}{General error.} -\twocolitem{SQL\_INVALID\_HANDLE}{An invalid handle was passed to an ODBC function.} -\twocolitem{SQL\_NEED\_DATA}{ODBC expected some data.} -\twocolitem{SQL\_NO\_DATA\_FOUND}{No data was found by this ODBC call.} -\twocolitem{SQL\_SUCCESS}{The call was successful.} -\twocolitem{SQL\_SUCCESS\_WITH\_INFO}{The call was successful, but further information can be -obtained from the ODBC manager.} -\end{twocollist} - -\membersection{wxDatabase::GetErrorMessage} - -\func{wxString}{GetErrorMessage}{\void} - -Returns the last error message returned by the ODBC manager. - -\membersection{wxDatabase::GetErrorNumber} - -\func{long}{GetErrorNumber}{\void} - -Returns the last native error. A native error is an ODBC driver dependent -error number. - -\membersection{wxDatabase::GetHDBC} - -\func{HDBC}{GetHDBC}{\void} - -Returns the current ODBC database handle. - -\membersection{wxDatabase::GetHENV} - -\func{HENV}{GetHENV}{\void} - -Returns the ODBC environment handle. - -\membersection{wxDatabase::GetInfo} - -\func{bool}{GetInfo}{\param{long}{ infoType}, \param{long *}{buf}} - -\func{bool}{GetInfo}{\param{long}{ infoType}, \param{const wxString\& }{buf}, \param{int}{ bufSize=-1}} - -Returns requested information. The return value is TRUE if successful, FALSE otherwise. - -{\it infoType} is an ODBC identifier specifying the type of information to be returned. - -{\it buf} is a character or long integer pointer to storage which must be allocated by the -application, and which will contain the information if the function is successful. - -{\it bufSize} is the size of the character buffer. A value of -1 indicates that the size -should be computed by the GetInfo function. - -\membersection{wxDatabase::GetPassword} - -\func{wxString}{GetPassword}{\void} - -Returns the password of the current user. - -\membersection{wxDatabase::GetUsername} - -\func{wxString}{GetUsername}{\void} - -Returns the current username. - -\membersection{wxDatabase::GetODBCVersionFloat} - -\func{float}{GetODBCVersionFloat}{\param{bool}{ implementation=TRUE}} - -Returns the version of ODBC in floating point format, e.g. 2.50. - -{\it implementation} should be TRUE to get the DLL version, or FALSE to get the -version defined in the {\tt sql.h} header file. - -This function can return the value 0.0 if the header version number is not defined (for early -versions of ODBC). - -\membersection{wxDatabase::GetODBCVersionString} - -\func{wxString}{GetODBCVersionString}{\param{bool}{ implementation=TRUE}} - -Returns the version of ODBC in string format, e.g. ``02.50". - -{\it implementation} should be TRUE to get the DLL version, or FALSE to get the -version defined in the {\tt sql.h} header file. - -This function can return the value ``00.00" if the header version number is not defined (for early -versions of ODBC). - -\membersection{wxDatabase::InWaitForDataSource} - -\func{bool}{InWaitForDataSource}{\void} - -Not implemented. - -\membersection{wxDatabase::IsOpen} - -\func{bool}{IsOpen}{\void} - -Returns TRUE if a connection is open. - -\membersection{wxDatabase::Open}\label{wxdatabaseopen} - -\func{bool}{Open}{\param{const wxString\& }{datasource}, \param{bool}{ exclusive = FALSE}, \param{bool }{readOnly = TRUE}, - \param{const wxString\& }{username = ``ODBC"}, \param{const wxString\& }{password = ``"}} - -Connect to a data source. {\it datasource} contains the name of the ODBC data -source. The parameters exclusive and readOnly are not used. - -\membersection{wxDatabase::OnSetOptions} - -\func{void}{OnSetOptions}{\param{wxRecordSet *}{recordSet}} - -Not implemented. - -\membersection{wxDatabase::OnWaitForDataSource} - -\func{void}{OnWaitForDataSource}{\param{bool}{ stillExecuting}} - -Not implemented. - -\membersection{wxDatabase::RollbackTrans} - -\func{bool}{RollbackTrans}{\void} - -Sends a rollback to the ODBC driver. Not implemented. - -\membersection{wxDatabase::SetDataSource} - -\func{void}{SetDataSource}{\param{const wxString\& }{s}} - -Sets the name of the data source. Not implemented. - -\membersection{wxDatabase::SetLoginTimeout} - -\func{void}{SetLoginTimeout}{\param{long}{ seconds}} - -Sets the time to wait for an user login. Not implemented. - -\membersection{wxDatabase::SetPassword} - -\func{void}{SetPassword}{\param{const wxString\& }{s}} - -Sets the password of the current user. Not implemented. - -\membersection{wxDatabase::SetSynchronousMode} - -\func{void}{SetSynchronousMode}{\param{bool }{synchronous}} - -Toggles between synchronous and asynchronous mode. Currently only synchronous -mode is supported, so this function has no effect. - -\membersection{wxDatabase::SetQueryTimeout} - -\func{void}{SetQueryTimeout}{\param{long}{ seconds}} - -Sets the time to wait for a response to a query. Not implemented. - -\membersection{wxDatabase::SetUsername} - -\func{void}{SetUsername}{\param{const wxString\& }{s}} - -Sets the name of the current user. Not implemented. - - diff --git a/docs/latex/wx/dataobj.tex b/docs/latex/wx/dataobj.tex deleted file mode 100644 index bec42f8c47..0000000000 --- a/docs/latex/wx/dataobj.tex +++ /dev/null @@ -1,88 +0,0 @@ -\section{\class{wxDataObject}}\label{wxdataobject} - -A wxDataObject represents data that can be copied to or from the clipboard, or -dragged and dropped. - -There are several predefined data object classes, such as \helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, and \helpref{wxBitmapDataObject}{wxbitmapdataobject} which -can be used without change or can be altered (by deriving a new class from them) in order to deliver -data and data size on-demand. There is no need to ever use wxDataObject itself or derive directly from it. - -You may also derive your own data object classes from \helpref{wxPrivateDataObject}{wxprivatedataobject} -for user-defined types. The format of user-defined data is given as mime-type string literal, -such as "application/word" or "image/png". These strings are used as they are under Unix (so -far only GTK) to identify a format and are translated into their Windows equivalent under -Win32 (using the OLE IDataObject for data exchange to and from the clipboard and for Drag'n'Drop). -Note that the format string translation under Windows is not yet finnished. - -As mentioned above, data may be placed into the \helpref{wxClipboard}{wxclipboard} -or a \helpref{wxDropSource}{wxdropsource} instance either directly or on-demand. -As long as only one format is offerred, putting data directly into the clipboard may -be sufficient. But imagine that you paste a large piece of text to the clipboard and -offer it in "text/plain", "text/rtf", "text/html", "application/word" and your own -format for internal use - here offering data on-demand is required to minimize memory -consumption. This would generally get implemented using a central object that -contains clipboard information in the format with the maximum of information. Note -that neither the GTK data transfer mechanisms for the clipboard and Drag'n'Drop -nor the OLE data transfer copies any data until another application actually -requests the data. This is in contrast to the "feel" offered to the user of a -program who would normally think that the data resides in the clipboard after -having pressed "Copy" - in reality it is only declared to be available. - -Let's assume that you have written an HTML editor and want it to paste contents -in the formats "text/plain" and "text/html" to the clipboard. For offering -data on-demand in "text/plain" you would derive your class from \helpref{wxTextDataObject}{wxtextdataobject} -and for offering data on-demand in "text/html" you would derive your own class from -\helpref{wxPrivateDataObject}{wxprivatedataobject} and set its ID string -identifying the format to "text/html" using \helpref{wxPrivateDataObject::SetId}{wxprivatedataobjectsetid}. -In your two derived classed you'd then have a pointer or reference to the central -data container and you'd override the methods returning the size of the -available data and the WriteData() methods in both classes. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxBitmapDataObject}{wxbitmapdataobject}, -\helpref{wxPrivateDataObject}{wxprivatedataobject}, -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropTarget}{wxdroptarget}, -\helpref{wxDropSource}{wxdropsource}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataObject::wxDataObject}\label{wxdataobjectwxdataobject} - -\func{}{wxDataObject}{\void} - -Constructor. - -\membersection{wxDataObject::\destruct{wxDataObject}}\label{wxdataobjectdtor} - -\func{}{\destruct{wxDataObject}}{\void} - -Destructor. - -\membersection{wxDataObject::WriteData}\label{wxdataobjectwritedata} - -\constfunc{virtual void}{WriteData}{\param{void}{*dest} } - -Write the data owned by this class to {\it dest}. This method is a pure -virtual function and must be overridden. - -\membersection{wxDataObject::GetSize}\label{wxdataobjectgetdatasize} - -\constfunc{virtual size\_t}{GetSize}{\void} - -Returns the data size. This method is a pure -virtual function and must be overridden. - - diff --git a/docs/latex/wx/date.tex b/docs/latex/wx/date.tex deleted file mode 100644 index a0d6d15239..0000000000 --- a/docs/latex/wx/date.tex +++ /dev/null @@ -1,356 +0,0 @@ -\section{\class{wxDate}}\label{wxdate} - -A class for manipulating dates. - -{\bf NOTE:} this class should be -used with caution, since it is not fully tested. It will be replaced -with a new wxDateTime class in the near future. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTime}{wxtime} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDate::wxDate}\label{wxdateconstr} - -\func{}{wxDate}{\void} - -Default constructor. - -\func{}{wxDate}{\param{const wxDate\&}{ date}} - -Copy constructor. - -\func{}{wxDate}{\param{int}{ month}, \param{int}{ day}, \param{int}{ year}} - -Constructor taking month, day and year. - -\func{}{wxDate}{\param{long}{ julian}} - -Constructor taking an integer representing the Julian date. This is the number of days since -1st January 4713 B.C., so to convert from the number of days since 1st January 1901, -construct a date for 1/1/1901, and add the number of days. - -\func{}{wxDate}{\param{const wxString\& }{dateString}} - -Constructor taking a string representing a date. This must be either the string TODAY, or of the -form {\tt MM/DD/YYYY} or {\tt MM-DD-YYYY}. For example: - -\begin{verbatim} - wxDate date("11/26/1966"); -\end{verbatim} - -\wxheading{Parameters} - -\docparam{date}{Date to copy.} - -\docparam{month}{Month: a number between 1 and 12.} - -\docparam{day}{Day: a number between 1 and 31.} - -\docparam{year}{Year, such as 1995, 2005.} - -\membersection{wxDate::\destruct{wxDate}} - -\func{void}{\destruct{wxDate}}{\void} - -Destructor. - -\membersection{wxDate::AddMonths}\label{wxdateaddmonths} - -\func{wxDate\&}{AddMonths}{\param{int}{ months=1}} - -Adds the given number of months to the date, returning a reference to `this'. - -\membersection{wxDate::AddWeeks}\label{wxdateaddweeks} - -\func{wxDate\&}{AddWeeks}{\param{int}{ weeks=1}} - -Adds the given number of weeks to the date, returning a reference to `this'. - -\membersection{wxDate::AddYears}\label{wxdateaddyears} - -\func{wxDate\&}{AddYears}{\param{int}{ years=1}} - -Adds the given number of months to the date, returning a reference to `this'. - -\membersection{wxDate::FormatDate}\label{wxdateformatdate} - -\constfunc{wxString}{FormatDate}{\param{int}{ type=-1}} - -Formats the date according to {\it type} if not -1, or according -to the current display type if -1. - -\wxheading{Parameters} - -\docparam{type}{-1 or one of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxDAY}{Format day only.} -\twocolitem{wxMONTH}{Format month only.} -\twocolitem{wxMDY}{Format MONTH, DAY, YEAR.} -\twocolitem{wxFULL}{Format day, month and year in US style: DAYOFWEEK, MONTH, DAY, YEAR.} -\twocolitem{wxEUROPEAN}{Format day, month and year in European style: DAY, MONTH, YEAR.} -\end{twocollist}} - -\membersection{wxDate::GetDay}\label{wxdategetday} - -\constfunc{int}{GetDay}{\void} - -Returns the numeric day (in the range 1 to 31). - -\membersection{wxDate::GetDayOfWeek}\label{wxdategetdayofweek} - -\constfunc{int}{GetDayOfWeek}{\void} - -Returns the integer day of the week (in the range 1 to 7). - -\membersection{wxDate::GetDayOfWeekName}\label{wxdategetdayofweekname} - -\constfunc{wxString}{GetDayOfWeekName}{\void} - -Returns the name of the day of week. - -\membersection{wxDate::GetDayOfYear}\label{wxdategetdayofyear} - -\constfunc{long}{GetDayOfYear}{\void} - -Returns the day of the year (from 1 to 365). - -\membersection{wxDate::GetDaysInMonth}\label{wxdategetdaysinmonth} - -\constfunc{int}{GetDaysInMonth}{\void} - -Returns the number of days in the month (in the range 1 to 31). - -\membersection{wxDate::GetFirstDayOfMonth}\label{wxdategetfirstdayofmonth} - -\constfunc{int}{GetFirstDayOfMonth}{\void} - -Returns the day of week that is first in the month (in the range 1 to 7). - -\membersection{wxDate::GetJulianDate}\label{wxdategetjuliandate} - -\constfunc{long}{GetJulianDate}{\void} - -Returns the Julian date. - -\membersection{wxDate::GetMonth}\label{wxdategetmonth} - -\constfunc{int}{GetMonth}{\void} - -Returns the month number (in the range 1 to 12). - -\membersection{wxDate::GetMonthEnd} - -\func{wxDate}{GetMonthEnd}{\void} - -Returns the date representing the last day of the month. - -\membersection{wxDate::GetMonthName}\label{wxdategetmonthname} - -\constfunc{wxString}{GetMonthName}{\void} - -Returns the name of the month. Do not delete the returned storage. - -\membersection{wxDate::GetMonthStart}\label{wxdategetmonthstart} - -\constfunc{wxDate}{GetMonthStart}{\void} - -Returns the date representing the first day of the month. - -\membersection{wxDate::GetWeekOfMonth}\label{wxdategetweekofmonth} - -\constfunc{int}{GetWeekOfMonth}{\void} - -Returns the week of month (in the range 1 to 6). - -\membersection{wxDate::GetWeekOfYear}\label{wxdategetweekofyear} - -\constfunc{int}{GetWeekOfYear}{\void} - -Returns the week of year (in the range 1 to 52). - -\membersection{wxDate::GetYear}\label{wxdategetyear} - -\constfunc{int}{GetYear}{\void} - -Returns the year as an integer (such as `1995'). - -\membersection{wxDate::GetYearEnd}\label{wxdategetyearend} - -\constfunc{wxDate}{GetYearEnd}{\void} - -Returns the date representing the last day of the year. - -\membersection{wxDate::GetYearStart}\label{wxdategetyearstart} - -\constfunc{wxDate}{GetYearStart}{\void} - -Returns the date representing the first day of the year. - -\membersection{wxDate::IsLeapYear}\label{wxdateisleapyear} - -\constfunc{bool}{IsLeapYear}{\void} - -Returns TRUE if the year of this date is a leap year. - -\membersection{wxDate::Set}\label{wxdateset} - -\func{wxDate\&}{Set}{\void} - -Sets the date to current system date, returning a reference to `this'. - -\func{wxDate\&}{Set}{\param{long}{ julian}} - -Sets the date to the given Julian date, returning a reference to `this'. - -\func{wxDate\&}{Set}{\param{int}{ month}, \param{int}{ day}, \param{int}{ year}} - -Sets the date to the given date, returning a reference to `this'. - -{\it month} is a number from 1 to 12. - -{\it day} is a number from 1 to 31. - -{\it year} is a year, such as 1995, 2005. - -\membersection{wxDate::SetFormat}\label{wxdatesetformat} - -\func{void}{SetFormat}{\param{int}{ format}} - -Sets the current format type. - -\wxheading{Parameters} - -\docparam{format}{-1 or one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxDAY}}{Format day only.} -\twocolitem{{\bf wxMONTH}}{Format month only.} -\twocolitem{{\bf wxMDY}}{Format MONTH, DAY, YEAR.} -\twocolitem{{\bf wxFULL}}{Format day, month and year in US style: DAYOFWEEK, MONTH, DAY, YEAR.} -\twocolitem{{\bf wxEUROPEAN}}{Format day, month and year in European style: DAY, MONTH, YEAR.} -\end{twocollist}} - -\membersection{wxDate::SetOption}\label{wxdatesetoption} - -\func{int}{SetOption}{\param{int}{ option}, \param{const bool}{ enable=TRUE}} - -Enables or disables an option for formatting. - -\wxheading{Parameters} - -\docparam{option}{May be one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxNO\_CENTURY}}{The century is not formatted.} -\twocolitem{{\bf wxDATE\_ABBR}}{Month and day names are abbreviated to 3 characters when formatting.} -\end{twocollist}} - -\membersection{wxDate::operator wxString}\label{wxdatewxstring} - -\func{}{operator wxString}{\void} - -Conversion operator, to convert wxDate to wxString by calling FormatDate. - -\membersection{wxDate::operator $+$}\label{wxdateplus} - -\func{wxDate}{operator $+$}{\param{long}{ i}} - -\func{wxDate}{operator $+$}{\param{int}{ i}} - -Adds an integer number of days to the date, returning a date. - -\membersection{wxDate::operator $-$}\label{wxdateminus} - -\func{wxDate}{operator $-$}{\param{long}{ i}} - -\func{wxDate}{operator $-$}{\param{int}{ i}} - -Subtracts an integer number of days from the date, returning a date. - -\func{long}{operator $-$}{\param{const wxDate\&}{ date}} - -Subtracts one date from another, return the number of intervening days. - -\membersection{wxDate::operator $+=$}\label{wxdateplusequals} - -\func{wxDate\&}{operator $+=$}{\param{long}{ i}} - -Postfix operator: adds an integer number of days to the date, returning -a reference to `this' date. - -\membersection{wxDate::operator $-=$}\label{wxdateminusequals} - -\func{wxDate\&}{operator $-=$}{\param{long}{ i}} - -Postfix operator: subtracts an integer number of days from the date, returning -a reference to `this' date. - -\membersection{wxDate::operator $++$}\label{wxdateplusplus} - -\func{wxDate\&}{operator $++$}{\void} - -Increments the date (postfix or prefix). - -\membersection{wxDate::operator $--$}\label{wxdateminusminus} - -\func{wxDate\&}{operator $--$}{\void} - -Decrements the date (postfix or prefix). - -\membersection{wxDate::operator $<$}\label{wxdatelessthan} - -\func{friend bool}{operator $<$}{\param{const wxDate\&}{ date1}, \param{const wxDate\&}{ date2}} - -Function to compare two dates, returning TRUE if {\it date1} is earlier than {\it date2}. - -\membersection{wxDate::operator $<=$}\label{wxdatelessthaneq} - -\func{friend bool}{operator $<=$}{\param{const wxDate\&}{ date1}, \param{const wxDate\&}{ date2}} - -Function to compare two dates, returning TRUE if {\it date1} is earlier than or equal to {\it date2}. - -\membersection{wxDate::operator $>$}\label{wxdategreaterthan} - -\func{friend bool}{operator $>$}{\param{const wxDate\&}{ date1}, \param{const wxDate\&}{ date2}} - -Function to compare two dates, returning TRUE if {\it date1} is later than {\it date2}. - -\membersection{wxDate::operator $>=$}\label{wxdategreaterthaneq} - -\func{friend bool}{operator $>=$}{\param{const wxDate\&}{ date1}, \param{const wxDate\&}{ date2}} - -Function to compare two dates, returning TRUE if {\it date1} is later than or equal to {\it date2}. - -\membersection{wxDate::operator $==$}\label{wxdateequals} - -\func{friend bool}{operator $==$}{\param{const wxDate\&}{ date1}, \param{const wxDate\&}{ date2}} - -Function to compare two dates, returning TRUE if {\it date1} is equal to {\it date2}. - -\membersection{wxDate::operator $!=$}\label{wxdatenotequals} - -\func{friend bool}{operator $!=$}{\param{const wxDate\&}{ date1}, \param{const wxDate\&}{ date2}} - -Function to compare two dates, returning TRUE if {\it date1} is not equal to {\it date2}. - -\membersection{wxDate::operator \cinsert}\label{wxdateinsert} - -\func{friend ostream\&}{operator \cinsert}{\param{ostream\&}{ os}, \param{const wxDate\&}{ date}} - -Function to output a wxDate to an ostream. - - diff --git a/docs/latex/wx/datstrm.tex b/docs/latex/wx/datstrm.tex deleted file mode 100644 index c8da9fd39e..0000000000 --- a/docs/latex/wx/datstrm.tex +++ /dev/null @@ -1,175 +0,0 @@ -% ---------------------------------------------------------------------------- -% wxDataInputStream -% ---------------------------------------------------------------------------- -\section{\class{wxDataInputStream}}\label{wxdatainputstream} - -This class provides functions that read binary data types in a -portable way. Data can be read in either big-endian or litte-endian -format, little-endian being the default on all architectures. - -If you want to read data from text files (or streams) use -\helpref{wxTextInputStream}{wxtextinputstream} instead. - -The >> operator is overloaded and you can use this class like a standard C++ iostream. -Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc -and on a typical 32-bit computer, none of these match to the "long" type (wxInt32 -is defined as signed int on 32-bit architectures) so that you cannot use long. To avoid -problems (here and elsewhere), make use of the wxInt32, wxUint32, etc types. - -For example: -\begin{verbatim} - wxFileInputStream input( "mytext.dat" ); - wxDataInputStream store( input ); - wxUint8 i1; - float f2; - wxString line; - - store >> i1; // read a 8 bit integer. - store >> i1 >> f2; // read a 8 bit integer followed by float. - store >> line; // read a text line -\end{verbatim} - -See also \helpref{wxDataOutputStream}{wxdataoutputstream}. - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataInputStream::wxDataInputStream}\label{wxdatainputstreamconstr} - -\func{}{wxDataInputStream}{\param{wxInputStream\&}{ stream}} - -Constructs a datastream object from an input stream. Only read methods will -be available. - -\wxheading{Parameters} - -\docparam{stream}{The input stream.} - -\membersection{wxDataInputStream::\destruct{wxDataInputStream}} - -\func{}{\destruct{wxDataInputStream}}{\void} - -Destroys the wxDataInputStream object. - -\membersection{wxDataInputStream::BigEndianOrdered} - -\func{void}{BigEndianOrdered}{\param{bool}{ be_order}} - -If {\it be_order} is TRUE, all data will be read in big-endian -order, such as written by programs on a big endian architecture -(e.g. Sparc) or written by Java-Streams (which always use -big-endian order). - -\membersection{wxDataInputStream::Read8} - -\func{wxUint8}{Read8}{\void} - -Reads a single byte from the stream. - -\membersection{wxDataInputStream::Read16} - -\func{wxUint16}{Read16}{\void} - -Reads a 16 bit integer from the stream. - -\membersection{wxDataInputStream::Read32} - -\func{wxUint32}{Read32}{\void} - -Reads a 32 bit integer from the stream. - -\membersection{wxDataInputStream::ReadDouble} - -\func{double}{ReadDouble}{\void} - -Reads a double (IEEE encoded) from the stream. - -\membersection{wxDataInputStream::ReadString} - -\func{wxString}{wxDataInputStream::ReadString}{\void} - -Reads a string from a stream. Actually, this function first reads a long integer -specifying the length of the string (without the last null character) and then -reads the string. - -% ---------------------------------------------------------------------------- -% wxDataOutputStream -% ---------------------------------------------------------------------------- - -\section{\class{wxDataOutputStream}}\label{wxdataoutputstream} - -This class provides functions that write binary data types in a -portable way. Data can be written in either big-endian or litte-endian -format, little-endian being the default on all architectures. - -If you want to write data to text files (or streams) use -\helpref{wxTextOutputStream}{wxtextoutputstream} instead. - -The << operator is overloaded and you can use this class like a standard -C++ iostream. See \helpref{wxDataInputStream}{wxdatainputstream} for its -usage and caveats. - -See also \helpref{wxDataInputStream}{wxdatainputstream}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataOutputStream::wxDataOutputStream}\label{wxdataoutputstreamconstr} - -\func{}{wxDataOutputStream}{\param{wxOutputStream\&}{ stream}} - -Constructs a datastream object from an output stream. Only write methods will -be available. - -\wxheading{Parameters} - -\docparam{stream}{The output stream.} - -\membersection{wxDataOutputStream::\destruct{wxDataOutputStream}} - -\func{}{\destruct{wxDataOutputStream}}{\void} - -Destroys the wxDataOutputStream object. - -\membersection{wxDataOutputStream::BigEndianOrdered} - -\func{void}{BigEndianOrdered}{\param{bool}{ be_order}} - -If {\it be_order} is TRUE, all data will be written in big-endian -order, e.g. for reading on a Sparc or from Java-Streams (which -always use big-endian order), otherwise data will be written in -little-endian order. - -\membersection{wxDataOutputStream::Write8} - -\func{void}{wxDataOutputStream::Write8}{{\param wxUint8 }{i8}} - -Writes the single byte {\it i8} to the stream. - -\membersection{wxDataOutputStream::Write16} - -\func{void}{wxDataOutputStream::Write16}{{\param wxUint16 }{i16}} - -Writes the 16 bit integer {\it i16} to the stream. - -\membersection{wxDataOutputStream::Write32} - -\func{void}{wxDataOutputStream::Write32}{{\param wxUint32 }{i32}} - -Writes the 32 bit integer {\it i32} to the stream. - -\membersection{wxDataOutputStream::WriteDouble} - -\func{void}{wxDataOutputStream::WriteDouble}{{\param double }{f}} - -Writes the double {\it f} to the stream using the IEEE format. - -\membersection{wxDataOutputStream::WriteString} - -\func{void}{wxDataOutputStream::WriteString}{{\param const wxString\& }{string}} - -Writes {\it string} to the stream. Actually, this method writes the size of -the string before writing {\it string} itself. - diff --git a/docs/latex/wx/dc.tex b/docs/latex/wx/dc.tex deleted file mode 100644 index 4c5f1b94d4..0000000000 --- a/docs/latex/wx/dc.tex +++ /dev/null @@ -1,741 +0,0 @@ -\section{\class{wxDC}}\label{wxdc} - -A wxDC is a {\it device context} onto which graphics and text can be drawn. -It is intended to represent a number of output devices in a generic way, -so a window can have a device context associated with it, and a printer also has a device context. -In this way, the same piece of code may write to a number of different devices, -if the device context is used as a parameter. - -Derived types of wxDC have documentation for specific features -only, so refer to this section for most device context information. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Overview}{dcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDC::wxDC} - -\func{}{wxDC}{\void} - -Constructor. - -\membersection{wxDC::\destruct{wxDC}} - -\func{}{\destruct{wxDC}}{\void} - -Destructor. - -\membersection{wxDC::BeginDrawing}\label{wxdcbegindrawing} - -\func{void}{BeginDrawing}{\void} - -Allows optimization of drawing code under MS Windows. Enclose -drawing primitives between {\bf BeginDrawing} and {\bf EndDrawing}\rtfsp -calls. - -Drawing to a wxDialog panel device context outside of a -system-generated OnPaint event {\it requires} this pair of calls to -enclose drawing code. This is because a Windows dialog box does not have -a retained device context associated with it, and selections such as pen -and brush settings would be lost if the device context were obtained and -released for each drawing operation. - -\membersection{wxDC::Blit}\label{wxdcblit} - -\func{bool}{Blit}{\param{long}{ xdest}, \param{long}{ ydest}, \param{long}{ width}, \param{long}{ height}, - \param{wxDC* }{source}, \param{long}{ xsrc}, \param{long}{ ysrc}, \param{int}{ logicalFunc}, - \param{bool }{useMask}} - -Copy from a source DC to this DC, specifying the destination -coordinates, size of area to copy, source DC, source coordinates, and -logical function. - -\wxheading{Parameters} - -\docparam{xdest}{Destination device context x position.} - -\docparam{ydest}{Destination device context y position.} - -\docparam{width}{Width of source area to be copied.} - -\docparam{height}{Height of source area to be copied.} - -\docparam{source}{Source device context.} - -\docparam{xsrc}{Source device context x position.} - -\docparam{ysrc}{Source device context y position.} - -\docparam{logicalFunc}{Logical function to use: see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}.} - -\docparam{useMask}{If TRUE, Blit does a transparent blit using the mask that is associated with the bitmap -selected into the source device context. The Windows implementation does the following: - -\begin{enumerate} -\item Creates a temporary bitmap and copies the destination area into it. -\item Copies the source area into the temporary bitmap using the specified logical function. -\item Sets the masked area in the temporary bitmap to BLACK by ANDing the -mask bitmap with the temp bitmap with the foreground colour set to WHITE -and the bg colour set to BLACK. -\item Sets the unmasked area in the destination area to BLACK by ANDing the -mask bitmap with the destination area with the foreground colour set to BLACK -and the background colour set to WHITE. -\item ORs the temporary bitmap with the destination area. -\item Deletes the temporary bitmap. -\end{enumerate} - -This sequence of operations ensures that the source's transparent area need not be black, -and logical functions are supported. -} - -\wxheading{Remarks} - -There is partial support for Blit in wxPostScriptDC, under X. - -See \helpref{wxMemoryDC}{wxmemorydc} for typical usage. - -wxheading{See also} - -\helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask} - -\membersection{wxDC::Clear}\label{wxdcclear} - -\func{void}{Clear}{\void} - -Clears the device context using the current background brush. - -\membersection{wxDC::CrossHair}\label{wxdccrosshair} - -\func{void}{CrossHair}{\param{long}{ x}, \param{long}{ y}} - -Displays a cross hair using the current pen. This is a vertical -and horizontal line the height and width of the window, centred -on the given point. - -\membersection{wxDC::DestroyClippingRegion}\label{wxdcdestroyclippingregion} - -\func{void}{DestroyClippingRegion}{\void} - -Destroys the current clipping region so that none of the DC is clipped. -See also \helpref{wxDC::SetClippingRegion}{wxdcsetclippingregion}. - -\membersection{wxDC::DeviceToLogicalX}\label{wxdcdevicetologicalx} - -\func{long}{DeviceToLogicalX}{\param{long}{ x}} - -Convert device X coordinate to logical coordinate, using the current -mapping mode. - -\membersection{wxDC::DeviceToLogicalXRel}\label{wxdcdevicetologicalxrel} - -\func{long}{DeviceToLogicalXRel}{\param{long}{ x}} - -Convert device X coordinate to relative logical coordinate, using the current -mapping mode. Use this function for converting a width, for example. - -\membersection{wxDC::DeviceToLogicalY}\label{wxdcdevicetologicaly} - -\func{long}{DeviceToLogicalY}{\param{long}{ y}} - -Converts device Y coordinate to logical coordinate, using the current -mapping mode. - -\membersection{wxDC::DeviceToLogicalYRel}\label{wxdcdevicetologicalyrel} - -\func{long}{DeviceToLogicalYRel}{\param{long}{ y}} - -Convert device Y coordinate to relative logical coordinate, using the current -mapping mode. Use this function for converting a height, for example. - -\membersection{wxDC::DrawArc}\label{wxdcdrawarc} - -\func{void}{DrawArc}{\param{long}{ x1}, \param{long}{ y1}, \param{long}{ x2}, \param{long}{ y2}, \param{double}{ xc}, \param{double}{ yc}} - -Draws an arc of a circle, centred on ({\it xc, yc}), with starting point ({\it x1, y1}) -and ending at ({\it x2, y2}). The current pen is used for the outline -and the current brush for filling the shape. - -The arc is drawn in an anticlockwise direction from the start point to the end point. - -\membersection{wxDC::DrawBitmap}\label{wxdcdrawbitmap} - -\func{void}{DrawBitmap}{\param{const wxBitmap\&}{ bitmap}, \param{long}{ x}, \param{long}{ y}, \param{bool}{ transparent}} - -Draw a bitmap on the device context at the specified point. If {\it transparent} is TRUE and the bitmap has -a transparency mask, the bitmap will be drawn transparently. - -\membersection{wxDC::DrawEllipse}\label{wxdcdrawellipse} - -\func{void}{DrawEllipse}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}} - -Draws an ellipse contained in the rectangle with the given top left corner, and with the -given size. The current pen is used for the outline and the current brush for -filling the shape. - -\membersection{wxDC::DrawEllipticArc}\label{wxdcdrawellipticarc} - -\func{void}{DrawEllipticArc}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}, - \param{double}{ start}, \param{double}{ end}} - -Draws an arc of an ellipse. The current pen is used for drawing the arc and -the current brush is used for drawing the pie. This function is currently only available for -X window and PostScript device contexts. - -{\it x} and {\it y} specify the x and y coordinates of the upper-left corner of the rectangle that contains -the ellipse. - -{\it width} and {\it height} specify the width and height of the rectangle that contains -the ellipse. - -{\it start} and {\it end} specify the start and end of the arc relative to the three-o'clock -position from the center of the rectangle. Angles are specified -in degrees (360 is a complete circle). Positive values mean -counter-clockwise motion. If {\it start} is equal to {\it end}, a -complete ellipse will be drawn. - -\membersection{wxDC::DrawIcon}\label{wxdcdrawicon} - -\func{void}{DrawIcon}{\param{const wxIcon\&}{ icon}, \param{long}{ x}, \param{long}{ y}} - -Draw an icon on the display (does nothing if the device context is PostScript). -This can be the simplest way of drawing bitmaps on a window. - -\membersection{wxDC::DrawLine}\label{wxdcdrawline} - -\func{void}{DrawLine}{\param{long}{ x1}, \param{long}{ y1}, \param{long}{ x2}, \param{long}{ y2}} - -Draws a line from the first point to the second. The current pen is used -for drawing the line. - -\membersection{wxDC::DrawLines}\label{wxdcdrawlines} - -\func{void}{DrawLines}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{long}{ xoffset = 0}, \param{long}{ yoffset = 0}} - -\func{void}{DrawLines}{\param{wxList *}{points}, \param{long}{ xoffset = 0}, \param{long}{ yoffset = 0}} - -Draws lines using an array of {\it points} of size {\it n}, or list of -pointers to points, adding the optional offset coordinate. The current -pen is used for drawing the lines. The programmer is responsible for -deleting the list of points. - -\pythonnote{The wxPython version of this method accepts a Python list -of wxPoint objects.} - -\membersection{wxDC::DrawPolygon}\label{wxdcdrawpolygon} - -\func{void}{DrawPolygon}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{long}{ xoffset = 0}, \param{long}{ yoffset = 0},\\ - \param{int }{fill\_style = wxODDEVEN\_RULE}} - -\func{void}{DrawPolygon}{\param{wxList *}{points}, \param{long}{ xoffset = 0}, \param{long}{ yoffset = 0},\\ - \param{int }{fill\_style = wxODDEVEN\_RULE}} - -Draws a filled polygon using an array of {\it points} of size {\it n}, -or list of pointers to points, adding the optional offset coordinate. - -The last argument specifies the fill rule: {\bf wxODDEVEN\_RULE} (the -default) or {\bf wxWINDING\_RULE}. - -The current pen is used for drawing the outline, and the current brush -for filling the shape. Using a transparent brush suppresses filling. -The programmer is responsible for deleting the list of points. - -Note that wxWindows automatically closes the first and last points. - -\pythonnote{The wxPython version of this method accepts a Python list -of wxPoint objects.} - -\membersection{wxDC::DrawPoint}\label{wxdcdrawpoint} - -\func{void}{DrawPoint}{\param{long}{ x}, \param{long}{ y}} - -Draws a point using the current pen. - -\membersection{wxDC::DrawRectangle}\label{wxdcdrawrectangle} - -\func{void}{DrawRectangle}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}} - -Draws a rectangle with the given top left corner, and with the given -size. The current pen is used for the outline and the current brush -for filling the shape. - -\membersection{wxDC::DrawRoundedRectangle}\label{wxdcdrawroundedrectangle} - -\func{void}{DrawRoundedRectangle}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}, \param{double}{ radius = 20}} - -Draws a rectangle with the given top left corner, and with the given -size. The corners are quarter-circles using the given radius. The -current pen is used for the outline and the current brush for filling -the shape. - -If {\it radius} is positive, the value is assumed to be the -radius of the rounded corner. If {\it radius} is negative, -the absolute value is assumed to be the {\it proportion} of the smallest -dimension of the rectangle. This means that the corner can be -a sensible size relative to the size of the rectangle, and also avoids -the strange effects X produces when the corners are too big for -the rectangle. - -\membersection{wxDC::DrawSpline}\label{wxdcdrawspline} - -\func{void}{DrawSpline}{\param{wxList *}{points}} - -Draws a spline between all given control points, using the current -pen. Doesn't delete the wxList and contents. The spline is drawn -using a series of lines, using an algorithm taken from the X drawing -program `XFIG'. - -\func{void}{DrawSpline}{\param{long}{ x1}, \param{long}{ y1}, \param{long}{ x2}, \param{long}{ y2}, \param{long}{ x3}, \param{long}{ y3}} - -Draws a three-point spline using the current pen. - -\pythonnote{The wxPython version of this method accepts a Python list -of wxPoint objects.} - -\membersection{wxDC::DrawText}\label{wxdcdrawtext} - -\func{void}{DrawText}{\param{const wxString\& }{text}, \param{long}{ x}, \param{long}{ y}} - -Draws a text string at the specified point, using the current text font, -and the current text foreground and background colours. - -The coordinates refer to the top-left corner of the rectangle bounding -the string. See \helpref{wxDC::GetTextExtent}{wxdcgettextextent} for how -to get the dimensions of a text string, which can be used to position the -text more precisely. - -\membersection{wxDC::EndDoc}\label{wxdcenddoc} - -\func{void}{EndDoc}{\void} - -Ends a document (only relevant when outputting to a printer). - -\membersection{wxDC::EndDrawing}\label{wxdcenddrawing} - -\func{void}{EndDrawing}{\void} - -Allows optimization of drawing code under MS Windows. Enclose -drawing primitives between {\bf BeginDrawing} and {\bf EndDrawing}\rtfsp -calls. - -\membersection{wxDC::EndPage}\label{wxdcendpage} - -\func{void}{EndPage}{\void} - -Ends a document page (only relevant when outputting to a printer). - -\membersection{wxDC::FloodFill}\label{wxdcfloodfill} - -\func{void}{FloodFill}{\param{long}{ x}, \param{long}{ y}, \param{wxColour *}{colour}, \param{int}{ style=wxFLOOD\_SURFACE}} - -Flood fills the device context starting from the given point, in the given colour, -and using a style: - -\begin{itemize}\itemsep=0pt -\item wxFLOOD\_SURFACE: the flooding occurs until a colour other than the given colour is encountered. -\item wxFLOOD\_BORDER: the area to be flooded is bounded by the given colour. -\end{itemize} - -{\it Note:} this function is available in MS Windows only. - -\membersection{wxDC::GetBackground}\label{wxdcgetbackground} - -\func{wxBrush\&}{GetBackground}{\void} - -Gets the brush used for painting the background (see \helpref{wxDC::SetBackground}{wxdcsetbackground}). - -\membersection{wxDC::GetBrush}\label{wxdcgetbrush} - -\func{wxBrush\&}{GetBrush}{\void} - -Gets the current brush (see \helpref{wxDC::SetBrush}{wxdcsetbrush}). - -\membersection{wxDC::GetCharHeight}\label{wxdcgetcharheight} - -\func{long}{GetCharHeight}{\void} - -Gets the character height of the currently set font. - -\membersection{wxDC::GetCharWidth}\label{wxdcgetcharwidth} - -\func{long}{GetCharWidth}{\void} - -Gets the average character width of the currently set font. - -\membersection{wxDC::GetClippingBox}\label{wxdcgetclippingbox} - -\func{void}{GetClippingBox}{\param{long}{ *x}, \param{long}{ *y}, \param{long}{ *width}, \param{long}{ *height}} - -Gets the rectangle surrounding the current clipping region. - -\pythonnote{No arguments are required and the four values defining the -rectangle are returned as a tuple.} - -\membersection{wxDC::GetFont}\label{wxdcgetfont} - -\func{wxFont\&}{GetFont}{\void} - -Gets the current font (see \helpref{wxDC::SetFont}{wxdcsetfont}). - -\membersection{wxDC::GetLogicalFunction}\label{wxdcgetlogicalfunction} - -\func{int}{GetLogicalFunction}{\void} - -Gets the current logical function (see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}). - -\membersection{wxDC::GetMapMode}\label{wxdcgetmapmode} - -\func{int}{GetMapMode}{\void} - -Gets the {\it mapping mode} for the device context (see \helpref{wxDC::SetMapMode}{wxdcsetmapmode}). - -\membersection{wxDC::GetOptimization}\label{wxdcgetoptimization} - -\func{bool}{GetOptimization}{\void} - -Returns TRUE if device context optimization is on. -See \helpref{wxDC::SetOptimization}{wxsetoptimization} for details. - -\membersection{wxDC::GetPen}\label{wxdcgetpen} - -\func{wxPen\&}{GetPen}{\void} - -Gets the current pen (see \helpref{wxDC::SetPen}{wxdcsetpen}). - -\membersection{wxDC::GetPixel}\label{wxdcgetpixel} - -\func{bool}{GetPixel}{\param{long}{ x}, \param{long}{ y}, \param{wxColour *}{colour}} - -Sets {\it colour} to the colour at the specified location. Windows only; an X implementation -is being worked on. Not available for wxPostScriptDC or wxMetafileDC. - -\membersection{wxDC::GetSize}\label{wxdcgetsize} - -\func{void}{GetSize}{\param{long *}{width}, \param{long *}{height}} - -For a PostScript device context, this gets the maximum size of graphics -drawn so far on the device context. - -For a Windows printer device context, this gets the horizontal and vertical -resolution. It can be used to scale graphics to fit the page when using -a Windows printer device context. For example, if {\it maxX} and {\it maxY}\rtfsp -represent the maximum horizontal and vertical `pixel' values used in your -application, the following code will scale the graphic to fit on the -printer page: - -\begin{verbatim} - long w, h; - dc.GetSize(&w, &h); - double scaleX=(double)(maxX/w); - double scaleY=(double)(maxY/h); - dc.SetUserScale(min(scaleX,scaleY),min(scaleX,scaleY)); -\end{verbatim} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetSize()}}{Returns a wxSize} -\twocolitem{\bf{GetSizeTuple()}}{Returns a 2-tuple (width, height)} -\end{twocollist}} -} - -\membersection{wxDC::GetTextBackground}\label{wxdcgettextbackground} - -\func{wxColour\&}{GetTextBackground}{\void} - -Gets the current text background colour (see \helpref{wxDC::SetTextBackground}{wxdcsettextbackground}). - -\membersection{wxDC::GetTextExtent}\label{wxdcgettextextent} - -\func{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{long *}{w}, \param{long *}{h},\\ - \param{long *}{descent = NULL}, \param{long *}{externalLeading = NULL}, \param{wxFont *}{font = NULL}} - -Gets the dimensions of the string using the currently selected font. -\rtfsp{\it string} is the text string to measure, {\it w} and {\it h} are -the total width and height respectively, {\it descent} is the -dimension from the baseline of the font to the bottom of the -descender, and {\it externalLeading} is any extra vertical space added -to the font by the font designer (usually is zero). - -The optional parameter {\it font} specifies an alternative -to the currently selected font: but note that this does not -yet work under Windows, so you need to set a font for -the device context first. - -See also \helpref{wxFont}{wxfont}, \helpref{wxDC::SetFont}{wxdcsetfont}. - -\pythonnote{The following methods are implemented in wxPython:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetTextExtent(string)}}{Returns a 2-tuple, (width, height)} -\twocolitem{\bf{GetFullTextExtent(string, font=NULL)}}{Returns a -4-tuple, (width, height, descent, externalLeading) } -\end{twocollist}} -} - -\membersection{wxDC::GetTextForeground}\label{wxdcgettextforeground} - -\func{wxColour\&}{GetTextForeground}{\void} - -Gets the current text foreground colour (see \helpref{wxDC::SetTextForeground}{wxdcsettextforeground}). - -\membersection{wxDC::LogicalToDeviceX}\label{wxdclogicaltodevicex} - -\func{long}{LogicalToDeviceX}{\param{long}{ x}} - -Converts logical X coordinate to device coordinate, using the current -mapping mode. - -\membersection{wxDC::LogicalToDeviceXRel}\label{wxdclogicaltodevicexrel} - -\func{long}{LogicalToDeviceXRel}{\param{long}{ x}} - -Converts logical X coordinate to relative device coordinate, using the current -mapping mode. Use this for converting a width, for example. - -\membersection{wxDC::LogicalToDeviceY}\label{wxdclogicaltodevicey} - -\func{long}{LogicalToDeviceY}{\param{long}{ y}} - -Converts logical Y coordinate to device coordinate, using the current -mapping mode. - -\membersection{wxDC::LogicalToDeviceYRel}\label{wxdclogicaltodeviceyrel} - -\func{long}{LogicalToDeviceYRel}{\param{long}{ y}} - -Converts logical Y coordinate to relative device coordinate, using the current -mapping mode. Use this for converting a height, for example. - -\membersection{wxDC::MaxX}\label{wxdcmaxx} - -\func{long}{MaxX}{\void} - -Gets the maximum horizontal extent used in drawing commands so far. - -\membersection{wxDC::MaxY}\label{wxdcmaxy} - -\func{long}{MaxY}{\void} - -Gets the maximum vertical extent used in drawing commands so far. - -\membersection{wxDC::MinX}\label{wxdcminx} - -\func{long}{MinX}{\void} - -Gets the minimum horizontal extent used in drawing commands so far. - -\membersection{wxDC::MinY}\label{wxdcminy} - -\func{long}{MinY}{\void} - -Gets the minimum vertical extent used in drawing commands so far. - -\membersection{wxDC::Ok}\label{wxdcok} - -\func{bool}{Ok}{\void} - -Returns TRUE if the DC is ok to use. - -\membersection{wxDC::SetDeviceOrigin}\label{wxdcsetdeviceorigin} - -\func{void}{SetDeviceOrigin}{\param{long}{ x}, \param{long}{ y}} - -Sets the device origin (i.e., the origin in pixels after scaling has been -applied). - -This function may be useful in Windows printing -operations for placing a graphic on a page. - -\membersection{wxDC::SetBackground}\label{wxdcsetbackground} - -\func{void}{SetBackground}{\param{const wxBrush\& }{brush}} - -Sets the current background brush for the DC. - -\membersection{wxDC::SetBackgroundMode}\label{wxdcsetbackgroundmode} - -\func{void}{SetBackgroundMode}{\param{int}{ mode}} - -{\it mode} may be one of wxSOLID and wxTRANSPARENT. This setting determines -whether text will be drawn with a background colour or not. - -\membersection{wxDC::SetClippingRegion}\label{wxdcsetclippingregion} - -\func{void}{SetClippingRegion}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}} - -\func{void}{SetClippingRegion}{\param{const wxRegion\&}{ region}} - -Sets the clipping region for the DC. The clipping region is an area -to which drawing is restricted. Possible uses for the clipping region are for clipping text -or for speeding up window redraws when only a known area of the screen is damaged. - -\wxheading{See also} - -\helpref{wxDC::DestroyClippingRegion}{wxdcdestroyclippingregion}, \helpref{wxRegion}{wxregion} - -\membersection{wxDC::SetPalette}\label{wxdcsetpalette} - -\func{void}{SetPalette}{\param{const wxPalette\& }{palette}} - -If this is a window DC or memory DC, assigns the given palette to the window -or bitmap associated with the DC. If the argument is wxNullPalette, the current -palette is selected out of the device context, and the original palette -restored. - -See \helpref{wxPalette}{wxpalette} for further details. - -\membersection{wxDC::SetBrush}\label{wxdcsetbrush} - -\func{void}{SetBrush}{\param{const wxBrush\& }{brush}} - -Sets the current brush for the DC. - -If the argument is wxNullBrush, the current brush is selected out of the device -context, and the original brush restored, allowing the current brush to -be destroyed safely. - -See also \helpref{wxBrush}{wxbrush}. - -\membersection{wxDC::SetFont}\label{wxdcsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the current font for the DC. - -If the argument is wxNullFont, the current font is selected out of the device -context, and the original font restored, allowing the current font to -be destroyed safely. - -See also \helpref{wxFont}{wxfont}. - -\membersection{wxDC::SetLogicalFunction}\label{wxdcsetlogicalfunction} - -\func{void}{SetLogicalFunction}{\param{int}{ function}} - -Sets the current logical function for the device context. This determines how -a source pixel (from a pen or brush colour, or source device context if -using \helpref{wxDC::Blit}{wxdcblit}) combines with a destination pixel in the -current device context. - -The possible values -and their meaning in terms of source and destination pixel values are -as follows: - -\begin{verbatim} -wxAND src AND dst -wxAND_INVERT (NOT src) AND dst -wxAND_REVERSE src AND (NOT dst) -wxCLEAR 0 -wxCOPY src -wxEQUIV (NOT src) XOR dst -wxINVERT NOT dst -wxNAND (NOT src) OR (NOT dst) -wxNOR (NOT src) AND (NOT dst) -wxNO_OP dst -wxOR src OR dst -wxOR_INVERT (NOT src) OR dst -wxOR_REVERSE src OR (NOT dst) -wxSET 1 -wxSRC_INVERT NOT src -wxXOR src XOR dst -\end{verbatim} - -The default is wxCOPY, which simply draws with the current colour. -The others combine the current colour and the background using a -logical operation. wxINVERT is commonly used for drawing rubber bands or -moving outlines, since drawing twice reverts to the original colour. - -\membersection{wxDC::SetMapMode}\label{wxdcsetmapmode} - -\func{void}{SetMapMode}{\param{int}{ int}} - -The {\it mapping mode} of the device context defines the unit of -measurement used to convert logical units to device units. Note that -in X, text drawing isn't handled consistently with the mapping mode; a -font is always specified in point size. However, setting the {\it -user scale} (see \helpref{wxDC::SetUserScale}{wxdcsetuserscale}) scales the text appropriately. In -Windows, scaleable TrueType fonts are always used; in X, results depend -on availability of fonts, but usually a reasonable match is found. - -Note that the coordinate origin should ideally be selectable, but for -now is always at the top left of the screen/printer. - -Drawing to a Windows printer device context under UNIX -uses the current mapping mode, but mapping mode is currently ignored for -PostScript output. - -The mapping mode can be one of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxMM\_TWIPS}{Each logical unit is 1/20 of a point, or 1/1440 of - an inch.} -\twocolitem{wxMM\_POINTS}{Each logical unit is a point, or 1/72 of an inch.} -\twocolitem{wxMM\_METRIC}{Each logical unit is 1 mm.} -\twocolitem{wxMM\_LOMETRIC}{Each logical unit is 1/10 of a mm.} -\twocolitem{wxMM\_TEXT}{Each logical unit is 1 pixel.} -\end{twocollist} - -\membersection{wxDC::SetOptimization}\label{wxsetoptimization} - -\func{void}{SetOptimization}{\param{bool }{optimize}} - -If {\it optimize} is TRUE (the default), this function sets optimization mode on. -This currently means that under X, the device context will not try to set a pen or brush -property if it is known to be set already. This approach can fall down -if non-wxWindows code is using the same device context or window, for example -when the window is a panel on which the windowing system draws panel items. -The wxWindows device context 'memory' will now be out of step with reality. - -Setting optimization off, drawing, then setting it back on again, is a trick -that must occasionally be employed. - -\membersection{wxDC::SetPen}\label{wxdcsetpen} - -\func{void}{SetPen}{\param{const wxPen\& }{pen}} - -Sets the current pen for the DC. - -If the argument is wxNullPen, the current pen is selected out of the device -context, and the original pen restored. - -\membersection{wxDC::SetTextBackground}\label{wxdcsettextbackground} - -\func{void}{SetTextBackground}{\param{const wxColour\& }{colour}} - -Sets the current text background colour for the DC. - -\membersection{wxDC::SetTextForeground}\label{wxdcsettextforeground} - -\func{void}{SetTextForeground}{\param{const wxColour\& }{colour}} - -Sets the current text foreground colour for the DC. - -\membersection{wxDC::SetUserScale}\label{wxdcsetuserscale} - -\func{void}{SetUserScale}{\param{double}{ xScale}, \param{double}{ yScale}} - -Sets the user scaling factor, useful for applications which require -`zooming'. - -\membersection{wxDC::StartDoc}\label{wxdcstartdoc} - -\func{bool}{StartDoc}{\param{const wxString\& }{message}} - -Starts a document (only relevant when outputting to a printer). -Message is a message to show whilst printing. - -\membersection{wxDC::StartPage}\label{wxdcstartpage} - -\func{bool}{StartPage}{\void} - -Starts a document page (only relevant when outputting to a printer). - diff --git a/docs/latex/wx/ddeclint.tex b/docs/latex/wx/ddeclint.tex deleted file mode 100644 index 5bc85beb16..0000000000 --- a/docs/latex/wx/ddeclint.tex +++ /dev/null @@ -1,72 +0,0 @@ -\section{\class{wxDDEClient}}\label{wxddeclient} - -A wxDDEClient object represents the client part of a client-server DDE -(Dynamic Data Exchange) conversation. - -To create a client which can communicate with a suitable server, -you need to derive a class from wxDDEConnection and another from wxDDEClient. -The custom wxDDEConnection class will intercept communications in -a `conversation' with a server, and the custom wxDDEServer is required -so that a user-overriden \helpref{wxDDEClient::OnMakeConnection}{wxddeclientonmakeconnection} member can return -a wxDDEConnection of the required class, when a connection is made. - -This DDE-based implementation is -available on Windows only, but a platform-independent, socket-based version -of this API is available using \helpref{wxTCPClient}{wxtcpclient}. - -\wxheading{Derived from} - -wxClientBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEConnection}{wxddeconnection}, -\helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDDEClient::wxDDEClient} - -\func{}{wxDDEClient}{\void} - -Constructs a client object. - -\membersection{wxDDEClient::MakeConnection}\label{wxddeclientmakeconnection} - -\func{wxConnectionBase *}{MakeConnection}{\param{const wxString\& }{host}, \param{const wxString\& }{service}, \param{const wxString\& }{topic}} - -Tries to make a connection with a server specified by the host -(machine name under UNIX, ignored under Windows), service name (must -contain an integer port number under UNIX), and topic string. If the -server allows a connection, a wxDDEConnection object will be returned. -The type of wxDDEConnection returned can be altered by overriding -the \helpref{wxDDEClient::OnMakeConnection}{wxddeclientonmakeconnection} member to return your own -derived connection object. - -\membersection{wxDDEClient::OnMakeConnection}\label{wxddeclientonmakeconnection} - -\func{wxConnectionBase *}{OnMakeConnection}{\void} - -The type of \helpref{wxDDEConnection}{wxddeconnection} returned from a \helpref{wxDDEClient::MakeConnection}{wxddeclientmakeconnection} call can -be altered by deriving the {\bf OnMakeConnection} member to return your -own derived connection object. By default, a wxDDEConnection -object is returned. - -The advantage of deriving your own connection class is that it will -enable you to intercept messages initiated by the server, such -as \helpref{wxDDEConnection::OnAdvise}{wxddeconnectiononadvise}. You may also want to -store application-specific data in instances of the new class. - -\membersection{wxDDEClient::ValidHost} - -\func{bool}{ValidHost}{\param{const wxString\& }{host}} - -Returns TRUE if this is a valid host name, FALSE otherwise. This always -returns TRUE under MS Windows. - - diff --git a/docs/latex/wx/ddeconn.tex b/docs/latex/wx/ddeconn.tex deleted file mode 100644 index 0be17834bc..0000000000 --- a/docs/latex/wx/ddeconn.tex +++ /dev/null @@ -1,202 +0,0 @@ -\section{\class{wxDDEConnection}}\label{wxddeconnection} - -A wxDDEConnection object represents the connection between a client and a -server. It can be created by making a connection using a\rtfsp -\helpref{wxDDEClient}{wxddeclient} object, or by the acceptance of a connection by a\rtfsp -\helpref{wxDDEServer}{wxddeserver} object. The bulk of a DDE (Dynamic Data Exchange) -conversation is controlled by -calling members in a {\bf wxDDEConnection} object or by overriding its -members. - -An application should normally derive a new connection class from -wxDDEConnection, in order to override the communication event handlers -to do something interesting. - -This DDE-based implementation is available on Windows only, -but a platform-independent, socket-based version -of this API is available using \helpref{wxTCPConnection}{wxtcpconnection}. - -\wxheading{Derived from} - -wxConnectionBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Types} - -\index{wxIPCFormat}wxIPCFormat is defined as follows: - -\begin{verbatim} -enum wxIPCFormat -{ - wxIPC_INVALID = 0, - wxIPC_TEXT = 1, /* CF_TEXT */ - wxIPC_BITMAP = 2, /* CF_BITMAP */ - wxIPC_METAFILE = 3, /* CF_METAFILEPICT */ - wxIPC_SYLK = 4, - wxIPC_DIF = 5, - wxIPC_TIFF = 6, - wxIPC_OEMTEXT = 7, /* CF_OEMTEXT */ - wxIPC_DIB = 8, /* CF_DIB */ - wxIPC_PALETTE = 9, - wxIPC_PENDATA = 10, - wxIPC_RIFF = 11, - wxIPC_WAVE = 12, - wxIPC_UNICODETEXT = 13, - wxIPC_ENHMETAFILE = 14, - wxIPC_FILENAME = 15, /* CF_HDROP */ - wxIPC_LOCALE = 16, - wxIPC_PRIVATE = 20 -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEServer}{wxddeserver}, \helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDDEConnection::wxDDEConnection} - -\func{}{wxDDEConnection}{\void} - -\func{}{wxDDEConnection}{\param{char* }{buffer}, \param{int}{ size}} - -Constructs a connection object. If no user-defined connection object is -to be derived from wxDDEConnection, then the constructor should not be -called directly, since the default connection object will be provided on -requesting (or accepting) a connection. However, if the user defines his -or her own derived connection object, the \helpref{wxDDEServer::OnAcceptConnection}{wxddeserveronacceptconnection}\rtfsp -and/or \helpref{wxDDEClient::OnMakeConnection}{wxddeclientonmakeconnection} members should be replaced by -functions which construct the new connection object. If the arguments of -the wxDDEConnection constructor are void, then a default buffer is -associated with the connection. Otherwise, the programmer must provide a -a buffer and size of the buffer for the connection object to use in -transactions. - -\membersection{wxDDEConnection::Advise} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size = -1}, \param{wxIPCFormat}{ format = wxCF\_TEXT}} - -Called by the server application to advise the client of a change in -the data associated with the given item. Causes the client -connection's \helpref{wxDDEConnection::OnAdvise}{wxddeconnectiononadvise} -member to be called. Returns TRUE if successful. - -\membersection{wxDDEConnection::Execute} - -\func{bool}{Execute}{\param{char* }{data}, \param{int}{ size = -1}, \param{wxIPCFormat}{ format = wxCF\_TEXT}} - -Called by the client application to execute a command on the server. Can -also be used to transfer arbitrary data to the server (similar -to \helpref{wxDDEConnection::Poke}{wxddeconnectionpoke} in that respect). Causes the -server connection's \helpref{wxDDEConnection::OnExecute}{wxddeconnectiononexecute} member to be -called. Returns TRUE if successful. - -\membersection{wxDDEConnection::Disconnect} - -\func{bool}{Disconnect}{\void} - -Called by the client or server application to disconnect from the other -program; it causes the \helpref{wxDDEConnection::OnDisconnect}{wxddeconnectionondisconnect} message -to be sent to the corresponding connection object in the other -program. The default behaviour of {\bf OnDisconnect} is to delete the -connection, but the calling application must explicitly delete its -side of the connection having called {\bf Disconnect}. Returns TRUE if -successful. - -\membersection{wxDDEConnection::OnAdvise}\label{wxddeconnectiononadvise} - -\func{virtual bool}{OnAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size}, \param{wxIPCFormat}{ format}} - -Message sent to the client application when the server notifies it of a -change in the data associated with the given item. - -\membersection{wxDDEConnection::OnDisconnect}\label{wxddeconnectionondisconnect} - -\func{virtual bool}{OnDisconnect}{\void} - -Message sent to the client or server application when the other -application notifies it to delete the connection. Default behaviour is -to delete the connection object. - -\membersection{wxDDEConnection::OnExecute}\label{wxddeconnectiononexecute} - -\func{virtual bool}{OnExecute}{\param{const wxString\& }{topic}, \param{char* }{data}, \param{int}{ size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client notifies it to -execute the given data. Note that there is no item associated with -this message. - -\membersection{wxDDEConnection::OnPoke}\label{wxddeconnectiononpoke} - -\func{virtual bool}{OnPoke}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client notifies it to -accept the given data. - -\membersection{wxDDEConnection::OnRequest}\label{wxddeconnectiononrequest} - -\func{virtual char*}{OnRequest}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{int *}{size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client -calls \helpref{wxDDEConnection::Request}{wxddeconnectionrequest}. The server -should respond by returning a character string from {\bf OnRequest}, -or NULL to indicate no data. - -\membersection{wxDDEConnection::OnStartAdvise}\label{wxddeconnectiononstartadvise} - -\func{virtual bool}{OnStartAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to start an `advise loop' for the given topic and item. The -server can refuse to participate by returning FALSE. - -\membersection{wxDDEConnection::OnStopAdvise}\label{wxddeconnectiononstopadvise} - -\func{virtual bool}{OnStopAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to stop an `advise loop' for the given topic and item. The -server can refuse to stop the advise loop by returning FALSE, although -this doesn't have much meaning in practice. - -\membersection{wxDDEConnection::Poke}\label{wxddeconnectionpoke} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size = -1}, \param{wxIPCFormat}{ format = wxCF\_TEXT}} - -Called by the client application to poke data into the server. Can be -used to transfer arbitrary data to the server. Causes the server -connection's \helpref{wxDDEConnection::OnPoke}{wxddeconnectiononpoke} member -to be called. Returns TRUE if successful. - -\membersection{wxDDEConnection::Request}\label{wxddeconnectionrequest} - -\func{char*}{Request}{\param{const wxString\& }{item}, \param{int *}{size}, \param{wxIPCFormat}{ format = wxIPC\_TEXT}} - -Called by the client application to request data from the server. Causes -the server connection's \helpref{wxDDEConnection::OnRequest}{wxddeconnectiononrequest} member to be called. Returns a -character string (actually a pointer to the connection's buffer) if -successful, NULL otherwise. - -\membersection{wxDDEConnection::StartAdvise}\label{wxddeconnectionstartadvise} - -\func{bool}{StartAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be started -with the server. Causes the server connection's \helpref{wxDDEConnection::OnStartAdvise}{wxddeconnectiononstartadvise}\rtfsp -member to be called. Returns TRUE if the server okays it, FALSE -otherwise. - -\membersection{wxDDEConnection::StopAdvise}\label{wxddeconnectionstopadvise} - -\func{bool}{StopAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be -stopped. Causes the server connection's \helpref{wxDDEConnection::OnStopAdvise}{wxddeconnectiononstopadvise} member -to be called. Returns TRUE if the server okays it, FALSE otherwise. - - diff --git a/docs/latex/wx/ddeservr.tex b/docs/latex/wx/ddeservr.tex deleted file mode 100644 index 700632f3c3..0000000000 --- a/docs/latex/wx/ddeservr.tex +++ /dev/null @@ -1,52 +0,0 @@ -\section{\class{wxDDEServer}}\label{wxddeserver} - -A wxDDEServer object represents the server part of a client-server DDE -(Dynamic Data Exchange) conversation. - -This DDE-based implementation is -available on Windows only, but a platform-independent, socket-based version -of this API is available using \helpref{wxTCPServer}{wxtcpserver}. - -\wxheading{Derived from} - -wxServerBase - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection}, \helpref{IPC overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDDEServer::wxDDEServer} - -\func{}{wxDDEServer}{\void} - -Constructs a server object. - -\membersection{wxDDEServer::Create} - -\func{bool}{Create}{\param{const wxString\& }{service}} - -Registers the server using the given service name. Under UNIX, the -string must contain an integer id which is used as an Internet port -number. FALSE is returned if the call failed (for example, the port -number is already in use). - -\membersection{wxDDEServer::OnAcceptConnection}\label{wxddeserveronacceptconnection} - -\func{virtual wxConnectionBase *}{OnAcceptConnection}{\param{const wxString\& }{topic}} - -When a client calls {\bf MakeConnection}, the server receives the -message and this member is called. The application should derive a -member to intercept this message and return a connection object of -either the standard wxDDEConnection type, or of a user-derived type. If the -topic is ``STDIO'', the application may wish to refuse the connection. -Under UNIX, when a server is created the OnAcceptConnection message is -always sent for standard input and output, but in the context of DDE -messages it doesn't make a lot of sense. - - diff --git a/docs/latex/wx/debugcxt.tex b/docs/latex/wx/debugcxt.tex deleted file mode 100644 index 1d85ed5db0..0000000000 --- a/docs/latex/wx/debugcxt.tex +++ /dev/null @@ -1,275 +0,0 @@ -\section{\class{wxDebugContext}}\label{wxdebugcontext} - -A class for performing various debugging and memory tracing -operations. Full functionality (such as printing out objects -currently allocated) is only present in a debugging build of wxWindows, -i.e. if the DEBUG symbol is defined and non-zero. wxDebugContext -and related functions and macros can be compiled out by setting -wxUSE\_DEBUG\_CONTEXT to 0 is setup.h - -\wxheading{Derived from} - -No parent class. - -\wxheading{Include files} - - - -\wxheading{See also} - -\overview{Overview}{wxdebugcontextoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDebugContext::Check}\label{wxdebugcontextcheck} - -\func{int}{Check}{\void} - -Checks the memory blocks for errors, starting from the currently set -checkpoint. - -\wxheading{Return value} - -Returns the number of errors, -so a value of zero represents success. Returns -1 if an error -was detected that prevents further checking. - -\membersection{wxDebugContext::Dump}\label{wxdebugcontextdump} - -\func{bool}{Dump}{\void} - -Performs a memory dump from the currently set checkpoint, writing to the -current debug stream. Calls the {\bf Dump} member function for each wxObject -derived instance. - -\wxheading{Return value} - -TRUE if the function succeeded, FALSE otherwise. - -\membersection{wxDebugContext::GetCheckPrevious}\label{wxdebugcontextgetcheckprevious} - -\func{bool}{GetCheckPrevious}{\void} - -Returns TRUE if the memory allocator checks all previous memory blocks for errors. -By default, this is FALSE since it slows down execution considerably. - -\wxheading{See also} - -\helpref{wxDebugContext::SetCheckPrevious}{wxdebugcontextsetcheckprevious} - -\membersection{wxDebugContext::GetDebugMode}\label{wxdebugcontextgetdebugmode} - -\func{bool}{GetDebugMode}{\void} - -Returns TRUE if debug mode is on. If debug mode is on, the wxObject new and delete -operators store or use information about memory allocation. Otherwise, -a straight malloc and free will be performed by these operators. - -\wxheading{See also} - -\helpref{wxDebugContext::SetDebugMode}{wxdebugcontextsetdebugmode} - -\membersection{wxDebugContext::GetLevel}\label{wxdebugcontextgetlevel} - -\func{int}{GetLevel}{\void} - -Gets the debug level (default 1). The debug level is used by the wxTraceLevel function and -the WXTRACELEVEL macro to specify how detailed the trace information is; setting -a different level will only have an effect if trace statements in the application -specify a value other than one. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::SetLevel}{wxdebugcontextsetlevel} - -\membersection{wxDebugContext::GetStream}\label{wxdebugcontextgetstream} - -\func{ostream\&}{GetStream}{\void} - -Returns the output stream associated with the debug context. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream} - -\membersection{wxDebugContext::GetStreamBuf}\label{wxdebugcontextgetstreambuf} - -\func{streambuf*}{GetStreamBuf}{\void} - -Returns a pointer to the output stream buffer associated with the debug context. -There may not necessarily be a stream buffer if the stream has been set -by the user. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\membersection{wxDebugContext::HasStream}\label{wxdebugcontexthasstream} - -\func{bool}{HasStream}{\void} - -Returns TRUE if there is a stream currently associated -with the debug context. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}, \helpref{wxDebugContext::GetStream}{wxdebugcontextgetstream} - -\membersection{wxDebugContext::PrintClasses}\label{wxdebugcontextprintclasses} - -\func{bool}{PrintClasses}{\void} - -Prints a list of the classes declared in this application, giving derivation -and whether instances of this class can be dynamically created. - -\wxheading{See also} - -\helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} - -\membersection{wxDebugContext::PrintStatistics}\label{wxdebugcontextprintstatistics} - -\func{bool}{PrintStatistics}{\param{bool}{ detailed = TRUE}} - -Performs a statistics analysis from the currently set checkpoint, writing -to the current debug stream. The number of object and non-object -allocations is printed, together with the total size. - -\wxheading{Parameters} - -\docparam{detailed}{If TRUE, the function will also print how many -objects of each class have been allocated, and the space taken by -these class instances.} - -\wxheading{See also} - -\helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} - -\membersection{wxDebugContext::SetCheckpoint}\label{wxdebugcontextsetcheckpoint} - -\func{void}{SetCheckpoint}{\param{bool}{ all = FALSE}} - -Sets the current checkpoint: Dump and PrintStatistics operations will -be performed from this point on. This allows you to ignore allocations -that have been performed up to this point. - -\wxheading{Parameters} - -\docparam{all}{If TRUE, the checkpoint is reset to include all -memory allocations since the program started.} - -\membersection{wxDebugContext::SetCheckPrevious}\label{wxdebugcontextsetcheckprevious} - -\func{void}{SetCheckPrevious}{\param{bool}{ check}} - -Tells the memory allocator to check all previous memory blocks for errors. -By default, this is FALSE since it slows down execution considerably. - -\wxheading{See also} - -\helpref{wxDebugContext::GetCheckPrevious}{wxdebugcontextgetcheckprevious} - -\membersection{wxDebugContext::SetDebugMode}\label{wxdebugcontextsetdebugmode} - -\func{void}{SetDebugMode}{\param{bool}{ debug}} - -Sets the debug mode on or off. If debug mode is on, the wxObject new and delete -operators store or use information about memory allocation. Otherwise, -a straight malloc and free will be performed by these operators. - -By default, debug mode is on if DEBUG is non-zero. If the application -uses this function, it should make sure that all object memory allocated -is deallocated with the same value of debug mode. Otherwise, the -delete operator might try to look for memory information that does not -exist. - -\wxheading{See also} - -\helpref{wxDebugContext::GetDebugMode}{wxdebugcontextgetdebugmode} - -\membersection{wxDebugContext::SetFile}\label{wxdebugcontextsetfile} - -\func{bool}{SetFile}{\param{const wxString\& }{filename}} - -Sets the current debug file and creates a stream. This will delete any existing -stream and stream buffer. By default, the debug context stream -outputs to the debugger (Windows) or standard error (other platforms). - -\membersection{wxDebugContext::SetLevel}\label{wxdebugcontextsetlevel} - -\func{void}{SetLevel}{\param{int}{ level}} - -Sets the debug level (default 1). The debug level is used by the wxTraceLevel function and -the WXTRACELEVEL macro to specify how detailed the trace information is; setting -a different level will only have an effect if trace statements in the application -specify a value other than one. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::GetLevel}{wxdebugcontextgetlevel} - -\membersection{wxDebugContext::SetStandardError}\label{wxdebugcontextsetstandarderror} - -\func{bool}{SetStandardError}{\void} - -Sets the debugging stream to be the debugger (Windows) or standard error (other platforms). -This is the default setting. The existing stream will be flushed and deleted. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\membersection{wxDebugContext::SetStream}\label{wxdebugcontextsetstream} - -\func{void}{SetStream}{\param{ostream* }{stream}, \param{streambuf* }{streamBuf = NULL}} - -Sets the stream and optionally, stream buffer associated with the debug context. -This operation flushes and deletes the existing stream (and stream buffer if any). - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{Parameters} - -\docparam{stream}{Stream to associate with the debug context. Do not set this to NULL.} - -\docparam{streamBuf}{Stream buffer to associate with the debug context.} - -\wxheading{See also} - -\helpref{wxDebugContext::GetStream}{wxdebugcontextgetstream}, \helpref{wxDebugContext::HasStream}{wxdebugcontexthasstream} - -\section{\class{wxDebugStreamBuf}}\label{wxdebugstreambuf} - -This class allows you to treat debugging output in a similar -(stream-based) fashion on different platforms. Under -Windows, an ostream constructed with this buffer outputs -to the debugger, or other program that intercepts debugging -output. On other platforms, the output goes to standard error (cerr). - -This is soon to be obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{Derived from} - -streambuf - -\wxheading{Include files} - - - -\wxheading{Example} - -\begin{verbatim} - wxDebugStreamBuf streamBuf; - ostream stream(&streamBuf); - - stream << "Hello world!" << endl; -\end{verbatim} - -\wxheading{See also} - -\overview{Overview}{wxdebugcontextoverview} - - diff --git a/docs/latex/wx/descent.bmp b/docs/latex/wx/descent.bmp deleted file mode 100644 index 82f04cf191..0000000000 Binary files a/docs/latex/wx/descent.bmp and /dev/null differ diff --git a/docs/latex/wx/descent.gif b/docs/latex/wx/descent.gif deleted file mode 100644 index b3b7043e38..0000000000 Binary files a/docs/latex/wx/descent.gif and /dev/null differ diff --git a/docs/latex/wx/dialog.tex b/docs/latex/wx/dialog.tex deleted file mode 100644 index b3b7d56918..0000000000 --- a/docs/latex/wx/dialog.tex +++ /dev/null @@ -1,351 +0,0 @@ -\section{\class{wxDialog}}\label{wxdialog} - -A dialog box is a window with a title bar and sometimes a system menu, which can be moved around -the screen. It can contain controls and other windows. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -There are two kinds of dialog - {\it modal} and {\it modeless}. A modal dialog -blocks program flow and user input on other windows until it is dismissed, whereas a modeless dialog behaves more -like a frame in that program flow continues, and input on other windows is still possible. -You specify the type of dialog with the {\bf wxDIALOG\_MODAL} and {\bf wxDIALOG\_MODELESS} window -styles. - -A dialog may be loaded from a wxWindows resource file (extension {\tt wxr}). - -An application can define an \helpref{OnCloseWindow}{wxwindowonclosewindow} handler for the -dialog to respond to system close events. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the dialog box (Motif only).} -\twocolitem{\windowstyle{wxDEFAULT\_DIALOG\_STYLE}}{Equivalent to a combination of wxCAPTION, wxSYSTEM\_MENU and wxTHICK\_FRAME} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Display a resizeable frame around the window (Unix only).} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Display a system menu.} -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Display a thick frame around the window.} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{The dialog stays on top of all other windows (Windows only).} -\twocolitem{\windowstyle{wxNO\_3D}}{Under Windows, specifies that the child controls -should not have 3D borders unless specified in the control.} -\end{twocollist} - -Under Unix or Linux, MWM (the Motif Window Manager) or other window managers reckognizing -the MHM hints should be running for any of these styles to have an effect. - -See also \helpref{Generic window styles}{windowstyles}. - -\wxheading{See also} - -\helpref{wxDialog overview}{wxdialogoverview}, \helpref{wxFrame}{wxframe}, \helpref{Resources}{resources},\rtfsp -\helpref{Validator overview}{validatoroverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDialog::wxDialog}\label{wxdialogconstr} - -\func{}{wxDialog}{\void} - -Default constructor. - -\func{}{wxDialog}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDEFAULT\_DIALOG\_STYLE},\rtfsp -\param{const wxString\& }{name = ``dialogBox"}} - -Constructor. - -\wxheading{Parameters} - -\docparam{parent}{Can be NULL, a frame or another dialog box.} - -\docparam{id}{An identifier for the dialog. A value of -1 is taken to mean a default.} - -\docparam{title}{The title of the dialog.} - -\docparam{pos}{The dialog position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{size}{The dialog size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxDialog}{wxdialog}.} - -\docparam{name}{Used to associate a name with the window, -allowing the application user to set Motif resource values for -individual dialog boxes.} - -\wxheading{See also} - -\helpref{wxDialog::Create}{wxdialogcreate} - -\membersection{wxDialog::\destruct{wxDialog}} - -\func{}{\destruct{wxDialog}}{\void} - -Destructor. Deletes any child windows before deleting the physical window. - -\membersection{wxDialog::Centre}\label{wxdialogcentre} - -\func{void}{Centre}{\param{int}{ direction = wxBOTH}} - -Centres the dialog box on the display. - -\wxheading{Parameters} - -\docparam{direction}{May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL} or {\tt wxBOTH}.} - -\membersection{wxDialog::Create}\label{wxdialogcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDEFAULT\_DIALOG\_STYLE},\rtfsp -\param{const wxString\& }{name = ``dialogBox"}} - -Used for two-step dialog box construction. See \helpref{wxDialog::wxDialog}{wxdialogconstr}\rtfsp -for details. - -\membersection{wxDialog::EndModal}\label{wxdialogendmodal} - -\func{void}{EndModal}{\param{int }{retCode}} - -Ends a modal dialog, passing a value to be returned from the \helpref{wxDialog::ShowModal}{wxdialogshowmodal}\rtfsp -invocation. - -\wxheading{Parameters} - -\docparam{retCode}{The value that should be returned by {\bf ShowModal}.} - -\wxheading{See also} - -\helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp -\helpref{wxDialog::GetReturnCode}{wxdialoggetreturncode},\rtfsp -\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode} - -\membersection{wxDialog::GetReturnCode}\label{wxdialoggetreturncode} - -\func{int}{GetReturnCode}{\void} - -Gets the return code for this window. - -\wxheading{Remarks} - -A return code is normally associated with a modal dialog, where \helpref{wxDialog::ShowModal}{wxdialogshowmodal} returns -a code to the application. - -\wxheading{See also} - -\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode}, \helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp -\helpref{wxDialog::EndModal}{wxdialogendmodal} - -\membersection{wxDialog::GetTitle}\label{wxdialoggettitle} - -\constfunc{wxString}{GetTitle}{\void} - -Returns the title of the dialog box. - -\membersection{wxDialog::Iconize}\label{wxdialogiconized} - -\func{void}{Iconize}{\param{const bool}{ iconize}} - -Iconizes or restores the dialog. Windows only. - -\wxheading{Parameters} - -\docparam{iconize}{If TRUE, iconizes the dialog box; if FALSE, shows and restores it.} - -\wxheading{Remarks} - -Note that in Windows, iconization has no effect since dialog boxes cannot be -iconized. However, applications may need to explicitly restore dialog -boxes under Motif which have user-iconizable frames, and under Windows -calling {\tt Iconize(FALSE)} will bring the window to the front, as does -\rtfsp{\tt Show(TRUE)}. - -\membersection{wxDialog::IsIconized}\label{wxdialogisiconized} - -\constfunc{bool}{IsIconized}{\void} - -Returns TRUE if the dialog box is iconized. Windows only. - -\wxheading{Remarks} - -Always returns FALSE under Windows since dialogs cannot be iconized. - -\membersection{wxDialog::IsModal}\label{wxdialogismodal} - -\constfunc{bool}{IsModal}{\void} - -Returns TRUE if the dialog box is modal, FALSE otherwise. - -\membersection{wxDialog::OnCharHook}\label{wxdialogoncharhook} - -\func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}} - -This member is called to allow the window to intercept keyboard events -before they are processed by child windows. - -For more information, see \helpref{wxWindow::OnCharHook}{wxwindowoncharhook} - -\wxheading{Remarks} - -wxDialog implements this handler to fake a cancel command if the escape key has been -pressed. This will dismiss the dialog. - -\membersection{wxDialog::OnApply}\label{wxdialogonapply} - -\func{void}{OnApply}{\param{wxCommandEvent\& }{event}} - -The default handler for the wxID\_APPLY identifier. - -\wxheading{Remarks} - -This function calls \helpref{wxWindow::Validate}{wxwindowvalidate} and \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}. - -\wxheading{See also} - -\helpref{wxDialog::OnOK}{wxdialogonok}, \helpref{wxDialog::OnCancel}{wxdialogoncancel} - -\membersection{wxDialog::OnCancel}\label{wxdialogoncancel} - -\func{void}{OnCancel}{\param{wxCommandEvent\& }{event}} - -The default handler for the wxID\_CANCEL identifier. - -\wxheading{Remarks} - -The function either calls {\bf EndModal(wxID\_CANCEL)} if the dialog is modal, or -sets the return value to wxID\_CANCEL and calls {\bf Show(FALSE)} if the dialog is modeless. - -\wxheading{See also} - -\helpref{wxDialog::OnOK}{wxdialogonok}, \helpref{wxDialog::OnApply}{wxdialogonapply} - -\membersection{wxDialog::OnOK}\label{wxdialogonok} - -\func{void}{OnOK}{\param{wxCommandEvent\& }{event}} - -The default handler for the wxID\_OK identifier. - -\wxheading{Remarks} - -The function calls -\rtfsp\helpref{wxWindow::Validate}{wxwindowvalidate}, then \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow}. -If this returns TRUE, the function either calls {\bf EndModal(wxID\_OK)} if the dialog is modal, or -sets the return value to wxID\_OK and calls {\bf Show(FALSE)} if the dialog is modeless. - -\wxheading{See also} - -\helpref{wxDialog::OnCancel}{wxdialogoncancel}, \helpref{wxDialog::OnApply}{wxdialogonapply} - -\membersection{wxDialog::OnSysColourChanged}\label{wxdialogonsyscolourchanged} - -\func{void}{OnSysColourChanged}{\param{wxSysColourChangedEvent\& }{event}} - -The default handler for wxEVT\_SYS\_COLOUR\_CHANGED. - -\wxheading{Parameters} - -\docparam{event}{The colour change event.} - -\wxheading{Remarks} - -Changes the dialog's colour to conform to the current settings (Windows only). -Add an event table entry for your dialog class if you wish the behaviour -to be different (such as keeping a user-defined -background colour). If you do override this function, call \helpref{wxWindow::OnSysColourChanged}{wxwindowonsyscolourchanged} to -propagate the notification to child windows and controls. - -\wxheading{See also} - -\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent} - -\membersection{wxDialog::SetModal}\label{wxdialogsetmodal} - -\func{void}{SetModal}{\param{const bool}{ flag}} - -Allows the programmer to specify whether the dialog box is modal (wxDialog::Show blocks control -until the dialog is hidden) or modeless (control returns immediately). - -\wxheading{Parameters} - -\docparam{flag}{If TRUE, the dialog will be modal, otherwise it will be modeless.} - -\membersection{wxDialog::SetReturnCode}\label{wxdialogsetreturncode} - -\func{void}{SetReturnCode}{\param{int }{retCode}} - -Sets the return code for this window. - -\wxheading{Parameters} - -\docparam{retCode}{The integer return code, usually a control identifier.} - -\wxheading{Remarks} - -A return code is normally associated with a modal dialog, where \helpref{wxDialog::ShowModal}{wxdialogshowmodal} returns -a code to the application. The function \helpref{wxDialog::EndModal}{wxdialogendmodal} calls {\bf SetReturnCode}. - -\wxheading{See also} - -\helpref{wxDialog::GetReturnCode}{wxdialoggetreturncode}, \helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp -\helpref{wxDialog::EndModal}{wxdialogendmodal} - -\membersection{wxDialog::SetTitle}\label{wxdialogsettitle} - -\func{void}{SetTitle}{\param{const wxString\& }{ title}} - -Sets the title of the dialog box. - -\wxheading{Parameters} - -\docparam{title}{The dialog box title.} - -\membersection{wxDialog::Show}\label{wxdialogshow} - -\func{bool}{Show}{\param{const bool}{ show}} - -Hides or shows the dialog. - -\wxheading{Parameters} - -\docparam{show}{If TRUE, the dialog box is shown and brought to the front; -otherwise the box is hidden. If FALSE and the dialog is -modal, control is returned to the calling program.} - -\wxheading{Remarks} - -The preferred way of dismissing a modal dialog is to use \helpref{wxDialog::EndModal}{wxdialogendmodal}. - -\membersection{wxDialog::ShowModal}\label{wxdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows a modal dialog. Program flow does not return until the dialog has been dismissed with\rtfsp -\helpref{wxDialog::EndModal}{wxdialogendmodal}. - -\wxheading{Return value} - -The return value is the value set with \helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode}. - -\wxheading{See also} - -\helpref{wxDialog::EndModal}{wxdialogendmodal},\rtfsp -\helpref{wxDialog:GetReturnCode}{wxdialoggetreturncode},\rtfsp -\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode} - diff --git a/docs/latex/wx/dirdlg.tex b/docs/latex/wx/dirdlg.tex deleted file mode 100644 index 975062f23e..0000000000 --- a/docs/latex/wx/dirdlg.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{\class{wxDirDialog}}\label{wxdirdialog} - -This class represents the directory chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDirDialog overview}{wxdirdialogoverview}, \helpref{wxFileDialog}{wxfiledialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDirDialog::wxDirDialog}\label{wxdirdialogconstr} - -\func{}{wxDirDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message = "Choose a directory"},\rtfsp -\param{const wxString\& }{defaultPath = ""}, \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor. Use \helpref{wxDirDialog::ShowModal}{wxdirdialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{defaultPath}{The default path, or the empty string.} - -\docparam{style}{A dialog style, currently unused.} - -\docparam{pos}{Dialog position. Not implemented.} - -\membersection{wxDirDialog::\destruct{wxDirDialog}} - -\func{}{\destruct{wxDirDialog}}{\void} - -Destructor. - -\membersection{wxDirDialog::GetPath}\label{wxdirdialoggetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the default or user-selected path. - -\membersection{wxDirDialog::GetMessage}\label{wxdirdialoggetmessage} - -\constfunc{wxString}{GetMessage}{\void} - -Returns the message that will be displayed on the dialog. - -\membersection{wxDirDialog::GetStyle}\label{wxdirdialoggetstyle} - -\constfunc{long}{GetStyle}{\void} - -Returns the dialog style. - -\membersection{wxDirDialog::SetMessage}\label{wxdirdialogsetmessage} - -\func{void}{SetMessage}{\param{const wxString\& }{message}} - -Sets the message that will be displayed on the dialog. - -\membersection{wxDirDialog::SetPath}\label{wxdirdialogsetpath} - -\func{void}{SetPath}{\param{const wxString\& }{path}} - -Sets the default path. - -\membersection{wxDirDialog::SetStyle}\label{wxdirdialogsetstyle} - -\func{void}{SetStyle}{\param{long }{style}} - -Sets the dialog style. This is currently unused. - -\membersection{wxDirDialog::ShowModal}\label{wxdirdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxOK\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/docchfrm.tex b/docs/latex/wx/docchfrm.tex deleted file mode 100644 index 01fc056869..0000000000 --- a/docs/latex/wx/docchfrm.tex +++ /dev/null @@ -1,92 +0,0 @@ -\section{\class{wxDocChildFrame}}\label{wxdocchildframe} - -The wxDocChildFrame class provides a default frame for displaying documents -on separate windows. This class can only be used for SDI (not MDI) child frames. - -The class is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxFrame}{wxframe} - -\membersection{wxDocChildFrame::m\_childDocument} - -\member{wxDocument*}{m\_childDocument} - -The document associated with the frame. - -\membersection{wxDocChildFrame::m\_childView} - -\member{wxView*}{m\_childView} - -The view associated with the frame. - -\membersection{wxDocChildFrame::wxDocChildFrame} - -\func{}{wxDocChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent}, - \param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}} - -Constructor. - -\membersection{wxDocChildFrame::\destruct{wxDocChildFrame}} - -\func{}{\destruct{wxDocChildFrame}}{\void} - -Destructor. - -\membersection{wxDocChildFrame::GetDocument} - -\constfunc{wxDocument*}{GetDocument}{\void} - -Returns the document associated with this frame. - -\membersection{wxDocChildFrame::GetView} - -\constfunc{wxView*}{GetView}{\void} - -Returns the view associated with this frame. - -\membersection{wxDocChildFrame::OnActivate} - -\func{void}{OnActivate}{\param{wxActivateEvent}{ event}} - -Sets the currently active view to be the frame's view. You may need -to override (but still call) this function in order to set the keyboard -focus for your subwindow. - -\membersection{wxDocChildFrame::OnCloseWindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Closes and deletes the current view and document. - -\membersection{wxDocChildFrame::SetDocument} - -\func{void}{SetDocument}{\param{wxDocument *}{doc}} - -Sets the document for this frame. - -\membersection{wxDocChildFrame::SetView} - -\func{void}{SetView}{\param{wxView *}{view}} - -Sets the view for this frame. - - diff --git a/docs/latex/wx/docmanag.tex b/docs/latex/wx/docmanag.tex deleted file mode 100644 index f49e353689..0000000000 --- a/docs/latex/wx/docmanag.tex +++ /dev/null @@ -1,365 +0,0 @@ -\section{\class{wxDocManager}}\label{wxdocmanager} - -The wxDocManager class is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}\rtfsp -and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDocManager overview}{wxdocmanageroverview}, \helpref{wxDocument}{wxdocument},\rtfsp -\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxFileHistory}{wxfilehistory} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocManager::m\_currentView} - -\member{wxView*}{m\_currentView} - -The currently active view. - -\membersection{wxDocManager::m\_defaultDocumentNameCounter} - -\member{int}{m\_defaultDocumentNameCounter} - -Stores the integer to be used for the next default document name. - -\membersection{wxDocManager::m\_fileHistory} - -\member{wxFileHistory*}{m\_fileHistory} - -A pointer to an instance of \helpref{wxFileHistory}{wxfilehistory}, -which manages the history of recently-visited files on the File menu. - -\membersection{wxDocManager::m\_maxDocsOpen} - -\member{int}{m\_maxDocsOpen} - -Stores the maximum number of documents that can be opened before -existing documents are closed. By default, this is 10,000. - -\membersection{wxDocManager::m\_docs} - -\member{wxList}{m\_docs} - -A list of all documents. - -\membersection{wxDocManager::m\_flags} - -\member{long}{m\_flags} - -Stores the flags passed to the constructor. - -\membersection{wxDocManager::m\_templates} - -\member{wxList}{mnTemplates} - -A list of all document templates. - -\membersection{wxDocManager::wxDocManager} - -\func{void}{wxDocManager}{\param{long}{ flags = wxDEFAULT\_DOCMAN\_FLAGS}, \param{bool}{ initialize = TRUE}} - -Constructor. Create a document manager instance dynamically near the start of your application -before doing any document or view operations. - -{\it flags} is currently unused. - -If {\it initialize} is TRUE, the \helpref{Initialize}{wxdocmanagerinitialize} function will be called -to create a default history list object. If you derive from wxDocManager, you may wish to call the -base constructor with FALSE, and then call Initialize in your own constructor, to allow -your own Initialize or OnCreateFileHistory functions to be called. - -\membersection{wxDocManager::\destruct{wxDocManager}} - -\func{void}{\destruct{wxDocManager}}{\void} - -Destructor. - -\membersection{wxDocManager::ActivateView} - -\func{void}{ActivateView}{\param{wxView* }{doc}, \param{bool}{ activate}, \param{bool}{ deleting}} - -Sets the current view. - -\membersection{wxDocManager::AddDocument} - -\func{void}{AddDocument}{\param{wxDocument *}{doc}} - -Adds the document to the list of documents. - -\membersection{wxDocManager::AddFileToHistory} - -\func{void}{AddFileToHistory}{\param{const wxString\& }{filename}} - -Adds a file to the file history list, if we have a pointer to an appropriate file menu. - -\membersection{wxDocManager::AssociateTemplate} - -\func{void}{AssociateTemplate}{\param{wxDocTemplate *}{temp}} - -Adds the template to the document manager's template list. - -\membersection{wxDocManager::CreateDocument} - -\func{wxDocument*}{CreateDocument}{\param{const wxString\& }{path}, \param{long}{ flags}} - -Creates a new document in a manner determined by the {\it flags} parameter, which can be: - -\begin{itemize}\itemsep=0pt -\item wxDOC\_NEW Creates a fresh document. -\item wxDOC\_SILENT Silently loads the given document file. -\end{itemize} - -If wxDOC\_NEW is present, a new document will be created and returned, possibly after -asking the user for a template to use if there is more than one document template. -If wxDOC\_SILENT is present, a new document will be created and the given file loaded -into it. If neither of these flags is present, the user will be presented with -a file selector for the file to load, and the template to use will be determined by the -extension (Windows) or by popping up a template choice list (other platforms). - -If the maximum number of documents has been reached, this function -will delete the oldest currently loaded document before creating a new one. - -\membersection{wxDocManager::CreateView} - -\func{wxView*}{CreateView}{\param{wxDocument*}{doc}, \param{long}{ flags}} - -Creates a new view for the given document. If more than one view is allowed for the -document (by virtue of multiple templates mentioning the same document type), a choice -of view is presented to the user. - -\membersection{wxDocManager::DisassociateTemplate} - -\func{void}{DisassociateTemplate}{\param{wxDocTemplate *}{temp}} - -Removes the template from the list of templates. - -\membersection{wxDocManager::FileHistoryAddFilesToMenu}\label{wxdocmanagerfilehistoryaddfilestomenu} - -\func{void}{FileHistoryAddFilesToMenu}{\void} - -Appends the files in the history list, to all menus managed by the file history object. - -\func{void}{FileHistoryAddFilesToMenu}{\param{wxMenu*}{ menu}} - -Appends the files in the history list, to the given menu only. - -\membersection{wxDocManager::FileHistoryLoad}\label{wxdocmanagerfilehistoryload} - -\func{void}{FileHistoryLoad}{\param{wxConfigBase\& }{config}} - -Loads the file history from a config object. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - -\membersection{wxDocManager::FileHistoryRemoveMenu}\label{wxdocmanagerfilehistoryremovemenu} - -\func{void}{FileHistoryRemoveMenu}{\param{wxMenu*}{ menu}} - -Removes the given menu from the list of menus managed by the file history object. - -\membersection{wxDocManager::FileHistorySave}\label{wxdocmanagerfilehistorysave} - -\func{void}{FileHistorySave}{\param{wxConfigBase\& }{resourceFile}} - -Saves the file history into a config object. This must be called -explicitly by the application. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - -\membersection{wxDocManager::FileHistoryUseMenu}\label{wxdocmanagerfilehistoryusemenu} - -\func{void}{FileHistoryUseMenu}{\param{wxMenu*}{ menu}} - -Use this menu for appending recently-visited document filenames, for convenient -access. Calling this function with a valid menu pointer enables the history -list functionality. - -Note that you can add multiple menus using this function, to be managed by the -file history object. - -\membersection{wxDocManager::FindTemplateForPath} - -\func{wxDocTemplate *}{FindTemplateForPath}{\param{const wxString\& }{path}} - -Given a path, try to find template that matches the extension. This is only -an approximate method of finding a template for creating a document. - -\membersection{wxDocManager::GetCurrentDocument} - -\func{wxDocument *}{GetCurrentDocument}{\void} - -Returns the document associated with the currently active view (if any). - -\membersection{wxDocManager::GetCurrentView} - -\func{wxView *}{GetCurrentView}{\void} - -Returns the currently active view - -\membersection{wxDocManager::GetDocuments} - -\func{wxList\&}{GetDocuments}{\void} - -Returns a reference to the list of documents. - -\membersection{wxDocManager::GetFileHistory} - -\func{wxFileHistory *}{GetFileHistory}{\void} - -Returns a pointer to file history. - -\membersection{wxDocManager::GetMaxDocsOpen} - -\func{int}{GetMaxDocsOpen}{\void} - -Returns the number of documents that can be open simultaneously. - -\membersection{wxDocManager::GetNoHistoryFiles} - -\func{int}{GetNoHistoryFiles}{\void} - -Returns the number of files currently stored in the file history. - -\membersection{wxDocManager::Initialize}\label{wxdocmanagerinitialize} - -\func{bool}{Initialize}{\void} - -Initializes data; currently just calls OnCreateFileHistory. Some data cannot -always be initialized in the constructor because the programmer must be given -the opportunity to override functionality. If OnCreateFileHistory was called -from the constructor, an overridden virtual OnCreateFileHistory would not be -called due to C++'s `interesting' constructor semantics. In fact Initialize -\rtfsp{\it is} called from the wxDocManager constructor, but this can be -vetoed by passing FALSE to the second argument, allowing the derived class's -constructor to call Initialize, possibly calling a different OnCreateFileHistory -from the default. - -The bottom line: if you're not deriving from Initialize, forget it and -construct wxDocManager with no arguments. - -\membersection{wxDocManager::MakeDefaultName} - -\func{bool}{MakeDefaultName}{\param{const wxString\& }{buf}} - -Copies a suitable default name into {\it buf}. This is implemented by -appending an integer counter to the string {\bf unnamed} and incrementing -the counter. - -\membersection{wxDocManager::OnCreateFileHistory} - -\func{wxFileHistory *}{OnCreateFileHistory}{\void} - -A hook to allow a derived class to create a different type of file history. Called -from \helpref{Initialize}{wxdocmanagerinitialize}. - -\membersection{wxDocManager::OnFileClose} - -\func{void}{OnFileClose}{\void} - -Closes and deletes the currently active document. - -\membersection{wxDocManager::OnFileNew} - -\func{void}{OnFileNew}{\void} - -Creates a document from a list of templates (if more than one template). - -\membersection{wxDocManager::OnFileOpen} - -\func{void}{OnFileOpen}{\void} - -Creates a new document and reads in the selected file. - -\membersection{wxDocManager::OnFileSave} - -\func{void}{OnFileSave}{\void} - -Saves the current document by calling wxDocument::Save for the current document. - -\membersection{wxDocManager::OnFileSaveAs} - -\func{void}{OnFileSaveAs}{\void} - -Calls wxDocument::SaveAs for the current document. - -\membersection{wxDocManager::OnMenuCommand} - -\func{void}{OnMenuCommand}{\param{int}{ cmd}} - -Processes menu commands routed from child or parent frames. This deals -with the following predefined menu item identifiers: - -\begin{itemize}\itemsep=0pt -\item wxID\_OPEN Creates a new document and opens a file into it. -\item wxID\_CLOSE Closes the current document. -\item wxID\_NEW Creates a new document. -\item wxID\_SAVE Saves the document. -\item wxID\_SAVE\_AS Saves the document into a specified filename. -\end{itemize} - -Unrecognized commands are routed to the currently active wxView's OnMenuCommand. - -\membersection{wxDocManager::RemoveDocument} - -\func{void}{RemoveDocument}{\param{wxDocument *}{doc}} - -Removes the document from the list of documents. - -\membersection{wxDocManager::SelectDocumentPath} - -\func{wxDocTemplate *}{SelectDocumentPath}{\param{wxDocTemplate **}{templates}, - \param{int}{ noTemplates}, \param{const wxString\& }{path}, \param{const wxString\& }{bufSize}, - \param{long}{ flags}, \param{bool}{ save}} - -Under Windows, pops up a file selector with a list of filters corresponding to document templates. -The wxDocTemplate corresponding to the selected file's extension is returned. - -On other platforms, if there is more than one document template a choice list is popped up, -followed by a file selector. - -This function is used in wxDocManager::CreateDocument. - -\membersection{wxDocManager::SelectDocumentType} - -\func{wxDocTemplate *}{SelectDocumentType}{\param{wxDocTemplate **}{templates}, - \param{int}{ noTemplates}} - -Returns a document template by asking the user (if there is more than one template). -This function is used in wxDocManager::CreateDocument. - -\membersection{wxDocManager::SelectViewType} - -\func{wxDocTemplate *}{SelectViewType}{\param{wxDocTemplate **}{templates}, - \param{int}{ noTemplates}} - -Returns a document template by asking the user (if there is more than one template), -displaying a list of valid views. This function is used in wxDocManager::CreateView. -The dialog normally won't appear because the array of templates only contains -those relevant to the document in question, and often there will only be one such. - -\membersection{wxDocManager::SetMaxDocsOpen} - -\func{void}{SetMaxDocsOpen}{\param{int}{ n}} - -Sets the maximum number of documents that can be open at a time. By default, this -is 10,000. If you set it to 1, existing documents will be saved and deleted -when the user tries to open or create a new one (similar to the behaviour -of Windows Write, for example). Allowing multiple documents gives behaviour -more akin to MS Word and other Multiple Document Interface applications. - - - diff --git a/docs/latex/wx/docmdich.tex b/docs/latex/wx/docmdich.tex deleted file mode 100644 index d203beace2..0000000000 --- a/docs/latex/wx/docmdich.tex +++ /dev/null @@ -1,93 +0,0 @@ -\section{\class{wxDocMDIChildFrame}}\label{wxdocmdichildframe} - -The wxDocMDIChildFrame class provides a default frame for displaying documents -on separate windows. This class can only be used for MDI child frames. - -The class is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxMDIChildFrame}{wxmdichildframe}\\ -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIChildFrame}{wxmdichildframe} - -\membersection{wxDocMDIChildFrame::m\_childDocument} - -\member{wxDocument*}{m\_childDocument} - -The document associated with the frame. - -\membersection{wxDocMDIChildFrame::m\_childView} - -\member{wxView*}{m\_childView} - -The view associated with the frame. - -\membersection{wxDocMDIChildFrame::wxDocMDIChildFrame} - -\func{}{wxDocMDIChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent}, - \param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}} - -Constructor. - -\membersection{wxDocMDIChildFrame::\destruct{wxDocMDIChildFrame}} - -\func{}{\destruct{wxDocMDIChildFrame}}{\void} - -Destructor. - -\membersection{wxDocMDIChildFrame::GetDocument} - -\constfunc{wxDocument*}{GetDocument}{\void} - -Returns the document associated with this frame. - -\membersection{wxDocMDIChildFrame::GetView} - -\constfunc{wxView*}{GetView}{\void} - -Returns the view associated with this frame. - -\membersection{wxDocMDIChildFrame::OnActivate} - -\func{void}{OnActivate}{\param{wxActivateEvent}{ event}} - -Sets the currently active view to be the frame's view. You may need -to override (but still call) this function in order to set the keyboard -focus for your subwindow. - -\membersection{wxDocMDIChildFrame::OnCloseWindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Closes and deletes the current view and document. - -\membersection{wxDocMDIChildFrame::SetDocument} - -\func{void}{SetDocument}{\param{wxDocument *}{doc}} - -Sets the document for this frame. - -\membersection{wxDocMDIChildFrame::SetView} - -\func{void}{SetView}{\param{wxView *}{view}} - -Sets the view for this frame. - - diff --git a/docs/latex/wx/docmdipr.tex b/docs/latex/wx/docmdipr.tex deleted file mode 100644 index 7dcff4d3ff..0000000000 --- a/docs/latex/wx/docmdipr.tex +++ /dev/null @@ -1,65 +0,0 @@ -\section{\class{wxDocMDIParentFrame}}\label{wxdocmdiparentframe} - -The wxDocMDIParentFrame class provides a default top-level frame for -applications using the document/view framework. This class can only be used for MDI parent frames. - -It cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplates}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxMDIParentFrame}{wxmdiparentframe}\\ -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIParentFrame}{wxmdiparentframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocMDIParentFrame::wxDocMDIParentFrame} - -\func{}{wxDocParentFrame}{\param{wxDocManager*}{ manager}, \param{wxFrame *}{parent}, \param{wxWindowID}{ id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = "frame"}} - -Constructor. - -\membersection{wxDocMDIParentFrame::\destruct{wxDocMDIParentFrame}} - -\func{}{\destruct{wxDocMDIParentFrame}}{\void} - -Destructor. - -\membersection{wxDocMDIParentFrame::OnCloseWindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Deletes all views and documents. If no user input cancelled the -operation, the frame will be destroyed and the application will exit. - -Since understanding how document/view clean-up takes place can be difficult, -the implementation of this function is shown below. - -\begin{verbatim} -void wxDocParentFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (m_docManager->Clear(!event.CanVeto())) - { - this->Destroy(); - } - else - event.Veto(); -} -\end{verbatim} - diff --git a/docs/latex/wx/docprfrm.tex b/docs/latex/wx/docprfrm.tex deleted file mode 100644 index ea468187c9..0000000000 --- a/docs/latex/wx/docprfrm.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{\class{wxDocParentFrame}}\label{wxdocparentframe} - -The wxDocParentFrame class provides a default top-level frame for -applications using the document/view framework. This class can only be used for SDI (not MDI) parent frames. - -It cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplates}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxFrame}{wxframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocParentFrame::wxDocParentFrame} - -\func{}{wxDocParentFrame}{\param{wxDocManager*}{ manager}, \param{wxFrame *}{parent}, \param{wxWindowID}{ id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = "frame"}} - -Constructor. - -\membersection{wxDocParentFrame::\destruct{wxDocParentFrame}} - -\func{}{\destruct{wxDocParentFrame}}{\void} - -Destructor. - -\membersection{wxDocParentFrame::OnCloseWindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Deletes all views and documents. If no user input cancelled the -operation, the frame will be destroyed and the application will exit. - -Since understanding how document/view clean-up takes place can be difficult, -the implementation of this function is shown below. - -\begin{verbatim} -void wxDocParentFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (m_docManager->Clear(!event.CanVeto())) - { - this->Destroy(); - } - else - event.Veto(); -} -\end{verbatim} - diff --git a/docs/latex/wx/doctempl.tex b/docs/latex/wx/doctempl.tex deleted file mode 100644 index 10f310f63d..0000000000 --- a/docs/latex/wx/doctempl.tex +++ /dev/null @@ -1,236 +0,0 @@ -\section{\class{wxDocTemplate}}\label{wxdoctemplate} - -The wxDocTemplate class is used to model the relationship between a -document class and a view class. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDocTemplate overview}{wxdoctemplateoverview}, \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocTemplate::m\_defaultExt} - -\member{wxString}{m\_defaultExt} - -The default extension for files of this type. - -\membersection{wxDocTemplate::m\_description} - -\member{wxString}{m\_description} - -A short description of this template. - -\membersection{wxDocTemplate::m\_directory} - -\member{wxString}{m\_directory} - -The default directory for files of this type. - -\membersection{wxDocTemplate::m\_docClassInfo} - -\member{wxClassInfo* }{m\_docClassInfo} - -Run-time class information that allows document instances to be constructed dynamically. - -\membersection{wxDocTemplate::m\_docTypeName} - -\member{wxString}{m\_docTypeName} - -The named type of the document associated with this template. - -\membersection{wxDocTemplate::m\_documentManager} - -\member{wxDocTemplate*}{m\_documentManager} - -A pointer to the document manager for which this template was created. - -\membersection{wxDocTemplate::m\_fileFilter} - -\member{wxString}{m\_fileFilter} - -The file filter (such as \verb$*.txt$) to be used in file selector dialogs. - -\membersection{wxDocTemplate::m\_flags} - -\member{long}{m\_flags} - -The flags passed to the constructor. - -\membersection{wxDocTemplate::m\_viewClassInfo} - -\member{wxClassInfo*}{m\_viewClassInfo} - -Run-time class information that allows view instances to be constructed dynamically. - -\membersection{wxDocTemplate::m\_viewTypeName} - -\member{wxString}{m\_viewTypeName} - -The named type of the view associated with this template. - -\membersection{wxDocTemplate::wxDocTemplate} - -\func{}{wxDocTemplate}{\param{wxDocManager* }{manager}, \param{const wxString\& }{descr}, \param{const wxString\& }{filter}, - \param{const wxString\& }{dir}, \param{const wxString\& }{ext}, \param{const wxString\& }{docTypeName}, - \param{const wxString\& }{viewTypeName}, \param{wxClassInfo* }{docClassInfo = NULL}, - \param{wxClassInfo* }{viewClassInfo = NULL}, \param{long}{ flags = wxDEFAULT\_TEMPLATE\_FLAGS}} - -Constructor. Create instances dynamically near the start of your application after creating -a wxDocManager instance, and before doing any document or view operations. - -{\it manager} is the document manager object which manages this template. - -{\it descr} is a short description of what the template is for. This string will be displayed in the -file filter list of Windows file selectors. - -{\it filter} is an appropriate file filter such as \verb$*.txt$. - -{\it dir} is the default directory to use for file selectors. - -{\it ext} is the default file extension (such as txt). - -{\it docTypeName} is a name that should be unique for a given type of document, used for -gathering a list of views relevant to a particular document. - -{\it viewTypeName} is a name that should be unique for a given view. - -{\it docClassInfo} is a pointer to the run-time document class information as returned -by the CLASSINFO macro, e.g. CLASSINFO(MyDocumentClass). If this is not supplied, -you will need to derive a new wxDocTemplate class and override the CreateDocument -member to return a new document instance on demand. - -{\it viewClassInfo} is a pointer to the run-time view class information as returned -by the CLASSINFO macro, e.g. CLASSINFO(MyViewClass). If this is not supplied, -you will need to derive a new wxDocTemplate class and override the CreateView -member to return a new view instance on demand. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxTEMPLATE\_VISIBLE The template may be displayed to the user in dialogs. -\item wxTEMPLATE\_INVISIBLE The template may not be displayed to the user in dialogs. -\item wxDEFAULT\_TEMPLATE\_FLAGS Defined as wxTEMPLATE\_VISIBLE. -\end{itemize} - -\membersection{wxDocTemplate::\destruct{wxDocTemplate}} - -\func{void}{\destruct{wxDocTemplate}}{\void} - -Destructor. - -\membersection{wxDocTemplate::CreateDocument} - -\func{wxDocument *}{CreateDocument}{\param{const wxString\& }{path}, \param{long}{ flags = 0}} - -Creates a new instance of the associated document class. If you have not supplied -a wxClassInfo parameter to the template constructor, you will need to override this -function to return an appropriate document instance. - -\membersection{wxDocTemplate::CreateView} - -\func{wxView *}{CreateView}{\param{wxDocument *}{doc}, \param{long}{ flags = 0}} - -Creates a new instance of the associated view class. If you have not supplied -a wxClassInfo parameter to the template constructor, you will need to override this -function to return an appropriate view instance. - -\membersection{wxDocTemplate::GetDefaultExtension} - -\func{wxString}{GetDefaultExtension}{\void} - -Returns the default file extension for the document data, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetDescription} - -\func{wxString}{GetDescription}{\void} - -Returns the text description of this template, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetDirectory} - -\func{wxString}{GetDirectory}{\void} - -Returns the default directory, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetDocumentManager} - -\func{wxDocManager *}{GetDocumentManager}{\void} - -Returns a pointer to the document manager instance for which this template was created. - -\membersection{wxDocTemplate::GetDocumentName} - -\func{wxString}{GetDocumentName}{\void} - -Returns the document type name, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetFileFilter} - -\func{wxString}{GetFileFilter}{\void} - -Returns the file filter, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetFlags} - -\func{long}{GetFlags}{\void} - -Returns the flags, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetViewName} - -\func{wxString}{GetViewName}{\void} - -Returns the view type name, as passed to the document template constructor. - -\membersection{wxDocTemplate::IsVisible} - -\func{bool}{IsVisible}{\void} - -Returns TRUE if the document template can be shown in user dialogs, FALSE otherwise. - -\membersection{wxDocTemplate::SetDefaultExtension} - -\func{void}{SetDefaultExtension}{\param{const wxString\& }{ext}} - -Sets the default file extension. - -\membersection{wxDocTemplate::SetDescription} - -\func{void}{SetDescription}{\param{const wxString\& }{descr}} - -Sets the template description. - -\membersection{wxDocTemplate::SetDirectory} - -\func{void}{SetDirectory}{\param{const wxString\& }{dir}} - -Sets the default directory. - -\membersection{wxDocTemplate::SetDocumentManager} - -\func{void}{SetDocumentManager}{\param{wxDocManager *}{manager}} - -Sets the pointer to the document manager instance for which this template was created. -Should not be called by the application. - -\membersection{wxDocTemplate::SetFileFilter} - -\func{void}{SetFileFilter}{\param{const wxString\& }{filter}} - -Sets the file filter. - -\membersection{wxDocTemplate::SetFlags} - -\func{void}{SetFlags}{\param{long }{flags}} - -Sets the internal document template flags (see the constructor description for more details). - diff --git a/docs/latex/wx/document.tex b/docs/latex/wx/document.tex deleted file mode 100644 index 7bb4d774d2..0000000000 --- a/docs/latex/wx/document.tex +++ /dev/null @@ -1,346 +0,0 @@ -\section{\class{wxDocument}}\label{wxdocument} - -The document class can be used to model an application's file-based -data. It is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}\rtfsp -and \helpref{wxDocManager}{wxdocmanager} classes. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDocument overview}{wxdocumentoverview}, \helpref{wxView}{wxview},\rtfsp -\helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxDocManager}{wxdocmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocument::m\_commandProcessor} - -\member{wxCommandProcessor*}{m\_commandProcessor} - -A pointer to the command processor associated with this document. - -\membersection{wxDocument::m\_documentFile} - -\member{wxString}{m\_documentFile} - -Filename associated with this document (``" if none). - -\membersection{wxDocument::m\_documentModified} - -\member{bool}{m\_documentModified} - -TRUE if the document has been modified, FALSE otherwise. - -\membersection{wxDocument::m\_documentTemplate} - -\member{wxDocTemplate *}{m\_documentTemplate} - -A pointer to the template from which this document was created. - -\membersection{wxDocument::m\_documentTitle} - -\member{wxString}{m\_documentTitle} - -Document title. The document title is used for an associated -frame (if any), and is usually constructed by the framework from -the filename. - -\membersection{wxDocument::m\_documentTypeName}\label{documenttypename} - -\member{wxString}{m\_documentTypeName} - -The document type name given to the wxDocTemplate constructor, copied to this -variable when the document is created. If several document templates are -created that use the same document type, this variable is used in wxDocManager::CreateView -to collate a list of alternative view types that can be used on this kind of -document. Do not change the value of this variable. - -\membersection{wxDocument::m\_documentViews} - -\member{wxList}{m\_documentViews} - -List of wxView instances associated with this document. - -\membersection{wxDocument::wxDocument} - -\func{}{wxDocument}{\void} - -Constructor. Define your own default constructor to initialize application-specific -data. - -\membersection{wxDocument::\destruct{wxDocument}} - -\func{}{\destruct{wxDocument}}{\void} - -Destructor. Removes itself from the document manager. - -\membersection{wxDocument::AddView} - -\func{virtual bool}{AddView}{\param{wxView *}{view}} - -If the view is not already in the list of views, adds the view and calls OnChangedViewList. - -\membersection{wxDocument::Close} - -\func{virtual bool}{Close}{\void} - -Closes the document, by calling OnSaveModified and then (if this returned TRUE) OnCloseDocument. -This does not normally delete the document object: use DeleteAllViews to do this implicitly. - -\membersection{wxDocument::DeleteAllViews} - -\func{virtual bool}{DeleteAllViews}{\void} - -Calls wxView::Close and deletes each view. Deleting the final view will implicitly -delete the document itself, because the wxView destructor calls RemoveView. This -in turns calls wxDocument::OnChangedViewList, whose default implemention is to -save and delete the document if no views exist. - -\membersection{wxDocument::GetCommandProcessor} - -\constfunc{wxCommandProcessor*}{GetCommandProcessor}{\void} - -Returns a pointer to the command processor associated with this document. - -See \helpref{wxCommandProcessor}{wxcommandprocessor}. - -\membersection{wxDocument::GetDocumentTemplate} - -\constfunc{wxDocTemplate*}{GetDocumentTemplate}{\void} - -Gets a pointer to the template that created the document. - -\membersection{wxDocument::GetDocumentManager} - -\constfunc{wxDocManager*}{GetDocumentManager}{\void} - -Gets a pointer to the associated document manager. - -\membersection{wxDocument::GetDocumentName} - -\constfunc{wxString}{GetDocumentName}{\void} - -Gets the document type name for this document. See the comment for \helpref{documentTypeName}{documenttypename}. - -\membersection{wxDocument::GetDocumentWindow} - -\constfunc{wxWindow*}{GetDocumentWindow}{\void} - -Intended to return a suitable window for using as a parent for document-related -dialog boxes. By default, uses the frame associated with the first view. - -\membersection{wxDocument::GetFilename} - -\constfunc{wxString}{GetFilename}{\void} - -Gets the filename associated with this document, or "" if none is -associated. - -\membersection{wxDocument::GetFirstView}\label{wxdocumentgetfirstview} - -\constfunc{wxView *}{GetFirstView}{\void} - -A convenience function to get the first view for a document, because -in many cases a document will only have a single view. - -See also: \helpref{GetViews}{wxdocumentgetviews} - -\membersection{wxDocument::GetPrintableName} - -\constfunc{virtual void}{GetPrintableName}{\param{wxString\& }{name}} - -Copies a suitable document name into the supplied {\it name} buffer. The default -function uses the title, or if there is no title, uses the filename; or if no -filename, the string {\bf unnamed}. - -\membersection{wxDocument::GetTitle} - -\constfunc{wxString}{GetTitle}{\void} - -Gets the title for this document. The document title is used for an associated -frame (if any), and is usually constructed by the framework from -the filename. - -\membersection{wxDocument::GetViews}\label{wxdocumentgetviews} - -\constfunc{wxList \&}{GetViews}{\void} - -Returns the list whose elements are the views on the document. - -See also: \helpref{GetFirstView}{wxdocumentgetfirstview} - -\membersection{wxDocument::IsModified}\label{wxdocumentismodified} - -\constfunc{virtual bool}{IsModified}{\void} - -Returns TRUE if the document has been modified since the last save, FALSE otherwise. -You may need to override this if your document view maintains its own -record of being modified (for example if using wxTextWindow to view and edit the document). - -See also \helpref{Modify}{wxdocumentmodify}. - -\membersection{wxDocument::LoadObject} - -\func{virtual istream\&}{LoadObject}{\param{istream\& }{stream}} - -Override this function and call it from your own LoadObject before -streaming your own data. LoadObject is called by the framework -automatically when the document contents need to be loaded. - -\membersection{wxDocument::Modify}\label{wxdocumentmodify} - -\func{virtual void}{Modify}{\param{bool}{ modify}} - -Call with TRUE to mark the document as modified since the last save, FALSE otherwise. -You may need to override this if your document view maintains its own -record of being modified (for example if using wxTextWindow to view and edit the document). - -See also \helpref{IsModified}{wxdocumentismodified}. - -\membersection{wxDocument::OnChangedViewList} - -\func{virtual void}{OnChangedViewList}{\void} - -Called when a view is added to or deleted from this document. The default -implementation saves and deletes the document if no views exist (the last -one has just been removed). - -\membersection{wxDocument::OnCloseDocument} - -\func{virtual bool}{OnCloseDocument}{\void} - -The default implementation calls DeleteContents (an empty implementation) -sets the modified flag to FALSE. Override this to -supply additional behaviour when the document is closed with Close. - -\membersection{wxDocument::OnCreate} - -\func{virtual bool}{OnCreate}{\param{const wxString\& }{path}, \param{long}{ flags}} - -Called just after the document object is created to give it a chance -to initialize itself. The default implementation uses the -template associated with the document to create an initial view. -If this function returns FALSE, the document is deleted. - -\membersection{wxDocument::OnCreateCommandProcessor} - -\func{virtual wxCommandProcessor*}{OnCreateCommandProcessor}{\void} - -Override this function if you want a different (or no) command processor -to be created when the document is created. By default, it returns -an instance of wxCommandProcessor. - -See \helpref{wxCommandProcessor}{wxcommandprocessor}. - -\membersection{wxDocument::OnNewDocument} - -\func{virtual bool}{OnNewDocument}{\void} - -The default implementation calls OnSaveModified and DeleteContents, makes a default title for the -document, and notifies the views that the filename (in fact, the title) has changed. - -\membersection{wxDocument::OnOpenDocument} - -\func{virtual bool}{OnOpenDocument}{\param{const wxString\& }{filename}} - -Constructs an input file stream for the given filename (which must not be empty), -and calls LoadObject. If LoadObject returns TRUE, the document is set to -unmodified; otherwise, an error message box is displayed. The document's -views are notified that the filename has changed, to give windows an opportunity -to update their titles. All of the document's views are then updated. - -\membersection{wxDocument::OnSaveDocument} - -\func{virtual bool}{OnSaveDocument}{\param{const wxString\& }{filename}} - -Constructs an output file stream for the given filename (which must not be empty), -and calls SaveObject. If SaveObject returns TRUE, the document is set to -unmodified; otherwise, an error message box is displayed. - -\membersection{wxDocument::OnSaveModified} - -\func{virtual bool}{OnSaveModified}{\void} - -If the document has been modified, prompts the user to ask if the changes should -be changed. If the user replies Yes, the Save function is called. If No, the -document is marked as unmodified and the function succeeds. If Cancel, the -function fails. - -\membersection{wxDocument::RemoveView} - -\func{virtual bool}{RemoveView}{\param{wxView* }{view}} - -Removes the view from the document's list of views, and calls OnChangedViewList. - -\membersection{wxDocument::Save} - -\func{virtual bool}{Save}{\void} - -Saves the document by calling OnSaveDocument if there is an associated filename, -or SaveAs if there is no filename. - -\membersection{wxDocument::SaveAs} - -\func{virtual bool}{SaveAs}{\void} - -Prompts the user for a file to save to, and then calls OnSaveDocument. - -\membersection{wxDocument::SaveObject} - -\func{virtual ostream\&}{SaveObject}{\param{ostream\& }{stream}} - -Override this function and call it from your own SaveObject before -streaming your own data. SaveObject is called by the framework -automatically when the document contents need to be saved. - -\membersection{wxDocument::SetCommandProcessor} - -\func{virtual void}{SetCommandProcessor}{\param{wxCommandProcessor *}{processor}} - -Sets the command processor to be used for this document. The document will then be responsible -for its deletion. Normally you should not call this; override OnCreateCommandProcessor -instead. - -See \helpref{wxCommandProcessor}{wxcommandprocessor}. - -\membersection{wxDocument::SetDocumentName} - -\func{void}{SetDocumentName}{\param{const wxString\& }{name}} - -Sets the document type name for this document. See the comment for \helpref{documentTypeName}{documenttypename}. - -\membersection{wxDocument::SetDocumentTemplate} - -\func{void}{SetDocumentTemplate}{\param{wxDocTemplate* }{templ}} - -Sets the pointer to the template that created the document. Should only be called by the -framework. - -\membersection{wxDocument::SetFilename} - -\func{void}{SetFilename}{\param{const wxString\& }{filename}} - -Sets the filename for this document. Usually called by the framework. - -\membersection{wxDocument::SetTitle} - -\func{void}{SetTitle}{\param{const wxString\& }{title}} - -Sets the title for this document. The document title is used for an associated -frame (if any), and is usually constructed by the framework from -the filename. - -\membersection{wxDocument::UpdateAllViews}\label{wxdocumentupdateallviews} - -\func{void}{UpdateAllViews}{\param{wxView* }{sender = NULL}} - -Updates all views. If {\it sender} is non-NULL, does not update this view. - diff --git a/docs/latex/wx/dropevt.tex b/docs/latex/wx/dropevt.tex deleted file mode 100644 index 9e30f8dca5..0000000000 --- a/docs/latex/wx/dropevt.tex +++ /dev/null @@ -1,80 +0,0 @@ -\section{\class{wxDropFilesEvent}}\label{wxdropfilesevent} - -This class is used for drop files events, that is, when files have been dropped -onto the window. This functionality is currently only available under Windows. - -Important note: this is a separate implementation to the more general -drag and drop implementation documented \helpref{here}{wxdndoverview}. It uses the -older, Windows message-based approach of dropping files. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a drop files event, use these event handler macros to direct input to a member -function that takes a wxDropFilesEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_DROP\_FILES(func)}}{Process a wxEVT\_DROP\_FILES event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnDropFiles}{wxwindowondropfiles}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDropFilesEvent::wxDropFilesEvent} - -\func{}{wxDropFilesEvent}{\param{WXTYPE }{id = 0}, \param{int }{noFiles = 0},\rtfsp -\param{wxString* }{files = NULL}} - -Constructor. - -\membersection{wxDropFilesEvent::m\_files} - -\member{wxString*}{m\_files} - -An array of filenames. - -\membersection{wxDropFilesEvent::m\_noFiles} - -\member{int}{m\_noFiles} - -The number of files dropped. - -\membersection{wxDropFilesEvent::m\_pos} - -\member{wxPoint}{m\_pos} - -The point at which the drop took place. - -\membersection{wxDropFilesEvent::GetFiles}\label{wxdropfileseventgetfiles} - -\constfunc{wxString*}{GetFiles}{\void} - -Returns an array of filenames. - -\membersection{wxDropFilesEvent::GetNumberOfFiles}\label{wxdropfileseventgetnumberoffiles} - -\constfunc{int}{GetNumberOfFiles}{\void} - -Returns the number of files dropped. - -\membersection{wxDropFilesEvent::GetPosition}\label{wxdropfileseventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the position at which the files were dropped. - -Returns an array of filenames. - - diff --git a/docs/latex/wx/dropsrc.tex b/docs/latex/wx/dropsrc.tex deleted file mode 100644 index 2fc43ea65b..0000000000 --- a/docs/latex/wx/dropsrc.tex +++ /dev/null @@ -1,92 +0,0 @@ -\section{\class{wxDropSource}}\label{wxdropsource} - -\overview{Overview}{wxdndoverview} - -This class represents a source for a drag and drop operation. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Types} - -\index{wxDragResult}wxDragResult is defined as follows: - -{\small\begin{verbatim} -enum wxDragResult - { - wxDragError, // error prevented the d&d operation from completing - wxDragNone, // drag target didn't accept the data - wxDragCopy, // the data was successfully copied - wxDragMove, // the data was successfully moved - wxDragCancel // the operation was cancelled by user (not an error) - }; -\end{verbatim}% -} - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropTarget}{wxdroptarget}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDropSource::wxDropSource}\label{wxdropsourcewxdropsource} - -\func{}{wxDropSource}{\param{wxWindow*}{ win = NULL}} - -Default/wxGTK-specific constructor. If you use the default constructor you must -call \helpref{wxDropSource::SetData}{wxdropsourcesetdata} later. - -{\it win} is required by wxGTK and therefore should always be set. - -\func{}{wxDropSource}{\param{wxDataObject\& }{data}, \param{wxWindow*}{ win = NULL}} - -\wxheading{Parameters} - -\docparam{data}{A reference to the \helpref{data object}{wxdataobject} associated with the drop source.} - -\docparam{win}{Only used by wxGTK. TODO} - -\membersection{wxDropSource::\destruct{wxDropSource}}\label{wxdropsourcedtor} - -\func{virtual }{\destruct{wxDropSource}}{\void} - -\membersection{wxDropSource::SetData}\label{wxdropsourcesetdata} - -\func{void}{SetData}{\param{wxDataObject\&}{ data}} - -Sets the data \helpref{data object}{wxdataobject} associated with the drop source. - -\membersection{wxDropSource::DoDragDrop}\label{wxdropsourcedodragdrop} - -\func{virtual wxDragResult}{DoDragDrop}{\param{bool }{bAllowMove = FALSE}} - -Do it (call this in response to a mouse button press, for example). - -If {\bf bAllowMove} is FALSE, data can only be copied. Under GTK, data -is always copied. - -\membersection{wxDropSource::GiveFeedback}\label{wxdropsourcegivefeedback} - -\func{virtual bool}{GiveFeedback}{\param{wxDragResult }{effect}, \param{bool }{bScrolling}} - -Overridable: you may give some custom UI feedback during the drag and drop operation -in this function. It is called on each mouse move, so your implementation must not be too -slow. - -\wxheading{Parameters} - -\docparam{effect}{The effect to implement. One of wxDragCopy, wxDragMove. MSW only. } - -\docparam{bScrolling}{TRUE if the window is scrolling. MSW only. } - -\wxheading{Return value} - -Return FALSE if you want default feedback, or TRUE if you implement your own -feedback. - diff --git a/docs/latex/wx/droptrgt.tex b/docs/latex/wx/droptrgt.tex deleted file mode 100644 index c4db2ec7c3..0000000000 --- a/docs/latex/wx/droptrgt.tex +++ /dev/null @@ -1,77 +0,0 @@ -\section{\class{wxDropTarget}}\label{wxdroptarget} - -\overview{Overview}{wxdndoverview} - -This class represents a target for a drag and drop operation. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDropTarget::wxDropTarget}\label{wxdroptargetwxdroptarget} - -\func{}{wxDropTarget}{\void} - -Constructor. - -\membersection{wxDropTarget::\destruct{wxDropTarget}}\label{wxdroptargetdtor} - -\func{}{\destruct{wxDropTarget}}{\void} - -Destructor. - -\membersection{wxDropTarget::GetFormatCount}\label{wxdroptargetgetformatcount} - -\constfunc{virtual size\_t}{GetFormatCount}{\void} - -Override this to indicate how many formats you support. - -\membersection{wxDropTarget::GetFormat}\label{wxdroptargetgetformat} - -\constfunc{virtual wxDataFormat}{GetFormat}{\param{size\_t }{n}} - -Override this to indicate what kind of data you support. - -\membersection{wxDropTarget::OnEnter}\label{wxdroptargetonenter} - -\func{virtual void}{OnEnter}{\void} - -Called when the mouse enters the drop target. - -\membersection{wxDropTarget::OnDrop}\label{wxdroptargetondrop} - -\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void* }{data}, \param{size\_t }{size}} - -Called when the user drops a data object on the target. Return FALSE to veto the operation. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\docparam{data}{The data being dropped.} - -\docparam{size}{The size of the data being dropped.} - -\wxheading{Return value} - -Return TRUE to accept the data, FALSE to veto the operation. - -\membersection{wxDropTarget::OnLeave}\label{wxdroptargetonleave} - -\func{virtual void}{OnLeave}{\void} - -Called when the mouse leaves the drop target. - diff --git a/docs/latex/wx/eraseevt.tex b/docs/latex/wx/eraseevt.tex deleted file mode 100644 index a88c15e9e2..0000000000 --- a/docs/latex/wx/eraseevt.tex +++ /dev/null @@ -1,52 +0,0 @@ -\section{\class{wxEraseEvent}}\label{wxeraseevent} - -An erase event is sent when a window's background needs to be repainted. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process an erase event, use this event handler macro to direct input to a member -function that takes a wxEraseEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_ERASE\_BACKGROUND(func)}}{Process a wxEVT\_ERASE\_BACKGROUND event.} -\end{twocollist}% - -\wxheading{Remarks} - -If the {\bf m\_DC} member is non-NULL, draw into this device context. - -\wxheading{See also} - -\helpref{wxWindow::OnEraseBackground}{wxwindowonerasebackground}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEraseEvent::wxEraseEvent} - -\func{}{wxEraseEvent}{\param{int }{id = 0}, \param{wxDC* }{dc = NULL}} - -Constructor. - -\membersection{wxEraseEvent::m\_dc} - -\member{wxDC*}{m\_dc} - -The device context associated with the erase event (may be NULL). - -\membersection{wxEraseEvent::GetDC}\label{wxeraseeventgetdc} - -\constfunc{wxDC*}{GetDC}{\void} - -Returns the device context to draw into. If this is non-NULL, you should draw -into it to perform the erase operation. - diff --git a/docs/latex/wx/event.tex b/docs/latex/wx/event.tex deleted file mode 100644 index c7f58ab720..0000000000 --- a/docs/latex/wx/event.tex +++ /dev/null @@ -1,145 +0,0 @@ -\section{\class{wxEvent}}\label{wxevent} - -An event is a structure holding information about an event passed to a -callback or member function. {\bf wxEvent} used to be a multipurpose -event object, and is an abstract base class for other event classes (see below). - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxCommandEvent}{wxcommandevent},\rtfsp -\helpref{wxMouseEvent}{wxmouseevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEvent::wxEvent} - -\func{}{wxEvent}{\param{int }{id = 0}} - -Constructor. Should not need to be used directly by an application. - -\membersection{wxEvent::m\_eventHandle} - -\member{char*}{m\_eventHandle} - -Handle of an underlying windowing system event handle, such as -XEvent. Not guaranteed to be instantiated. - -\membersection{wxEvent::m\_eventObject} - -\member{wxObject*}{m\_eventObject} - -The object (usually a window) that the event was generated from, -or should be sent to. - -\membersection{wxEvent::m\_eventType} - -\member{WXTYPE}{m\_eventType} - -The type of the event, such as wxEVENT\_TYPE\_BUTTON\_COMMAND. - -\membersection{wxEvent::m\_id} - -\member{int}{m\_id} - -Identifier for the window. - -\membersection{wxEvent::m\_skipped} - -\member{bool}{m\_skipped} - -Set to TRUE by {\bf Skip} if this event should be skipped. - -\membersection{wxEvent::m\_timeStamp} - -\member{long}{m\_timeStamp} - -Timestamp for this event. - -\membersection{wxEvent::GetEventClass} - -\func{WXTYPE}{GetEventClass}{\void} - -Returns the identifier of the given event class, -such as wxTYPE\_MOUSE\_EVENT. - -\membersection{wxEvent::GetEventObject} - -\func{wxObject*}{GetEventObject}{\void} - -Returns the object associated with the -event, if any. - -\membersection{wxEvent::GetEventType} - -\func{WXTYPE}{GetEventType}{\void} - -Returns the identifier of the given event type, -such as wxEVENT\_TYPE\_BUTTON\_COMMAND. - -\membersection{wxEvent::GetId} - -\func{int}{GetId}{\void} - -Returns the identifier associated with this event, such as a button command id. - -\membersection{wxEvent::GetObjectType} - -\func{WXTYPE}{GetObjectType}{\void} - -Returns the type of the object associated with the -event, such as wxTYPE\_BUTTON. - -\membersection{wxEvent::GetSkipped} - -\func{bool}{GetSkipped}{\void} - -Returns TRUE if the event handler should be skipped, FALSE otherwise. - -\membersection{wxEvent::GetTimestamp} - -\func{long}{GetTimestamp}{\void} - -Gets the timestamp for the event. - -\membersection{wxEvent::SetEventObject} - -\func{void}{SetEventObject}{\param{wxObject* }{object}} - -Sets the originating object. - -\membersection{wxEvent::SetEventType} - -\func{void}{SetEventType}{\param{WXTYPE }{typ}} - -Sets the event type. - -\membersection{wxEvent::SetId} - -\func{void}{SetId}{\param{int}{ id}} - -Sets the identifier associated with this event, such as a button command id. - -\membersection{wxEvent::SetTimestamp} - -\func{void}{SetTimestamp}{\param{long }{timeStamp}} - -Sets the timestamp for the event. - -Sets the originating object. - -\membersection{wxEvent::Skip}\label{wxeventskip} - -\func{void}{Skip}{\param{bool}{ skip = TRUE}} - -Called by an event handler to tell the event system that the -event handler should be skipped, and the next valid handler used -instead. - diff --git a/docs/latex/wx/evthand.tex b/docs/latex/wx/evthand.tex deleted file mode 100644 index 8f5c7a9567..0000000000 --- a/docs/latex/wx/evthand.tex +++ /dev/null @@ -1,305 +0,0 @@ -\section{\class{wxEvtHandler}}\label{wxevthandler} - -A class that can handle events from the windowing system. -wxWindow (and therefore all window classes) are derived from -this class. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\overview{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEvtHandler::wxEvtHandler} - -\func{}{wxEvtHandler}{\void} - -Constructor. - -\membersection{wxEvtHandler::\destruct{wxEvtHandler}} - -\func{}{\destruct{wxEvtHandler}}{\void} - -Destructor. If the handler is part of a chain, the destructor will -unlink itself and restore the previous and next handlers so that they point to -each other. - -\membersection{wxEvtHandler::Connect}\label{wxevthandlerconnect} - -\func{void}{Connect}{\param{int}{ id}, - \param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function}, - \param{wxObject*}{ userData = NULL}} - -\func{void}{Connect}{\param{int}{ id}, \param{int}{ lastId}, - \param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function}, - \param{wxObject*}{ userData = NULL}} - -Connects the given function dynamically with the event handler, id and event type. This -is an alternative to the use of static event tables. See the 'dynamic' sample for usage. - -\wxheading{Parameters} - -\docparam{id}{The identifier (or first of the identifier range) to be associated with the event handler function.} - -\docparam{lastId}{The second part of the identifier range to be associated with the event handler function.} - -\docparam{eventType}{The event type to be associated with this event handler.} - -\docparam{function}{The event handler function.} - -\docparam{userData}{Data to be associated with the event table entry.} - -\wxheading{Example} - -\begin{verbatim} - frame->Connect( wxID_EXIT, - wxEVT_COMMAND_MENU_SELECTED, - (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) MyFrame::OnQuit ); -\end{verbatim} - -\membersection{wxEvtHandler::Default}\label{wxevthandlerdefault} - -\func{virtual long}{Default}{\void} - -Invokes default processing if this event handler is a window. - -\wxheading{Return value} - -System dependent. - -\wxheading{Remarks} - -A generic way of delegating processing to the default system behaviour. It calls a platform-dependent -default function, with parameters dependent on the event or message parameters -originally sent from the windowing system. - -Normally the application should call a base member, such as \helpref{wxWindow::OnChar}{wxwindowonchar}, which itself -may call {\bf Default}. - -\membersection{wxEvtHandler::GetClientData}\label{wxevthandlergetclientdata} - -\func{char* }{GetClientData}{\void} - -Gets user-supplied client data. - -\wxheading{Remarks} - -Normally, any extra data the programmer wishes to associate with the object -should be made available by deriving a new class -with new data members. - -\wxheading{See also} - -\helpref{wxEvtHandler::SetClientData}{wxevthandlersetclientdata} - -\membersection{wxEvtHandler::GetEvtHandlerEnabled}\label{wxevthandlergetevthandlerenabled} - -\func{bool}{GetEvtHandlerEnabled}{\void} - -Returns TRUE if the event handler is enabled, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled} - -\membersection{wxEvtHandler::GetNextHandler}\label{wxevthandlergetnexthandler} - -\func{wxEvtHandler*}{GetNextHandler}{\void} - -Gets the pointer to the next handler in the chain. - -\wxheading{See also} - -\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp -\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp -\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - -\membersection{wxEvtHandler::GetPreviousHandler}\label{wxevthandlergetprevioushandler} - -\func{wxEvtHandler*}{GetPreviousHandler}{\void} - -Gets the pointer to the previous handler in the chain. - -\wxheading{See also} - -\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp -\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp -\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - -\membersection{wxEvtHandler::ProcessEvent}\label{wxevthandlerprocessevent} - -\func{virtual bool}{ProcessEvent}{\param{wxEvent\& }{event}} - -Processes an event, searching event tables and calling zero or more suitable event handler function(s). - -\wxheading{Parameters} - -\docparam{event}{Event to process.} - -\wxheading{Return value} - -TRUE if a suitable event handler function was found and executed, and the function did not -call \helpref{wxEvent::Skip}{wxeventskip}. - -\wxheading{Remarks} - -Normally, your application would not call this function: it is called in the wxWindows -implementation to dispatch incoming user interface events to the framework (and application). - -However, you might need to call it if implementing new functionality (such as a new control) where -you define new event types, as opposed to allowing the user to override virtual functions. - -An instance where you might actually override the {\bf ProcessEvent} function is where you want -to direct event processing to event handlers not normally noticed by wxWindows. For example, -in the document/view architecture, documents and views are potential event handlers. -When an event reaches a frame, {\bf ProcessEvent} will need to be called on the associated -document and view in case event handler functions are associated with these objects. -The property classes library (wxProperty) also overrides {\bf ProcessEvent} for similar reasons. - -The normal order of event table searching is as follows: - -\begin{enumerate}\itemsep=0pt -\item If the object is disabled (via a call to \helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled}) -the function skips to step (6). -\item If the object is a wxWindow, {\bf ProcessEvent} is recursively called on the window's\rtfsp -\helpref{wxValidator}{wxvalidator}. If this returns TRUE, the function exits. -\item {\bf SearchEventTable} is called for this event handler. If this fails, the base -class table is tried, and so on until no more tables exist or an appropriate function was found, -in which case the function exits. -\item The search is applied down the entire chain of event handlers (usually the chain has a length -of one). If this succeeds, the function exits. -\item If the object is a wxWindow and the event is a wxCommandEvent, {\bf ProcessEvent} is -recursively applied to the parent window's event handler. If this returns TRUE, the function exits. -\item Finally, {\bf ProcessEvent} is called on the wxApp object. -\end{enumerate} - -\wxheading{See also} - -\helpref{wxEvtHandler::SearchEventTable}{wxevthandlersearcheventtable} - -\membersection{wxEvtHandler::SearchEventTable}\label{wxevthandlersearcheventtable} - -\func{bool}{SearchEventTable}{\param{wxEventTable\& }{table}, \param{wxEvent\& }{event}} - -Searches the event table, executing an event handler function if an appropriate one -is found. - -\wxheading{Parameters} - -\docparam{table}{Event table to be searched.} - -\docparam{event}{Event to be matched against an event table entry.} - -\wxheading{Return value} - -TRUE if a suitable event handler function was found and executed, and the function did not -call \helpref{wxEvent::Skip}{wxeventskip}. - -\wxheading{Remarks} - -This function looks through the object's event table and tries to find an entry -that will match the event. - -An entry will match if: - -\begin{enumerate}\itemsep=0pt -\item The event type matches, and -\item the identifier or identifier range matches, or the event table entry's identifier is zero. -\end{enumerate} - -If a suitable function is called but calls \helpref{wxEvent::Skip}{wxeventskip}, this function will -fail, and searching will continue. - -\wxheading{See also} - -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent} - -\membersection{wxEvtHandler::SetClientData}\label{wxevthandlersetclientdata} - -\func{void}{SetClientData}{\param{char* }{data}} - -Sets user-supplied client data. - -\wxheading{Parameters} - -\docparam{data}{Data to be associated with the event handler.} - -\wxheading{Remarks} - -Normally, any extra data the programmer wishes -to associate with the object should be made available by deriving a new class -with new data members. -%TODO: make this void*, char* only in compatibility mode. - -\wxheading{See also} - -\helpref{wxEvtHandler::GetClientData}{wxevthandlergetclientdata} - -\membersection{wxEvtHandler::SetEvtHandlerEnabled}\label{wxevthandlersetevthandlerenabled} - -\func{void}{SetEvtHandlerEnabled}{\param{bool }{enabled}} - -Enables or disables the event handler. - -\wxheading{Parameters} - -\docparam{enabled}{TRUE if the event handler is to be enabled, FALSE if it is to be disabled.} - -\wxheading{Remarks} - -You can use this function to avoid having to remove the event handler from the chain, for example -when implementing a dialog editor and changing from edit to test mode. - -\wxheading{See also} - -\helpref{wxEvtHandler::GetEvtHandlerEnabled}{wxevthandlergetevthandlerenabled} - -\membersection{wxEvtHandler::SetNextHandler}\label{wxevthandlersetnexthandler} - -\func{void}{SetNextHandler}{\param{wxEvtHandler* }{handler}} - -Sets the pointer to the next handler. - -\wxheading{Parameters} - -\docparam{handler}{Event handler to be set as the next handler.} - -\wxheading{See also} - -\helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp -\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp -\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - -\membersection{wxEvtHandler::SetPreviousHandler}\label{wxevthandlersetprevioushandler} - -\func{void}{SetPreviousHandler}{\param{wxEvtHandler* }{handler}} - -Sets the pointer to the previous handler. - -\wxheading{Parameters} - -\docparam{handler}{Event handler to be set as the previous handler.} - -\wxheading{See also} - -\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp -\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp -\helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - - diff --git a/docs/latex/wx/expr.tex b/docs/latex/wx/expr.tex deleted file mode 100644 index ad8b3e63db..0000000000 --- a/docs/latex/wx/expr.tex +++ /dev/null @@ -1,497 +0,0 @@ -\section{\class{wxExpr}}\label{wxexpr} - -The {\bf wxExpr} class is the building brick of expressions similar to Prolog -clauses, or objects. It can represent an expression of type long integer, float, string, word, -or list, and lists can be nested. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxExpr overview}{exproverview}, \helpref{wxExprDatabase}{wxexprdatabase} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxExpr::wxExpr}\label{wxexprconstr} - -\func{}{wxExpr}{\param{const wxString\&}{functor}} - -Construct a new clause with this form, supplying the functor name. A clause is an object -that will appear in the data file, with a list of attribute/value pairs. - -\func{}{wxExpr}{\param{wxExprType}{ type}, \param{const wxString\&}{ wordOrString = ``"}} - -Construct a new empty list, or a word (will be output with no quotes), or a string, depending on the -value of {\it type}. - -{\it type} can be {\bf wxExprList}, {\bf wxExprWord}, or {\bf wxExprString}. If {\it type} is wxExprList, -the value of {\it wordOrString} will be ignored. - -\func{}{wxExpr}{\param{long}{ value}} - -Construct an integer expression. - -\func{}{wxExpr}{\param{float}{ value}} - -Construct a floating point expression. - -\func{}{wxExpr}{\param{wxList* }{value}} - -Construct a list expression. The list's nodes' data should -themselves be {\bf wxExpr}s. - -The current version of this library no longer uses the {\bf wxList} -internally, so this constructor turns the list into its internal -format (assuming a non-nested list) and then deletes the supplied -list. - -\membersection{wxExpr::\destruct{wxExpr}} - -\func{}{\destruct{wxExpr}}{\void} - -Destructor. - -\membersection{wxExpr::AddAttributeValue}\label{wxexpraddattributevalue} - -Use these on clauses ONLY. Note that the functions for adding strings -and words must be differentiated by function name which is why -they are missing from this group (see \helpref{wxExpr::AddAttributeValueString}{wxexpraddattributevaluestring} and -\rtfsp\helpref{wxExpr::AddAttributeValueWord}{wxexpraddattributevalueword}). - -\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{float }{value}} - -Adds an attribute and floating point value pair to the clause. - -\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{long }{value}} - -Adds an attribute and long integer value pair to the clause. - -\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxList* }{value}} - -Adds an attribute and list value pair to the clause, converting the list into -internal form and then deleting {\bf value}. Note that the list should not contain -nested lists (except if in internal {\bf wxExpr} form.) - -\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxExpr* }{value}} - -Adds an attribute and wxExpr value pair to the clause. Do not delete\rtfsp -{\it value} once this function has been called. - -\membersection{wxExpr::AddAttributeValueString}\label{wxexpraddattributevaluestring} - -\func{void}{AddAttributeValueString}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}} - -Adds an attribute and string value pair to the clause. - -\membersection{wxExpr::AddAttributeValueStringList}\label{wxexpraddattributevaluestringlist} - -\func{void}{AddAttributeValueStringList}{\param{const wxString\&}{ attribute}, \param{wxList* }{value}} - -Adds an attribute and string list value pair to the clause. - -Note that the list passed to this function is a list of strings, NOT a list -of {\bf wxExpr}s; it gets turned into a list of {\bf wxExpr}s -automatically. This is a convenience function, since lists of strings -are often manipulated in C++. - -\membersection{wxExpr::AddAttributeValueWord}\label{wxexpraddattributevalueword} - -\func{void}{AddAttributeValueWord}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}} - -Adds an attribute and word value pair to the clause. - -\membersection{wxExpr::Append}\label{wxexprappend} - -\func{void}{Append}{\param{wxExpr*}{ value}} - -Append the {\bf value} to the end of the list. `this' must be a list. - -\membersection{wxExpr::Arg}\label{wxexprarg} - -\constfunc{wxExpr* }{Arg}{\param{wxExprType}{ type}, \param{int}{ n}} - -Get nth arg of the given clause (starting from 1). NULL is returned if -the expression is not a clause, or {\it n} is invalid, or the given type -does not match the actual type. See also \helpref{wxExpr::Nth}{wxexprnth}. - -\membersection{wxExpr::Insert}\label{wxexprinsert} - -\func{void}{Insert}{\param{wxExpr* }{value}} - -Insert the {\bf value} at the start of the list. `this' must be a list. - -\membersection{wxExpr::GetAttributeValue}\label{wxexprgetattributevalue} - -These functions are the easiest way to retrieve attribute values, by -passing a pointer to variable. If the attribute is present, the -variable will be filled with the appropriate value. If not, the -existing value is left alone. This style of retrieving attributes -makes it easy to set variables to default values before calling these -functions; no code is necessary to check whether the attribute is -present or not. - -\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxString\&}{ value}} - -Retrieve a string (or word) value. - -\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{float\& }{value}} - -Retrieve a floating point value. - -\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{int\& }{value}} - -Retrieve an integer value. - -\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{long\& }{value}} - -Retrieve a long integer value. - -\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxExpr**}{ value}} - -Retrieve a wxExpr pointer. - -\membersection{wxExpr::GetAttributeValueStringList}\label{wxexprgetattributestringlist} - -\constfunc{void}{GetAttributeValueStringList}{\param{const wxString\&}{attribute}, \param{wxList* }{value}} - -Use this on clauses ONLY. See above for comments on this style of -attribute value retrieval. This function expects to receive a pointer to -a new list (created by the calling application); it will append strings -to the list if the attribute is present in the clause. - -\membersection{wxExpr::AttributeValue}\label{wxexprattributevalue} - -\constfunc{wxExpr*}{AttributeValue}{\param{const wxString\&}{ word}} - -Use this on clauses ONLY. Searches the clause for an attribute -matching {\it word}, and returns the value associated with it. - -\membersection{wxExpr::Copy}\label{wxexprcopy} - -\constfunc{wxExpr*}{Copy}{\void} - -Recursively copies the expression, allocating new storage space. - -\membersection{wxExpr::DeleteAttributeValue}\label{wxexprdeletattributevalue} - -\func{void}{DeleteAttributeValue}{\param{const wxString\&}{ attribute}} - -Use this on clauses only. Deletes the attribute and its value (if any) from the -clause. - -\membersection{wxExpr::Functor}\label{wxexprfunctor} - -\constfunc{wxString}{Functor}{\void} - -Use this on clauses only. Returns the clause's functor (object name). - -\membersection{wxExpr::GetClientData}\label{wxexprgetclientdata} - -\constfunc{wxObject*}{GetClientData}{\void} - -Retrieve arbitrary data stored with this clause. This can be useful when -reading in data for storing a pointer to the C++ object, so when another -clause makes a reference to this clause, its C++ object can be retrieved. -See \helpref{wxExpr::SetClientData}{wxexprsetclientdata}. - -\membersection{wxExpr::GetFirst}\label{wxexprgetfirst} - -\constfunc{wxExpr*}{GetFirst}{\void} - -If this is a list expression (or clause), gets the first element in the list. - -See also \helpref{wxExpr::GetLast}{wxexprgetlast}, \helpref{wxExpr::GetNext}{wxexprgetnext}, \helpref{wxExpr::Nth}{wxexprnth}. - -\membersection{wxExpr::GetLast}\label{wxexprgetlast} - -\constfunc{wxExpr*}{GetLast}{\void} - -If this is a list expression (or clause), gets the last element in the list. - -See also \helpref{wxExpr::GetFirst}{wxexprgetfirst}, \helpref{wxExpr::GetNext}{wxexprgetnext}, \helpref{wxExpr::Nth}{wxexprnth}. - -\membersection{wxExpr::GetNext}\label{wxexprgetnext} - -\constfunc{wxExpr*}{GetNext}{\void} - -If this is a node in a list (any wxExpr may be a node in a list), gets the -next element in the list. - -See also \helpref{wxExpr::GetFirst}{wxexprgetfirst}, \helpref{wxExpr::GetLast}{wxexprgetlast}, \helpref{wxExpr::Nth}{wxexprnth}. - -\membersection{wxExpr::IntegerValue}\label{wxexprintegervalue} - -\constfunc{long}{IntegerValue}{\void} - -Returns the integer value of the expression. - -\membersection{wxExpr::Nth}\label{wxexprnth} - -\constfunc{wxExpr*}{Nth}{\param{int}{ n}} - -Get nth arg of the given list expression (starting from 0). NULL is returned if -the expression is not a list expression, or {\it n} is invalid. See also \helpref{wxExpr::Arg}{wxexprarg}. - -Normally, you would use attribute-value pairs to add and retrieve data -from objects (clauses) in a data file. However, if the data gets complex, -you may need to store attribute values as lists, and pick them apart -yourself. - -\membersection{wxExpr::RealValue}\label{wxexprrealvalue} - -\constfunc{float}{RealValue}{\void} - -Returns the floating point value of the expression. - -\membersection{wxExpr::SetClientData}\label{wxexprsetclientdata} - -\func{void}{SetClientData}{\param{wxObject *}{data}} - -Associate arbitrary data with this clause. This can be useful when -reading in data for storing a pointer to the C++ object, so when another -clause makes a reference to this clause, its C++ object can be retrieved. -See \helpref{wxExpr::GetClientData}{wxexprgetclientdata}. - -\membersection{wxExpr::StringValue}\label{wxexprstringvalue} - -\constfunc{wxString}{StringValue}{\void} - -Returns the string value of the expression. - -\membersection{wxExpr::Type}\label{wxexprtype} - -\constfunc{wxExprType}{Type}{\void} - -Returns the type of the expression. {\bf wxExprType} is defined as follows: - -\begin{verbatim} -typedef enum { - wxExprNull, - wxExprInteger, - wxExprReal, - wxExprWord, - wxExprString, - wxExprList -} wxExprType; -\end{verbatim} - -\membersection{wxExpr::WordValue}\label{wxexprwordvalue} - -\constfunc{wxString}{WordValue}{\void} - -Returns the word value of the expression. - -\membersection{wxExpr::WriteClause}\label{wxexprwriteprologclause} - -\func{void}{WriteClause}{\param{FILE *}{ stream}} - -Writes the clause to the given stream in Prolog format. Not normally needed, since -the whole {\bf wxExprDatabase} will usually be written at once. The format is: -functor, open parenthesis, list of comma-separated expressions, close parenthesis, -full stop. - -\membersection{wxExpr::WriteExpr}\label{wxexprwriteexpr} - -\func{void}{WriteExpr}{\param{FILE *}{ stream}} - -Writes the expression (not clause) to the given stream in Prolog -format. Not normally needed, since the whole {\bf wxExprDatabase} will -usually be written at once. Lists are written in square bracketed, -comma-delimited format. - -\membersection{Functions and macros} - -Below are miscellaneous functions and macros associated with wxExpr objects. - -\func{bool}{wxExprIsFunctor}{\param{wxExpr *}{expr}, \param{const wxString\&}{ functor}} - -Checks that the functor of {\it expr} is {\it functor}. - -\func{void}{wxExprCleanUp}{\void} - -Cleans up the wxExpr system (YACC/LEX buffers) to avoid memory-checking warnings as the program exits. - -\begin{verbatim} -#define wxMakeInteger(x) (new wxExpr((long)x)) -#define wxMakeReal(x) (new wxExpr((float)x)) -#define wxMakeString(x) (new wxExpr(PrologString, x)) -#define wxMakeWord(x) (new wxExpr(PrologWord, x)) -#define wxMake(x) (new wxExpr(x)) -\end{verbatim} - -Macros to help make wxExpr objects. - -\section{\class{wxExprDatabase}}\label{wxexprdatabase} - -The {\bf wxExprDatabase} class represents a database, or list, -of Prolog-like expressions. Instances of this class are used for reading, -writing and creating data files. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist}\\ -\helpref{wxObject}{wxobject} - -\wxheading{See also} - -\helpref{wxExpr overview}{exproverview}, \helpref{wxExpr}{wxexpr} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxExprDatabase::wxExprDatabase}\label{wxexprdatabaseconstr} - -\func{void}{wxExprDatabase}{\param{proioErrorHandler}{ handler = 0}} - -Construct a new, unhashed database, with an optional error handler. The -error handler must be a function returning a bool and taking an integer and a string -argument. When an error occurs when reading or writing a database, this function is -called. The error is given as the first argument (currently one of WXEXPR\_ERROR\_GENERAL, -WXEXPR\_ERROR\_SYNTAX) and an error message is given as the second argument. If FALSE -is returned by the error handler, processing of the wxExpr operation stops. - -Another way of handling errors is simply to call \helpref{wxExprDatabase::GetErrorCount}{wxexprdatabasegeterrorcount} after -the operation, to check whether errors have occurred, instead of installing an error handler. -If the error count is more than zero, \helpref{wxExprDatabase::Write}{wxexprdatabasewrite} and -\rtfsp\helpref{wxExprDatabase::Read}{wxexprdatabaseread} will return FALSE to -the application. - -For example: - -\begin{verbatim} -bool myErrorHandler(int err, chat *msg) -{ - if (err == WXEXPR_ERROR_SYNTAX) - { - wxMessageBox(msg, "Syntax error"); - } - return FALSE; -} - -wxExprDatabase database(myErrorHandler); -\end{verbatim} - - -\func{}{wxExprDatabase}{\param{wxExprType}{ type}, \param{const wxString\&}{attribute}, -\rtfsp\param{int}{ size = 500}, \param{proioErrorHandler}{ handler = 0}} - -Construct a new database hashed on a combination of the clause functor and -a named attribute (often an integer identification). - -See above for an explanation of the error handler. - -\membersection{wxExprDatabase::\destruct{wxExprDatabase}} - -\func{}{\destruct{wxExprDatabase}}{\void} - -Delete the database and contents. - -\membersection{wxExprDatabase::Append}\label{wxexprdatabaseappend} - -\func{void}{Append}{\param{wxExpr* }{clause}} - -Append a clause to the end of the database. If the database is hashing, -the functor and a user-specified attribute will be hashed upon, giving the -option of random access in addition to linear traversal of the database. - -\membersection{wxExprDatabase::BeginFind}\label{wxexprdatabasebeginfind} - -\func{void}{BeginFind}{\void} - -Reset the current position to the start of the database. Subsequent -\rtfsp\helpref{wxExprDatabase::FindClause}{wxexprdatabasefindclause} calls will move the pointer. - -\membersection{wxExprDatabase::ClearDatabase}\label{wxexprdatabasecleardatabase} - -\func{void}{ClearDatabase}{\void} - -Clears the contents of the database. - -\membersection{wxExprDatabase::FindClause}\label{wxexprdatabasefindclause} - -Various ways of retrieving clauses from the database. A return -value of NULL indicates no (more) clauses matching the given criteria. -Calling the functions repeatedly retrieves more matching clauses, if any. - -\func{wxExpr* }{FindClause}{\param{long}{ id}} - -Find a clause based on the special ``id'' attribute. - -\func{wxExpr* }{FindClause}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}} - -Find a clause which has the given attribute set to the given string or word value. - -\func{wxExpr*}{FindClause}{\param{const wxString\&}{ attribute}, \param{long}{ value}} - -Find a clause which has the given attribute set to the given integer value. - -\func{wxExpr*}{FindClause}{\param{const wxString\&}{ attribute}, \param{float}{ value}} - -Find a clause which has the given attribute set to the given floating point value. - -\membersection{wxExprDatabase::FindClauseByFunctor}\label{wxexprdatabasefindclausebyfunctor} - -\func{wxExpr*}{FindClauseByFunctor}{\param{const wxString\&}{ functor}} - -Find the next clause with the specified functor. - -\membersection{wxExprDatabase::GetErrorCount}\label{wxexprdatabasegeterrorcount} - -\constfunc{int}{GetErrorCount}{\void} - -Returns the number of errors encountered during the last read or write operation. - -\membersection{wxExprDatabase::HashFind}\label{wxexprdatabasehashfind} - -\constfunc{wxExpr*}{HashFind}{\param{const wxString\&}{ functor}, \param{long}{ value}} - -Finds the clause with the given functor and with the attribute specified -in the database constructor having the given integer value. - -For example, - -\begin{verbatim} -// Hash on a combination of functor and integer "id" attribute when reading in -wxExprDatabase db(wxExprInteger, "id"); - -// Read it in -db.ReadProlog("data"); - -// Retrieve a clause with specified functor and id -wxExpr *clause = db.HashFind("node", 24); -\end{verbatim} - -This would retrieve a clause which is written: {\tt node(id = 24, ..., )}. - -\func{wxExpr*}{HashFind}{\param{const wxString\&}{ functor}, \param{const wxString\&}{ value}} - -Finds the clause with the given functor and with the attribute specified -in the database constructor having the given string value. - -\membersection{wxExprDatabase::Read}\label{wxexprdatabaseread} - -\func{bool}{Read}{\param{const wxString\&}{ filename}} - -Reads in the given file, returning TRUE if successful. - -\membersection{wxExprDatabase::ReadFromString}\label{wxexprdatabasereadfromstring} - -\func{bool}{ReadFromString}{\param{const wxString\&}{ buffer}} - -Reads a Prolog database from the given string buffer, returning TRUE if -successful. - -\membersection{wxExprDatabase::Write}\label{wxexprdatabasewrite} - -\func{bool}{Write}{\param{FILE *}{stream}} - -\func{bool}{Write}{\param{const wxString\&}{ filename}} - -Writes the database as a Prolog-format file. - - diff --git a/docs/latex/wx/fildatob.tex b/docs/latex/wx/fildatob.tex deleted file mode 100644 index 149bbb2c94..0000000000 --- a/docs/latex/wx/fildatob.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{\class{wxFileDataObject}}\label{wxfiledataobject} - -wxFileDataObject is a specialization of wxDataObject for file names. - -\wxheading{Derived from} - -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileDataObject::wxFileDataObject}\label{wxfiledataobjectwxfiledataobject} - -\func{}{wxFileDataObject}{\void} - -Constructor. - -\membersection{wxFileDataObject::GetFormat}\label{wxfiledataobjectgetformat} - -\constfunc{virtual wxDataFormat}{GetFormat}{\void} - -Returns wxDF\_FILENAME. - -\membersection{wxFileDataObject::AddFile}\label{wxfiledataobjectaddfile} - -\func{virtual void}{AddFile}{\param{const wxString\& }{file}} - -Adds a filename to the data object. - -\membersection{wxFileDataObject::GetFiles}\label{wxfiledataobjectgetfiles} - -\constfunc{virtual wxString}{GetFiles}{\void} - -Returns files as a zero-separated list. - diff --git a/docs/latex/wx/fildrptg.tex b/docs/latex/wx/fildrptg.tex deleted file mode 100644 index f483f11a5a..0000000000 --- a/docs/latex/wx/fildrptg.tex +++ /dev/null @@ -1,66 +0,0 @@ -\section{\class{wxFileDropTarget}}\label{wxfiledroptarget} - - A drop target which accepts files (dragged from File Manager or Explorer). - -\wxheading{Derived from} - -\helpref{wxDropTarget}{wxdroptarget} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, -\helpref{wxDropTarget}{wxdroptarget}, \helpref{wxTextDropTarget}{wxtextdroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileDropTarget::wxFileDropTarget}\label{wxfiledroptargetwxfiledroptarget} - -\func{}{wxFileDropTarget}{\void} - -Constructor. - -\membersection{wxFileDropTarget::GetFormatCount}\label{wxfiledroptargetgetformatcount} - -\func{virtual size\_t}{GetFormatCount}{\void} - -See \helpref{wxDropTarget::GetFormatCount}{wxdroptargetgetformatcount}. This function is implemented -appropriately for files. - -\membersection{wxFileDropTarget::GetFormat}\label{wxfiledroptargetgetformat} - -\constfunc{virtual wxDataFormat}{GetFormat}{\param{size\_t }{n}} - -See \helpref{wxDropTarget::GetFormat}{wxdroptargetgetformat}. This function is implemented -appropriately for files. - -\membersection{wxFileDropTarget::OnDrop}\label{wxfiledroptargetondrop} - -\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void }{*data}, \param{size\_t }{size}} - -See \helpref{wxDropTarget::OnDrop}{wxdroptargetondrop}. This function is implemented -appropriately for files, and calls \helpref{wxFileDropTarget::OnDropFiles}{wxfiledroptargetondropfiles}. - -\membersection{wxFileDropTarget::OnDropFiles}\label{wxfiledroptargetondropfiles} - -\func{virtual bool}{OnDropFiles}{\param{long }{x}, \param{long }{y}, \param{size\_t }{nFiles}, \param{const char * const}{files[]}} - -Override this function to receive dropped files. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\docparam{nFiles}{The number of files being dropped.} - -\docparam{files}{An array of filenames.} - -\wxheading{Return value} - -Return TRUE to accept the data, FALSE to veto the operation. - diff --git a/docs/latex/wx/file.tex b/docs/latex/wx/file.tex deleted file mode 100644 index 73b55f5b24..0000000000 --- a/docs/latex/wx/file.tex +++ /dev/null @@ -1,267 +0,0 @@ -\section{\class{wxFile}}\label{wxfile} - -A wxFile performs raw file I/O. This is a very small class designed to -minimize the overhead of using it - in fact, there is hardly any overhead at -all, but using it brings you automatic error checking and hides differences -between platforms and compilers. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{Constants} - -wx/file.h defines the following constants: - -{\small -\begin{verbatim} -#define wxS_IRUSR 00400 -#define wxS_IWUSR 00200 -#define wxS_IXUSR 00100 - -#define wxS_IRGRP 00040 -#define wxS_IWGRP 00020 -#define wxS_IXGRP 00010 - -#define wxS_IROTH 00004 -#define wxS_IWOTH 00002 -#define wxS_IXOTH 00001 - -// default mode for the new files: corresponds to umask 022 -#define wxS_DEFAULT (wxS_IRUSR | wxS_IWUSR | wxS_IRGRP | wxS_IWGRP | wxS_IROTH | wxS_IWOTH) -\end{verbatim} -} - -These constants define the file access rights and are used with -\helpref{wxFile::Create}{wxfilecreate} and \helpref{wxFile::Open}{wxfileopen}. - -The {\it OpenMode} enumeration defines the different modes for opening a file, -it's defined inside wxFile class so its members should be specified with {\it wxFile::} scope -resolution prefix. It is also used with \helpref{wxFile::Access}{wxfileaccess} function. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt% -\twocolitem{{\bf wxFile::read}}{Open file for reading or test if it can be opened for reading with Access()} -\twocolitem{{\bf wxFile::write}}{Open file for writing deleting the contents of the file if it already exists -or test if it can be opened for writing with Access()} -\twocolitem{{\bf wxFile::read\_write}}{Open file for reading and writing; can not be used with Access()} -\twocolitem{{\bf wxFile::write\_append}}{Open file for appending: the file is opened for writing, but the old -contents of the file is not erased and the file pointer is initially placed at the end of the file; -can not be used with Access()} -\end{twocollist} - -Other constants defined elsewhere but used by wxFile functions are wxInvalidOffset which represents an -invalid value of type {\it off\_t} and is returned by functions returning {\it off\_t} on error and the seek -mode constants used with \helpref{Seek()}{wxfileseek}: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt% -\twocolitem{{\bf wxFromStart}}{Count offset from the start of the file} -\twocolitem{{\bf wxFromCurrent}}{Count offset from the current position of the file pointer} -\twocolitem{{\bf wxFromEnd}}{Count offset from the end of the file (backwards)} -\end{twocollist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFile::wxFile}\label{wxfileconstr} - -\func{}{wxFile}{\void} - -Default constructor. - -\func{}{wxFile}{\param{const char*}{ filename}, \param{wxFile::OpenMode}{ mode = wxFile::read}} - -Opens a file with the given mode. As there is no way to return whether the -operation was successful or not from the constructor you should test the -return value of \helpref{IsOpened}{wxfileisopened} to check that it didn't -fail. - -\func{}{wxFile}{\param{int}{ fd}} - -Opens a file with the given file descriptor, which has already been opened. - -\wxheading{Parameters} - -\docparam{filename}{The filename.} - -\docparam{mode}{The mode in which to open the file. May be one of {\bf wxFile::read}, {\bf wxFile::write} and {\bf wxFile::read\_write}.} - -\docparam{fd}{An existing file descriptor (see \helpref{Attach()}{wxfileattach} for the list of predefined descriptors)} - -\membersection{wxFile::\destruct{wxFile}} - -\func{}{\destruct{wxFile}}{\void} - -Destructor will close the file. - -NB: it is not virtual so you should {\it not} derive from wxFile! - -\membersection{wxFile::Access}\label{wxfileaccess} - -\func{static bool}{Access}{\param{const char *}{ name}, \param{OpenMode}{ mode}} - -This function verifies if we may access the given file in specified mode. Only -values of wxFile::read or wxFile::write really make sense here. - -\membersection{wxFile::Attach}\label{wxfileattach} - -\func{void}{Attach}{\param{int}{ fd}} - -Attaches an existing file descriptor to the wxFile object. Example of predefined -file descriptors are 0, 1 and 2 which correspond to stdin, stdout and stderr (and -have symbolic names of wxFile::fd\_stdin, wxFile::fd\_stdout and wxFile::fd\_stderr). - -The descriptor should be already opened and it will be closed by wxFile -object. - -\membersection{wxFile::Close}\label{wxfileclose} - -\func{void}{Close}{\void} - -Closes the file. - -\membersection{wxFile::Create}\label{wxfilecreate} - -\func{bool}{Create}{\param{const char*}{ filename}, \param{bool}{ overwrite = FALSE}, \param{int }{access = wxS\_DEFAULT}} - -Creates a file for writing. If the file already exists, setting {\bf overwrite} to TRUE -will ensure it is overwritten. - -\membersection{wxFile::Detach}\label{wxfiledetach} - -\func{void}{Detach}{\void} - -Get back a file descriptor from wxFile object - the caller is responsible for closing the file if this -descriptor is opened. \helpref{IsOpened()}{wxfileisopened} will return FALSE after call to Detach(). - -\membersection{wxFile::fd}\label{wxfilefd} - -\constfunc{int}{fd}{\void} - -Returns the file descriptor associated with the file. - -\membersection{wxFile::Eof}\label{wxfileeof} - -\constfunc{bool}{Eof}{\void} - -Returns TRUE if the end of the file has been reached. - -\membersection{wxFile::Exists}\label{wxfileexists} - -\func{static bool}{Exists}{\param{const char*}{ filename}} - -Returns TRUE if the given name specifies an existing regular file. - -\membersection{wxFile::Flush}\label{wxfileflush} - -\func{bool}{Flush}{\void} - -Flushes the file descriptor. - -Note that wxFile::Flush is not implemented on some Windows compilers -due to a missing fsync function, which reduces the usefulness of this function -(it can still be called but it will do nothing on unsupported compilers). - -\membersection{wxFile::IsOpened}\label{wxfileisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns TRUE if the file has been opened. - -\membersection{wxFile::Length}\label{wxfilelength} - -\constfunc{off\_t}{Length}{\void} - -Returns the length of the file. - -\membersection{wxFile::Open}\label{wxfileopen} - -\func{bool}{Open}{\param{const char*}{ filename}, \param{wxFile::OpenMode}{ mode = wxFile::read}} - -Opens the file, returning TRUE if successful. - -\wxheading{Parameters} - -\docparam{filename}{The filename.} - -\docparam{mode}{The mode in which to open the file. May be one of {\bf wxFile::read}, {\bf wxFile::write} and {\bf wxFile::read\_write}.} - -\membersection{wxFile::Read}\label{wxfileread} - -\func{off\_t}{Read}{\param{void*}{ buffer}, \param{off\_t}{ count}} - -Reads the specified number of bytes into a buffer, returning the actual number read. - -\wxheading{Parameters} - -\docparam{buffer}{A buffer to receive the data.} - -\docparam{count}{The number of bytes to read.} - -\wxheading{Return value} - -The number of bytes read, or the symbol {\bf wxInvalidOffset} (-1) if there was an error. - -\membersection{wxFile::Seek}\label{wxfileseek} - -\func{off\_t}{Seek}{\param{off\_t }{ofs}, \param{wxFile::SeekMode }{mode = wxFile::FromStart}} - -Seeks to the specified position. - -\wxheading{Parameters} - -\docparam{ofs}{Offset to seek to.} - -\docparam{mode}{One of {\bf wxFile::FromStart}, {\bf wxFile::FromEnd}, {\bf wxFile::FromCurrent}.} - -\wxheading{Return value} - -The actual offset position achieved, or wxInvalidOffset on failure. - -\membersection{wxFile::SeekEnd}\label{wxfileseekend} - -\func{off\_t}{SeekEnd}{\param{off\_t }{ofs = 0}} - -Moves the file pointer to the specified number of bytes before the end of the file. - -\wxheading{Parameters} - -\docparam{ofs}{Number of bytes before the end of the file.} - -\wxheading{Return value} - -The actual offset position achieved, or wxInvalidOffset on failure. - -\membersection{wxFile::Tell}\label{wxfiletell} - -\constfunc{off\_t}{Tell}{\void} - -Returns the current position or wxInvalidOffset if file is not opened or if another -error occured. - -\membersection{wxFile::Write}\label{wxfilewrite} - -\func{bool}{Write}{\param{const void*}{ buffer}, \param{off\_t}{ count}} - -Writes the specified number of bytes from a buffer. - -\wxheading{Parameters} - -\docparam{buffer}{A buffer containing the data.} - -\docparam{count}{The number of bytes to write.} - -\wxheading{Return value} - -TRUE if the operation was successful. - -\membersection{wxFile::Write}\label{wxfilewrites} - -\func{bool}{Write}{\param{const wxString\& }{s}} - -Writes the contents of the string to the file, returns TRUE on success. - diff --git a/docs/latex/wx/filedlg.tex b/docs/latex/wx/filedlg.tex deleted file mode 100644 index f21fb1ad4e..0000000000 --- a/docs/latex/wx/filedlg.tex +++ /dev/null @@ -1,180 +0,0 @@ -\section{\class{wxFileDialog}}\label{wxfiledialog} - -This class represents the file chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxFileDialog overview}{wxfiledialogoverview}, \helpref{wxFileSelector}{wxfileselector} - -\wxheading{Remarks} - -Pops up a file selector box. In Windows, this is the common file selector -dialog. In X, this is a file selector box with somewhat less functionality. -The path and filename are distinct elements of a full file pathname. -If path is ``", the current directory will be used. If filename is ``", -no default filename will be supplied. The wildcard determines what files -are displayed in the file selector, and file extension supplies a type -extension for the required filename. Flags may be a combination of wxOPEN, -wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0. They are only significant -at present in Windows. - -Both the X and Windows versions implement a wildcard filter. Typing a -filename containing wildcards (*, ?) in the filename text item, and -clicking on Ok, will result in only those files matching the pattern being -displayed. In the X version, supplying no default name will result in the -wildcard filter being inserted in the filename text item; the filter is -ignored if a default name is supplied. - -Under Windows (only), the wildcard may be a specification for multiple -types of file with a description for each, such as: - -\begin{verbatim} - "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif" -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileDialog::wxFileDialog}\label{wxfiledialogconstr} - -\func{}{wxFileDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message = "Choose a file"},\rtfsp -\param{const wxString\& }{defaultDir = ""}, \param{const wxString\& }{defaultFile = ``"},\rtfsp -\param{const wxString\& }{wildcard = ``*.*"}, \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor. Use \helpref{wxFileDialog::ShowModal}{wxfiledialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{defaultDir}{The default directory, or the empty string.} - -\docparam{defaultFile}{The default filename, or the empty string.} - -\docparam{wildcard}{A wildcard, such as ``*.*".} - -\docparam{style}{A dialog style. A bitlist of: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxOPEN}}{This is an open dialog (Windows only).} -\twocolitem{{\bf wxSAVE}}{This is a save dialog (Windows only).} -\twocolitem{{\bf wxHIDE\_READONLY}}{Hide read-only files (Windows only).} -\twocolitem{{\bf wxOVERWRITE\_PROMPT}}{Prompt for a conformation if a file will be overridden (Windows only).} -\end{twocollist}% -} - -\docparam{pos}{Dialog position. Not implemented.} - -\membersection{wxFileDialog::\destruct{wxFileDialog}} - -\func{}{\destruct{wxFileDialog}}{\void} - -Destructor. - -\membersection{wxFileDialog::GetDirectory}\label{wxfiledialoggetdirectory} - -\constfunc{wxString}{GetDirectory}{\void} - -Returns the default directory. - -\membersection{wxFileDialog::GetFilename}\label{wxfiledialoggetfilename} - -\constfunc{wxString}{GetFilename}{\void} - -Returns the default filename. - -\membersection{wxFileDialog::GetFilterIndex}\label{wxfiledialoggetfilterindex} - -\constfunc{int}{GetFilterIndex}{\void} - -Returns the index into the list of filters supplied, optionally, in the wildcard parameter. -Before the dialog is shown, this is the index which will be used when the dialog is first displayed. -After the dialog is shown, this is the index selected by the user. - -\membersection{wxFileDialog::GetMessage}\label{wxfiledialoggetmessage} - -\constfunc{wxString}{GetMessage}{\void} - -Returns the message that will be displayed on the dialog. - -\membersection{wxFileDialog::GetPath}\label{wxfiledialoggetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the full path (directory and filename) of the selected file. - -\membersection{wxFileDialog::GetStyle}\label{wxfiledialoggetstyle} - -\constfunc{long}{GetStyle}{\void} - -Returns the dialog style. - -\membersection{wxFileDialog::GetWildcard}\label{wxfiledialoggetwildcard} - -\constfunc{wxString}{GetWildcard}{\void} - -Returns the file dialog wildcard. - -\membersection{wxFileDialog::SetDirectory}\label{wxfiledialogsetdirectory} - -\func{void}{SetDirectory}{\param{const wxString\& }{directory}} - -Sets the default directory. - -\membersection{wxFileDialog::SetFilename}\label{wxfiledialogsetfilename} - -\func{void}{SetFilename}{\param{const wxString\& }{setfilename}} - -Sets the default filename. - -\membersection{wxFileDialog::SetFilterIndex}\label{wxfiledialogsetfilterindex} - -\func{void}{SetFilterIndex}{\param{int }{filterIndex}} - -Sets the default filter index, starting from zero. Windows only. - -\membersection{wxFileDialog::SetMessage}\label{wxfiledialogsetmessage} - -\func{void}{SetMessage}{\param{const wxString\& }{message}} - -Sets the message that will be displayed on the dialog. - -\membersection{wxFileDialog::SetPath}\label{wxfiledialogsetpath} - -\func{void}{SetPath}{\param{const wxString\& }{path}} - -Sets the path (the combined directory and filename that will be returned when the dialog is dismissed). - -\membersection{wxFileDialog::SetStyle}\label{wxfiledialogsetstyle} - -\func{void}{SetStyle}{\param{long }{style}} - -Sets the dialog style. See \helpref{wxFileDialog::wxFileDialog}{wxfiledialogconstr} for details. - -\membersection{wxFileDialog::SetWildcard}\label{wxfiledialogsetwildcard} - -\func{void}{SetWildcard}{\param{const wxString\& }{wildCard}} - -Sets the wildcard, which in Windows can contain multiple file types. - -\membersection{wxFileDialog::ShowModal}\label{wxfiledialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxOK\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/filehist.tex b/docs/latex/wx/filehist.tex deleted file mode 100644 index 2804384dc2..0000000000 --- a/docs/latex/wx/filehist.tex +++ /dev/null @@ -1,128 +0,0 @@ -\section{\class{wxFileHistory}}\label{wxfilehistory} - -The wxFileHistory encapsulates a user interface convenience, the -list of most recently visited files as shown on a menu (usually the File menu). - -wxFileHistory can manage one or more file menus. More than one menu may be required -in an MDI application, where the file history should appear on each MDI child menu -as well as the MDI parent frame. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxFileHistory overview}{wxfilehistoryoverview}, \helpref{wxDocManager}{wxdocmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileHistory::m\_fileHistory} - -\member{char**}{m\_fileHistory} - -A character array of strings corresponding to the most recently opened -files. - -\membersection{wxFileHistory::m\_fileHistoryN} - -\member{int}{m\_fileHistoryN} - -The number of files stored in the history array. - -\membersection{wxFileHistory::m\_fileMaxFiles} - -\member{int}{m\_fileMaxFiles} - -The maximum number of files to be stored and displayed on the menu. - -\membersection{wxFileHistory::m\_fileMenu} - -\member{wxMenu*}{m\_fileMenu} - -The file menu used to display the file history list (if enabled). - -\membersection{wxFileHistory::wxFileHistory} - -\func{}{wxFileHistory}{\param{int}{ maxFiles = 9}} - -Constructor. Pass the maximum number of files that should be stored and displayed. - -\membersection{wxFileHistory::\destruct{wxFileHistory}} - -\func{}{\destruct{wxFileHistory}}{\void} - -Destructor. - -\membersection{wxFileHistory::AddFileToHistory} - -\func{void}{AddFileToHistory}{\param{const wxString\& }{filename}} - -Adds a file to the file history list, if the object has a pointer to an appropriate file menu. - -\membersection{wxFileHistory::AddFilesToMenu}\label{wxfilehistoryaddfilestomenu} - -\func{void}{AddFilesToMenu}{\void} - -Appends the files in the history list, to all menus managed by the file history object. - -\func{void}{AddFilesToMenu}{\param{wxMenu*}{ menu}} - -Appends the files in the history list, to the given menu only. - -\membersection{wxFileHistory::GetHistoryFile}\label{wxfilehistorygethistoryfile} - -\constfunc{wxString}{GetHistoryFile}{\param{int}{ index}} - -Returns the file at this index (zero-based). - -\membersection{wxFileHistory::GetMaxFiles} - -\constfunc{int}{GetMaxFiles}{\void} - -Returns the maximum number of files that can be stored. - -\membersection{wxFileHistory::GetNoHistoryFiles} - -\constfunc{int}{GetNoHistoryFiles}{\void} - -Returns the number of files currently stored in the file history. - -\membersection{wxFileHistory::Load} - -\func{void}{Load}{\param{wxConfigBase\& }{config}} - -Loads the file history from the given config object. This function should be called explicitly by the application. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - -\membersection{wxFileHistory::RemoveMenu} - -\func{void}{RemoveMenu}{\param{wxMenu* }{menu}} - -Removes this menu from the list of those managed by this object. - -\membersection{wxFileHistory::Save} - -\func{void}{Save}{\param{wxConfigBase\& }{config}} - -Saves the file history into the given config object. This must be called -explicitly by the application. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - -\membersection{wxFileHistory::UseMenu} - -\func{void}{UseMenu}{\param{wxMenu* }{menu}} - -Adds this menu to the list of those managed by this object. - - diff --git a/docs/latex/wx/filesys.tex b/docs/latex/wx/filesys.tex deleted file mode 100644 index 25eb6181c1..0000000000 --- a/docs/latex/wx/filesys.tex +++ /dev/null @@ -1,96 +0,0 @@ -% -% automatically generated by HelpGen from -% filesystem.tex at 21/Mar/99 23:00:52 -% - -\section{\class{wxFileSystem}}\label{wxfilesystem} - -This class provides interface for opening files on different -file systems. It can handle absolute and/or local filenames. -It uses system of \helpref{handlers}{wxfilesystemhandler} to -provide access to user-defined virtual file systems. - -\wxheading{Derived from} - -wxObject - -\wxheading{See Also} - -\helpref{wxFileSystemHandler}{wxfilesystemhandler}, -\helpref{wxFSFile}{wxfsfile}, -\helpref{Overview}{fs} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileSystem::wxFileSystem}\label{wxfilesystemwxfilesystem} - -\func{}{wxFileSystem}{\void} - -Constructor. - -\membersection{wxFileSystem::ChangePathTo}\label{wxfilesystemchangepathto} - -\func{void}{ChangePathTo}{\param{const wxString\& }{location}, \param{bool }{is\_dir = FALSE}} - -Sets the current location. {\it location} parameter passed to -\helpref{OpenFile}{wxfilesystemopenfile} is relative to this path. - -{\bf Caution! } Unless {\it is\_dir} is TRUE the {\it location} parameter -is not directory name but the name of the file in this directory!! All these -commands change path to "dir/subdir/" : - -\begin{verbatim} -ChangePathTo("dir/subdir/xh.htm"); -ChangePathTo("dir/subdir", TRUE); -ChangePathTo("dir/subdir/", TRUE); -\end{verbatim} - -\wxheading{Parameters} - -\docparam{location}{the new location. Its meaning depends on value of {\it is\_dir}} - -\docparam{is\_dir}{if TRUE {\it location} is new directory. If FALSE (default) -{\it location} is {\bf file in} the new directory.} - -\wxheading{Example} - -\begin{verbatim} -f = fs -> OpenFile("hello.htm"); // opens file 'hello.htm' -fs -> ChangePathTo("subdir/folder", TRUE); -f = fs -> OpenFile("hello.htm"); // opens file 'subdir/folder/hello.htm' !! -\end{verbatim} - -\membersection{wxFileSystem::GetPath}\label{wxfilesystemgetpath} - -\func{wxString}{GetPath}{\void} - -Returns actual path (set by \helpref{ChangePathTo}{wxfilesystemchangepathto}). - -\membersection{wxFileSystem::OpenFile}\label{wxfilesystemopenfile} - -\func{wxFSFile*}{OpenFile}{\param{const wxString\& }{location}} - -Opens file and returns pointer to \helpref{wxFSFile}{wxfsfile} object -or NULL if failed. It first tries to open the file in relative scope -(based on value passed to ChangePathTo() method) and then as an -absolute path. - -\membersection{wxFileSystem::AddHandler}\label{wxfilesystemaddhandler} - -\func{static void}{AddHandler}{\param{wxFileSystemHandler }{*handler}} - -This static function adds new handler into the list of handlers. -The \helpref{handlers}{wxfilesystemhandler} provide access to virtual FS. - -\wxheading{Note} - -You can call: - -\begin{verbatim} -wxFileSystem::AddHandler(new My_FS_Handler); -\end{verbatim} - -This is because (a) AddHandler is a static method, and (b) the handlers -are deleted in wxFileSystem's destructor so that you don't have to -care about it. - diff --git a/docs/latex/wx/filesysh.tex b/docs/latex/wx/filesysh.tex deleted file mode 100644 index 80a02a6edb..0000000000 --- a/docs/latex/wx/filesysh.tex +++ /dev/null @@ -1,121 +0,0 @@ -% -% automatically generated by HelpGen from -% filesystemhandler.tex at 21/Mar/99 23:00:52 -% - -\section{\class{wxFileSystemHandler}}\label{wxfilesystemhandler} - -wxFileSystemHandler (or derived classes to be exact) is used -to access virtual file systems. It's public interface consists -from two methods: \helpref{CanOpen}{wxfilesystemhandlercanopen} -and \helpref{OpenFile}{wxfilesystemhandleropenfile}. -It provides additional protected methods to simplify process -of opening the file : GetProtocol, GetLeftLocation, GetRightLocation, -GetAnchor, GetMimeTypeFromExt. - -Please have a look at \helpref{overview}{fs} if you don't know how locations -are constructed. - -\wxheading{Notes} - -\begin{itemize} -\item The handlers are shared by all instances of wxFileSystem. - -\item wxHTML library provides handlers for local files and HTTP or FTP protocol - -\item The {\it location} parameter passed to OpenFile or CanOpen methods -is always {\bf absolute} path. You don't need to check the FS's current path! -\end{itemize} - -\wxheading{Derived from} - -wxObject - -\wxheading{See also} - -\helpref{wxFileSystem}{wxfilesystem}, -\helpref{wxFSFile}{wxfsfile}, -\helpref{Overview}{fs} - -\membersection{wxFileSystemHandler::wxFileSystemHandler}\label{wxfilesystemhandlerwxfilesystemhandler} - -\func{}{wxFileSystemHandler}{\void} - -Constructor. - -\membersection{wxFileSystemHandler::CanOpen}\label{wxfilesystemhandlercanopen} - -\func{virtual bool}{CanOpen}{\param{const wxString\& }{location}} - -Returns TRUE if the handler is able to open this file (this function doesn't -check whether the file exists or not, it only checks if it knows the protocol). -Example: - -\begin{verbatim} -bool MyHand::CanOpen(const wxString& location) -{ - return (GetProtocol(location) == "http"); -} -\end{verbatim} - -Must be overwriten in derived handlers. - -\membersection{wxFileSystemHandler::OpenFile}\label{wxfilesystemhandleropenfile} - -\func{virtual wxFSFile*}{OpenFile}{\param{wxFileSystem\& }{fs}, \param{const wxString\& }{location}} - -Opens the file and returns wxFSFile pointer or NULL if failed. - -Must be overwriten in derived handlers. - -\wxheading{Parameters} - -\docparam{fs}{Parent FS (the FS from that OpenFile was called). See ZIP handler -for details how to use it.} - -\docparam{location}{The {\bf absolute} location of file.} - -\membersection{wxFileSystemHandler::GetProtocol}\label{wxfilesystemhandlergetprotocol} - -\constfunc{wxString}{GetProtocol}{\param{const wxString\& }{location}} - -Returns protocol string extracted from {\it location}. - -Example: GetProtocol("file:myzipfile.zip\#zip:index.htm") == "zip" - -\membersection{wxFileSystemHandler::GetLeftLocation}\label{wxfilesystemhandlergetleftlocation} - -\constfunc{wxString}{GetLeftLocation}{\param{const wxString\& }{location}} - -Returns left location string extracted from {\it location}. - -Example: GetLeftLocation("file:myzipfile.zip\#zip:index.htm") == "file:myzipfile.zip" - -\membersection{wxFileSystemHandler::GetAnchor}\label{wxfilesystemhandlergetanchor} - -\constfunc{wxString}{GetAnchor}{\param{const wxString\& }{location}} - -Returns anchor if present in the location. -See \helpref{wxFSFile}{wxfsfilegetanchor} for details. - -Example : GetAnchor("index.htm\#chapter2") == "chapter2" - -{\bf Note:} anchor is NOT part of left location. - -\membersection{wxFileSystemHandler::GetRightLocation}\label{wxfilesystemhandlergetrightlocation} - -\constfunc{wxString}{GetRightLocation}{\param{const wxString\& }{location}} - -Returns right location string extracted from {\it location}. - -Example : GetRightLocation("file:myzipfile.zip\#zip:index.htm") == "index.htm" - -\membersection{wxFileSystemHandler::GetMimeTypeFromExt}\label{wxfilesystemhandlergetmimetypefromext} - -\func{wxString}{GetMimeTypeFromExt}{\param{const wxString\& }{location}} - -Returns MIME type based on {\bf extension} of {\it location}. (While wxFSFile::GetMimeType -returns real MIME type - either extension-based or queried from HTTP) - -Example : GetMimeTypeFromExt("index.htm") == "text/html" - diff --git a/docs/latex/wx/filetype.tex b/docs/latex/wx/filetype.tex deleted file mode 100644 index be2b621f19..0000000000 --- a/docs/latex/wx/filetype.tex +++ /dev/null @@ -1,204 +0,0 @@ -\section{\class{wxFileType}}\label{wxfiletype} - -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 several different ways: the program might know the file -extension and wish to find out the corresponding MIME type or, conversely, it -might want to find the right extension for the file to which it writes the -contents of given MIME type. Depending on how it was created some fields may be -unknown so the return value of all the accessors {\bf must} be checked: FALSE -will be returned if the corresponding information couldn't be found. - -The objects of this class are never created by the application code but are -returned by \helpref{wxMimeTypesManager::GetFileTypeFromMimeType}{wxmimetypesmanagergetfiletypefrommimetype} and -\helpref{wxMimeTypesManager::GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} methods. -But it's your responsability to delete the returned pointer when you're done -with it! - -% TODO describe MIME types better than this... -A brief remainder about what the MIME types are (see the RFC 1341 for more -information): basicly, it is just a pair category/type (for example, -"text/plain") where the category is a basic indication of what a file is -(examples of categories are "application", "image", "text", "binary"...) and -type is a precise definition of the document format: "plain" in the example -above means just ASCII text without any formatting, while "text/html" is the -HTML document source. - -A MIME type may have one or more associated extensions: "text/plain" will -typically correspond to the extension ".txt", but may as well be associated with -".ini" or ".conf". - -\wxheading{Derived from} - -No base class. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMimeTypesManager}{wxmimetypesmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{MessageParameters class}\label{wxfiletypemessageparameters} - -One of the most common usages of MIME is to encode an e-mail message. The MIME -type of the encoded message is an example of a {\it message parameter}. These -parameters are found in the message headers ("Content-XXX"). At the very least, -they must specify the MIME type and the version of MIME used, but almost always -they provide additional information about the message such as the original file -name or the charset (for the text documents). - -These parameters may be useful to the program used to open, edit, view or print -the message, so, for example, an e-mail client program will have to pass them to -this program. Because wxFileType itself can not know about these parameters, -it uses MessageParameters class to query them. The default implementation only -requiers the caller to provide the file name (always used by the program to be -called - it must know which file to open) and the MIME type and supposes that -there are no other parameters. If you wish to supply additional parameters, you -must derive your own class from MessageParameters and override GetParamValue() -function, for example: - -\begin{verbatim} -// provide the message parameters for the MIME type manager -class MailMessageParameters : public wxFileType::MessageParameters -{ -public: - MailMessageParameters(const wxString& filename, - const wxString& mimetype) - : wxFileType::MessageParameters(filename, mimetype) - { - } - - virtual wxString GetParamValue(const wxString& name) const - { - // parameter names are not case-sensitive - if ( name.CmpNoCase("charset") == 0 ) - return "US-ASCII"; - else - return wxFileType::MessageParameters::GetParamValue(name); - } -}; -\end{verbatim} - -Now you only need to create an object of this class and pass it to, for example, -\rtfsp\helpref{GetOpenCommand}{wxfiletypegetopencommand} like this: - -\begin{verbatim} -wxString command; -if ( filetype->GetOpenCommand(&command, - MailMessageParamaters("foo.txt", "text/plain")) ) -{ - // the full command for opening the text documents is in 'command' - // (it might be "notepad foo.txt" under Windows or "cat foo.txt" under Unix) -} -else -{ - // we don't know how to handle such files... -} -\end{verbatim} - -{\bf Windows:} As only the file name is used by the program associated with the -given extension anyhow (but no other message parameters), there is no need to -ever derive from MessageParameters class for a Windows-only program. - -\membersection{wxFileType::wxFileType}\label{wxfiletypewxfiletype} - -\func{}{wxFileType}{\void} - -The default constructor is private because you should never create objects of -this type: they are only returned by \helpref{wxMimeTypesManager}{wxmimetypesmanager} methods. - -\membersection{wxFileType::\destruct{wxFileType}}\label{wxfiletypedtor} - -\func{}{\destruct{wxFileType}}{\void} - -The destructor of this class is not virtual, so it should not be derived from. - -\membersection{wxFileType::GetMimeType}\label{wxfiletypegetmimetype} - -\func{bool}{GetMimeType}{\param{wxString*}{ mimeType}} - -If the function returns TRUE, the string pointed to by {\it mimeType} is filled -with full MIME type specification for this file type: for example, "text/plain". - -\membersection{wxFileType::GetExtensions}\label{wxfiletypegetextensions} - -\func{bool}{GetExtensions}{\param{wxArrayString\&}{ extensions}} - -If the function returns TRUE, the array {\it extensions} is filled -with all extensions associated with this file type: for example, it may -contain the following two elements for the MIME type "text/html" (notice the -absence of the leading dot): "html" and "htm". - -{\bf Windows:} This function is currently not implemented: there is no -(efficient) way to retrieve associated extensions from the given MIME type on -this platform, so it will only return TRUE if the wxFileType object was created -by \helpref{GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} -function in the first place. - -\membersection{wxFileType::GetIcon}\label{wxfiletypegeticon} - -\func{bool}{GetIcon}{\param{wxIcon*}{ icon}} - -If the function returns TRUE, the icon associated with this file type will be -created and assigned to the {\it icon} parameter. - -{\bf Unix:} This function always returns FALSE under Unix. - -\membersection{wxFileType::GetDescription}\label{wxfiletypegetdescription} - -\func{bool}{GetDescription}{\param{wxString*}{ desc}} - -If the function returns TRUE, the string pointed to by {\it desc} is filled -with a brief description for this file type: for example, "text document" for -the "text/plain" MIME type. - -\membersection{wxFileType::GetOpenCommand}\label{wxfiletypegetopencommand} - -\func{bool}{GetOpenCommand}{\param{wxString*}{ command}, \param{MessageParameters\&}{ params}} - -If the function returns TRUE, the string pointed to by {\it command} is filled -with the command which must be executed (see \helpref{wxExecute}{wxexecute}) in -order to open the file of the given type. The name of the file is -retrieved from \helpref{MessageParameters}{wxfiletypemessageparameters} class. - -\membersection{wxFileType::GetPrintCommand}\label{wxfiletypegetprintcommand} - -\func{bool}{GetPrintCommand}{\param{wxString*}{ command},\param{MessageParameters\&}{ params}} - -If the function returns TRUE, the string pointed to by {\it command} is filled -with the command which must be executed (see \helpref{wxExecute}{wxexecute}) in -order to print the file of the given type. The name of the file is -retrieved from \helpref{MessageParameters}{wxfiletypemessageparameters} class. - -\membersection{wxFileType::ExpandCommand}\label{wxfiletypeexpandcommand} - -\func{static wxString}{ExpandCommand}{\param{const wxString\&}{ command}, \param{MessageParameters\&}{ params}} - -This function is primarly intended for GetOpenCommand and GetPrintCommand -usage but may be also used by the application directly if, for example, you want -to use some non default command to open the file. - -The function replaces all occurences of - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{format specificator}{with} -\twocolitem{\%s}{the full file name} -\twocolitem{\%t}{the MIME type} -\twocolitem{\%\{param\}}{the value of the parameter {\it param}} -\end{twocollist} - -using the MessageParameters object you pass to it. - -If there is no '\%s' in the command string (and the string is not empty), it is -assumed that the command reads the data on stdin and so the effect is the same -as "< \%s" were appended to the string. - -Unlike all other functions of this class, there is no error return for this -function. - diff --git a/docs/latex/wx/fltinstr.tex b/docs/latex/wx/fltinstr.tex deleted file mode 100644 index 2032317f9e..0000000000 --- a/docs/latex/wx/fltinstr.tex +++ /dev/null @@ -1,31 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFilterInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFilterInputStream}}\label{wxfilterinputstream} - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Note} - -The use of this class is exactly the same as of wxInputStream. Only a constructor -differs and it is documented below. - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxFilterInputStream::wxFilterInputStream} - -\func{}{wxFilterInputStream}{\param{wxInputStream\&}{ stream}} - -Initializes a "filter" stream. A filter stream has the capability of a normal -stream but it can be placed on the top of another stream. So, for example, it -can uncompress, uncrypt the datas which are read from another stream and pass it -to the requester. - diff --git a/docs/latex/wx/fltoutst.tex b/docs/latex/wx/fltoutst.tex deleted file mode 100644 index 02b283b69c..0000000000 --- a/docs/latex/wx/fltoutst.tex +++ /dev/null @@ -1,31 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFilterOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFilterOutputStream}}\label{wxfilteroutputstream} - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Note} - -The use of this class is exactly the same as of wxOutputStream. Only a constructor -differs and it is documented below. - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxFilterOutputStream::wxFilterOutputStream} - -\func{}{wxFilterOutputStream}{\param{wxOutputStream\&}{ stream}} - -Initializes a "filter" stream. A filter stream has the capability of a normal -stream but it can be placed on the top of another stream. So, for example, it -can compress, crypt the datas which are passed to it and write them to another -stream. - diff --git a/docs/latex/wx/focusevt.tex b/docs/latex/wx/focusevt.tex deleted file mode 100644 index 642d72ed96..0000000000 --- a/docs/latex/wx/focusevt.tex +++ /dev/null @@ -1,38 +0,0 @@ -\section{\class{wxFocusEvent}}\label{wxfocusevent} - -A focus event is sent when a window's focus changes. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a focus event, use these event handler macros to direct input to a member -function that takes a wxFocusEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SET\_FOCUS(func)}}{Process a wxEVT\_SET\_FOCUS event.} -\twocolitem{{\bf EVT\_KILL\_FOCUS(func)}}{Process a wxEVT\_KILL\_FOCUS event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnSetFocus}{wxwindowonsetfocus},\rtfsp -\helpref{wxWindow::OnKillFocus}{wxwindowonkillfocus},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFocusEvent::wxFocusEvent} - -\func{}{wxFocusEvent}{\param{WXTYPE }{eventType = 0}, \param{int }{id = 0}} - -Constructor. - diff --git a/docs/latex/wx/font.tex b/docs/latex/wx/font.tex deleted file mode 100644 index 5c4b5548b9..0000000000 --- a/docs/latex/wx/font.tex +++ /dev/null @@ -1,294 +0,0 @@ -\section{\class{wxFont}}\label{wxfont} - -A font is an object which determines the appearance of text. Fonts are -used for drawing text to a device context, and setting the appearance of -a window's text. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullFont} - -Pointers: - -{\bf wxNORMAL\_FONT\\ -wxSMALL\_FONT\\ -wxITALIC\_FONT\\ -wxSWISS\_FONT} - -\wxheading{See also} - -\helpref{wxFont overview}{wxfontoverview}, \helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp -\helpref{wxDC::DrawText}{wxdcdrawtext}, \helpref{wxDC::GetTextExtent}{wxdcgettextextent},\rtfsp -\helpref{wxFontDialog}{wxfontdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFont::wxFont}\label{wxfontconstr} - -\func{}{wxFont}{\void} - -Default constructor. - -\func{}{wxFont}{\param{int}{ pointSize}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight}, - \param{const bool}{ underline = FALSE}, \param{const wxString\& }{faceName = ""}} - -Creates a font object. - -\wxheading{Parameters} - -\docparam{pointSize}{Size in points.} - -\docparam{family}{Font family, a generic way of referring to fonts without specifying actual facename. One of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxDEFAULT}}{Chooses a default font.} -\twocolitem{{\bf wxDECORATIVE}}{A decorative font.} -\twocolitem{{\bf wxROMAN}}{A formal, serif font.} -\twocolitem{{\bf wxSCRIPT}}{A handwriting font.} -\twocolitem{{\bf wxSWISS}}{A sans-serif font.} -\twocolitem{{\bf wxMODERN}}{A fixed pitch font.} -\end{twocollist}} - -\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.} - -\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.} - -\docparam{underline}{The value can be TRUE or FALSE. At present this has an effect on Windows only.} - -\docparam{faceName}{An optional string specifying the actual typeface to be used. If the empty string, -a default typeface will chosen based on the family.} - -\wxheading{Remarks} - -If the desired font does not exist, the closest match will be chosen. -Under Windows, only scaleable TrueType fonts are used. - -Underlining only works under Windows at present. - -See also \helpref{wxDC::SetFont}{wxdcsetfont}, \helpref{wxDC::DrawText}{wxdcdrawtext} -and \helpref{wxDC::GetTextExtent}{wxdcgettextextent}. - -\membersection{wxFont::\destruct{wxFont}} - -\func{}{\destruct{wxFont}}{\void} - -Destructor. - -\wxheading{Remarks} - -The destructor may not delete the underlying font object of the native windowing -system, since wxBrush uses a reference counting system for efficiency. - -Although all remaining fonts are deleted when the application exits, -the application should try to clean up all fonts itself. This is because -wxWindows cannot know if a pointer to the font object is stored in an -application data structure, and there is a risk of double deletion. - -\membersection{wxFont::GetFaceName}\label{wxfontgetfacename} - -\constfunc{wxString}{GetFaceName}{\void} - -Returns the typeface name associated with the font, or the empty string if there is no -typeface information. - -\wxheading{See also} - -\helpref{wxFont::SetFaceName}{wxfontsetfacename} - -\membersection{wxFont::GetFamily}\label{wxfontgetfamily} - -\constfunc{int}{GetFamily}{\void} - -Gets the font family. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid -family identifiers. - -\wxheading{See also} - -\helpref{wxFont::SetFamily}{wxfontsetfamily} - -\membersection{wxFont::GetFontId}\label{wxfontgetfontid} - -\constfunc{int}{GetFontId}{\void} - -Returns the font id, if the portable font system is in operation. See \helpref{Font overview}{wxfontoverview} for -further details. - -\membersection{wxFont::GetPointSize}\label{wxfontgetpointsize} - -\constfunc{int}{GetPointSize}{\void} - -Gets the point size. - -\wxheading{See also} - -\helpref{wxFont::SetPointSize}{wxfontsetpointsize} - -\membersection{wxFont::GetStyle}\label{wxfontgetstyle} - -\constfunc{int}{GetStyle}{\void} - -Gets the font style. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid -styles. - -\wxheading{See also} - -\helpref{wxFont::SetStyle}{wxfontsetstyle} - -\membersection{wxFont::GetUnderlined}\label{wxfontgetunderlined} - -\constfunc{bool}{GetUnderlined}{\void} - -Returns TRUE if the font is underlined, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxFont::SetUnderlined}{wxfontsetunderlined} - -\membersection{wxFont::GetWeight}\label{wxfontgetweight} - -\constfunc{int}{GetWeight}{\void} - -Gets the font weight. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid -weight identifiers. - -\wxheading{See also} - -\helpref{wxFont::SetWeight}{wxfontsetweight} - -\membersection{wxFont::SetFaceName}\label{wxfontsetfacename} - -\func{void}{SetFaceName}{\param{const wxString\& }{faceName}} - -Sets the facename for the font. - -\wxheading{Parameters} - -\docparam{faceName}{A valid facename, which should be on the end-user's system.} - -\wxheading{Remarks} - -To avoid portability problems, don't rely on a specific face, but specify the font family -instead or as well. A suitable font will be found on the end-user's system. If both the -family and the facename are specified, wxWindows will first search for the specific face, -and then for a font belonging to the same family. - -\wxheading{See also} - -\helpref{wxFont::GetFaceName}{wxfontgetfacename}, \helpref{wxFont::SetFamily}{wxfontsetfamily} - -\membersection{wxFont::SetFamily}\label{wxfontsetfamily} - -\func{void}{SetFamily}{\param{int}{ family}} - -Sets the font family. - -\wxheading{Parameters} - -\docparam{family}{One of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxDEFAULT}}{Chooses a default font.} -\twocolitem{{\bf wxDECORATIVE}}{A decorative font.} -\twocolitem{{\bf wxROMAN}}{A formal, serif font.} -\twocolitem{{\bf wxSCRIPT}}{A handwriting font.} -\twocolitem{{\bf wxSWISS}}{A sans-serif font.} -\twocolitem{{\bf wxMODERN}}{A fixed pitch font.} -\end{twocollist}} - -\wxheading{See also} - -\helpref{wxFont::GetFamily}{wxfontgetfamily}, \helpref{wxFont::SetFaceName}{wxfontsetfacename} - -\membersection{wxFont::SetPointSize}\label{wxfontsetpointsize} - -\func{void}{SetPointSize}{\param{int}{ pointSize}} - -Sets the point size. - -\wxheading{Parameters} - -\docparam{pointSize}{Size in points.} - -\wxheading{See also} - -\helpref{wxFont::GetPointSize}{wxfontgetpointsize} - -\membersection{wxFont::SetStyle}\label{wxfontsetstyle} - -\func{void}{SetStyle}{\param{int}{ style}} - -Sets the font style. - -\wxheading{Parameters} - -\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.} - -\wxheading{See also} - -\helpref{wxFont::GetStyle}{wxfontgetstyle} - -\membersection{wxFont::SetUnderlined}\label{wxfontsetunderlined} - -\func{void}{SetUnderlined}{\param{const bool}{ underlined}} - -Sets underlining. - -\wxheading{Parameters} - -\docparam{underlining}{TRUE to underline, FALSE otherwise.} - -\wxheading{See also} - -\helpref{wxFont::GetUnderlined}{wxfontgetunderlined} - -\membersection{wxFont::SetWeight}\label{wxfontsetweight} - -\func{void}{SetWeight}{\param{int}{ weight}} - -Sets the font weight. - -\wxheading{Parameters} - -\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.} - -\wxheading{See also} - -\helpref{wxFont::GetWeight}{wxfontgetweight} - -\membersection{wxFont::operator $=$}\label{wxfontassignment} - -\func{wxFont\&}{operator $=$}{\param{const wxFont\& }{font}} - -Assignment operator, using reference counting. Returns a reference -to `this'. - -\membersection{wxFont::operator $==$}\label{wxfontequals} - -\func{bool}{operator $==$}{\param{const wxFont\& }{font}} - -Equality operator. Two fonts are equal if they contain pointers -to the same underlying font data. It does not compare each attribute, -so two indefontdently-created fonts using the same parameters will -fail the test. - -\membersection{wxFont::operator $!=$}\label{wxfontnotequals} - -\func{bool}{operator $!=$}{\param{const wxFont\& }{font}} - -Inequality operator. Two fonts are not equal if they contain pointers -to different underlying font data. It does not compare each attribute. - - diff --git a/docs/latex/wx/fontdlg.tex b/docs/latex/wx/fontdlg.tex deleted file mode 100644 index dc3a0549e6..0000000000 --- a/docs/latex/wx/fontdlg.tex +++ /dev/null @@ -1,195 +0,0 @@ -\section{\class{wxFontData}}\label{wxfontdata} - -\overview{wxFontDialog overview}{wxfontdialogoverview} - -This class holds a variety of information related to font dialogs. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Overview}{wxfontdialogoverview}, \helpref{wxFontDialog}{wxfontdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontData::wxFontData} - -\func{}{wxFontData}{\void} - -Constructor. Initializes {\it fontColour} to black, {\it showHelp} to black, -\rtfsp{\it allowSymbols} to TRUE, {\it enableEffects} to TRUE, -\rtfsp{\it minSize} to 0 and {\it maxSize} to 0. - -\membersection{wxFontData::\destruct{wxFontData}} - -\func{}{\destruct{wxFontData}}{\void} - -Destructor. - -\membersection{wxFontData::EnableEffects} - -\func{void}{EnableEffects}{\param{bool}{ enable}} - -Enables or disables `effects' under MS Windows only. This refers to the -controls for manipulating colour, strikeout and underline properties. - -The default value is TRUE. - -\membersection{wxFontData::GetAllowSymbols} - -\func{bool}{GetAllowSymbols}{\void} - -Under MS Windows, returns a flag determining whether symbol fonts can be selected. Has no -effect on other platforms. - -The default value is TRUE. - -\membersection{wxFontData::GetColour} - -\func{wxColour\&}{GetColour}{\void} - -Gets the colour associated with the font dialog. - -The default value is black. - -\membersection{wxFontData::GetChosenFont} - -\func{wxFont}{GetChosenFont}{\void} - -Gets the font chosen by the user. If the user pressed OK (wxFontDialog::Show returned TRUE), this returns -a new font which is now `owned' by the application, and should be deleted -if not required. If the user pressed Cancel (wxFontDialog::Show returned FALSE) or -the colour dialog has not been invoked yet, this will return NULL. - -\membersection{wxFontData::GetEnableEffects} - -\func{bool}{GetEnableEffects}{\void} - -Determines whether `effects' are enabled under Windows. This refers to the -controls for manipulating colour, strikeout and underline properties. - -The default value is TRUE. - -\membersection{wxFontData::GetInitialFont} - -\func{wxFont}{GetInitialFont}{\void} - -Gets the font that will be initially used by the font dialog. This should have -previously been set by the application. - -\membersection{wxFontData::GetShowHelp} - -\func{bool}{GetShowHelp}{\void} - -Returns TRUE if the Help button will be shown (Windows only). - -The default value is FALSE. - -\membersection{wxFontData::SetAllowSymbols} - -\func{void}{SetAllowSymbols}{\param{bool}{ allowSymbols}} - -Under MS Windows, determines whether symbol fonts can be selected. Has no -effect on other platforms. - -The default value is TRUE. - -\membersection{wxFontData::SetChosenFont} - -\func{void}{SetChosenFont}{\param{const wxFont\& }{font}} - -Sets the font that will be returned to the user (for internal use only). - -\membersection{wxFontData::SetColour} - -\func{void}{SetColour}{\param{const wxColour\&}{ colour}} - -Sets the colour that will be used for the font foreground colour. - -The default colour is black. - -\membersection{wxFontData::SetInitialFont} - -\func{void}{SetInitialFont}{\param{const wxFont\&}{font}} - -Sets the font that will be initially used by the font dialog. - -\membersection{wxFontData::SetRange} - -\func{void}{SetRange}{\param{int}{ min}, \param{int}{ max}} - -Sets the valid range for the font point size (Windows only). - -The default is 0, 0 (unrestricted range). - -\membersection{wxFontData::SetShowHelp} - -\func{void}{SetShowHelp}{\param{bool}{ showHelp}} - -Determines whether the Help button will be displayed in the font dialog (Windows only). - -The default value is FALSE. - -\membersection{wxFontData::operator $=$} - -\func{void}{operator $=$}{\param{const wxFontData\&}{ data}} - -Assingment operator for the font data. - -\section{\class{wxFontDialog}}\label{wxfontdialog} - -This class represents the font chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Overview}{wxfontdialogoverview}, \helpref{wxFontData}{wxfontdata} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontDialog::wxFontDialog} - -\func{}{wxFontDialog}{\param{wxWindow* }{parent}, \param{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. - -\membersection{wxFontDialog::\destruct{wxFontDialog}} - -\func{}{\destruct{wxFontDialog}}{\void} - -Destructor. - -\membersection{wxFontDialog::GetFontData} - -\func{wxFontData\&}{GetFontData}{\void} - -Returns the \helpref{font data}{wxfontdata} associated with the font dialog. - -\membersection{wxFontDialog::ShowModal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed Ok, and wxID\_CANCEL -otherwise. - -If the user cancels the dialog (ShowModal returns wxID\_CANCEL), no font will be -created. If the user presses OK (ShowModal returns wxID\_OK), a new wxFont will -be created and stored in the font dialog's wxFontData structure. - diff --git a/docs/latex/wx/fontlist.tex b/docs/latex/wx/fontlist.tex deleted file mode 100644 index 2ee6f4bbe5..0000000000 --- a/docs/latex/wx/fontlist.tex +++ /dev/null @@ -1,52 +0,0 @@ -\section{\class{wxFontList}}\label{wxfontlist} - -A font list is a list containing all fonts which have been created. There -is only one instance of this class: {\bf wxTheFontList}. Use this object to search -for a previously created font of the desired type and create it if not already found. -In some windowing systems, the font may be a scarce resource, so it is best to -reuse old resources if possible. When an application finishes, all fonts will be -deleted and their resources freed, eliminating the possibility of `memory leaks'. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxFont}{wxfont} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontList::wxFontList} - -\func{}{wxFontList}{\void} - -Constructor. The application should not construct its own font list: -use the object pointer {\bf wxTheFontList}. - -\membersection{wxFontList::AddFont} - -\func{void}{AddFont}{\param{wxFont *}{font}} - -Used by wxWindows to add a font to the list, called in the font constructor. - -\membersection{wxFontList::FindOrCreateFont}\label{findorcreatefont} - -\func{wxFont *}{FindOrCreateFont}{\param{int}{ point\_size}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight}, \param{bool}{ underline = FALSE}, - \param{const wxString\& }{facename = NULL}} - -Finds a font of the given specification, or creates one and adds it to the list. See the \helpref{wxFont constructor}{wxfontconstr} for -details of the arguments. - -\membersection{wxFontList::RemoveFont} - -\func{void}{RemoveFont}{\param{wxFont *}{font}} - -Used by wxWindows to remove a font from the list. - - diff --git a/docs/latex/wx/forward.gif b/docs/latex/wx/forward.gif deleted file mode 100644 index 9c8421838a..0000000000 Binary files a/docs/latex/wx/forward.gif and /dev/null differ diff --git a/docs/latex/wx/frame.tex b/docs/latex/wx/frame.tex deleted file mode 100644 index 88dff01dc1..0000000000 --- a/docs/latex/wx/frame.tex +++ /dev/null @@ -1,543 +0,0 @@ -\section{\class{wxFrame}}\label{wxframe} - -A frame is a window whose size and position can (usually) be changed by the user. It usually has -thick borders and a title bar, and can optionally contain a menu bar, toolbar and -status bar. A frame can contain any window that is not a frame or dialog. - -A frame that has a status bar and toolbar created via the CreateStatusBar/CreateToolBar functions -manages these windows, and adjusts the value returned by GetClientSize to reflect -the remaining size available to application windows. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized). Windows only. } -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}. Windows only. } -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame. } -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized. Windows only. } -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame. } -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows. Windows only. } -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu. } -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window. Windows and Motif only.} -\twocolitem{\windowstyle{wxSIMPLE\_BORDER}}{Displays no border or decorations. GTK and Windows only (?). } -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Unix only).} -\twocolitem{\windowstyle{wxFRAME\_FLOAT\_ON\_PARENT}}{Causes the frame to be above the parent window in the -z-order and not shown in the taskbar. Without this style, frames are created as top-level windows that may be obscured by -the parent window, and frame titles are shown in the taskbar. Windows only. } -\twocolitem{\windowstyle{wxFRAME\_TOOL\_WINDOW}}Causes a frame with a small titlebar to be created; -the frame title does not appear in the taskbar. Windows only. } -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -An application should normally define an \helpref{OnCloseWindow}{wxwindowonclosewindow} handler for the -frame to respond to system close events, for example so that related data and subwindows can be cleaned up. - -\wxheading{See also} - -\helpref{wxMDIParentFrame}{wxmdiparentframe}, \helpref{wxMDIChildFrame}{wxmdichildframe},\rtfsp -\helpref{wxMiniFrame}{wxminiframe}, \helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFrame::wxFrame}\label{wxframeconstr} - -\func{}{wxFrame}{\void} - -Default constructor. - -\func{}{wxFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This may be NULL. If it is non-NULL, the frame will -always be displayed on top of the parent window on Windows.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxFrame}{wxframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -For Motif, MWM (the Motif Window Manager) should be running for any window styles to work -(otherwise all styles take effect). - -\wxheading{See also} - -\helpref{wxFrame::Create}{wxframecreate} - -\membersection{wxFrame::\destruct{wxFrame}} - -\func{void}{\destruct{wxFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxFrame::Centre}\label{wxframecentre} - -\func{void}{Centre}{\param{int}{ direction = wxBOTH}} - -Centres the frame on the display. - -\wxheading{Parameters} - -\docparam{direction}{The parameter may be {\tt wxHORIZONTAL}, {\tt wxVERTICAL} or {\tt wxBOTH}.} - -\membersection{wxFrame::Command}\label{wxframecommand} - -\func{void}{Command}{\param{int }{id}} - -Simulate a menu command. - -\wxheading{Parameters} - -\docparam{id}{The identifier for a menu item.} - -\membersection{wxFrame::Create}\label{wxframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxFrame::wxFrame}{wxframeconstr}\rtfsp -for further details. - -\membersection{wxFrame::CreateStatusBar}\label{wxframecreatestatusbar} - -\func{virtual wxStatusBar*}{CreateStatusBar}{\param{int}{ number = 1}, - \param{long}{ style = 0}, - \param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "statusBar"}} - -Creates a status bar at the bottom of the frame. - -\wxheading{Parameters} - -\docparam{number}{The number of fields to create. Specify a -value greater than 1 to create a multi-field status bar.} - -\docparam{style}{The status bar style. See \helpref{wxStatusBar}{wxstatusbar} for a list -of valid styles.} - -\docparam{id}{The status bar window identifier. If -1, an identifier will be chosen by -wxWindows.} - -\docparam{name}{The status bar window name.} - -\wxheading{Return value} - -A pointer to the the status bar if it was created successfully, NULL otherwise. - -\wxheading{Remarks} - -The width of the status bar is the whole width of the frame (adjusted automatically when -resizing), and the height and text size are chosen by the host windowing system. - -By default, the status bar is an instance of wxStatusBar. To use a different class, -override \helpref{wxFrame::OnCreateStatusBar}{wxframeoncreatestatusbar}. - -Note that you can put controls and other windows on the status bar if you wish. - -\wxheading{See also} - -\helpref{wxFrame::SetStatusText}{wxframesetstatustext},\rtfsp -\helpref{wxFrame::OnCreateStatusBar}{wxframeoncreatestatusbar},\rtfsp -\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar} - -\membersection{wxFrame::CreateToolBar}\label{wxframecreatetoolbar} - -\func{virtual wxToolBar*}{CreateToolBar}{\param{long}{ style = wxNO\_BORDER \pipe wxTB\_HORIZONTAL}, - \param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "toolBar"}} - -Creates a toolbar at the top or left of the frame. - -\wxheading{Parameters} - -\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list -of valid styles.} - -\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by -wxWindows.} - -\docparam{name}{The toolbar window name.} - -\wxheading{Return value} - -A pointer to the the toolbar if it was created successfully, NULL otherwise. - -\wxheading{Remarks} - -By default, the toolbar is an instance of wxToolBar (which is defined to be -a suitable toolbar class on each platform, such as wxToolBar95). To use a different class, -override \helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar}. - -When a toolbar has been created with this function, or made known to the frame -with \helpref{wxFrame::SetToolBar}{wxframesettoolbar}, the frame will manage the toolbar -position and adjust the return value from \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} to -reflect the available space for application windows. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar},\rtfsp -\helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar},\rtfsp -\helpref{wxFrame::SetToolBar}{wxframesettoolbar},\rtfsp -\helpref{wxFrame::GetToolBar}{wxframegettoolbar} - -\membersection{wxFrame::GetMenuBar}\label{wxframegetmenubar} - -\constfunc{wxMenuBar*}{GetMenuBar}{\void} - -Returns a pointer to the menubar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::SetMenuBar}{wxframesetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu} - -\membersection{wxFrame::GetStatusBar}\label{wxframegetstatusbar} - -\func{wxStatusBar*}{GetStatusBar}{\void} - -Returns a pointer to the status bar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar} - -\membersection{wxFrame::GetTitle}\label{wxframegettitle} - -\func{wxString\&}{GetTitle}{\void} - -Gets a temporary pointer to the frame title. See -\helpref{wxFrame::SetTitle}{wxframesettitle}. - -\membersection{wxFrame::GetToolBar}\label{wxframegettoolbar} - -\func{wxToolBar*}{GetToolBar}{\void} - -Returns a pointer to the toolbar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp -\helpref{wxFrame::SetToolBar}{wxframesettoolbar} - -\membersection{wxFrame::Iconize}\label{wxframeiconize} - -\func{void}{Iconize}{\param{const bool}{ iconize}} - -Iconizes or restores the frame. Windows only. - -\wxheading{Parameters} - -\docparam{izonize}{If TRUE, iconizes the frame; if FALSE, shows and restores it.} - -\wxheading{See also} - -\helpref{wxFrame::IsIconized}{wxframeisiconized}, \helpref{wxFrame::Maximize}{wxframemaximize}. - -\membersection{wxFrame::IsIconized}\label{wxframeisiconized} - -\constfunc{bool}{IsIconized}{\void} - -Returns TRUE if the frame is iconized. Windows only. - -\membersection{wxFrame::IsMaximized}\label{wxframeismaximized} - -\constfunc{bool}{IsMaximized}{\void} - -Returns TRUE if the frame is maximized. - -\membersection{wxFrame::Maximize}\label{wxframemaximize} - -\func{void}{Maximize}{\param{const bool }{maximize}} - -Maximizes or restores the frame. - -\wxheading{Parameters} - -\docparam{maximize}{If TRUE, maximizes the frame, otherwise it restores it}. - -\wxheading{Remarks} - -This function only works under Windows. - -\wxheading{See also} - -\helpref{wxFrame::Iconize}{wxframeiconize} - -\membersection{wxFrame::OnActivate} - -\func{void}{OnActivate}{\param{wxActivateEvent\&}{ event}} - -Called when a window is activated or deactivated (MS Windows -only). See also \helpref{wxActivateEvent}{wxactivateevent}. - -\membersection{wxFrame::OnCreateStatusBar}\label{wxframeoncreatestatusbar} - -\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}, - \param{long}{ style}, - \param{wxWindowID}{ id}, \param{const wxString\&}{ name}} - -Virtual function called when a status bar is requested by \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}. - -\wxheading{Parameters} - -\docparam{number}{The number of fields to create.} - -\docparam{style}{The window style. See \helpref{wxStatusBar}{wxstatusbar} for a list -of valid styles.} - -\docparam{id}{The window identifier. If -1, an identifier will be chosen by -wxWindows.} - -\docparam{name}{The window name.} - -\wxheading{Return value} - -A status bar object. - -\wxheading{Remarks} - -An application can override this function to return a different kind of status bar. The default -implementation returns an instance of \helpref{wxStatusBar}{wxstatusbar}. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar}. - -\membersection{wxFrame::OnCreateToolBar}\label{wxframeoncreatetoolbar} - -\func{virtual wxToolBar*}{OnCreateToolBar}{\param{long}{ style}, - \param{wxWindowID}{ id}, \param{const wxString\&}{ name}} - -Virtual function called when a toolbar is requested by \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. - -\wxheading{Parameters} - -\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list -of valid styles.} - -\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by -wxWindows.} - -\docparam{name}{The toolbar window name.} - -\wxheading{Return value} - -A toolbar object. - -\wxheading{Remarks} - -An application can override this function to return a different kind of toolbar. The default -implementation returns an instance of \helpref{wxToolBar}{wxtoolbar}. - -\wxheading{See also} - -\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar}. - -\membersection{wxFrame::OnMenuCommand}\label{wxframeonmenucommand} - -\func{void}{OnMenuCommand}{\param{wxCommandEvent\&}{ event}} - -See \helpref{wxWindow::OnMenuCommand}{wxwindowonmenucommand}. - -\membersection{wxFrame::OnMenuHighlight}\label{wxframeonmenuhighlight} - -\func{void}{OnMenuHighlight}{\param{wxMenuEvent\&}{ event}} - -See \helpref{wxWindow::OnMenuHighlight}{wxwindowonmenuhighlight}. - -\membersection{wxFrame::OnSize}\label{wxframeonsize} - -\func{void}{OnSize}{\param{wxSizeEvent\& }{event}} - -See \helpref{wxWindow::OnSize}{wxwindowonsize}. - -The default {\bf wxFrame::OnSize} implementation looks for a single subwindow, -and if one is found, resizes it to fit -inside the frame. Override this member if more complex behaviour -is required (for example, if there are several subwindows). - -\membersection{wxFrame::SetIcon}\label{wxframeseticon} - -\func{void}{SetIcon}{\param{const wxIcon\& }{icon}} - -Sets the icon for this frame. - -\wxheading{Parameters} - -\docparam{icon}{The icon to associate with this frame.} - -\wxheading{Remarks} - -The frame takes a `copy' of {\it icon}, but since it uses reference -counting, the copy is very quick. It is safe to delete {\it icon} after -calling this function. - -Under Windows, instead of using {\bf SetIcon}, you can add the -following lines to your MS Windows resource file: - -\begin{verbatim} -wxSTD_MDIPARENTFRAME ICON icon1.ico -wxSTD_MDICHILDFRAME ICON icon2.ico -wxSTD_FRAME ICON icon3.ico -\end{verbatim} - -where icon1.ico will be used for the MDI parent frame, icon2.ico -will be used for MDI child frames, and icon3.ico will be used for -non-MDI frames. - -If these icons are not supplied, and {\bf SetIcon} is not called either, -then the following defaults apply if you have included wx.rc. - -\begin{verbatim} -wxDEFAULT_FRAME ICON std.ico -wxDEFAULT_MDIPARENTFRAME ICON mdi.ico -wxDEFAULT_MDICHILDFRAME ICON child.ico -\end{verbatim} - -You can replace std.ico, mdi.ico and child.ico with your own defaults -for all your wxWindows application. Currently they show the same icon. - -{\it Note:} a wxWindows application linked with subsystem equal to 4.0 -(i.e. marked as a Windows 95 application) doesn't respond properly -to wxFrame::SetIcon. To work around this until a solution is found, -mark your program as a 3.5 application. This will also ensure -that Windows provides small icons for the application automatically. - -See also \helpref{wxIcon}{wxicon}. - -\membersection{wxFrame::SetMenuBar}\label{wxframesetmenubar} - -\func{void}{SetMenuBar}{\param{wxMenuBar* }{menuBar}} - -Tells the frame to show the given menu bar. - -\wxheading{Parameters} - -\docparam{menuBar}{The menu bar to associate with the frame.} - -\wxheading{Remarks} - -If the frame is destroyed, the -menu bar and its menus will be destroyed also, so do not delete the menu -bar explicitly (except by resetting the frame's menu bar to another -frame or NULL). - -Under Windows, a call to \helpref{wxFrame::OnSize}{wxframeonsize} is generated, so be sure to initialize -data members properly before calling {\bf SetMenuBar}. - -Note that it is not possible to call this function twice for the same frame object. - -\wxheading{See also} - -\helpref{wxFrame::GetMenuBar}{wxframegetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu}. - -\membersection{wxFrame::SetStatusBar}\label{wxframesetstatusbar} - -\func{void}{SetStatusBar}{\param{wxStatusBar*}{ statusBar}} - -Associates a status bar with the frame. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar},\rtfsp -\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar} - -\membersection{wxFrame::SetStatusText}\label{wxframesetstatustext} - -\func{virtual void}{SetStatusText}{\param{const wxString\& }{ text}, \param{int}{ number = 0}} - -Sets the status bar text and redraws the status bar. - -\wxheading{Parameters} - -\docparam{text}{The text for the status field.} - -\docparam{number}{The status field (starting from zero).} - -\wxheading{Remarks} - -Use an empty string to clear the status bar. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar} - -\membersection{wxFrame::SetStatusWidths}\label{wxframesetstatuswidths} - -\func{virtual void}{SetStatusWidths}{\param{int}{ n}, \param{int *}{widths}} - -Sets the widths of the fields in the status bar. - -\wxheading{Parameters} - -\wxheading{n}{The number of fields in the status bar. It must be the -same used in \helpref{CreateStatusBar}{wxframecreatestatusbar}.} - -\docparam{widths}{Must contain an array of {\it n} integers, each of which is a status field width -in pixels. A value of -1 indicates that the field is variable width; at least one -field must be -1. You should delete this array after calling {\bf SetStatusWidths}.} - -\wxheading{Remarks} - -The widths of the variable fields are calculated from the total width of all fields, -minus the sum of widths of the non-variable fields, divided by the number of -variable fields. - -\membersection{wxFrame::SetToolBar}\label{wxframesettoolbar} - -\func{void}{SetToolBar}{\param{wxToolBar*}{ toolBar}} - -Associates a toolbar with the frame. - -\wxheading{See also} - -\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp -\helpref{wxFrame::GetToolBar}{wxframegettoolbar} - -\membersection{wxFrame::SetTitle}\label{wxframesettitle} - -\func{virtual void}{SetTitle}{\param{const wxString\& }{ title}} - -Sets the frame title. - -\wxheading{Parameters} - -\docparam{title}{The frame title.} - -\wxheading{See also} - -\helpref{wxFrame::GetTitle}{wxframegettitle} - diff --git a/docs/latex/wx/fs.tex b/docs/latex/wx/fs.tex deleted file mode 100644 index 5488d876f6..0000000000 --- a/docs/latex/wx/fs.tex +++ /dev/null @@ -1,70 +0,0 @@ -\section{File Systems}\label{fs} - -The wxHTML library uses a {\bf virtual file systems} mechanism -similar to the one used in Midnight Commander, Dos Navigator, -FAR or almost any modern file manager. (Do you remember? You can -press enter on ZIP file and its contents is displayed as if it -were a local directory...) - -\wxheading{Classes} - -Three classes are used in order to provide full VFS: - -\begin{itemize}\itemsep=0pt -\item The \helpref{wxFSFile}{wxfsfile} class provides information -on opened file (name, input stream, mime type and anchor). -\item The \helpref{wxFileSystem}{wxfilesystem} class is the interface. -Its main methods are ChangePathTo() and OpenFile(). This class -is most often used by the end user. -\item The \helpref{wxFileSystemHandler}{wxfilesystemhandler} is the core -if VFS mechanism. You can derive your own handler and pass it to -wxFileSystem's AddHandler() method. In the new handler you only need to -overwrite OpenFile() and CanOpen() methods. -\end{itemize} - -\wxheading{Locations} - -Locations (aka filenames aka addresses) are constructed from 4 parts: - -\begin{itemize}\itemsep=0pt -\item {\bf protocol} - handler can recognize if it is able to open a -file by checking its protocol. Examples are "http", "file" or "ftp". -\item {\bf right location} - is the name of file within the protocol. -In "http://www.wxwindows.org/index.html" the right location is "//www.wxwindows.org/index.html". -\item {\bf anchor} - anchor is optional and is usually not present. -In "index.htm\#chapter2" the anchor is "chapter2". -\item {\bf left location} - this is usually an empty string. -It is used by 'local' protocols such as ZIP. -See Combined Protocols paragraph for details. -\end{itemize} - -\wxheading{Combined Protocols} - -Left location pretends protocol in URL string. -It's not used by global protocols like HTTP but it's used -by local ones - for example you can see this address: - -file:archives/cpp\_doc.zip\#zip:reference/fopen.htm\#syntax - -In this example, protocol is "zip", left location is -"reference/fopen.htm", anchor is "syntax" and right location -is "file:archives/cpp_doc.zip". It is used by zip handler -to determine in what file this particular zip VFS is stored. - -In fact there are two protocols used in this example: zip and file. -You can construct even more complicated addresses like this one: - -http://www.archives.org/myarchive.zip\#zip:local/docs/cpp/stdio.zip\#zip:index.htm - -In this example you access zip VFS stdio.zip stored in another zip (myarchive.zip) -which is at WWW. - -\wxheading{File Systems Included in wxHTML} - -\begin{enumerate}\itemsep=0pt -\item Local files -\item HTTP protocol -\item FTP protocol -\item .ZIP archives -\end{enumerate} - diff --git a/docs/latex/wx/fsfile.tex b/docs/latex/wx/fsfile.tex deleted file mode 100644 index 7c0e956aa1..0000000000 --- a/docs/latex/wx/fsfile.tex +++ /dev/null @@ -1,121 +0,0 @@ -% -% automatically generated by HelpGen from -% fsfile.tex at 21/Mar/99 23:00:52 -% - -\section{\class{wxFSFile}}\label{wxfsfile} - -This class represents single file opened by \helpref{wxFileSystem}{wxfilesystem}. -It provides more information than wx's input stream -(stream, filename, mime type, anchor). - -{\bf Note:} Any pointer returned by wxFSFile's member is valid -only as long as wxFSFile object exits. For example call to GetStream() -doesn't {\it create} the stream but only returns the pointer to it. In -other words after 10 calls to GetStream() you'll obtain ten identical -pointers. - -\wxheading{Derived from} - -wxObject - -\wxheading{See Also} - -\helpref{wxFileSystemHandler}{wxfilesystemhandler}, -\helpref{wxFileSystem}{wxfilesystem}, -\helpref{Overview}{fs} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFSFile::wxFSFile}\label{wxfsfilewxfsfile} - -\func{}{wxFSFile}{\param{wxInputStream }{*stream}, \param{const wxString\& }{loc}, \param{const wxString\& }{mimetype}, \param{const wxString\& }{anchor}} - -Constructor. You probably won't use it. See Notes for details. - -\wxheading{Parameters} - -\docparam{stream}{The input stream that will be used to access data} - -\docparam{location}{The full location (aka filename) of the file} - -\docparam{mimetype}{MIME type of this file. Mime type is either extension-based or HTTP Content-Type} - -\docparam{anchor}{Anchor. See \helpref{GetAnchor()}{wxfsfilegetanchor} for details.} - -If you aren't sure what do these params mean see description of GetXXXX() -functions. - -\wxheading{Notes} - -It is never used by end user but you'll need it if -you're writing own virtual FS. For example you may need something -similar to wxMemoryInputStream but because wxMemoryInputStream -doesn't free the memory when destroyed and thus passing memory stream -pointer into wxFSFile constructor would lead to memory leaks, you -can write your own class derived from wxFSFile : - -\begin{verbatim} -class wxMyFSFile : public wxFSFile -{ - private: - void *m_Mem; - public: - wxMyFSFile(.....) - ~wxMyFSFile() {free(m_Mem);} - // of course dtor is virtual ;-) -}; -\end{verbatim} - -\membersection{wxFSFile::GetStream}\label{wxfsfilegetstream} - -\constfunc{wxInputStream*}{GetStream}{\void} - -Returns pointer to the stream. You can use the returned -stream to directly access data. You may suppose -that the stream provide Seek and GetSize functionality -(even in case of HTTP protocol which doesn't provide -this by default. wxHtml is using local cache to workaround -this and to speed up connection) - -\membersection{wxFSFile::GetMimeType}\label{wxfsfilegetmimetype} - -\constfunc{const wxString\&}{GetMimeType}{\void} - -Returns MIME type of the content of this file. It is either -extension-based (see wxMimeTypesManager) or extracted from -HTTP protocol Content-Type header. - -\membersection{wxFSFile::GetLocation}\label{wxfsfilegetlocation} - -\constfunc{const wxString\&}{GetLocation}{\void} - -Returns full location of the file, including path and protocol. -Examples : - -\begin{verbatim} -http://www.wxwindows.org -http://www.ms.mff.cuni.cz/~vsla8348/wxhtml/archive.zip#zip:info.txt -file:/home/vasek/index.htm -relative-file.htm -\end{verbatim} - -\membersection{wxFSFile::GetAnchor}\label{wxfsfilegetanchor} - -\constfunc{const wxString\&}{GetAnchor}{\void} - -Returns anchor (if present). The term of {\bf anchor} can be easily -explained using few examples: - -\begin{verbatim} -index.htm#anchor /* 'anchor' is anchor */ -index/wx001.htm /* NO anchor here! */ -archive/main.zip#zip:index.htm#global /* 'global' */ -archive/main.zip#zip:index.htm /* NO anchor here! */ -\end{verbatim} - -Usually anchor is presented only if mime type is 'text/html'. -But it may have some meaning with other files -(for example myanim.avi\#200 may refer to position in animation -or reality.wrl\#MyView may refer to predefined view in VRML) - diff --git a/docs/latex/wx/ftp.tex b/docs/latex/wx/ftp.tex deleted file mode 100644 index 2d58aea087..0000000000 --- a/docs/latex/wx/ftp.tex +++ /dev/null @@ -1,217 +0,0 @@ -\section{\class{wxFTP}}\label{wxftp} - -\wxheading{Derived from} - -\helpref{wxProtocol}{wxprotocol} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFTP::SendCommand} - -\func{bool}{SendCommand}{\param{const wxString\&}{ command}, \param{char }{ret}} - -Send the specified \it{command} to the FTP server. \it{ret} specifies -the expected result. - -\wxheading{Return value} - -TRUE, if the command has been sent successfully, else FALSE. - -% ---------------------------------------------------------------------------- - -\membersection{wxFTP::GetLastResult} - -\func{const wxString\&}{GetLastResult}{\void} - -Returns the last command result. - -% ---------------------------------------------------------------------------- - -\membersection{wxFTP::ChDir} - -\func{bool}{ChDir}{\param{const wxString\&}{ dir}} - -Change the current FTP working directory. -Returns TRUE if successful. - -\membersection{wxFTP::MkDir} - -\func{bool}{MkDir}{\param{const wxString\&}{ dir}} - -Create the specified directory in the current FTP working directory. -Returns TRUE if successful. - -\membersection{wxFTP::RmDir} - -\func{bool}{RmDir}{\param{const wxString\&}{ dir}} - -Remove the specified directory from the current FTP working directory. -Returns TRUE if successful. - -\membersection{wxFTP::Pwd} - -\func{wxString}{Pwd}{\void} - -Returns the current FTP working directory. - -% ---------------------------------------------------------------------------- - -\membersection{wxFTP::Rename} - -\func{bool}{Rename}{\param{const wxString\&}{ src}, \param{const wxString\&}{ dst}} - -Rename the specified \it{src} element to \it{dst}. Returns TRUE if successful. - -% ---------------------------------------------------------------------------- - -\membersection{wxFTP::RmFile} - -\func{bool}{RmFile}{\param{const wxString\&}{ path}} - -Delete the file specified by \it{path}. Returns TRUE if successful. - -% ---------------------------------------------------------------------------- - -\membersection{wxFTP::SetUser} - -\func{void}{SetUser}{\param{const wxString\&}{ user}} - -Sets the user name to be sent to the FTP server to be allowed to log in. - -\wxheading{Default value} - -The default value of the user name is "anonymous". - -\wxheading{Remark} - -This parameter can be included in a URL if you want to use the URL manager. -For example, you can use: "ftp://a\_user:a\_password@a.host:service/a\_directory/a\_file" -to specify a user and a password. - -\membersection{wxFTP::SetPassword} - -\func{void}{SetPassword}{\param{const wxString\&}{ passwd}} - -Sets the password to be sent to the FTP server to be allowed to log in. - -\wxheading{Default value} - -The default value of the user name is your email address. For example, it could -be "username@userhost.domain". This password is built by getting the current -user name and the host name of the local machine from the system. - -\wxheading{Remark} - -This parameter can be included in a URL if you want to use the URL manager. -For example, you can use: "ftp://a\_user:a\_password@a.host:service/a\_directory/a\_file" -to specify a user and a password. - -% ---------------------------------------------------------------------------- -\membersection{wxFTP::GetList} - -\func{wxList *}{GetList}{\param{const wxString\&}{ wildcard}} - -The GetList function is quite low-level. It returns the list of the files in -the current directory. The list can be filtered using the \it{wildcard} string. -If \it{wildcard} is a NULL string, it will return all files in directory. - -The form of the list can change from one peer system to another. For example, -for a UNIX peer system, it will look like this: - -\begin{verbatim} --r--r--r-- 1 guilhem lavaux 12738 Jan 16 20:17 cmndata.cpp --r--r--r-- 1 guilhem lavaux 10866 Jan 24 16:41 config.cpp --rw-rw-rw- 1 guilhem lavaux 29967 Dec 21 19:17 cwlex_yy.c --rw-rw-rw- 1 guilhem lavaux 14342 Jan 22 19:51 cwy_tab.c --r--r--r-- 1 guilhem lavaux 13890 Jan 29 19:18 date.cpp --r--r--r-- 1 guilhem lavaux 3989 Feb 8 19:18 datstrm.cpp -\end{verbatim} - -But on Windows system, it will look like this: - -\begin{verbatim} -winamp~1 exe 520196 02-25-1999 19:28 winamp204.exe - 1 file(s) 520 196 bytes -\end{verbatim} - -The list is a string list and one node corresponds to a line sent by the peer. - -% ---------------------------------------------------------------------------- - -\membersection{wxFTP::GetOutputStream} - -\func{wxOutputStream *}{GetOutputStream}{\param{const wxString\&}{ file}} - -Initializes an output stream to the specified \it{file}. The returned -stream has all but the seek functionality of wxStreams. When the user finishes -writing data, he has to delete the stream to close it. - -\wxheading{Return value} - -An initialized write-only stream. - -\wxheading{See also} - -\helpref{wxOutputStream}{wxoutputstream} - -% ---------------------------------------------------------------------------- - -\membersection{wxFTP::GetInputStream}\label{wxftpgetinput} - -\func{wxInputStream *}{GetInputStream}{\param{const wxString\&}{ path}} - -Creates a new input stream on the the specified path. You can use all but seek -functionnality of wxStream. Seek isn't available on all stream. For example, -http or ftp streams doesn't deal with it. Other functions like Tell -aren't available for the moment for this sort of stream. -You will be notified when the EOF is reached by an error. - -\wxheading{Return value} - -Returns NULL if an error occured (it could be a network failure or the fact -that the file doesn't exist). - -Returns the initialized stream. You will have to delete it yourself once you -don't use it anymore. The destructor close the DATA stream connection but -will leave the COMMAND stream connection opened. It means that you still -can send new commands without reconnecting. - -\wxheading{Example of a standalone connection (without wxURL)} - -\begin{verbatim} - wxFTP ftp; - wxInputStream *in\_stream; - char *data; - - ftp.Connect("a.host.domain"); - ftp.ChDir("a\_directory"); - in\_stream = ftp.GetInputStream("a\_file\_to\_get"); - - data = new char[in\_stream->StreamSize()]; - - in\_stream->Read(data, in\_stream->StreamSize()); - if (in\_stream->LastError() != wxStream\_NOERROR) { - // Do something. - } - - delete in\_stream; /* Close the DATA connection */ - - ftp.Close(); /* Close the COMMAND connection */ -\end{verbatim} - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream} - diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex deleted file mode 100644 index 06a122082e..0000000000 --- a/docs/latex/wx/function.tex +++ /dev/null @@ -1,2396 +0,0 @@ -\chapter{Functions}\label{functions} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -The functions defined in wxWindows are described here. - -\section{File functions}\label{filefunctions} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPathList}{wxpathlist} - -\membersection{::wxDirExists} - -\func{bool}{wxDirExists}{\param{const wxString\& }{dirname}} - -Returns TRUE if the directory exists. - -\membersection{::wxDos2UnixFilename} - -\func{void}{Dos2UnixFilename}{\param{const wxString\& }{s}} - -Converts a DOS to a Unix filename by replacing backslashes with forward -slashes. - -\membersection{::wxFileExists} - -\func{bool}{wxFileExists}{\param{const wxString\& }{filename}} - -Returns TRUE if the file exists. - -\membersection{::wxFileNameFromPath} - -\func{wxString}{wxFileNameFromPath}{\param{const wxString\& }{path}} - -\func{char*}{wxFileNameFromPath}{\param{char* }{path}} - -Returns the filename for a full path. The second form returns a pointer to -temporary storage that should not be deallocated. - -\membersection{::wxFindFirstFile}\label{wxfindfirstfile} - -\func{wxString}{wxFindFirstFile}{\param{const char*}{spec}, \param{int}{ flags = 0}} - -This function does directory searching; returns the first file -that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to -get the next matching file. - -{\it spec} may contain wildcards. - -{\it flags} is reserved for future use. - -For example: - -\begin{verbatim} - wxString f = wxFindFirstFile("/home/project/*.*"); - while ( !f.IsEmpty() ) - { - ... - f = wxFindNextFile(); - } -\end{verbatim} - -\membersection{::wxFindNextFile}\label{wxfindnextfile} - -\func{wxString}{wxFindNextFile}{\void} - -Returns the next file that matches the path passed to \helpref{wxFindFirstFile}{wxfindfirstfile}. - -See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example. - -\membersection{::wxGetOSDirectory}\label{wxgetosdirectory} - -\func{wxString}{wxGetOSDirectory}{\void} - -Returns the Windows directory under Windows; on other platforms returns the empty string. - -\membersection{::wxIsAbsolutePath} - -\func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}} - -Returns TRUE if the argument is an absolute filename, i.e. with a slash -or drive name at the beginning. - -\membersection{::wxPathOnly} - -\func{wxString}{wxPathOnly}{\param{const wxString\& }{path}} - -Returns the directory part of the filename. - -\membersection{::wxUnix2DosFilename} - -\func{void}{wxUnix2DosFilename}{\param{const wxString\& }{s}} - -Converts a Unix to a DOS filename by replacing forward -slashes with backslashes. - -\membersection{::wxConcatFiles} - -\func{bool}{wxConcatFiles}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}, -\param{const wxString\& }{file3}} - -Concatenates {\it file1} and {\it file2} to {\it file3}, returning -TRUE if successful. - -\membersection{::wxCopyFile} - -\func{bool}{wxCopyFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}} - -Copies {\it file1} to {\it file2}, returning TRUE if successful. - -\membersection{::wxGetCwd}\label{wxgetcwd} - -\func{wxString}{wxGetCwd}{\void} - -Returns a string containing the current (or working) directory. - -\membersection{::wxGetWorkingDirectory} - -\func{wxString}{wxGetWorkingDirectory}{\param{char*}{buf=NULL}, \param{int }{sz=1000}} - -This function is obsolete: use \helpref{wxGetCwd}{wxgetcwd} instead. - -Copies the current working directory into the buffer if supplied, or -copies the working directory into new storage (which you must delete yourself) -if the buffer is NULL. - -{\it sz} is the size of the buffer if supplied. - -\membersection{::wxGetTempFileName} - -\func{char*}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{char* }{buf=NULL}} - -Makes a temporary filename based on {\it prefix}, opens and closes the file, -and places the name in {\it buf}. If {\it buf} is NULL, new store -is allocated for the temporary filename using {\it new}. - -Under Windows, the filename will include the drive and name of the -directory allocated for temporary files (usually the contents of the -TEMP variable). Under Unix, the {\tt /tmp} directory is used. - -It is the application's responsibility to create and delete the file. - -\membersection{::wxIsWild}\label{wxiswild} - -\func{bool}{wxIsWild}{\param{const wxString\& }{pattern}} - -Returns TRUE if the pattern contains wildcards. See \helpref{wxMatchWild}{wxmatchwild}. - -\membersection{::wxMatchWild}\label{wxmatchwild} - -\func{bool}{wxMatchWild}{\param{const wxString\& }{pattern}, \param{const wxString\& }{text}, \param{bool}{ dot\_special}} - -Returns TRUE if the {\it pattern}\/ matches the {\it text}\/; if {\it -dot\_special}\/ is TRUE, filenames beginning with a dot are not matched -with wildcard characters. See \helpref{wxIsWild}{wxiswild}. - -\membersection{::wxMkdir} - -\func{bool}{wxMkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}} - -Makes the directory {\it dir}, returning TRUE if successful. - -{\it perm} is the access mask for the directory for the systems on which it is -supported (Unix) and doesn't have effect for the other ones. - -\membersection{::wxRemoveFile} - -\func{bool}{wxRemoveFile}{\param{const wxString\& }{file}} - -Removes {\it file}, returning TRUE if successful. - -\membersection{::wxRenameFile} - -\func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}} - -Renames {\it file1} to {\it file2}, returning TRUE if successful. - -\membersection{::wxRmdir} - -\func{bool}{wxRmdir}{\param{const wxString\& }{dir}, \param{int}{ flags=0}} - -Removes the directory {\it dir}, returning TRUE if successful. Does not work under VMS. - -The {\it flags} parameter is reserved for future use. - -\membersection{::wxSetWorkingDirectory} - -\func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}} - -Sets the current working directory, returning TRUE if the operation succeeded. -Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification. - -\membersection{::wxSplitPath}\label{wxsplitfunction} - -\func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{const wxString *}{ path}, \param{const wxString *}{ name}, \param{const wxString *}{ ext}} - -This function splits a full file name into components: the path (including possible disk/drive -specification under Windows), the base name and the extension. Any of the output parameters -({\it path}, {\it name} or {\it ext}) may be NULL if you are not interested in the value of -a particular component. - -wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under -Windows, however it will not consider backslashes as path separators under Unix (where backslash -is a valid character in a filename). - -On entry, {\it fullname} should be non NULL (it may be empty though). - -On return, {\it path} contains the file path (without the trailing separator), {\it name} -contains the file name and {\it ext} contains the file extension without leading dot. All -three of them may be empty if the corresponding component is. The old contents of the -strings pointed to by these parameters will be overwritten in any case (if the pointers -are not NULL). - -\membersection{::wxTransferFileToStream}\label{wxtransferfiletostream} - -\func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}} - -Copies the given file to {\it stream}. Useful when converting an old application to -use streams (within the document/view framework, for example). - -Use of this function requires the file wx\_doc.h to be included. - -\membersection{::wxTransferStreamToFile}\label{wxtransferstreamtofile} - -\func{bool}{wxTransferStreamToFile}{\param{istream\& }{stream} \param{const wxString\& }{filename}} - -Copies the given stream to the file {\it filename}. Useful when converting an old application to -use streams (within the document/view framework, for example). - -Use of this function requires the file wx\_doc.h to be included. - -\section{Network functions}\label{networkfunctions} - -\membersection{::wxGetFullHostName}\label{wxgetfullhostname} - -\func{wxString}{wxGetFullHostName}{\void} - -Returns the FQDN (fully qualified domain host name) or an empty string on -error. - -See also: \helpref{wxGetHostName}{wxgethostname} - -\wxheading{Include files} - - - -\membersection{::wxGetEmailAddress}\label{wxgetemailaddress} - -\func{bool}{wxGetEmailAddress}{\param{const wxString\& }{buf}, \param{int }{sz}} - -Copies the user's email address into the supplied buffer, by -concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp -and \helpref{wxGetUserId}{wxgetuserid}. - -Returns TRUE if successful, FALSE otherwise. - -\wxheading{Include files} - - - -\membersection{::wxGetHostName}\label{wxgethostname} - -\func{wxString}{wxGetHostName}{\void} -\func{bool}{wxGetHostName}{\param{char * }{buf}, \param{int }{sz}} - -Copies the current host machine's name into the supplied buffer. Please note -that the returned name is {\it not} fully qualified, i.e. it does not include -the domain name. - -Under Windows or NT, this function first looks in the environment -variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp -in the {\bf wxWindows} section of the WIN.INI file is tried. - -The first variant of this function returns the hostname if successful or an -empty string otherwise. The second (deprecated) function returns TRUE -if successful, FALSE otherwise. - -See also: \helpref{wxGetFullHostName}{wxgetfullhostname} - -\wxheading{Include files} - - - -\section{User identification}\label{useridfunctions} - -\membersection{::wxGetUserId}\label{wxgetuserid} - -\func{wxString}{wxGetUserId}{\void} -\func{bool}{wxGetUserId}{\param{char * }{buf}, \param{int }{sz}} - -This function returns the "user id" also known as "login name" under Unix i.e. -something like "jsmith". It uniquely identifies the current user (on this system). - -Under Windows or NT, this function first looks in the environment -variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp -in the {\bf wxWindows} section of the WIN.INI file is tried. - -The first variant of this function returns the login name if successful or an -empty string otherwise. The second (deprecated) function returns TRUE -if successful, FALSE otherwise. - -See also: \helpref{wxGetUserName}{wxgetusername} - -\wxheading{Include files} - - - -\membersection{::wxGetUserName}\label{wxgetusername} - -\func{wxString}{wxGetUserName}{\void} -\func{bool}{wxGetUserName}{\param{char * }{buf}, \param{int }{sz}} - -This function returns the full user name (something like "Mr. John Smith"). - -Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp -in the {\bf wxWindows} section of the WIN.INI file. If PenWindows -is running, the entry {\bf Current} in the section {\bf User} of -the PENWIN.INI file is used. - -The first variant of this function returns the user name if successful or an -empty string otherwise. The second (deprecated) function returns TRUE -if successful, FALSE otherwise. - -See also: \helpref{wxGetUserId}{wxgetuserid} - -\wxheading{Include files} - - - -\section{String functions} - -\membersection{::copystring} - -\func{char*}{copystring}{\param{const char* }{s}} - -Makes a copy of the string {\it s} using the C++ new operator, so it can be -deleted with the {\it delete} operator. - -\membersection{::wxStringMatch} - -\func{bool}{wxStringMatch}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2},\\ - \param{bool}{ subString = TRUE}, \param{bool}{ exact = FALSE}} - -Returns TRUE if the substring {\it s1} is found within {\it s2}, -ignoring case if {\it exact} is FALSE. If {\it subString} is FALSE, -no substring matching is done. - -\membersection{::wxStringEq}\label{wxstringeq} - -\func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}} - -A macro defined as: - -\begin{verbatim} -#define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0)) -\end{verbatim} - -\membersection{::IsEmpty}\label{isempty} - -\func{bool}{IsEmpty}{\param{const char *}{ p}} - -Returns TRUE if the string is empty, FALSE otherwise. It is safe to pass NULL -pointer to this function and it will return TRUE for it. - -\membersection{::Stricmp}\label{stricmp} - -\func{int}{Stricmp}{\param{const char *}{p1}, \param{const char *}{p2}} - -Returns a negative value, 0, or positive value if {\it p1} is less than, equal -to or greater than {\it p2}. The comparison is case-insensitive. - -This function complements the standard C function {\it strcmp()} which performs -case-sensitive comparison. - -\membersection{::Strlen}\label{strlen} - -\func{size\_t}{Strlen}{\param{const char *}{ p}} - -This is a safe version of standard function {\it strlen()}: it does exactly the -same thing (i.e. returns the length of the string) except that it returns 0 if -{\it p} is the NULL pointer. - -\membersection{::wxGetTranslation}\label{wxgettranslation} - -\func{const char *}{wxGetTranslation}{\param{const char * }{str}} - -This function returns the translation of string {\it str} in the current -\helpref{locale}{wxlocale}. If the string is not found in any of the loaded -message catalogs (see \helpref{i18n overview}{internationalization}), the -original string is returned. In debug build, an error message is logged - this -should help to find the strings which were not yet translated. As this function -is used very often, an alternative syntax is provided: the \_() macro is -defined as wxGetTranslation(). - -\section{Dialog functions}\label{dialogfunctions} - -Below are a number of convenience functions for getting input from the -user or displaying messages. Note that in these functions the last three -parameters are optional. However, it is recommended to pass a parent frame -parameter, or (in MS Windows or Motif) the wrong window frame may be brought to -the front when the dialog box is popped up. - -\membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider} - -\func{wxTipProvider *}{wxCreateFileTipProvider}{ - \param{const wxString\& }{filename}, - \param{size\_t }{currentTip}} - -This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be -used with \helpref{wxShowTip}{wxshowtip}. - -\docparam{filename}{The name of the file containing the tips, one per line} -\docparam{currentTip}{The index of the first tip to show - normally this index - is remembered between the 2 program runs.} - -\wxheading{See also:} - -\helpref{Tips overview}{tipsoverview} - -\wxheading{Include files} - - - -\membersection{::wxFileSelector}\label{wxfileselector} - -\func{wxString}{wxFileSelector}{\param{const wxString\& }{message}, \param{const wxString\& }{default\_path = ""},\\ - \param{const wxString\& }{default\_filename = ""}, \param{const wxString\& }{default\_extension = ""},\\ - \param{const wxString\& }{wildcard = ``*.*''}, \param{int }{flags = 0}, \param{wxWindow *}{parent = ""},\\ - \param{int}{ x = -1}, \param{int}{ y = -1}} - -Pops up a file selector box. In Windows, this is the common file selector -dialog. In X, this is a file selector box with somewhat less functionality. -The path and filename are distinct elements of a full file pathname. -If path is empty, the current directory will be used. If filename is empty, -no default filename will be supplied. The wildcard determines what files -are displayed in the file selector, and file extension supplies a type -extension for the required filename. Flags may be a combination of wxOPEN, -wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0. - -Both the Unix and Windows versions implement a wildcard filter. Typing a -filename containing wildcards (*, ?) in the filename text item, and -clicking on Ok, will result in only those files matching the pattern being -displayed. - -The wildcard may be a specification for multiple types of file -with a description for each, such as: - -\begin{verbatim} - "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif" -\end{verbatim} - -The application must check for an empty return value (the user pressed -Cancel). For example: - -\begin{verbatim} -const wxString& s = wxFileSelector("Choose a file to open"); -if (s) -{ - ... -} -\end{verbatim} - -\wxheading{Include files} - - - -\membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser} - -\func{long}{wxGetNumberFromUser}{ - \param{const wxString\& }{message}, - \param{const wxString\& }{prompt}, - \param{const wxString\& }{caption}, - \param{long }{value}, - \param{long }{min = 0}, - \param{long }{max = 100}, - \param{wxWindow *}{parent = NULL}, - \param{const wxPoint\& }{pos = wxDefaultPosition}} - -Shows a dialog asking the user for numeric input. The dialogs title is set to -{\it caption}, it contains a (possibly) multiline {\it message} above the -single line {\it prompt} and the zone for entering the number. - -The number entered must be in the range {\it min}..{\it max} (both of which -should be positive) and {\it value} is the initial value of it. If the user -enters an invalid value or cancels the dialog, the function will return -1. - -Dialog is centered on its {\it parent} unless an explicit position is given in -{\it pos}. - -\wxheading{Include files} - - - -\membersection{::wxGetTextFromUser}\label{wxgettextfromuser} - -\func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\ - \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = TRUE}} - -Pop up a dialog box with title set to {\it caption}, message {\it message}, and a -\rtfsp{\it default\_value}. The user may type in text and press OK to return this text, -or press Cancel to return the empty string. - -If {\it centre} is TRUE, the message text (which may include new line characters) -is centred; if FALSE, the message is left-justified. - -\wxheading{Include files} - - - -\membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice} - -\func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{int }{nsel}, \param{int *}{selection}, - \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}} - -Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection -listbox. The user may choose one or more item(s) and press OK or Cancel. - -The number of initially selected choices, and array of the selected indices, -are passed in; this array will contain the user selections on exit, with -the function returning the number of selections. {\it selection} must be -as big as the number of choices, in case all are selected. - -If Cancel is pressed, -1 is returned. - -{\it choices} is an array of {\it n} strings for the listbox. - -If {\it centre} is TRUE, the message text (which may include new line characters) -is centred; if FALSE, the message is left-justified. - -\wxheading{Include files} - - - -\membersection{::wxGetSingleChoice}\label{wxgetsinglechoice} - -\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}} - -Pops up a dialog box containing a message, OK/Cancel buttons and a single-selection -listbox. The user may choose an item and press OK to return a string or -Cancel to return the empty string. - -{\it choices} is an array of {\it n} strings for the listbox. - -If {\it centre} is TRUE, the message text (which may include new line characters) -is centred; if FALSE, the message is left-justified. - -\wxheading{Include files} - - - -\membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex} - -\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}} - -As {\bf wxGetSingleChoice} but returns the index representing the selected string. -If the user pressed cancel, -1 is returned. - -\wxheading{Include files} - - - -\membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata} - -\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{const wxString\& }{client\_data[]}, \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1},\\ - \param{int}{ y = -1}, \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}} - -As {\bf wxGetSingleChoice} but takes an array of client data pointers -corresponding to the strings, and returns one of these pointers. - -\wxheading{Include files} - - - -\membersection{::wxMessageBox}\label{wxmessagebox} - -\func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK \pipe wxCENTRE},\\ - \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}} - -General purpose message dialog. {\it style} may be a bit list of the -following identifiers: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with -wxCANCEL.} -\twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with -wxYES\_NO or wxOK.} -\twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.} -\twocolitem{wxCENTRE}{Centres the text.} -\twocolitem{wxICON\_EXCLAMATION}{Under Windows, displays an exclamation mark symbol.} -\twocolitem{wxICON\_HAND}{Under Windows, displays a hand symbol.} -\twocolitem{wxICON\_QUESTION}{Under Windows, displays a question mark symbol.} -\twocolitem{wxICON\_INFORMATION}{Under Windows, displays an information symbol.} -\end{twocollist} - -The return value is one of: wxYES, wxNO, wxCANCEL, wxOK. - -For example: - -\begin{verbatim} - ... - int answer = wxMessageBox("Quit program?", "Confirm", - wxYES_NO | wxCANCEL, main_frame); - if (answer == wxYES) - delete main_frame; - ... -\end{verbatim} - -{\it message} may contain newline characters, in which case the -message will be split into separate lines, to cater for large messages. - -Under Windows, the native MessageBox function is used unless wxCENTRE -is specified in the style, in which case a generic function is used. -This is because the native MessageBox function cannot centre text. -The symbols are not shown when the generic function is used. - -\wxheading{Include files} - - - -\membersection{::wxShowTip}\label{wxshowtip} - -\func{bool}{wxShowTip}{ - \param{wxWindow *}{parent}, - \param{wxTipProvider *}{tipProvider}, - \param{bool }{showAtStartup = TRUE}} - -This function shows a "startup tip" to the user. - -\docparam{parent}{The parent window for the modal dialog} - -\docparam{tipProvider}{An object which is used to get the text of the tips. - It may be created with - \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.} - -\docparam{showAtStartup}{Should be TRUE if startup tips are shown, FALSE - otherwise. This is used as the initial value for "Show tips at startup" - checkbox which is shown in the tips dialog.} - -\wxheading{See also:} - -\helpref{Tips overview}{tipsoverview} - -\wxheading{Include files} - - - -\section{GDI functions}\label{gdifunctions} - -The following are relevant to the GDI (Graphics Device Interface). - -\wxheading{Include files} - - - -\membersection{::wxColourDisplay} - -\func{bool}{wxColourDisplay}{\void} - -Returns TRUE if the display is colour, FALSE otherwise. - -\membersection{::wxDisplayDepth} - -\func{int}{wxDisplayDepth}{\void} - -Returns the depth of the display (a value of 1 denotes a monochrome display). - -\membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable} - -\func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY}, - \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}} - -Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc}) -makes it into a placeable metafile by prepending a header containing the given -bounding box. The bounding box may be obtained from a device context after drawing -into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY. - -In addition to adding the placeable metafile header, this function adds -the equivalent of the following code to the start of the metafile data: - -\begin{verbatim} - SetMapMode(dc, MM_ANISOTROPIC); - SetWindowOrg(dc, minX, minY); - SetWindowExt(dc, maxX - minX, maxY - minY); -\end{verbatim} - -This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes. - -Placeable metafiles may be imported by many Windows applications, and can be -used in RTF (Rich Text Format) files. - -{\it scale} allows the specification of scale for the metafile. - -This function is only available under Windows. - -\membersection{::wxSetCursor}\label{wxsetcursor} - -\func{void}{wxSetCursor}{\param{wxCursor *}{cursor}} - -Globally sets the cursor; only has an effect in Windows and GTK. -See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}. - -\section{Printer settings}\label{printersettings} - -These routines are obsolete and should no longer be used! - -The following functions are used to control PostScript printing. Under -Windows, PostScript output can only be sent to a file. - -\wxheading{Include files} - - - -\membersection{::wxGetPrinterCommand} - -\func{wxString}{wxGetPrinterCommand}{\void} - -Gets the printer command used to print a file. The default is {\tt lpr}. - -\membersection{::wxGetPrinterFile} - -\func{wxString}{wxGetPrinterFile}{\void} - -Gets the PostScript output filename. - -\membersection{::wxGetPrinterMode} - -\func{int}{wxGetPrinterMode}{\void} - -Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER). -The default is PS\_PREVIEW. - -\membersection{::wxGetPrinterOptions} - -\func{wxString}{wxGetPrinterOptions}{\void} - -Gets the additional options for the print command (e.g. specific printer). The default is nothing. - -\membersection{::wxGetPrinterOrientation} - -\func{int}{wxGetPrinterOrientation}{\void} - -Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT. - -\membersection{::wxGetPrinterPreviewCommand} - -\func{wxString}{wxGetPrinterPreviewCommand}{\void} - -Gets the command used to view a PostScript file. The default depends on the platform. - -\membersection{::wxGetPrinterScaling} - -\func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}} - -Gets the scaling factor for PostScript output. The default is 1.0, 1.0. - -\membersection{::wxGetPrinterTranslation} - -\func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}} - -Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0. - -\membersection{::wxSetPrinterCommand} - -\func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}} - -Sets the printer command used to print a file. The default is {\tt lpr}. - -\membersection{::wxSetPrinterFile} - -\func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}} - -Sets the PostScript output filename. - -\membersection{::wxSetPrinterMode} - -\func{void}{wxSetPrinterMode}{\param{int }{mode}} - -Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER). -The default is PS\_PREVIEW. - -\membersection{::wxSetPrinterOptions} - -\func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}} - -Sets the additional options for the print command (e.g. specific printer). The default is nothing. - -\membersection{::wxSetPrinterOrientation} - -\func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}} - -Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT. - -\membersection{::wxSetPrinterPreviewCommand} - -\func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}} - -Sets the command used to view a PostScript file. The default depends on the platform. - -\membersection{::wxSetPrinterScaling} - -\func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}} - -Sets the scaling factor for PostScript output. The default is 1.0, 1.0. - -\membersection{::wxSetPrinterTranslation} - -\func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}} - -Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0. - -\section{Clipboard functions}\label{clipsboard} - -These clipboard functions are implemented for Windows only. - -\wxheading{Include files} - - - -\membersection{::wxClipboardOpen} - -\func{bool}{wxClipboardOpen}{\void} - -Returns TRUE if this application has already opened the clipboard. - -\membersection{::wxCloseClipboard} - -\func{bool}{wxCloseClipboard}{\void} - -Closes the clipboard to allow other applications to use it. - -\membersection{::wxEmptyClipboard} - -\func{bool}{wxEmptyClipboard}{\void} - -Empties the clipboard. - -\membersection{::wxEnumClipboardFormats} - -\func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}} - -Enumerates the formats found in a list of available formats that belong -to the clipboard. Each call to this function specifies a known -available format; the function returns the format that appears next in -the list. - -{\it dataFormat} specifies a known format. If this parameter is zero, -the function returns the first format in the list. - -The return value specifies the next known clipboard data format if the -function is successful. It is zero if the {\it dataFormat} parameter specifies -the last format in the list of available formats, or if the clipboard -is not open. - -Before it enumerates the formats function, an application must open the clipboard by using the -wxOpenClipboard function. - -\membersection{::wxGetClipboardData} - -\func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}} - -Gets data from the clipboard. - -{\it dataFormat} may be one of: - -\begin{itemize}\itemsep=0pt -\item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string. -\item wxCF\_BITMAP: returns a new wxBitmap. -\end{itemize} - -The clipboard must have previously been opened for this call to succeed. - -\membersection{::wxGetClipboardFormatName} - -\func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}} - -Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum -length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format. - -\membersection{::wxIsClipboardFormatAvailable} - -\func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}} - -Returns TRUE if the given data format is available on the clipboard. - -\membersection{::wxOpenClipboard} - -\func{bool}{wxOpenClipboard}{\void} - -Opens the clipboard for passing data to it or getting data from it. - -\membersection{::wxRegisterClipboardFormat} - -\func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}} - -Registers the clipboard data format name and returns an identifier. - -\membersection{::wxSetClipboardData} - -\func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}} - -Passes data to the clipboard. - -{\it dataFormat} may be one of: - -\begin{itemize}\itemsep=0pt -\item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string. -\item wxCF\_BITMAP: {\it data} is a wxBitmap. -\item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap). -\item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions. -\end{itemize} - -The clipboard must have previously been opened for this call to succeed. - -\section{Miscellaneous functions}\label{miscellany} - -\membersection{::wxNewId} - -\func{long}{wxNewId}{\void} - -Generates an integer identifier unique to this run of the program. - -\wxheading{Include files} - - - -\membersection{::wxRegisterId} - -\func{void}{wxRegisterId}{\param{long}{ id}} - -Ensures that ids subsequently generated by {\bf NewId} do not clash with -the given {\bf id}. - -\wxheading{Include files} - - - -\membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor} - -\func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}} - -Changes the cursor to the given cursor for all windows in the application. -Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back -to its previous state. These two calls can be nested, and a counter -ensures that only the outer calls take effect. - -See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}. - -\wxheading{Include files} - - - -\membersection{::wxBell} - -\func{void}{wxBell}{\void} - -Ring the system bell. - -\wxheading{Include files} - - - -\membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject} - -\func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}} - -Creates and returns an object of the given class, if the class has been -registered with the dynamic class system using DECLARE... and IMPLEMENT... macros. - -\membersection{::wxDDECleanUp}\label{wxddecleanup} - -\func{void}{wxDDECleanUp}{\void} - -Called when wxWindows exits, to clean up the DDE system. This no longer needs to be -called by the application. - -See also helpref{wxDDEInitialize}{wxddeinitialize}. - -\wxheading{Include files} - - - -\membersection{::wxDDEInitialize}\label{wxddeinitialize} - -\func{void}{wxDDEInitialize}{\void} - -Initializes the DDE system. May be called multiple times without harm. - -This no longer needs to be called by the application: it will be called -by wxWindows if necessary. - -See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection}, -\helpref{wxDDECleanUp}{wxddecleanup}. - -\wxheading{Include files} - - - -\membersection{::wxDebugMsg}\label{wxdebugmsg} - -\func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}} - -Display a debugging message; under Windows, this will appear on the -debugger command window, and under Unix, it will be written to standard -error. - -The syntax is identical to {\bf printf}: pass a format string and a -variable list of arguments. - -Note that under Windows, you can see the debugging messages without a -debugger if you have the DBWIN debug log application that comes with -Microsoft C++. - -{\bf Tip:} under Windows, if your application crashes before the -message appears in the debugging window, put a wxYield call after -each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s -(at least for Watcom C++): preformat your messages and use OutputDebugString -instead. - -This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -\wxheading{Include files} - - - -\membersection{::wxDisplaySize} - -\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}} - -Gets the physical size of the display in pixels. - -\wxheading{Include files} - - - -\membersection{::wxEntry}\label{wxentry} - -This initializes wxWindows in a platform-dependent way. Use this if you -are not using the default wxWindows entry code (e.g. main or WinMain). For example, -you can initialize wxWindows from an Microsoft Foundation Classes application using -this function. - -\func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance}, - \param{const wxString\& }{commandLine}, \param{int}{ cmdShow}, \param{bool}{ enterLoop = TRUE}} - -wxWindows initialization under Windows (non-DLL). If {\it enterLoop} is FALSE, the -function will return immediately after calling wxApp::OnInit. Otherwise, the wxWindows -message loop will be entered. - -\func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance}, - \param{WORD}{ wDataSegment}, \param{WORD}{ wHeapSize}, \param{const wxString\& }{ commandLine}} - -wxWindows initialization under Windows (for applications constructed as a DLL). - -\func{int}{wxEntry}{\param{int}{ argc}, \param{const wxString\& *}{argv}} - -wxWindows initialization under Unix. - -\wxheading{Remarks} - -To clean up wxWindows, call wxApp::OnExit followed by the static function -wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWindows: - -\begin{verbatim} -int CTheApp::ExitInstance() -{ - // OnExit isn't called by CleanUp so must be called explicitly. - wxTheApp->OnExit(); - wxApp::CleanUp(); - - return CWinApp::ExitInstance(); -} -\end{verbatim} - -\wxheading{Include files} - - - -\membersection{::wxError}\label{wxerror} - -\func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}} - -Displays {\it msg} and continues. This writes to standard error under -Unix, and pops up a message box under Windows. Used for internal -wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}. - -\wxheading{Include files} - - - -\membersection{::wxEndBusyCursor}\label{wxendbusycursor} - -\func{void}{wxEndBusyCursor}{\void} - -Changes the cursor back to the original cursor, for all windows in the application. -Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}. - -See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}. - -\wxheading{Include files} - - - -\membersection{::wxExecute}\label{wxexecute} - -\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}} - -\func{long}{wxExecute}{\param{char **}{argv}, \param{bool }{sync = FALSE}, \param{wxProcess *}{callback = NULL}} - -Executes another program in Unix or Windows. - -The first form takes a command string, such as {\tt "emacs file.txt"}. - -The second form takes an array of values: a command, any number of -arguments, terminated by NULL. - -If {\it sync} is FALSE (the default), flow of control immediately returns. -If TRUE, the current application waits until the other program has terminated. - -In the case of synchronous execution, the return value is the exit code of -the process (which terminates by the moment the function returns) and will be -$-1$ if the process couldn't be started and typically 0 if the process -terminated successfully. Also, while waiting for the process to -terminate, wxExecute will call \helpref{wxYield}{wxyield}. The caller -should ensure that this can cause no recursion, in the simples case by -calling \helpref{wxEnableTopLevelWindows(FALSE)}{wxenabletoplevelwindows}. - -For asynchronous execution, however, the return value is the process id and -zero value indicates that the command could not be executed. - -If callback isn't NULL and if execution is asynchronous (note that callback -parameter can not be non NULL for synchronous execution), -\helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when -the process finishes. - -See also \helpref{wxShell}{wxshell}, \helpref{wxProcess}{wxprocess}. - -\wxheading{Include files} - - - -\membersection{::wxExit}\label{wxexit} - -\func{void}{wxExit}{\void} - -Exits application after calling \helpref{wxApp::OnExit}{wxapponexit}. -Should only be used in an emergency: normally the top-level frame -should be deleted (after deleting all other frames) to terminate the -application. See \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} and \helpref{wxApp}{wxapp}. - -\wxheading{Include files} - - - -\membersection{::wxFatalError}\label{wxfatalerror} - -\func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}} - -Displays {\it msg} and exits. This writes to standard error under Unix, -and pops up a message box under Windows. Used for fatal internal -wxWindows errors. See also \helpref{wxError}{wxerror}. - -\wxheading{Include files} - - - -\membersection{::wxFindMenuItemId} - -\func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}} - -Find a menu item identifier associated with the given frame's menu bar. - -\wxheading{Include files} - - - -\membersection{::wxFindWindowByLabel} - -\func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}} - -Find a window by its label. Depending on the type of window, the label may be a window title -or panel item label. If {\it parent} is NULL, the search will start from all top-level -frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy. -The search is recursive in both cases. - -\wxheading{Include files} - - - -\membersection{::wxFindWindowByName}\label{wxfindwindowbyname} - -\func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}} - -Find a window by its name (as given in a window constructor or {\bf Create} function call). -If {\it parent} is NULL, the search will start from all top-level -frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy. -The search is recursive in both cases. - -If no such named window is found, {\bf wxFindWindowByLabel} is called. - -\wxheading{Include files} - - - -\membersection{::wxGetActiveWindow}\label{wxgetactivewindow} - -\func{wxWindow *}{wxGetActiveWindow}{\void} - -Gets the currently active window (Windows only). - -\wxheading{Include files} - - - -\membersection{::wxGetDisplayName}\label{wxgetdisplayname} - -\func{wxString}{wxGetDisplayName}{\void} - -Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}. - -\wxheading{Include files} - - - -\membersection{::wxGetHomeDir} - -\func{wxString}{wxGetHomeDir}{\param{const wxString\& }{buf}} - -Fills the buffer with a string representing the user's home directory (Unix only). - -\wxheading{Include files} - - - -\membersection{::wxGetHostName} - -\func{bool}{wxGetHostName}{\param{const wxString\& }{buf}, \param{int}{ bufSize}} - -Copies the host name of the machine the program is running on into the -buffer {\it buf}, of maximum size {\it bufSize}, returning TRUE if -successful. Under Unix, this will return a machine name. Under Windows, -this returns ``windows''. - -\wxheading{Include files} - - - -\membersection{::wxGetElapsedTime}\label{wxgetelapsedtime} - -\func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = TRUE}} - -Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}. - -If {\it resetTimer} is TRUE (the default), the timer is reset to zero -by this call. - -See also \helpref{wxTimer}{wxtimer}. - -\wxheading{Include files} - - - -\membersection{::wxGetFreeMemory}\label{wxgetfreememory} - -\func{long}{wxGetFreeMemory}{\void} - -Returns the amount of free memory in Kbytes under environments which -support it, and -1 if not supported. Currently, returns a positive value -under Windows, and -1 under Unix. - -\wxheading{Include files} - - - -\membersection{::wxGetMousePosition} - -\func{void}{wxGetMousePosition}{\param{int* }{x}, \param{int* }{y}} - -Returns the mouse position in screen coordinates. - -\wxheading{Include files} - - - -\membersection{::wxGetOsVersion} - -\func{int}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}} - -Gets operating system version information. - -\begin{twocollist}\itemsep=0pt -\twocolitemruled{Platform}{Return tyes} -\twocolitem{Macintosh}{Return value is wxMACINTOSH.} -\twocolitem{GTK}{Return value is wxGTK, {\it major} is 1, {\it minor} is 0. (for GTK 1.0.X) } -\twocolitem{Motif}{Return value is wxMOTIF\_X, {\it major} is X version, {\it minor} is X revision.} -\twocolitem{OS/2}{Return value is wxOS2\_PM.} -\twocolitem{Windows 3.1}{Return value is wxWINDOWS, {\it major} is 3, {\it minor} is 1.} -\twocolitem{Windows NT}{Return value is wxWINDOWS\_NT, {\it major} is 3, {\it minor} is 1.} -\twocolitem{Windows 95}{Return value is wxWIN95, {\it major} is 3, {\it minor} is 1.} -\twocolitem{Win32s (Windows 3.1)}{Return value is wxWIN32S, {\it major} is 3, {\it minor} is 1.} -\twocolitem{Watcom C++ 386 supervisor mode (Windows 3.1)}{Return value is wxWIN386, {\it major} is 3, {\it minor} is 1.} -\end{twocollist} - -\wxheading{Include files} - - - -\membersection{::wxGetResource}\label{wxgetresource} - -\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}} - -\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{float *}{value}, \param{const wxString\& }{file = NULL}} - -\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{long *}{value}, \param{const wxString\& }{file = NULL}} - -\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{int *}{value}, \param{const wxString\& }{file = NULL}} - -Gets a resource value from the resource database (for example, WIN.INI, or -.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used, -otherwise the specified file is used. - -Under X, if an application class (wxApp::GetClassName) has been defined, -it is appended to the string /usr/lib/X11/app-defaults/ to try to find -an applications default file when merging all resource databases. - -The reason for passing the result in an argument is that it -can be convenient to define a default value, which gets overridden -if the value exists in the resource file. It saves a separate -test for that resource's existence, and it also allows -the overloading of the function for different types. - -See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}. - -\wxheading{Include files} - - - -\membersection{::wxGetUserId} - -\func{bool}{wxGetUserId}{\param{const wxString\& }{buf}, \param{int}{ bufSize}} - -Copies the user's login identity (such as ``jacs'') into the buffer {\it -buf}, of maximum size {\it bufSize}, returning TRUE if successful. -Under Windows, this returns ``user''. - -\wxheading{Include files} - - - -\membersection{::wxGetUserName} - -\func{bool}{wxGetUserName}{\param{const wxString\& }{buf}, \param{int}{ bufSize}} - -Copies the user's name (such as ``Julian Smart'') into the buffer {\it -buf}, of maximum size {\it bufSize}, returning TRUE if successful. -Under Windows, this returns ``unknown''. - -\wxheading{Include files} - - - -\membersection{::wxKill}\label{wxkill} - -\func{int}{wxKill}{\param{long}{ pid}, \param{int}{ sig}} - -Under Unix (the only supported platform), equivalent to the Unix kill function. -Returns 0 on success, -1 on failure. - -Tip: sending a signal of 0 to a process returns -1 if the process does not exist. -It does not raise a signal in the receiving process. - -\wxheading{Include files} - - - -\membersection{::wxIsBusy}\label{wxisbusy} - -\func{bool}{wxIsBusy}{\void} - -Returns TRUE if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp -\helpref{wxEndBusyCursor}{wxendbusycursor} calls. - -See also \helpref{wxBusyCursor}{wxbusycursor}. - -\wxheading{Include files} - - - -\membersection{::wxLoadUserResource}\label{wxloaduserresource} - -\func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}} - -Loads a user-defined Windows resource as a string. If the resource is found, the function creates -a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned. - -The resource must be defined in the {\tt .rc} file using the following syntax: - -\begin{verbatim} -myResource TEXT file.ext -\end{verbatim} - -where {\tt file.ext} is a file that the resource compiler can find. - -One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers -cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed -using \helpref{wxResourceParseString}{wxresourceparsestring}. - -This function is available under Windows only. - -\wxheading{Include files} - - - -\membersection{::wxNow}\label{wxnow} - -\func{wxString}{wxNow}{\void} - -Returns a string representing the current date and time. - -\wxheading{Include files} - - - -\membersection{::wxPostDelete}\label{wxpostdelete} - -\func{void}{wxPostDelete}{\param{wxObject *}{object}} - -Tells the system to delete the specified object when -all other events have been processed. In some environments, it is -necessary to use this instead of deleting a frame directly with the -delete operator, because some GUIs will still send events to a deleted window. - -Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead. - -\wxheading{Include files} - - - -\membersection{::wxSafeYield}\label{wxsafeyield} - -\func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}} - -This function is similar to wxYield, except that it disables the user input to -all program windows before calling wxYield and re-enables it again -afterwards. If {\it win} is not NULL, this window will remain enabled, -allowing the implementation of some limited user interaction. - -Returns the result of the call to \helpref{::wxYield}{wxyield}. - -\wxheading{Include files} - - - -\membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows} - -\func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = TRUE}} - -This function enables or disables all top level windows. It is used by -\helpref{::wxSafeYield}{wxsafeyield}. - -\wxheading{Include files} - - - - -\membersection{::wxSetDisplayName}\label{wxsetdisplayname} - -\func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}} - -Under X only, sets the current display name. This is the X host and display name such -as ``colonsay:0.0", and the function indicates which display should be used for creating -windows from this point on. Setting the display within an application allows multiple -displays to be used. - -See also \helpref{wxGetDisplayName}{wxgetdisplayname}. - -\wxheading{Include files} - - - -\membersection{::wxShell}\label{wxshell} - -\func{bool}{wxShell}{\param{const wxString\& }{command = NULL}} - -Executes a command in an interactive shell window. If no command is -specified, then just the shell is spawned. - -See also \helpref{wxExecute}{wxexecute}. - -\wxheading{Include files} - - - -\membersection{::wxSleep}\label{wxsleep} - -\func{void}{wxSleep}{\param{int}{ secs}} - -Sleeps for the specified number of seconds. - -\wxheading{Include files} - - - -\membersection{::wxStripMenuCodes} - -\func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}} - -\func{void}{wxStripMenuCodes}{\param{char* }{in}, \param{char* }{out}} - -Strips any menu codes from {\it in} and places the result -in {\it out} (or returns the new string, in the first form). - -Menu codes include \& (mark the next character with an underline -as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows). - -\wxheading{Include files} - - - -\membersection{::wxStartTimer}\label{wxstarttimer} - -\func{void}{wxStartTimer}{\void} - -Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time. - -See also \helpref{wxTimer}{wxtimer}. - -\wxheading{Include files} - - - -\membersection{::wxToLower}\label{wxtolower} - -\func{char}{wxToLower}{\param{char }{ch}} - -Converts the character to lower case. This is implemented as a macro for efficiency. - -\wxheading{Include files} - - - -\membersection{::wxToUpper}\label{wxtoupper} - -\func{char}{wxToUpper}{\param{char }{ch}} - -Converts the character to upper case. This is implemented as a macro for efficiency. - -\wxheading{Include files} - - - -\membersection{::wxTrace}\label{wxtrace} - -\func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}} - -Takes printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). - -This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -\wxheading{Include files} - - - -\membersection{::wxTraceLevel}\label{wxtracelevel} - -\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}} - -Takes printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). -The first argument should be the level at which this information is appropriate. -It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than -this value. - -This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -\wxheading{Include files} - - - -\membersection{::wxUsleep}\label{wxusleep} - -\func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}} - -Sleeps for the specified number of milliseconds. Notice that usage of this -function is encouraged instead of calling usleep(3) directly because the -standard usleep() function is not MT safe. - -\wxheading{Include files} - - - -\membersection{::wxWriteResource}\label{wxwriteresource} - -\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}} - -\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{float }{value}, \param{const wxString\& }{file = NULL}} - -\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{long }{value}, \param{const wxString\& }{file = NULL}} - -\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry}, - \param{int }{value}, \param{const wxString\& }{file = NULL}} - -Writes a resource value into the resource database (for example, WIN.INI, or -.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used, -otherwise the specified file is used. - -Under X, the resource databases are cached until the internal function -\rtfsp{\bf wxFlushResources} is called automatically on exit, when -all updated resource databases are written to their files. - -Note that it is considered bad manners to write to the .Xdefaults -file under Unix, although the WIN.INI file is fair game under Windows. - -See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}. - -\wxheading{Include files} - - - -\membersection{::wxYield}\label{wxyield} - -\func{bool}{wxYield}{\void} - -Yields control to pending messages in the windowing system. This can be useful, for example, when a -time-consuming process writes to a text window. Without an occasional -yield, the text window will not be updated properly, and (since Windows -multitasking is cooperative) other processes will not respond. - -Caution should be exercised, however, since yielding may allow the -user to perform actions which are not compatible with the current task. -Disabling menu items or whole menus during processing can avoid unwanted -reentrance of code: see \helpref{::wxSafeYield}{wxsafeyield} for a better -function. - -\wxheading{Include files} - - - -\section{Macros}\label{macros} - -These macros are defined in wxWindows. - -\membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways} - -\func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}} - -\func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}} - -\func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}} - -\func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}} - -This macro will swap the bytes of the {\it value} variable from little -endian to big endian or vice versa. - -\membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe} - -\func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}} - -\func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}} - -\func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}} - -\func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}} - -This macro will swap the bytes of the {\it value} variable from little -endian to big endian or vice versa if the program is compiled on a -big-endian architecture (such as Sun work stations). If the program has -been compiled on a little-endian architecture, the value will be unchanged. - -Use these macros to read data from and write data to a file that stores -data in little endian (Intel i386) format. - -\membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle} - -\func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}} - -\func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}} - -\func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}} - -\func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}} - -This macro will swap the bytes of the {\it value} variable from little -endian to big endian or vice versa if the program is compiled on a -little-endian architecture (such as Intel PCs). If the program has -been compiled on a big-endian architecture, the value will be unchanged. - -Use these macros to read data from and write data to a file that stores -data in big endian format. - -\membersection{CLASSINFO}\label{classinfo} - -\func{wxClassInfo *}{CLASSINFO}{className} - -Returns a pointer to the wxClassInfo object associated with this class. - -\wxheading{Include files} - - - -\membersection{DECLARE\_ABSTRACT\_CLASS} - -\func{}{DECLARE\_ABSTRACT\_CLASS}{className} - -Used inside a class declaration to declare that the class should be -made known to the class hierarchy, but objects of this class cannot be created -dynamically. The same as DECLARE\_CLASS. - -Example: - -\begin{verbatim} -class wxCommand: public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxCommand) - - private: - ... - public: - ... -}; -\end{verbatim} - -\wxheading{Include files} - - - -\membersection{DECLARE\_APP}\label{declareapp} - -\func{}{DECLARE\_APP}{className} - -This is used in headers to create a forward declaration of the wxGetApp function implemented -by IMPLEMENT\_APP. It creates the declaration {\tt className\& wxGetApp(void)}. - -Example: - -\begin{verbatim} - DECLARE_APP(MyApp) -\end{verbatim} - -\wxheading{Include files} - - - -\membersection{DECLARE\_CLASS} - -\func{}{DECLARE\_CLASS}{className} - -Used inside a class declaration to declare that the class should be -made known to the class hierarchy, but objects of this class cannot be created -dynamically. The same as DECLARE\_ABSTRACT\_CLASS. - -\wxheading{Include files} - - - -\membersection{DECLARE\_DYNAMIC\_CLASS} - -\func{}{DECLARE\_DYNAMIC\_CLASS}{className} - -Used inside a class declaration to declare that the objects of this class should be dynamically -createable from run-time type information. - -Example: - -\begin{verbatim} -class wxFrame: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxFrame) - - private: - const wxString\& frameTitle; - public: - ... -}; -\end{verbatim} - -\wxheading{Include files} - - - -\membersection{IMPLEMENT\_ABSTRACT\_CLASS} - -\func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information. The same as IMPLEMENT\_CLASS. - -Example: - -\begin{verbatim} -IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject) - -wxCommand::wxCommand(void) -{ -... -} -\end{verbatim} - -\wxheading{Include files} - - - -\membersection{IMPLEMENT\_ABSTRACT\_CLASS2} - -\func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2. - -\wxheading{Include files} - - - -\membersection{IMPLEMENT\_APP}\label{implementapp} - -\func{}{IMPLEMENT\_APP}{className} - -This is used in the application class implementation file to make the application class known to -wxWindows for dynamic construction. You use this instead of - -Old form: - -\begin{verbatim} - MyApp myApp; -\end{verbatim} - -New form: - -\begin{verbatim} - IMPLEMENT_APP(MyApp) -\end{verbatim} - -See also \helpref{DECLARE\_APP}{declareapp}. - -\wxheading{Include files} - - - -\membersection{IMPLEMENT\_CLASS} - -\func{}{IMPLEMENT\_CLASS}{className, baseClassName} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS. - -\wxheading{Include files} - - - -\membersection{IMPLEMENT\_CLASS2} - -\func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2} - -Used in a C++ implementation file to complete the declaration of a -class that has run-time type information and two base classes. The -same as IMPLEMENT\_ABSTRACT\_CLASS2. - -\wxheading{Include files} - - - -\membersection{IMPLEMENT\_DYNAMIC\_CLASS} - -\func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information, and whose instances -can be created dynamically. - -Example: - -\begin{verbatim} -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) - -wxFrame::wxFrame(void) -{ -... -} -\end{verbatim} - -\wxheading{Include files} - - - -\membersection{IMPLEMENT\_DYNAMIC\_CLASS2} - -\func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information, and whose instances -can be created dynamically. Use this for classes derived from two -base classes. - -\wxheading{Include files} - - - -\membersection{WXDEBUG\_NEW}\label{debugnew} - -\func{}{WXDEBUG\_NEW}{arg} - -This is defined in debug mode to be call the redefined new operator -with filename and line number arguments. The definition is: - -\begin{verbatim} -#define WXDEBUG_NEW new(__FILE__,__LINE__) -\end{verbatim} - -In non-debug mode, this is defined as the normal new operator. - -\wxheading{Include files} - - - -\membersection{wxDynamicCast}\label{wxdynamiccast} - -\func{}{wxDynamicCast}{ptr, classname} - -This macro returns the pointer {\it ptr} cast to the type {\it classname *} if -the pointer is of this type (the check is done during the run-time) or NULL -otherwise. Usage of this macro is prefered over obsoleted wxObject::IsKindOf() -function. - -The {\it ptr} argument may be NULL, in which case NULL will be returned. - -Example: - -\begin{verbatim} - wxWindow *win = wxWindow::FindFocus(); - wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl); - if ( text ) - { - // a text control has the focus... - } - else - { - // no window has the focus or it's not a text control - } -\end{verbatim} - -\wxheading{See also} - -\helpref{RTTI overview}{runtimeclassoverview} - -\membersection{WXTRACE}\label{trace} - -\wxheading{Include files} - - - -\func{}{WXTRACE}{formatString, ...} - -Calls wxTrace with printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). - -This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -\wxheading{Include files} - - - -\membersection{WXTRACELEVEL}\label{tracelevel} - -\func{}{WXTRACELEVEL}{level, formatString, ...} - -Calls wxTraceLevel with printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). -The first argument should be the level at which this information is appropriate. -It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than -this value. - -This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -\wxheading{Include files} - - - -\section{wxWindows resource functions}\label{resourcefuncs} - -\overview{wxWindows resource system}{resourceformats} - -This section details functions for manipulating wxWindows (.WXR) resource -files and loading user interface elements from resources. - -\normalbox{Please note that this use of the word `resource' is different from that used when talking -about initialisation file resource reading and writing, using such functions -as wxWriteResource and wxGetResource. It's just an unfortunate clash of terminology.} - -\helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.} - -See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for -loading from resource data. - -{\bf Warning:} this needs updating for wxWindows 2. - -\membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier} - -\func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}} - -Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp -\verb$#$defining a name to an integer). Unlikely to be used by an application except -perhaps for implementing resource functionality for interpreted languages. - -\membersection{::wxResourceClear} - -\func{void}{wxResourceClear}{\void} - -Clears the wxWindows resource table. - -\membersection{::wxResourceCreateBitmap} - -\func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}} - -Creates a new bitmap from a file, static data, or Windows resource, given a valid -wxWindows bitmap resource identifier. For example, if the .WXR file contains -the following: - -\begin{verbatim} -static const wxString\& aiai_resource = "bitmap(name = 'aiai_resource',\ - bitmap = ['aiai', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\ - bitmap = ['aiai.xpm', wxBITMAP_TYPE_XPM, 'X'])."; -\end{verbatim} - -then this function can be called as follows: - -\begin{verbatim} - wxBitmap *bitmap = wxResourceCreateBitmap("aiai_resource"); -\end{verbatim} - -\membersection{::wxResourceCreateIcon} - -\func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}} - -Creates a new icon from a file, static data, or Windows resource, given a valid -wxWindows icon resource identifier. For example, if the .WXR file contains -the following: - -\begin{verbatim} -static const wxString\& aiai_resource = "icon(name = 'aiai_resource',\ - icon = ['aiai', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\ - icon = ['aiai', wxBITMAP_TYPE_XBM_DATA, 'X'])."; -\end{verbatim} - -then this function can be called as follows: - -\begin{verbatim} - wxIcon *icon = wxResourceCreateIcon("aiai_resource"); -\end{verbatim} - -\membersection{::wxResourceCreateMenuBar} - -\func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}} - -Creates a new menu bar given a valid wxWindows menubar resource -identifier. For example, if the .WXR file contains the following: - -\begin{verbatim} -static const wxString\& menuBar11 = "menu(name = 'menuBar11',\ - menu = \ - [\ - ['&File', 1, '', \ - ['&Open File', 2, 'Open a file'],\ - ['&Save File', 3, 'Save a file'],\ - [],\ - ['E&xit', 4, 'Exit program']\ - ],\ - ['&Help', 5, '', \ - ['&About', 6, 'About this program']\ - ]\ - ])."; -\end{verbatim} - -then this function can be called as follows: - -\begin{verbatim} - wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11"); -\end{verbatim} - - -\membersection{::wxResourceGetIdentifier} - -\func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}} - -Used for retrieving the integer value associated with an identifier. -A zero value indicates that the identifier was not found. - -See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}. - -\membersection{::wxResourceParseData}\label{wxresourcedata} - -\func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}} - -Parses a string containing one or more wxWindows resource objects. If -the resource objects are global static data that are included into the -C++ program, then this function must be called for each variable -containing the resource data, to make it known to wxWindows. - -{\it resource} should contain data in the following form: - -\begin{verbatim} -dialog(name = 'dialog1', - style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE', - title = 'Test dialog box', - x = 312, y = 234, width = 400, height = 300, - modal = 0, - control = [wxGroupBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262, - [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]], - control = [wxMultiText, 'Multitext', 'wxVERTICAL_LABEL', 'multitext3', - 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.', - [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0], - [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]). -\end{verbatim} - -This function will typically be used after including a {\tt .wxr} file into -a C++ program as follows: - -\begin{verbatim} -#include "dialog1.wxr" -\end{verbatim} - -Each of the contained resources will declare a new C++ variable, and each -of these variables should be passed to wxResourceParseData. - -\membersection{::wxResourceParseFile} - -\func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}} - -Parses a file containing one or more wxWindows resource objects -in C++-compatible syntax. Use this function to dynamically load -wxWindows resource data. - -\membersection{::wxResourceParseString}\label{wxresourceparsestring} - -\func{bool}{wxResourceParseString}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}} - -Parses a string containing one or more wxWindows resource objects. If -the resource objects are global static data that are included into the -C++ program, then this function must be called for each variable -containing the resource data, to make it known to wxWindows. - -{\it resource} should contain data with the following form: - -\begin{verbatim} -static const wxString\& dialog1 = "dialog(name = 'dialog1',\ - style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',\ - title = 'Test dialog box',\ - x = 312, y = 234, width = 400, height = 300,\ - modal = 0,\ - control = [wxGroupBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,\ - [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [wxMultiText, 'Multitext', 'wxVERTICAL_LABEL', 'multitext3',\ - 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',\ - [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],\ - [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]])."; -\end{verbatim} - -This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to -load an entire {\tt .wxr file} into a string. - -\membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata} - -\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{const wxString\& }{xbm\_data}, \param{int }{width}, -\param{int }{height}, \param{wxResourceTable *}{table = NULL}} - -\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{const wxString\& *}{xpm\_data}} - -Makes \verb$#$included XBM or XPM bitmap data known to the wxWindows resource system. -This is required if other resources will use the bitmap data, since otherwise there -is no connection between names used in resources, and the global bitmap data. - -\membersection{::wxResourceRegisterIconData} - -Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}. - -\section{Log functions}\label{logfunctions} - -These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for -further information. - -\wxheading{Include files} - - - -\membersection{::wxLogError}\label{wxlogerror} - -\func{void}{wxLogError}{\param{const char*}{ formatString}, \param{...}{}} - -The function to use for error messages, i.e. the -messages that must be shown to the user. The default processing is to pop up a -message box to inform the user about it. - -\membersection{::wxLogFatalError}\label{wxlogfatalerror} - -\func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{...}{}} - -Like \helpref{wxLogError}{wxlogerror}, but also -terminates the program with the exit code 3. Using {\it abort()} standard -function also terminates the program with this exit code. - -\membersection{::wxLogWarning}\label{wxlogwarning} - -\func{void}{wxLogWarning}{\param{const char*}{ formatString}, \param{...}{}} - -For warnings - they are also normally shown to the -user, but don't interrupt the program work. - -\membersection{::wxLogMessage}\label{wxlogmessage} - -\func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{...}{}} - -for all normal, informational messages. They also -appear in a message box by default (but it can be changed). Notice -that the standard behaviour is to not show informational messages if there are -any errors later - the logic being that the later error messages make the -informational messages preceding them meaningless. - -\membersection{::wxLogVerbose}\label{wxlogverbose} - -\func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{...}{}} - -For verbose output. Normally, it's suppressed, but -might be activated if the user wishes to know more details about the program -progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}). - -\membersection{::wxLogStatus}\label{wxlogstatus} - -\func{void}{wxLogStatus}{\param{const char*}{ formatString}, \param{...}{}} - -For status messages - they will go into the status -bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one. - -\membersection{::wxLogSysError}\label{wxlogsyserror} - -\func{void}{wxLogSysError}{\param{const char*}{ formatString}, \param{...}{}} - -Mostly used by wxWindows itself, but might be -handy for logging errors after system call (API function) failure. It logs the -specified message text as well as the last system error code ({\it errno} or {\it ::GetLastError()} depending -on the platform) and the corresponding error -message. The second form of this function takes the error code explitly as the -first argument. - -\membersection{::wxLogDebug}\label{wxlogdebug} - -\func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{...}{}} - -The right function for debug output. It only -does anything at all in the debug mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) -and expands to nothing in release mode (otherwise). - -\membersection{::wxLogTrace}\label{wxlogtrace} - -\func{void}{wxLogTrace}{\param{const char*}{ formatString}, \param{...}{}} - -\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char*}{ formatString}, \param{...}{}} - -As {\bf wxLogDebug}, only does something in debug -build. The reason for making it a separate function from it is that usually -there are a lot of trace messages, so it might make sense to separate them -from other debug messages which would be flooded in them. Moreover, the second -version of this function takes a trace mask as the first argument which allows -to further restrict the amount of messages generated. The value of {\it mask} can be: - -\begin{itemize}\itemsep=0pt -\item wxTraceMemAlloc: trace memory allocation (new/delete) -\item wxTraceMessages: trace window messages/X callbacks -\item wxTraceResAlloc: trace GDI resource allocation -\item wxTraceRefCount: trace various ref counting operations -\end{itemize} - -\section{Debugging macros and functions}\label{debugmacros} - -Useful macros and functins for error checking and defensive programming. ASSERTs are only -compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release -builds. - -\wxheading{Include files} - - - -\membersection{::wxOnAssert}\label{wxonassert} - -\func{void}{wxOnAssert}{\param{const char*}{ fileName}, \param{int}{ lineNumber}, \param{const char*}{ msg = NULL}} - -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). -% TODO: this should probably be an overridable in wxApp. - -\membersection{wxASSERT}\label{wxassert} - -\func{}{wxASSERT}{\param{}{condition}} - -Assert macro. An error message will be generated if the condition is FALSE in -debug mode, but nothing will be done in the release build. - -Please note that the condition in wxASSERT() should have no side effects -because it will not be executed in release mode at all. - -See also: \helpref{wxASSERT\_MSG}{wxassertmsg} - -\membersection{wxASSERT\_MSG}\label{wxassertmsg} - -\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}} - -Assert macro with message. An error message will be generated if the condition is FALSE. - -See also: \helpref{wxASSERT}{wxassert} - -\membersection{wxFAIL}\label{wxfail} - -\func{}{wxFAIL}{\void} - -Will always generate an assert error if this code is reached (in debug mode). - -See also: \helpref{wxFAIL\_MSG}{wxfailmsg} - -\membersection{wxFAIL\_MSG}\label{wxfailmsg} - -\func{}{wxFAIL\_MSG}{\param{}{msg}} - -Will always generate an assert error with specified message if this code is reached (in debug mode). - -This macro is useful for marking unreachable" code areas, for example -it may be used in the "default:" branch of a switch statement if all possible -cases are processed above. - -See also: \helpref{wxFAIL}{wxfail} - -\membersection{wxCHECK}\label{wxcheck} - -\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}} - -Checks that the condition is true, returns with the given return value if not (FAILs in debug mode). -This check is done even in release mode. - -\membersection{wxCHECK\_MSG}\label{wxcheckmsg} - -\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}} - -Checks that the condition is true, returns with the given return value if not (FAILs in debug mode). -This check is done even in release mode. - -This macro may be only used in non void functions, see also -\helpref{wxCHECK\_RET}{wxcheckret}. - -\membersection{wxCHECK\_RET}\label{wxcheckret} - -\func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}} - -Checks that the condition is true, and returns if not (FAILs with given error -message in debug mode). This check is done even in release mode. - -This macro should be used in void functions instead of -\helpref{wxCHECK\_MSG}{wxcheckmsg}. - -\membersection{wxCHECK2}\label{wxcheck2} - -\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}} - -Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute -{\it operation} if it is not. This is a generalisation of -\helpref{wxCHECK}{wxcheck} and may be used when something else than just -returning from the function must be done when the {\it condition} is false. - -This check is done even in release mode. - -\membersection{wxCHECK2\_MSG}\label{wxcheck2msg} - -\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}} - -This is the same as \helpref{wxCHECK2}{wxcheck2}, but -\helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called -instead of wxFAIL() if the {\it condition} is false. - diff --git a/docs/latex/wx/gauge.tex b/docs/latex/wx/gauge.tex deleted file mode 100644 index a6b2336e9f..0000000000 --- a/docs/latex/wx/gauge.tex +++ /dev/null @@ -1,186 +0,0 @@ -\section{\class{wxGauge}}\label{wxgauge} - -A gauge is a horizontal or vertical bar which shows a quantity (often time). -There are no user commands for the gauge. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxEvtHandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxGA\_HORIZONTAL}}{Creates a horizontal gauge.} -\twocolitem{\windowstyle{wxGA\_VERTICAL}}{Creates a vertical gauge.} -\twocolitem{\windowstyle{wxGA\_PROGRESSBAR}}{Under Windows 95, creates a horizontal progress bar.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -wxGauge is read-only so generates no events. - -\wxheading{See also} - -\helpref{wxSlider}{wxslider}, \helpref{wxScrollBar}{wxscrollbar} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGauge::wxGauge}\label{wxgaugeconstr} - -\func{}{wxGauge}{\void} - -Default constructor. - -\func{}{wxGauge}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}} - -Constructor, creating and showing a gauge. - -\wxheading{Parameters} - -\docparam{parent}{Window parent.} - -\docparam{id}{Window identifier.} - -\docparam{range}{Integer range (maximum value) of the gauge.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size.} - -\docparam{style}{Gauge style. See \helpref{wxGauge}{wxgauge}.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -Under Windows 95, there are two different styles of gauge: normal gauge, and progress bar (when -the {\bf wxGA\_PROGRESSBAR} style is used). A progress bar is always horizontal. - -\wxheading{See also} - -\helpref{wxGauge::Create}{wxgaugecreate} - -\membersection{wxGauge::\destruct{wxGauge}} - -\func{}{\destruct{wxGauge}}{\void} - -Destructor, destroying the gauge. - -\membersection{wxGauge::Create}\label{wxgaugecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}} - -Creates the gauge for two-step construction. See \helpref{wxGauge::wxGauge}{wxgaugeconstr}\rtfsp -for further details. - -\membersection{wxGauge::GetBezelFace}\label{wxgaugegetbezelface} - -\constfunc{int}{GetBezelFace}{\void} - -Returns the width of the 3D bezel face. - -\wxheading{Remarks} - -Windows only, not for {\bf wxGA\_PROGRESSBAR}. - -\wxheading{See also} - -\helpref{wxGauge::SetBezelFace}{wxgaugesetbezelface} - -\membersection{wxGauge::GetRange}\label{wxgaugegetrange} - -\constfunc{int}{GetRange}{\void} - -Returns the maximum position of the gauge. - -\wxheading{See also} - -\helpref{wxGauge::SetRange}{wxgaugesetrange} - -\membersection{wxGauge::GetShadowWidth}\label{wxgaugegetshadowwidth} - -\constfunc{int}{GetShadowWidth}{\void} - -Returns the 3D shadow margin width. - -\wxheading{Remarks} - -Windows only, not for {\bf wxGA\_PROGRESSBAR}. - -\wxheading{See also} - -\helpref{wxGauge::SetShadowWidth}{wxgaugesetshadowwidth} - -\membersection{wxGauge::GetValue}\label{wxgaugegetvalue} - -\constfunc{int}{GetValue}{\void} - -Returns the current position of the gauge. - -\wxheading{See also} - -\helpref{wxGauge::SetValue}{wxgaugesetvalue} - -\membersection{wxGauge::SetBezelFace}\label{wxgaugesetbezelface} - -\func{void}{SetBezelFace}{\param{int }{width}} - -Sets the 3D bezel face width. - -\wxheading{Remarks} - -Windows only, not for {\bf wxGA\_PROGRESSBAR}. - -\wxheading{See also} - -\helpref{wxGauge::GetBezelFace}{wxgaugegetbezelface} - -\membersection{wxGauge::SetRange}\label{wxgaugesetrange} - -\func{void}{SetRange}{\param{int }{range}} - -Sets the range (maximum value) of the gauge. - -\wxheading{See also} - -\helpref{wxGauge::GetRange}{wxgaugegetrange} - -\membersection{wxGauge::SetShadowWidth}\label{wxgaugesetshadowwidth} - -\func{void}{SetShadowWidth}{\param{int }{width}} - -Sets the 3D shadow width. - -\wxheading{Remarks} - -Windows only, not for {\bf wxGA\_PROGRESSBAR}. - -\membersection{wxGauge::SetValue}\label{wxgaugesetvalue} - -\func{void}{SetValue}{\param{int }{pos}} - -Sets the position of the gauge. - -\wxheading{Parameters} - -\docparam{pos}{Position for the gauge level.} - -\wxheading{See also} - -\helpref{wxGauge::GetValue}{wxgaugegetvalue} - - diff --git a/docs/latex/wx/gdiobj.tex b/docs/latex/wx/gdiobj.tex deleted file mode 100644 index db60a9da6c..0000000000 --- a/docs/latex/wx/gdiobj.tex +++ /dev/null @@ -1,30 +0,0 @@ -\section{\class{wxGDIObject}}\label{wxgdiobject} - -This class allows platforms to implement functionality to optimise GDI objects, such -as wxPen, wxBrush and wxFont. On Windows, the underling GDI objects are a scarce resource -and are cleaned up when a usage count goes to zero. On some platforms this -class may not have any special functionality. - -Since the functionality of this class is platform-specific, it is not documented here in detail. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPen}{wxpen}, \helpref{wxBrush}{wxbrush}, \helpref{wxFont}{wxfont} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGDIObject::wxGDIObject}\label{wxgdiobjectconstr} - -\func{}{wxGDIObject}{\void} - -Default constructor. - - diff --git a/docs/latex/wx/grid.tex b/docs/latex/wx/grid.tex deleted file mode 100644 index 95af331651..0000000000 --- a/docs/latex/wx/grid.tex +++ /dev/null @@ -1,611 +0,0 @@ -\section{\class{wxGrid}}\label{wxgrid} - -wxGrid is a class for displaying and editing tabular information. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no specific window styles for this class, but you may use different -SetXXX() functions to change the controls behaviour (for example, to enable -in-place editing). - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxGrid classes overview}{gridoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGrid::wxGrid}\label{wxgridconstr} - -\func{void}{wxGrid}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxPoint\&}{ pos}, -\rtfsp\param{const wxSize\&}{ size}, \param{long}{ style=0}, \param{const wxString\& }{name="grid"}} - -Constructor. Before using a wxGrid object, you must call CreateGrid to set up the required rows and columns. - -\membersection{wxGrid::AdjustScrollbars}\label{wxgridadjustscrollbars} - -\func{void}{AdjustScrollbars}{\void} - -Call this function whenever a change has been made via the API that might alter the scrollbar characteristics: -particularly when adding or deleting rows, or changing row or column dimensions. For example, -removing rows might make it unnecessary to show the vertical scrollbar. - -\membersection{wxGrid::AppendCols}\label{wxgridappendcols} - -\func{bool}{AppendCols}{\param{int}{ n=1}, \param{bool}{ updateLabels=TRUE}} - -Appends {\it n} columns to the grid. If {\it updateLabels} is TRUE, -the function OnChangeLabels is called to give the application the opportunity to relabel. - -\membersection{wxGrid::AppendRows}\label{wxgridappendrows} - -\func{bool}{AppendRows}{\param{int}{ n=1}, \param{bool}{ updateLabels=TRUE}} - -Appends {\it n} rows to the grid. If {\it updateLabels} is TRUE, -the function OnChangeLabels is called to give the application the opportunity to relabel. - -\membersection{wxGrid::BeginBatch}\label{wxgridbeginbatch} - -\func{void}{BeginBatch}{\void} - -Start a BeginBatch/EndBatch pair between which, calls to SetCellValue or -SetCellBitmap will not cause a refresh. This allows you to speed up some operations -(for example, setting several hundred cell values). You can nest, but not overlap, -these two functions. - -See also \helpref{wxGrid::EndBatch}{wxgridendbatch}, \helpref{wxGrid::GetBatchCount}{wxgridgetbatchcount}. - -\membersection{wxGrid::CellHitTest}\label{wxgridcellhittest} - -\func{bool}{CellHitTest}{\param{int}{ x}, \param{int}{ y}, \param{int *}{row}, \param{int *}{col}} - -Returns TRUE if the x, y panel position coincides with a cell. If so, {\it row} and {\it col} are -returned. - -\membersection{wxGrid::CreateGrid}\label{wxgridcreategrid} - -\func{bool}{CreateGrid}{\param{int}{ rows}, \param{int}{ cols}, \param{wxString **}{cellValues=NULL}, - \param{short *}{widths=NULL}, \param{short}{ defaultWidth=wxGRID\_DEFAULT\_CELL\_WIDTH}, - \param{short}{ defaultHeight=wxGRID\_DEFAULT\_CELL\_HEIGHT}} - -Creates a grid {\it rows} high and {\it cols} wide. You can optionally specify an array of initial values -and widths, and/or default cell width and height. - -Call this function after creating the wxGrid object. - -\pythonnote{Currently the \tt{cellValues} and \tt{widths} parameters -don't exisit in the wxPython version of this method. So in other -words, the definition of the wxPython version of this method looks like this: -\begin{verbatim} - CreateGrid(rows, cols, - defaultWidth = wxGRID_DEFAULT_CELL_WIDTH, - defaultHeight = wxGRID_DEFAULT_CELL_HEIGHT) -\end{verbatim} -} - -\membersection{wxGrid::CurrentCellVisible}\label{wxgridcurrentcellvisible} - -\func{bool}{CurrentCellVisible}{\void} - -Returns TRUE if the currently selected cell is visible, FALSE otherwise. - -\membersection{wxGrid::DeleteCols}\label{wxgriddeletecols} - -\func{bool}{DeleteCols}{\param{int}{ pos=0}, \param{int}{ n=1}, \param{bool}{ updateLabels=TRUE}} - -Deletes {\it n} columns from the grid at position {\it pos}. If {\it updateLabels} is TRUE, -the function OnChangeLabels is called to give the application the opportunity to relabel. - -\membersection{wxGrid::DeleteRows}\label{wxgriddeleterows} - -\func{bool}{DeleteRows}{\param{int}{ pos=0}, \param{int}{ n=1}, \param{bool}{ updateLabels=TRUE}} - -Deletes {\it n} rows from the grid at position {\it pos}. If {\it updateLabels} is TRUE, -the function OnChangeLabels is called to give the application the opportunity to relabel. - -\membersection{wxGrid::EndBatch}\label{wxgridendbatch} - -\func{void}{EndBatch}{\void} - -End a BeginBatch/EndBatch pair between which, calls to SetCellValue or -SetCellBitmap will not cause a refresh. This allows you to speed up some operations -(for example, setting several hundred cell values). You can nest, but not overlap, -these two functions. - -See also \helpref{wxGrid::BeginBatch}{wxgridbeginbatch}, \helpref{wxGrid::GetBatchCount}{wxgridgetbatchcount}. - -\membersection{wxGrid::GetBatchCount}\label{wxgridgetbatchcount} - -\constfunc{int}{GetBatchCount}{\void} - -Return the level of batch nesting. This is initially zero, and will be incremented -every time BeginBatch is called, and decremented when EndBatch is called. When the -batch count is more zero, some functions (such as SetCellValue and SetCellBitmap) will -not refresh the cell. - -See also \helpref{wxGrid::BeginBatch}{wxgridbeginbatch}, \helpref{wxGrid::EndBatch}{wxgridendbatch}. - -\membersection{wxGrid::GetCell}\label{wxgridgetcell} - -\constfunc{wxGridCell *}{GetCell}{\param{int}{ row}, \param{int}{ col}} - -Returns the grid cell object associated with this position. - -wxGenericGrid implementation only. - -\membersection{wxGrid::GetCellAlignment}\label{wxgridgetcellalignment} - -\constfunc{int}{GetCellAlignment}{\param{int}{ row}, \param{int}{ col}} - -\constfunc{int}{GetCellAlignment}{\void} - -Sets the text alignment for the cell at the given position, or the global alignment value. -The return value is wxLEFT, wxRIGHT or wxCENTRE. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetCellAlignment(row, col)}}{} -\twocolitem{\bf{GetDefCellAlignment()}}{} -\end{twocollist}} -} - -\membersection{wxGrid::GetCellBackgroundColour}\label{wxgridgetcellbackgroundcolour} - -\constfunc{wxColour\&}{GetCellBackgroundColour}{\param{int}{ row}, \param{int}{ col}} - -\constfunc{wxColour\&}{GetCellBackgroundColour}{\void} - -Gets the background colour for the cell at the given position, or the global background colour. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetCellBackgroundColour(row, col)}}{} -\twocolitem{\bf{GetDefCellBackgroundColourt()}}{} -\end{twocollist}} -} - -\membersection{wxGrid::GetCells}\label{wxgridgetcells} - -\constfunc{wxGridCell ***}{GetCells}{\void} - -Returns the array of grid cell object associated with this wxGrid. - -\membersection{wxGrid::GetCellTextColour}\label{wxgridgetcelltextcolour} - -\constfunc{wxColour\&}{GetCellTextColour}{\param{int}{ row}, \param{int}{ col}} - -\constfunc{wxColour\&}{GetCellTextColour}{\void} - -Gets the text colour for the cell at the given position, or the global text colour. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetCellTextColour(row, col)}}{} -\twocolitem{\bf{GetDefCellTextColour()}}{} -\end{twocollist}} -} - -\membersection{wxGrid::GetCellTextFont}\label{wxgridgetcelltextfont} - -\constfunc{const wxFont\&}{GetCellTextFont}{\param{int}{ row}, \param{int}{ col}} - -\constfunc{wxFont\&}{GetCellTextFont}{\void} - -Gets the text font for the cell at the given position, or the global text font. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetCellTextFont(row, col)}}{} -\twocolitem{\bf{GetDefCellTextFont()}}{} -\end{twocollist}} -} - -\membersection{wxGrid::GetCellValue}\label{wxgridgetcellvalue} - -\constfunc{wxString\&}{GetCellValue}{\param{int}{ row}, \param{int}{ col}} - -Returns the cell value at the given position. - -\membersection{wxGrid::GetCols}\label{wxgridgetcols} - -\constfunc{int}{GetCols}{\void} - -Returns the number of columns in the grid. - -\membersection{wxGrid::GetColumnWidth}\label{wxgridcolumnwidth} - -\constfunc{int}{GetColumnWidth}{\param{int}{ col}} - -Gets the width in pixels for column {\it col}. - -\membersection{wxGrid::GetCurrentRect}\label{wxgridgetcurrentrect} - -\constfunc{wxRectangle *}{GetCurrentRect}{\void} - -Returns a pointer to the rectangle enclosing the currently selected cell. -Do not delete this pointer. - -\membersection{wxGrid::GetCursorColumn}\label{wxgridgetcursorcolumn} - -\constfunc{int}{GetCursorColumn}{\void} - -Returns the column position of the currently selected cell. - -\membersection{wxGrid::GetCursorRow}\label{wxgridgetcursorrow} - -\constfunc{int}{GetCursorRow}{\void} - -Returns the row position of the currently selected cell. - -\membersection{wxGrid::GetEditable}\label{wxgridgeteditable} - -\constfunc{bool}{GetEditable}{\void} - -Returns TRUE if the grid cells can be edited. - -\membersection{wxGrid::GetEditInPlace}\label{wxgridgeteditinplace} - -\constfunc{bool}{GetEditInPlace}{\void} - -Returns TRUE if editing in-place is enabled. - -\membersection{wxGrid::GetHorizScrollBar}\label{wxgridgethorizscrollbar} - -\constfunc{wxScrollBar *}{GetHorizScrollBar}{\void} - -Returns a pointer to the horizontal scrollbar. - -\membersection{wxGrid::GetLabelAlignment}\label{wxgridgetlabelalignment} - -\constfunc{int}{GetLabelAlignment}{\param{int}{ orientation}} - -Gets the row or column label alignment. {\it orientation} should -be wxHORIZONTAL to specify column label, wxVERTICAL to specify row label.\rtfsp -{\it alignment} should be wxCENTRE, wxLEFT or wxRIGHT. - -\membersection{wxGrid::GetLabelBackgroundColour}\label{wxgridgetlabelbackgroundcolour} - -\constfunc{wxColour\&}{GetLabelBackgroundColour}{\void} - -Gets a row and column label text colour. - -\membersection{wxGrid::GetLabelSize}\label{wxgridgetlabelsize} - -\constfunc{int}{GetLabelSize}{\param{int}{ orientation}} - -Gets the row label height, or column label width, in pixels. {\it orientation} should -be wxHORIZONTAL to specify column label, wxVERTICAL to specify row label. - -\membersection{wxGrid::GetLabelTextColour}\label{wxgridgetlabeltextcolour} - -\constfunc{wxColour\&}{GetLabelTextColour}{\void} - -Gets a row and column label text colour. - -\membersection{wxGrid::GetLabelTextFont}\label{wxgridgetlabeltextfont} - -\constfunc{wxFont\&}{GetLabelTextFont}{\void} - -Gets the font to be used for the row and column labels. - -\membersection{wxGrid::GetLabelValue}\label{wxgridgetlabelvalue} - -\constfunc{wxString\&}{GetLabelValue}{\param{int}{ orientation}, \param{int}{ pos}} - -Gets a row or column label value. {\it orientation} should -be wxHORIZONTAL to specify column label, wxVERTICAL to specify row label.\rtfsp -{\it pos} is the label position. - -\membersection{wxGrid::GetRowHeight}\label{wxgridgetrowheight} - -\constfunc{int}{GetRowHeight}{\param{int}{ row}} - -Gets the height in pixels for row {\it row}. - -\membersection{wxGrid::GetRows}\label{wxgridgetrows} - -\constfunc{int}{GetRows}{\void} - -Returns the number of rows in the grid. - -\membersection{wxGrid::GetScrollPosX}\label{wxgridgetscrollposx} - -\constfunc{int}{GetScrollPosX}{\void} - -Returns the column scroll position. - -\membersection{wxGrid::GetScrollPosY}\label{wxgridgetscrollposy} - -\constfunc{int}{GetScrollPosY}{\void} - -Returns the row scroll position. - -\membersection{wxGrid::GetTextItem}\label{wxgridgettextitem} - -\constfunc{wxText *}{GetTextItem}{\void} - -Returns a pointer to the text item used for entering text into a cell. - -\membersection{wxGrid::GetVertScrollBar}\label{wxgridgetvertscrollbar} - -\constfunc{wxScrollBar *}{GetVertScrollBar}{\void} - -Returns a pointer to the vertical scrollbar. - -\membersection{wxGrid::InsertCols}\label{wxgridinsertcols} - -\func{bool}{InsertCols}{\param{int}{ pos=0}, \param{int}{ n=1}, \param{bool}{ updateLabels=TRUE}} - -Inserts {\it n} number of columns before position {\it pos}. If {\it updateLabels} is TRUE, -the function OnChangeLabels is called to give the application the opportunity to relabel. - -\membersection{wxGrid::InsertRows}\label{wxgridinsertrows} - -\func{bool}{InsertRows}{\param{int}{ pos=0}, \param{int}{ n=1}, \param{bool}{ updateLabels=TRUE}} - -Inserts {\it n} number of rows before position {\it pos}. If {\it updateLabels} is TRUE, -the function OnChangeLabels is called to give the application the opportunity to relabel. - -\membersection{wxGrid::OnActivate}\label{wxgridonactivate} - -\func{void}{OnActivate}{\param{bool}{ active}} - -Sets the text item to have the focus. Call this function when the wxGrid window should have the -focus, for example from wxFrame::OnActivate. - -\membersection{wxGrid::OnChangeLabels}\label{wxgridonchangelabels} - -\func{void}{OnChangeLabels}{\void} - -Called when rows and columns are created or deleted, to allow the application an -opportunity to update the labels. By default, columns are labelled alphabetically, -and rows numerically. - -\membersection{wxGrid::OnChangeSelectionLabel}\label{wxgridonchangeselectionlabel} - -\func{void}{OnChangeSelectionLabel}{\void} - -Called when a cell is selected, to allow the application an -opportunity to update the selection label (the label of the wxText item -used for entering cell text). By default, the cell column letter and row -number are concatenated to form the selection label. - -\membersection{wxGrid::OnCreateCell}\label{wxgridoncreatecell} - -\func{wxGridCell *}{OnCreateCell}{\void} - -Override this virtual function if you want to replace the normal wxGridCell with a derived -class. - -\membersection{wxGrid::OnCellLeftClick}\label{wxgridoncellleftclick} - -\func{void}{OnLeftClick}{\param{int}{ row}, \param{int}{ col}, \param{int}{ x}, \param{int}{ y}, \param{bool}{ control}, \param{bool}{ shift}} - -Virtual function called when the left button is depressed within a cell, just after OnSelectCell is called. - -\membersection{wxGrid::OnCellRightClick}\label{wxgridoncellrightclick} - -\func{void}{OnRightClick}{\param{int}{ row}, \param{int}{ col}, \param{int}{ x}, \param{int}{ y}, \param{bool}{ control}, \param{bool}{ shift}} - -Virtual function called when the right button is depressed within a cell, just after OnSelectCell is called. - -\membersection{wxGrid::OnLabelLeftClick}\label{wxgridonlabelleftclick} - -\func{void}{OnLeftClick}{\param{int}{ row}, \param{int}{ col}, \param{int}{ x}, \param{int}{ y}, \param{bool}{ control}, \param{bool}{ shift}} - -Virtual function called when the left button is depressed within a -label. - -{\it row} will be {\it -1} if the click is in the top labels. - -{\it col} will be {\it -1} if the click is in the left labels. - -{\it row} and {\it col} will be {\it -1} if the click is in the upper -left corner. - -\membersection{wxGrid::OnLabelRightClick}\label{wxgridonlabelrightclick} - -\func{void}{OnRightClick}{\param{int}{ row}, \param{int}{ col}, \param{int}{ x}, \param{int}{ y}, \param{bool}{ control}, \param{bool}{ shift}} - -Virtual function called when the right button is depressed within a label. - -{\it row} will be {\it -1} if the click is in the top labels. - -{\it col} will be {\it -1} if the click is in the left labels. - -{\it row} and {\it col} will be {\it -1} if the click is in the upper -left corner. - -\membersection{wxGrid::OnSelectCell}\label{wxgridonselectcell} - -\func{void}{OnSelectCell}{\param{int}{ row}, \param{int}{ col}} - -Virtual function called when the user left-clicks on a cell. - -\membersection{wxGrid::OnSelectCellImplementation}\label{wxgridonselectcellimplementation} - -\func{void}{OnSelectCellImplementation}{\param{wxDC *}{dc}, \param{int}{ row}, \param{int}{ col}} - -Virtual function called when the user left-clicks on a cell. If you override this function, -call wxGrid::OnSelectCell to apply the default behaviour. - -\membersection{wxGrid::SetCellAlignment}\label{wxgridsetcellalignment} - -\func{void}{SetCellAlignment}{\param{int}{ alignment}, \param{int}{ row}, \param{int}{ col}} - -\func{void}{SetCellAlignment}{\param{int}{ alignment}} - -Sets the text alignment for the cell at the given position, or for the whole grid. {\it alignment} may be wxLEFT, wxRIGHT or wxCENTRE. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetCellAlignment(alignment, row, col)}}{} -\twocolitem{\bf{SetDefCellAlignment(alignment)}}{} -\end{twocollist}} -} - -\membersection{wxGrid::SetCellBackgroundColour}\label{wxgridsetcellbackgroundcolour} - -\func{void}{SetCellBackgroundColour}{\param{const wxColour\&}{ colour}, \param{int}{ row}, \param{int}{ col}} - -\func{void}{SetCellBackgroundColour}{\param{const wxColour\&}{ colour}} - -Sets the background colour for the cell at the given position, or for the whole grid. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetCellBackgroundColour(colour, row, col)}}{} -\twocolitem{\bf{SetDefCellBackgroundColour(colour)}}{} -\end{twocollist}} -} - -\membersection{wxGrid::SetCellTextColour}\label{wxgridsetcelltextcolour} - -\func{void}{SetCellTextColour}{\param{const wxColour\&}{ colour}, \param{int}{ row}, \param{int}{ col}} - -\func{void}{SetCellTextColour}{\param{const wxColour\&}{ colour}} - -Sets the text colour for the cell at the given position, or for the whole grid. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetCellTextColour(colour, row, col)}}{} -\twocolitem{\bf{SetDefCellTextColour(colour)}}{} -\end{twocollist}} -} - -\membersection{wxGrid::SetCellTextFont}\label{wxgridsetcelltextfont} - -\func{void}{SetCellTextFont}{\param{const wxFont\&}{ font}, \param{int}{ row}, \param{int}{ col}} - -\func{void}{SetCellTextFont}{\param{const wxFont\&}{ font}} - -Sets the text font for the cell at the given position, or for the whole grid. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetCellTextFont(font, row, col)}}{} -\twocolitem{\bf{SetDefCellTextFont(font)}}{} -\end{twocollist}} -} - -\membersection{wxGrid::SetCellValue}\label{wxgridsetcellvalue} - -\func{void}{SetCellValue}{\param{const wxString\&}{ val}, \param{int}{ row}, \param{int}{ col}} - -Sets the cell value at the given position. - -\membersection{wxGrid::SetColumnWidth}\label{wxgridsetcolumnwidth} - -\func{void}{SetColumnWidth}{\param{int}{ col}, \param{int}{ width}} - -Sets the width in pixels for column {\it col}. - -\membersection{wxGrid::SetDividerPen}\label{wxgridsetdividerpen} - -\func{void}{SetDividerPen}{\param{const wxPen\&}{ pen}} - -Specifies the pen to be used for drawing the divisions between cells. The default -is a light grey. If NULL is specified, the divisions will not be drawn. - -\membersection{wxGrid::SetEditable}\label{wxgridseteditable} - -\func{void}{SetEditable}{\param{bool}{ editable}} - -If {\it editable} is TRUE (the default), the grid cells will be editable by means of the -text edit control. If FALSE, the text edit control will be hidden and the user will not -be able to edit the cell contents. - -\membersection{wxGrid::SetEditInPlace}\label{wxgridseteditinplace} - -\func{void}{SetEditInPlace}{\param{bool}{ edit = TRUE}} - -Enables (if {\it edit} is TRUE, default value) or disables in-place editing. -When it is enabled, the cells contents can be changed by typing text directly -in the cell. - -\membersection{wxGrid::SetGridCursor}\label{wxgridsetgridcursor} - -\func{void}{SetGridCursor}{\param{int }{row}, \param{int}{ col}} - -Sets the position of the selected cell. - -\membersection{wxGrid::SetLabelAlignment}\label{wxgridsetlabelalignment} - -\func{void}{SetLabelAlignment}{\param{int}{ orientation}, \param{int}{ alignment}} - -Sets the row or column label alignment. {\it orientation} should -be wxHORIZONTAL to specify column label, wxVERTICAL to specify row label.\rtfsp -{\it alignment} should be wxCENTRE, wxLEFT or wxRIGHT. - -\membersection{wxGrid::SetLabelBackgroundColour}\label{wxgridsetlabelbackgroundcolour} - -\func{void}{SetLabelBackgroundColour}{\param{const wxColour\&}{ value}} - -Sets a row or column label background colour. - -\membersection{wxGrid::SetLabelSize}\label{wxgridsetlabelsize} - -\func{void}{SetLabelSize}{\param{int}{ orientation}, \param{int}{ size}} - -Sets the row label height, or column label width, in pixels. {\it orientation} should -be wxHORIZONTAL to specify column label, wxVERTICAL to specify row label. - -If a dimension of zero is specified, the row or column labels will not be -shown. - -\membersection{wxGrid::SetLabelTextColour}\label{wxgridsetlabeltextcolour} - -\func{void}{SetLabelTextColour}{\param{const wxColour\&}{ value}} - -Sets a row and column label text colour. - -\membersection{wxGrid::SetLabelTextFont}\label{wxgridsetlabeltextfont} - -\func{void}{SetLabelTextFont}{\param{const wxFont\&}{ font}} - -Sets the font to be used for the row and column labels. - -\membersection{wxGrid::SetLabelValue}\label{wxgridsetlabelvalue} - -\func{void}{SetLabelValue}{\param{int}{ orientation}, \param{const wxString\&}{ value}, \param{int}{ pos}} - -Sets a row or column label value. {\it orientation} should -be wxHORIZONTAL to specify column label, wxVERTICAL to specify row label.\rtfsp -{\it pos} is the label position. - -\membersection{wxGrid::SetRowHeight}\label{wxgridsetrowheight} - -\func{void}{SetRowHeight}{\param{int}{ row}, \param{int}{ height}} - -Sets the height in pixels for row {\it row}. - -\membersection{wxGrid::UpdateDimensions}\label{wxgridupdatedimensions} - -\func{void}{UpdateDimensions}{\void} - -Call this function whenever a change has been made via the API that -might alter size characteristics. You may also need to follow it with -a call to AdjustScrollbars. - - diff --git a/docs/latex/wx/grid1.bmp b/docs/latex/wx/grid1.bmp deleted file mode 100644 index 100be252da..0000000000 Binary files a/docs/latex/wx/grid1.bmp and /dev/null differ diff --git a/docs/latex/wx/grid1.eps b/docs/latex/wx/grid1.eps deleted file mode 100644 index 76fcc9540b..0000000000 --- a/docs/latex/wx/grid1.eps +++ /dev/null @@ -1,771 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /home/jacs/wx/utils/wxgrid/docs/grid1.eps -%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley -%%BoundingBox: 36 216 576 576 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define space for color conversions -/grays 450 string def % space for gray scale line -/npixls 0 def -/rgbindx 0 def - -% lower left corner -36 216 translate - -% size of image (on paper, in 1/72inch coords) -540.00000 360.00000 scale - -% define 'colorimage' if it isn't defined -% ('colortogray' and 'mergeprocs' come from xwd2ps -% via xgrab) -/colorimage where % do we know about 'colorimage'? - { pop } % yes: pop off the 'dict' returned - { % no: define one - /colortogray { % define an RGB->I function - /rgbdata exch store % call input 'rgbdata' - rgbdata length 3 idiv - /npixls exch store - /rgbindx 0 store - 0 1 npixls 1 sub { - grays exch - rgbdata rgbindx get 20 mul % Red - rgbdata rgbindx 1 add get 32 mul % Green - rgbdata rgbindx 2 add get 12 mul % Blue - add add 64 idiv % I = .5G + .31R + .18B - put - /rgbindx rgbindx 3 add store - } for - grays 0 npixls getinterval - } bind def - - % Utility procedure for colorimage operator. - % This procedure takes two procedures off the - % stack and merges them into a single procedure. - - /mergeprocs { % def - dup length - 3 -1 roll - dup - length - dup - 5 1 roll - 3 -1 roll - add - array cvx - dup - 3 -1 roll - 0 exch - putinterval - dup - 4 2 roll - putinterval - } bind def - - /colorimage { % def - pop pop % remove 'false 3' operands - {colortogray} mergeprocs - image - } bind def - } ifelse % end of 'false' case - - - -% define the colormap -/cmap 39 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00 -ffff00 00ffff ffffff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in color map - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - % and put it in position i*3 in block - block exch 3 mul rgbval putinterval - } for - block 0 bcount 127 sub 3 mul getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in colormap - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - 0 1 bcount { block exch 3 mul rgbval putinterval } for - - block 0 bcount 1 add 3 mul getinterval - } ifelse - } % end of proc - false 3 colorimage -} bind def - - -450 300 8 % dimensions of data -[450 0 0 -300 0 300] % mapping matrix -rlecmapimage - -7f067f067f0640060000 -81060c7f0c7f0c7f0c3d0c810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c068106047f047f047f0438040106810700 -82060c068106048204060c820c060783070c0702010203098102047f047f047f04260401 -06810700 -82060c068106048104060106830001020781070283020702098109028102047f047f0472 -040e0c81000c0d0c81000481040c0d0c81000481040682060700 -82060c06810604810406010601008102078507020902070201028109047f047f04720481 -0c060b068307000c060b068207000482040c060b068207000481040682060700 -82060c0681060481040601068300040307820702098409020702098109041104040c0604 -010c0404010c0504030c1904010c7f047f042504810c060b068307000c06810600070001 -068207000482040c060b068207000481040682060700 -82060c0681060481040601068304000a0789070209020002070209041004010c0204010c -0c04010c0404010c0104010c1804010c7f047f042504810c060b068307000c0681060007 -0001068207000482040c06010601000306010001068207000481040682060700 -82060c068106048204070681060001000107010286000209020702041004010c1104010c -0404010c1c04010c7f047f042504810c060b068307000c06820600060506810006830607 -000482040c06020601000106010002068207000481040682060700 -82060c0681060485040c0607060c010c8407020002090109820200040104010c81040c82 -0c040c820c040c820c040c820c040c810c040504020c81040c810c0481040c030c040401 -0c0604030c0104060c0104040c0104010c0104030c7f047f041f04810c060b068307000c -06820600060506810006830607000482040c060306030003068207000481040682060700 - -82060c068106048104070507010006020204010c81040c820c040c820c040c820c040c82 -0c040c820c040c020c0104010c0104010c81040c810c0481040c810c040404030c060401 -0c81040c820c040c820c040c820c040c810c0481040c820c040c820c040c810c0481040c -810c047f047f041d04810c060b068307000c06820600060506810006830607000482040c -060406010004068207000481040682060700 -82060c068106048104050505010006030204070c0104020c0104010c0204010c0104010c -0104010c81040c810c0481040c810c040704010c0204040c81040c820c040c820c040c82 -0c040c810c0481040c820c040c820c040c040c7f047f041e04810c060b068307000c0682 -0600060506810006830607000482040c060306030003068207000481040682060700 -82060c0681060481040b010b8205010b830b05030a020a81030a810a040104070c010402 -0c0104010c0204010c0104010c0104010c81040c810c0481040c810c040704010c010401 -0c0104010c81040c820c040c820c040c820c040c810c0481040c820c040c820c040c810c -047f047f042104810c060b068307000c06820600060506810006830607000482040c0602 -0601000106010002068207000481040682060700 -82060c068106048c040b05070507050b05030a030a840a03000a040204010c0104010c01 -04010c81040c820c040c810c0481040c010c0104010c0104010c81040c810c0481040c81 -0c040304010c0104010c0104010c0104010c81040c820c040c820c040c820c040c810c04 -81040c820c040c820c040c810c0481040c810c047f047f041d04810c0601060500030683 -07000c06820600060506810006830607000482040c060106010003060100010682070004 -81040682060700 -82060c0681060482040b08020886070b05030a030a010a82030a040204010c0104010c01 -04010c81040c810c0481040c040c0104010c0104010c0104040c0504030c0304040c8104 -0c820c040c820c040c820c040c030c0104010c0104030c7f047f041f04810c0601060500 -03068307000c06810600070001068207000482040c060b068207000481040682060700 -82060c0681060482040b080208010b8205030a810a0384030a030a044304010c7f047f04 -2c04810c060b068307000c060b068207000482040c060b068207000481040682060700 -82060c0681060482040b080308850b05030a030a010a82000a044304010c7f047f042c04 -810c070c0782000c070c0781000482040c070c0781000481040682060700 -82060c068106048c040b05080108010b05030a030a810a0382030a047f047f0472041f00 -01040f0001040106810700 -82060c0681060481040b050b8205030a050a7f047f047f0427040106810700 -82060c068106047f047f047f0438040106810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c0607060400840600060006120602000e068100067f067f067f060306810700 -82060c0607068100060506810006110681000601068100060606810006820600067f067f -067f060606810700 -82060c060706810006050681000611068100060a06810006820600067f067f067f060606 -810700 -82060c0607068100060306830006000681060001000d0681000605060200010601008106 -00860006000600060081000601060300010601007f067f067406810700 -82060c060706030001068500060006000601068100060c06020002068100060106830006 -000682060006830600060081000684060006000601068300060006820600067f067f0672 -06810700 -82060c060706810006030684000600060003001006810006810600030082060006820600 -06840600060006010683000600060106810006820600067f067f067406810700 -82060c060706810006030685000600060006130681000682060006030681000682060006 -84060006000601068300060006010681000601068100067f067f067306810700 -82060c06070681000603068500060006000601068100060b068100060106810006820600 -060106830006000682060006840600060006010683000600060106830006000682060006 -7f067f067206810700 -82060c0607068100060306830006000681060001000e0602000306020002068100068606 -00060006000601068100068106000200010601007f067f067406810700 -82060c0642068100067f067f067706810700 -82060c060606050015060600140603007f067f067906810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c061b067f077f077f071e070106810700 -82060c061b068107007f007f007f001b000206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c810c000200820c000c0a0c81000c0f0c81000c820c000c7f0c7f -0c700c0206810700 -82060c060806810006040681000609068207000c820c000c0f0c81000c0f0c81000c820c -000c7f0c7f0c700c0206810700 -82060c0607068300060006020601000a068207000c820c000c020c81000c810c00010001 -0c0600040c0200020c0200010c81000c820c000c7f0c7f0c700c0206810700 -82060c06070683000600060106830006000609068207000c810c000200820c000c820c00 -0c010c81000c030c81000c030c81000c010c83000c000c010c83000c000c820c000c7f0c -7f0c700c0206810700 -82060c0606068100060106810006020681000609068207000c820c000c020c81000c820c -000c020c0200010c81000c030c81000c030c0400820c000c820c000c7f0c7f0c700c0206 -810700 -82060c0606060400030681000609068207000c820c000c020c81000c820c000c050c8300 -0c000c030c81000c010c83000c000c030c81000c820c000c7f0c7f0c700c0206810700 -82060c0606068100060106810006020681000609068207000c820c000c020c81000c820c -000c010c0300010c0100040c0200020c0300820c000c820c000c7f0c7f0c700c02068107 -00 -82060c0605068100060306810006010681000609068207000c7f0c7f0c7f0c1a0c020681 -0700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068107067f067f067f061e06810700 -82060c061b067f0c7f0c7f0c1e0c0106810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c068106007f007f007f0028000e0681000682060700 -82060c0682060006250681000c4d0c81000c4d0c81000c4d0c81000c7f0c0f0c81060c0b -0c8207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c0624060200240682000c0622060500230682000c062406 -0400220682000c065e0604002b06810c060a068207000682060700 -82060c0682060006250682000c0624060200240682000c06220601000206010022068200 -0c062306010002060100210682000c065e060100010601002a06810c0603068100060406 -8207000682060700 -82060c0682060006250682000c0623060100810600810006220682000c06220601000206 -0100220682000c0622060100270682000c065e060100020601002906810c060206020004 -068207000682060700 -82060c0682060006250682000c0623060100810600810006220682000c06220601000206 -0100220682000c0622060100270682000c065e060100020601002906810c060106040003 -068207000682060700 -82060c0682060006250682000c0623060100810600810006220682000c06220605002306 -82000c0622060100270682000c065e060100020601002906810c06810600050002068207 -000682060700 -82060c0682060006250682000c062206010002060100220682000c062206010002060100 -220682000c0622060100270682000c065e060100020601002906810c060a068207000682 -060700 -82060c0682060006250682000c062206010002060100220682000c062206010002060100 -220682000c0622060100270682000c065e060100020601002906810c060a068207000682 -060700 -82060c0682060006250682000c0622060600220682000c06220601000206010022068200 -0c0622060100270682000c065e060100020601002906810c060a068207000682060700 -82060c0682060006250682000c062106010004060100210682000c062206010002060100 -220682000c062306010002060100210682000c065e060100010601002a06810c060a0682 -07000682060700 -82060c0682060006250682000c062106010004060100210682000c062206050023068200 -0c0624060400220682000c065e0604002b060d0781000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060e06 -0f000106810700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f061d06 -81000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -0c0c8207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c068106007f007f007f00280082060c060a068207000682060700 -82060c068206000c250c4f0081060c4d0c81060c4d0c81060c7f0c0f0c82060c060a0682 -07000682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c0624060100030c0700210c0100010c0100180c8200060c4d0c81060c -4d0c81060c7f0c0f0c82060c060a068207000682060700 -82060c068306000c061006010011060100040c81000c030c83000c000c0b0c81000c110c -81000c010c81000c170c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c060a068207 -000682060700 -82060c068306000c060f06020011060100040c81000c820c000c820c000c0d0c81000c11 -0c81000c010c81000c170c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c060a0682 -07000682060700 -82060c068306000c060e06030011060100040c81000c820c000c010c0100810c0082000c -0082000c000100810c000200050c0200020c0200020c81000c010c81000c170c8200060c -4d0c81060c4d0c81060c7f0c0f0c82060c060a068207000682060700 -82060c068306000c060e068200060081000610060100040c0300030c81000c840c000c00 -0c820c000c020c81000c050c81000c820c000c820c000c820c000c820c000c010c81000c -180c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c060a068207000682060700 -82060c068306000c061006010011060100030c81000c820c000c020c81000c010c010002 -0c81000c020c81000c050c81000c020c81000c010c81000c820c000c010c81000c180c82 -00060c4d0c81060c4d0c81060c7f0c0f0c8106070c0781000682060700 -82060c068306000c061006010011060100030c81000c820c000c020c81000c010c81000c -030c81000c010c81000c040c81000c030c81000c820c000c010c81000c010c81000c180c -8200060c4d0c81060c4d0c81060c7f0c0f0c0f000106810700 -82060c068306000c061006010011060100030c81000c050c81000c010c81000c040c8100 -0c820c000c040c81000c030c0200030c81000c010c81000c180c8200060c4d0c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c061006010011060100020c81000c050c81000c010c81000c020c8100 -0c860c000c000c000c030c81000c820c000c820c000c010c83000c000c010c81000c190c -8200060c4d0c81060c4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c061006010011060100010c0200050c0100010c81000c020c0200010c -0100060c0100030c0200010c0100010c0100190c8200060c4d0c81060c4d0c81060c7f0c -0f0c8107060c0681070682060700 -82060c068306000c0610060100110601004c0c8200060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068206000625064f0081060c4d0c81060c4d0c81060c7f0c0f0c8107060c068107 -0682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c050c81080c150c81080c210c81080c820c -080c060c81060c4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c040c83080c080c100c81080c01 -0c81080c210c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c0681070682 -060700 -82060c068306000c060d06010001060100100681000c4d0c81060c040c83080c080c100c -81080c010c81080c210c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c06 -81070682060700 -82060c068306000c0611060100100681000c4d0c81060c040c83080c080c020c82080c08 -81080c020c0208010c0208010c82080c0881080c020c0208020c83080c080c040c020803 -0c0208020c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c068107068206 -0700 -82060c068306000c0611060100100681000c4d0c81060c030c81080c010c81080c010c01 -08010c81080c820c080c010c81080c820c080c010c0108010c81080c820c080c010c8108 -0c810c0881080c040c81080c010c81080c820c080c010c81080c820c080c820c080c060c -81060c4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c030c81080c010c81080c010c81 -080c010c81080c820c080c010c81080c820c080c010c81080c010c81080c820c080c010c -81080c820c080c050c81080c040c81080c010c81080c820c080c820c080c060c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c020c0608010c81080c010c8108 -0c820c080c010c81080c820c080c010c81080c010c81080c810c080308010c81080c050c -81080c040c0408010c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c0681 -070682060700 -82060c068306000c060f060100120681000c4d0c81060c020c81080c030c81080c820c08 -0c010c81080c820c080c010c81080c820c080c010c81080c010c81080c820c080c040c81 -080c050c81080c040c81080c040c81080c820c080c060c81060c4d0c81060c7f0c0f0c81 -07060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c010c81080c050c83080c080c01 -0c81080c820c080c010c81080c820c080c010c81080c010c81080c820c080c010c81080c -820c080c050c81080c010c81080c820c080c010c81080c820c080c820c080c060c81060c -4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c010c81080c050c83080c080c01 -0c81080c010c0208020c0108010c81080c010c81080c010c0208020c81080c060c020803 -0c0208020c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c068107068206 -0700 -82060c068306000c060d060500100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b020b81000b030b81000b280b -81000b170b81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060b030b81000b010b81 -000b080b81000b1a0b81000b010b81000b170b81060c7f0c0f0c8107060c068107068206 -0700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060b030b8100 -0b010b81000b080b81000b1a0b81000b010b81000b170b81060c7f0c0f0c8107060c0681 -070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b040b83000b000b03 -0b0200010b0200060b0200020b82000b0081000b020b0200010b0200010b82000b008100 -0b020b0200020b83000b000b040b81000b820b060c7f0c0f0c8107060c06810706820607 -00 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b040b83000b000b02 -0b81000b010b81000b820b000b050b81000b010b81000b810b0081000b820b000b820b00 -0b010b81000b820b000b010b0100010b81000b820b000b010b81000b810b0081000b040b -81000b010b81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060b050b81000b030b81 -000b010b81000b820b000b090b81000b820b000b010b81000b820b000b010b81000b820b -000b010b81000b010b81000b820b000b010b81000b820b000b050b81000b010b81060c7f -0c0f0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b050b81000b030b04 -00010b81000b060b0300010b81000b010b81000b820b000b010b81000b820b000b010b81 -000b010b81000b810b000300010b81000b050b81000b010b81060c7f0c0f0c8107060c06 -81070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b050b81000b030b81 -000b040b81000b050b81000b010b81000b820b000b010b81000b820b000b010b81000b82 -0b000b010b81000b010b81000b820b000b040b81000b050b81000b010b81060c7f0c0f0c -8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b050b81000b030b81 -000b010b81000b820b000b050b81000b810b0081000b820b000b010b81000b820b000b01 -0b81000b820b000b010b81000b010b81000b820b000b010b81000b820b000b050b81000b -010b81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060b050b8100 -0b040b0200020b0100060b0100820b000b820b000b010b81000b010b0200020b0100010b -81000b010b81000b010b0200020b81000b060b81000b820b060c7f0c0f0c8107060c0681 -070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e0682000600810006100681000c4d0c81060c4d0c81060c4d0c81 -060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e0682000600810006100681000c4d0c81060c4d0c81060c4d0c81 -060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06810006810600810006100681000c4d0c81060c4d0c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d060500100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060e060400100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060400110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e068100068106008100060f0681000c4d0c81060c4d0c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060400110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060d060500100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060100120681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060100120681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060100120681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c0e0681000682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c81060c0b0c8207000682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c82060c060a068207000682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c82060c060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -06810600050002068207000682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c06 -0106040003068207000682060700 -82060c0681060027007f067f067f060106810c060206020004068207000682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c06 -030681000604068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8106070c0781000682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c0f000106810700 -82060c060f068100060d068100077f077f0778070e068100061006810700 -82060c0601060c0c830700060c0b0c820700067f067f0679060c0c820700061006810700 - -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c0604068100060306840700060c060a06820700067f067f067906810c -0602068100060506820700061006810700 -82060c060106810c06030601000406840700060c060a06820700067f067f067906810c06 -020601000506820700061006810700 -82060c060106810c06020602000406840700060c060a06820700067f067f067906810c06 -020602000406820700061006810700 -82060c060106810c06010603000406840700060c060a06820700067f067f067906810c06 -020603000306820700061006810700 -82060c060106810c06020602000406840700060c060a06820700067f067f067906810c06 -020602000406820700061006810700 -82060c060106810c06030601000406840700060c060a06820700067f067f067906810c06 -020601000506820700061006810700 -82060c060106810c0604068100060306840700060c060a06820700067f067f067906810c -0602068100060506820700061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c0601060d07820006070c078100067f067f0679060d078100061006810700 -82060c068106001e007f077f0779070f001106810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -8106077f077f077f073e070000 -7f007f007f004100 - -% -% Compression made this file 3.88% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/docs/latex/wx/grid1.gif b/docs/latex/wx/grid1.gif deleted file mode 100644 index 4cdbde7c49..0000000000 Binary files a/docs/latex/wx/grid1.gif and /dev/null differ diff --git a/docs/latex/wx/hand1.bmp b/docs/latex/wx/hand1.bmp deleted file mode 100644 index 1b2d73e236..0000000000 Binary files a/docs/latex/wx/hand1.bmp and /dev/null differ diff --git a/docs/latex/wx/hash.tex b/docs/latex/wx/hash.tex deleted file mode 100644 index 500a9dd526..0000000000 --- a/docs/latex/wx/hash.tex +++ /dev/null @@ -1,122 +0,0 @@ -\section{\class{wxHashTable}}\label{wxhashtable} - -This class provides hash table functionality for wxWindows, and for an -application if it wishes. Data can be hashed on an integer or string -key. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Example} - -Below is an example of using a hash table. - -\begin{verbatim} - wxHashTable table(KEY_STRING); - - wxPoint *point = new wxPoint(100, 200); - table.Put("point 1", point); - - .... - - wxPoint *found_point = (wxPoint *)table.Get("point 1"); -\end{verbatim} - -A hash table is implemented as an array of pointers to lists. When no -data has been stored, the hash table takes only a little more space than -this array (default size is 1000). When a data item is added, an -integer is constructed from the integer or string key that is within the -bounds of the array. If the array element is NULL, a new (keyed) list is -created for the element. Then the data object is appended to the list, -storing the key in case other data objects need to be stored in the list -also (when a `collision' occurs). - -Retrieval involves recalculating the array index from the key, and searching -along the keyed list for the data object whose stored key matches the passed -key. Obviously this is quicker when there are fewer collisions, so hashing -will become inefficient if the number of items to be stored greatly exceeds -the size of the hash table. - -\wxheading{See also} - -\helpref{wxList}{wxlist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHashTable::wxHashTable} - -\func{}{wxHashTable}{\param{unsigned int}{ key\_type}, \param{int}{ size = 1000}} - -Constructor. {\it key\_type} is one of wxKEY\_INTEGER, or wxKEY\_STRING, -and indicates what sort of keying is required. {\it size} is optional. - -\membersection{wxHashTable::\destruct{wxHashTable}} - -\func{}{\destruct{wxHashTable}}{\void} - -Destroys the hash table. - -\membersection{wxHashTable::BeginFind} - -\func{void}{BeginFind}{\void} - -The counterpart of {\it Next}. If the application wishes to iterate -through all the data in the hash table, it can call {\it BeginFind} and -then loop on {\it Next}. - -\membersection{wxHashTable::Clear} - -\func{void}{Clear}{\void} - -Clears the hash table of all nodes (but as usual, doesn't delete user data). - -\membersection{wxHashTable::Delete} - -\func{wxObject *}{Delete}{\param{long}{ key}} - -\func{wxObject *}{Delete}{\param{const wxString\& }{ key}} - -Deletes entry in hash table and returns the user's data (if found). - -\membersection{wxHashTable::Get} - -\func{wxObject *}{Get}{\param{long}{ key}} - -\func{wxObject *}{Get}{\param{const wxString\& }{ key}} - -Gets data from the hash table, using an integer or string key (depending on which -has table constructor was used). - -\membersection{wxHashTable::MakeKey} - -\func{long}{MakeKey}{\param{const wxString\& }{string}} - -Makes an integer key out of a string. An application may wish to make a key -explicitly (for instance when combining two data values to form a key). - -\membersection{wxHashTable::Next} - -\func{wxNode *}{Next}{\void} - -If the application wishes to iterate through all the data in the hash -table, it can call {\it BeginFind} and then loop on {\it Next}. This function -returns a {\bf wxNode} pointer (or NULL if there are no more nodes). See the -description for \helpref{wxNode}{wxnode}. The user will probably only wish to use the -{\bf wxNode::Data} function to retrieve the data; the node may also be deleted. - -\membersection{wxHashTable::Put} - -\func{void}{Put}{\param{long}{ key}, \param{wxObject *}{object}} - -\func{void}{Put}{\param{const wxString\& }{ key}, \param{wxObject *}{object}} - -Inserts data into the hash table, using an integer or string key (depending on which -has table constructor was used). The key string is copied and stored by the hash -table implementation. - - diff --git a/docs/latex/wx/hello.bmp b/docs/latex/wx/hello.bmp deleted file mode 100644 index 98fc776673..0000000000 Binary files a/docs/latex/wx/hello.bmp and /dev/null differ diff --git a/docs/latex/wx/hello.gif b/docs/latex/wx/hello.gif deleted file mode 100644 index a0e33e547e..0000000000 Binary files a/docs/latex/wx/hello.gif and /dev/null differ diff --git a/docs/latex/wx/hellow.bmp b/docs/latex/wx/hellow.bmp deleted file mode 100644 index 3814ae2483..0000000000 Binary files a/docs/latex/wx/hellow.bmp and /dev/null differ diff --git a/docs/latex/wx/hellow.gif b/docs/latex/wx/hellow.gif deleted file mode 100644 index cc98dcdae5..0000000000 Binary files a/docs/latex/wx/hellow.gif and /dev/null differ diff --git a/docs/latex/wx/hellox.bmp b/docs/latex/wx/hellox.bmp deleted file mode 100644 index e80bf33384..0000000000 Binary files a/docs/latex/wx/hellox.bmp and /dev/null differ diff --git a/docs/latex/wx/hellox.gif b/docs/latex/wx/hellox.gif deleted file mode 100644 index 97e658efac..0000000000 Binary files a/docs/latex/wx/hellox.gif and /dev/null differ diff --git a/docs/latex/wx/helpinst.tex b/docs/latex/wx/helpinst.tex deleted file mode 100644 index 8d8bdff00d..0000000000 --- a/docs/latex/wx/helpinst.tex +++ /dev/null @@ -1,188 +0,0 @@ -\section{\class{wxHelpController}}\label{wxhelpcontroller} - -This is a family of classes by which -applications may invoke a help viewer to provide on-line help. - -A help controller allows an application to display help, at the contents -or at a particular topic, and shut the help program down on termination. -This avoids proliferation of many instances of the help viewer whenever the -user requests a different topic via the application's menus or buttons. - -Typically, an application will create a help controller instance -when it starts, and immediately call {\bf Initialize}\rtfsp -to associate a filename with it. The help viewer will only get run, however, -just before the first call to display something. - -Although all help controller classes actually derive from wxHelpControllerBase and have -names of the form wxXXXHelpController, the -appropriate class is aliased to the name wxHelpController for each platform. - -There are currently the following help controller classes defined: - -\begin{itemize}\itemsep=0pt -\item wxWinHelpController, for controlling Windows Help. -\item wxExtHelpController, for controlling external browsers under Unix. -The default browser is Netscape Navigator. -\item wxHelpControllerHtml, using wxHTML to display help -\item wxXLPHelpController, for controlling wxHelp (from wxWindows 1). -\end{itemize} - -\wxheading{Derived from} - -wxHelpControllerBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - (wxWindows chooses the appropriate help controller class)\\ - (wxHelpControllerBase class)\\ - (Windows Help controller)\\ - (external HTML browser controller) - (wxHTML based help controller) - (wxHelp controller) - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHelpController::wxHelpController} - -\func{}{wxHelpController}{\void} - -Constructs a help instance object, but does not invoke the help viewer. - -\membersection{wxHelpController::\destruct{wxHelpController}} - -\func{}{\destruct{wxHelpController}}{\void} - -Destroys the help instance, closing down the viewer if it is running. - -\membersection{wxHelpController::Initialize}\label{wxhelpcontrollerinitialize} - -\func{virtual void}{Initialize}{\param{const wxString\& }{file}} - -\func{virtual void}{Initialize}{\param{const wxString\& }{file}, \param{int}{ server}} - -Initializes the help instance with a help filename, and optionally a server (socket) -number if using wxHelp. Does not invoke the help viewer. -This must be called directly after the help instance object is created and before -any attempts to communicate with the viewer. - -You may omit the file extension and a suitable one will be chosen. - -\membersection{wxHelpController::DisplayBlock}\label{wxhelpcontrollerdisplayblock} - -\func{virtual bool}{DisplayBlock}{\param{long}{ blockNo}} - -If the help viewer is not running, runs it and displays the file at the given block number. - -{\it wxHelp:} this is the wxHelp block number. - -{\it WinHelp:} Refers to the context number. - -{\it External HTML help:} the same as for \helpref{wxHelpController::DisplaySection}{wxhelpcontrollerdisplaysection}. - -\membersection{wxHelpController::DisplayContents}\label{wxhelpcontrollerdisplaycontents} - -\func{virtual bool}{DisplayContents}{\void} - -If the help viewer is not running, runs it and displays the -contents. - -\membersection{wxHelpController::DisplaySection}\label{wxhelpcontrollerdisplaysection} - -\func{virtual bool}{DisplaySection}{\param{int}{ sectionNo}} - -If the help viewer is not running, runs it and displays the given section. - -{\it wxHelp:} Sections are numbered starting from 1. Section numbers may be viewed by running wxHelp in edit mode. - -{\it WinHelp:} {\it sectionNo} is a context id. - -{\it External HTML help/wxHTML based help:} wxExtHelpController and wxHelpControllerHtml implement {\it sectionNo} as an id in a map file, which is of the form: - -\begin{verbatim} -0 wx.html ; Index -1 wx34.html#classref ; Class reference -2 wx204.html ; Function reference -\end{verbatim} - -\membersection{wxHelpController::KeywordSearch}\label{wxhelpcontrollerkeywordsearch} - -\func{virtual bool}{KeywordSearch}{\param{const wxString\& }{keyWord}} - -If the help viewer is not running, runs it, and searches for sections matching the given keyword. If one -match is found, the file is displayed at this section. - -{\it wxHelp:} If more than one -match is found, the Search dialog is displayed with the matches. - -{\it WinHelp:} If more than one match is found, -the first topic is displayed. - -{\it External HTML help:} If more than one match is found, -a choice of topics is displayed. - -\membersection{wxHelpController::LoadFile}\label{wxhelpcontrollerloadfile} - -\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = ""}} - -If the help viewer is not running, runs it and loads the given file. -If the filename is not supplied or is -NULL, the file specified in {\bf Initialize} is used. If the viewer is -already displaying the specified file, it will not be reloaded. This -member function may be used before each display call in case the user -has opened another file. - -\membersection{wxHelpController::SetViewer}\label{wxhelpcontrollersetviewer} - -\func{virtual void}{SetViewer}{\param{const wxString\& }{viewer}, \param{long}{ flags}} - -Sets detailed viewer information. So far this is only relevant to wxExtHelpController. - -\membersection{wxHelpController::SetFrameParameters}\label{wxhelpcontrollersetframeparameters} -\func{virtual void}{SetFrameParameters} -{\param{const wxString \& }{title}, - \param{const wxSize \& }{size}, \param{const wxPoint \& }{pos = wxDefaultPosition}, - \param{bool }{newFrameEachTime = FALSE}} - -For the wxHelpControllerHtml, this allows the application to set the -default frame title, size and position for the frame. If the title -contains \%s, this will be replaced with the page title. If the -parammeter newFrameEachTime is set, the controller will open a new -help frame each time it is called. For all other help controllers this -function has no effect. - -\membersection{wxHelpController::GetFrameParameters}\label{wxhelpcontrollergetframeparameters} -\func{virtual wxFrame *}{GetFrameParameters} -{\param{const wxSize * }{size = NULL}, \param{const wxPoint * }{pos = NULL}, - \param{bool *}{newFrameEachTime = NULL}} -This reads the current settings for the help frame in the case of the -wxHelpControllerHtml, setting the frame size, position and -the newFrameEachTime parameters to the last values used. It also -returns the pointer to the last opened help frame. This can be used -for example, to automatically close the help frame on program -shutdown. For all other help controllers, this function does nothing -and just returns NULL. - -\wxheading{Parameters} - -\docparam{viewer}{This defaults to "netscape" for wxExtHelpController.} - -\docparam{flags}{This defaults to wxHELP\_NETSCAPE for wxExtHelpController, indicating -that the viewer is a variant of Netscape Navigator.} - -\membersection{wxHelpController::OnQuit}\label{wxhelpcontrolleronquit} - -\func{virtual bool}{OnQuit}{\void} - -Overridable member called when this application's viewer is quit by the user. - -This does not work for all help controllers. - -\membersection{wxHelpController::Quit}\label{wxhelpcontrollerquit} - -\func{virtual bool}{Quit}{\void} - -If the viewer is running, quits it by disconnecting. - -For Windows Help, the viewer will only close if no other application is using it. - diff --git a/docs/latex/wx/htcell.tex b/docs/latex/wx/htcell.tex deleted file mode 100644 index 58b81d46b1..0000000000 --- a/docs/latex/wx/htcell.tex +++ /dev/null @@ -1,226 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlcell.tex at 21/Mar/99 22:45:23 -% - -\section{\class{wxHtmlCell}}\label{wxhtmlcell} - -Internal data structure. It represents fragments of parsed HTML -page, so-called {\bf cell} - a word, picture, table, horizontal line and so on. -It is used by \helpref{wxHtmlWindow}{wxhtmlwindow} and -\helpref{wxHtmlWinParser}{wxhtmlwinparser} to represent HTML page in memory. - -You can divide cells into two groups : {\it visible} cells with non-zero width and -height and {\it helper} cells (usually with zero width and height) that -perform special actions such as color or font change. - -\wxheading{Derived from} - -wxObject - -\wxheading{See Also} - -\helpref{Cells Overview}{cells}, -\helpref{wxHtmlContainerCell}{wxhtmlcontainercell} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlCell::wxHtmlCell}\label{wxhtmlcellwxhtmlcell} - -\func{}{wxHtmlCell}{\void} - -Constructor. - -\membersection{wxHtmlCell::SetParent}\label{wxhtmlcellsetparent} - -\func{void}{SetParent}{\param{wxHtmlContainerCell }{*p}} - -Sets parent container of this cell. This is called from -\helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell}. - -\membersection{wxHtmlCell::GetParent}\label{wxhtmlcellgetparent} - -\constfunc{wxHtmlContainerCell*}{GetParent}{\void} - -Returns pointer to parent container. - -\membersection{wxHtmlCell::GetPosX}\label{wxhtmlcellgetposx} - -\constfunc{int}{GetPosX}{\void} - -Returns X position within parent (the value is relative to parent's -upper left corner). The returned value is meaningful only if -parent's \helpref{Layout}{wxhtmlcelllayout} was called before! - -\membersection{wxHtmlCell::GetPosY}\label{wxhtmlcellgetposy} - -\constfunc{int}{GetPosY}{\void} - -Returns Y position within parent (the value is relative to parent's -upper left corner). The returned value is meaningful only if -parent's \helpref{Layout}{wxhtmlcelllayout} was called before! - -\membersection{wxHtmlCell::GetWidth}\label{wxhtmlcellgetwidth} - -\constfunc{int}{GetWidth}{\void} - -Returns width of the cell (m_Width member). - -\membersection{wxHtmlCell::GetHeight}\label{wxhtmlcellgetheight} - -\constfunc{int}{GetHeight}{\void} - -Returns height of the cell (m_Height member). - -\membersection{wxHtmlCell::GetDescent}\label{wxhtmlcellgetdescent} - -\constfunc{int}{GetDescent}{\void} - -Returns descent value of the cell (m_Descent member). See explanation: - -\image{}{descent.bmp} - -\membersection{wxHtmlCell::GetLink}\label{wxhtmlcellgetlink} - -\constfunc{virtual wxString}{GetLink}{\param{int }{x = 0}, \param{int }{y = 0}} - -Returns hypertext link if associated with this cell or empty string otherwise. -(Note : this makes sense only for visible tags). - -\wxheading{Parameters} - -\docparam{x,y}{Coordinates of position where the user pressed mouse button. -These coordinates are used e.g. by COLORMAP. Values are relative to the -upper left corner of THIS cell (i.e. from 0 to m_Width or m_Height)} - -\membersection{wxHtmlCell::GetNext}\label{wxhtmlcellgetnext} - -\constfunc{wxHtmlCell*}{GetNext}{\void} - -Returns pointer to the next cell in list (see htmlcell.h if you're -interested in details). - -\membersection{wxHtmlCell::SetPos}\label{wxhtmlcellsetpos} - -\func{void}{SetPos}{\param{int }{x}, \param{int }{y}} - -Sets cell's position within parent container. - -\membersection{wxHtmlCell::SetLink}\label{wxhtmlcellsetlink} - -\func{void}{SetLink}{\param{const wxString\& }{link}} - -Sets the hypertext link asocciated with this cell. (Default value -is wxEmptyString (no link)) - -\membersection{wxHtmlCell::SetNext}\label{wxhtmlcellsetnext} - -\func{void}{SetNext}{\param{wxHtmlCell }{*cell}} - -Sets the next cell in the list. This shouldn't be called by user - it is -to be used only by \helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell} - -\membersection{wxHtmlCell::Layout}\label{wxhtmlcelllayout} - -\func{virtual void}{Layout}{\param{int }{w}} - -This method performs 2 actions: - -\begin{enumerate} -\item adjusts cell's width according to the fact that maximal possible width is {\it w}. -(this has sense when working with horizontal lines, tables etc.) -\item prepares layout (=fill-in m\_PosX, m\_PosY (and sometimes m\_Height) members) -based on actual width {\it w} -\end{enumerate} - -It must be called before displaying cells structure because -m\_PosX and m\_PosY are undefined (or invalid) -before calling Layout. - -\membersection{wxHtmlCell::Draw}\label{wxhtmlcelldraw} - -\func{virtual void}{Draw}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{view\_y1}, \param{int }{view\_y2}} - -Renders the cell. - -\wxheading{Parameters} - -\docparam{dc}{Device context to which the cell is to be drawn} - -\docparam{x,y}{Coordinates of parent's upper left corner (origin). You must -add this to m\_PosX,m\_PosY when passing coordinates to dc's methods -Example : {\tt dc -> DrawText("hello", x + m\_PosX, y + m\_PosY)}} - -\docparam{view_y1}{y-coord of the first line visible in window. This is -used to optimize rendering speed} - -\docparam{view_y2}{y-coord of the last line visible in window. This is -used to optimize rendering speed} - -\membersection{wxHtmlCell::DrawInvisible}\label{wxhtmlcelldrawinvisible} - -\func{virtual void}{DrawInvisible}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}} - -This method is called instead of \helpref{Draw}{wxhtmlcelldraw} when the -cell is certainly out of the screen (and thus invisible). This is not -nonsense - some tags (like \helpref{wxHtmlColourCell}{wxhtmlcolourcell} -or font setter) must be drawn even if they are invisible! - -\wxheading{Parameters} - -\docparam{dc}{Device context to which the cell is to be drawn} - -\docparam{x,y}{Coordinates of parent's upper left corner. You must -add this to m\_PosX,m\_PosY when passing coordinates to dc's methods -Example : {\tt dc -> DrawText("hello", x + m\_PosX, y + m\_PosY)}} - -\membersection{wxHtmlCell::Find}\label{wxhtmlcellfind} - -\func{virtual const wxHtmlCell*}{Find}{\param{int }{condition}, \param{const void* }{param}} - -Returns pointer to itself if this cell matches condition (or if any of the cells -following in the list matches), NULL otherwise. -(In other words if you call top-level container's Find it will -return pointer to the first cell that matches the condition) - -It is recommended way how to obtain pointer to particular cell or -to cell of some type (e.g. wxHtmlAnchorCell reacts on -HTML_COND_ISANCHOR condition) - -\wxheading{Parameters} - -\docparam{condition}{Unique integer identifier of condition} - -\docparam{param}{Optional parameters} - -\wxheading{Defined conditions} - -\begin{twocollist} -\twocolitem{{\bf HTML_COND_ISANCHOR}}{Finds particular anchor. -{\it param} is pointer to wxString with name of the anchor.} -\twocolitem{{\bf HTML_COND_USER}}{User-defined conditions start -from this number} -\end{twocollist} - -\membersection{wxHtmlCell::OnMouseClick}\label{wxhtmlcellonmouseclick} - -\func{virtual void}{OnMouseClick}{\param{wxWindow* }{parent}, \param{int }{x}, \param{int }{y}, \param{bool }{left}, \param{bool }{middle}, \param{bool }{right}} - -This function is simple event handler. Each time user clicks mouse button over a cell -within \helpref{wxHtmlWindow}{wxhtmlwindow} this method of that cell is called. Default behavior is -that it calls \helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage}. - -\wxheading{Note} - -If you need more "advanced" behaviour (for example you'd like to catch mouse movement events or -key events or whatsoever) you should use wxHtmlBinderCell instead. - -\wxheading{Parameters} - -\docparam{parent}{parent window (always wxHtmlWindow!)} - -\docparam{x, y}{coordinates of mouse click (this is relative to cell's origin} - -\docparam{left, middle, right}{boolean flags for mouse buttons. TRUE if the left/middle/right -button is pressed, FALSE otherwise} - diff --git a/docs/latex/wx/htcolor.tex b/docs/latex/wx/htcolor.tex deleted file mode 100644 index de12b3c25c..0000000000 --- a/docs/latex/wx/htcolor.tex +++ /dev/null @@ -1,34 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlcolourcell.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlColourCell}}\label{wxhtmlcolourcell} - -This cell changes color of either background or foreground. - -\wxheading{Derived from} - -\helpref{wxHtmlCell}{wxhtmlcell} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlColourCell::wxHtmlColourCell}\label{wxhtmlcolourcellwxhtmlcolourcell} - -\func{}{wxHtmlColourCell}{\param{wxColour }{clr}, \param{int }{flags = HTML\_CLR\_FOREGROUND}} - -Constructor. - -\wxheading{Parameters} - -\docparam{clr}{The color} - -\docparam{flags}{Can be one of following: - -\begin{twocollist} -\twocolitem{{\bf HTML\_CLR\_FOREGROUND}}{change color of text} -\twocolitem{{\bf HTML\_CLR\_BACKGROUND}}{change background color} - -\end{twocollist} -} - diff --git a/docs/latex/wx/htcontnr.tex b/docs/latex/wx/htcontnr.tex deleted file mode 100644 index dbc690ebb3..0000000000 --- a/docs/latex/wx/htcontnr.tex +++ /dev/null @@ -1,239 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlcontainercell.tex at 21/Mar/99 22:45:23 -% - -\section{\class{wxHtmlContainerCell}}\label{wxhtmlcontainercell} - -wxHtmlContainerCell class an implementation of a cell that may -contain more cells in it. It is heavily used in the wxHTML layout algorithm. - -\wxheading{Derived from} - -\helpref{wxHtmlCell}{wxhtmlcell} - -\wxheading{See Also} - -\helpref{Cells Overview}{cells} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlContainerCell::wxHtmlContainerCell}\label{wxhtmlcontainercellwxhtmlcontainercell} - -\func{}{wxHtmlContainerCell}{\param{wxHtmlContainerCell }{*parent}} - -Constructor. {\it parent} is pointer to parent container or NULL. - - -\membersection{wxHtmlContainerCell::InsertCell}\label{wxhtmlcontainercellinsertcell} - -\func{void}{InsertCell}{\param{wxHtmlCell }{*cell}} - -Inserts new cell into the container. - -\membersection{wxHtmlContainerCell::SetAlignHor}\label{wxhtmlcontainercellsetalignhor} - -\func{void}{SetAlignHor}{\param{int }{al}} - -Sets container's {\it horizontal alignment}. During \helpref{Layout}{wxhtmlcelllayout} -each line is aligned according to {\it al} value. - -\wxheading{Parameters} - -\docparam{al}{new horizontal alignment. May be one of these values: - -\begin{twocollist} -\twocolitem{{\bf HTML\_ALIGN\_LEFT}}{lines are left-aligned (default)} -\twocolitem{{\bf HTML\_ALIGN\_CENTER\_H}}{lines are centered} -\twocolitem{{\bf HTML\_ALIGN\_RIGHT}}{lines are right-aligned} -\end{twocollist} -} - - -\membersection{wxHtmlContainerCell::GetAlignHor}\label{wxhtmlcontainercellgetalignhor} - -\constfunc{int}{GetAlignHor}{\void} - -Returns container's horizontal alignment. - -\membersection{wxHtmlContainerCell::SetAlignVer}\label{wxhtmlcontainercellsetalignver} - -\func{void}{SetAlignVer}{\param{int }{al}} - -Sets container's {\it vertical alignment}. This is per-line alignment! - -\wxheading{Parameters} - -\docparam{al}{new vertical alignment. May be one of these values: - -\begin{twocollist} -\twocolitem{{\bf HTML\_ALIGN\_BOTTOM}}{cells are over the line (default)} -\twocolitem{{\bf HTML\_ALIGN\_CENTER\_V}}{cells are centered on line} -\twocolitem{{\bf HTML\_ALIGN\_TOP}}{cells are under the line} -\end{twocollist} - -\image{}{alignv.bmp} -} - -\membersection{wxHtmlContainerCell::GetAlignVer}\label{wxhtmlcontainercellgetalignver} - -\constfunc{int}{GetAlignVer}{\void} - -Returns container's vertical alignment. - -\membersection{wxHtmlContainerCell::SetIndent}\label{wxhtmlcontainercellsetindent} - -\func{void}{SetIndent}{\param{int }{i}, \param{int }{what}, \param{int }{units = HTML\_UNITS\_PIXELS}} - -Sets indentation (free space between borders of container and subcells). - -\wxheading{Parameters} - -\docparam{i}{Indentation value.} - -\docparam{what}{Determines which of the 4 borders we're setting. It is OR -combination of following constants: - -\begin{twocollist} -\twocolitem{{\bf HTML\_INDENT\_TOP}}{top border} -\twocolitem{{\bf HTML\_INDENT\_BOTTOM}}{bottom} -\twocolitem{{\bf HTML\_INDENT\_LEFT}}{left} -\twocolitem{{\bf HTML\_INDENT\_RIGHT}}{right} -\twocolitem{{\bf HTML\_INDENT\_HORIZONTAL}}{left and right} -\twocolitem{{\bf HTML\_INDENT\_VERTICAL}}{top and bottom} -\twocolitem{{\bf HTML\_INDENT\_ALL}}{all 4 borders} -\end{twocollist} - -\image{}{indent.bmp} -} - -\docparam{units}{Units of {\it i}. This parameter affects interpretation of {\it} value. - -\begin{twocollist} -\twocolitem{{\bf HTML\_UNITS\_PIXELS}}{{\it i} is number of pixels} -\twocolitem{{\bf HTML\_UNITS\_PERCENT}}{{\it i} is interpreted as percents of width -of parent container} -\end{twocollist} -} - -\membersection{wxHtmlContainerCell::GetIndent}\label{wxhtmlcontainercellgetindent} - -\constfunc{int}{GetIndent}{\param{int }{ind}} - -Returns the indentation. {\it ind} is one of the {\bf HTML\_INDENT\_*} constants. - -{\bf Note:} You must call \helpref{GetIndentUnits}{wxhtmlcontainercellgetindentunits} -with same {\it ind} parameter in order to correctly interpret the returned integer value. -It is NOT always in pixels! - -\membersection{wxHtmlContainerCell::GetIndentUnits}\label{wxhtmlcontainercellgetindentunits} - -\constfunc{int}{GetIndentUnits}{\param{int }{ind}} - -Returns units of intentation value for {\it ind} where {\it ind} is one -of the {\bf HTML\_INDENT\_*} constants. - - -\membersection{wxHtmlContainerCell::SetAlign}\label{wxhtmlcontainercellsetalign} - -\func{void}{SetAlign}{\param{const wxHtmlTag\& }{tag}} - -Sets container's alignment (both horizontal and vertical) according to -the values stored in {\it tag}. (Tags {\tt ALIGN} parameter is extracted.) In fact -it is only a front-end to \helpref{SetAlignHor}{wxhtmlcontainercellsetalignhor} -and \helpref{SetAlignVer}{wxhtmlcontainercellsetalignver}. - - -\membersection{wxHtmlContainerCell::SetWidthFloat}\label{wxhtmlcontainercellsetwidthfloat} - -\func{void}{SetWidthFloat}{\param{int }{w}, \param{int }{units}} - -\func{void}{SetWidthFloat}{\param{const wxHtmlTag\& }{tag}} - -Sets floating width adjustment. - -Normal behaviour of container is that it's width is same as width of -parent container (and thus you can have only one sub-container per line). -You can change this by setting FWA. - -\wxheading{Parameters} - -\docparam{w}{Width of the container. If the value is negative it means -complement to full width of parent container (e.g. -{\tt SetWidthFloat(-50, HTML\_UNITS\_PIXELS)} sets the width -of container to parent's width minus 50 pixels. This is useful when -creating tables - you can call SetWidthFloat(50) and SetWidthFloat(-50))} - -\docparam{units}{Units of {\it w} This parameter affects interpretation of {\it} value. - -\begin{twocollist} -\twocolitem{{\bf HTML\_UNITS\_PIXELS}}{{\it w} is number of pixels} -\twocolitem{{\bf HTML\_UNITS\_PERCENT}}{{\it w} is interpreted as percents of width -of parent container} -\end{twocollist} -} - -\docparam{tag}{In the second version of method, {\it w} and {\it units} -info is extracted from tag's {\tt WIDTH} parameter.} - - -\membersection{wxHtmlContainerCell::SetMinHeight}\label{wxhtmlcontainercellsetminheight} - -\func{void}{SetMinHeight}{\param{int }{h}, \param{int }{align = HTML_ALIGN_TOP}} - -Sets minimal height of the container. - -(When container's \helpref{Layout}{wxhtmlcelllayout} is called, m_Height -is set depending on layout of subcells to the height of area covered -by layouted subcells. Call to this method guarantees you that the height -of container is never smaller than {\it h} - even if the subcells cover -much smaller area.) - -\wxheading{Parameters} - -\docparam{h}{The minimal height.} - -\docparam{align}{If height of the container is lower than min. height, empty space must be inserted -somewhere in order to ensure minimal height. This parameter is one of {\bf HTML_ALIGN_TOP, -HTML_ALIGN_BOTTOM, HTML_ALIGN_CENTER} constants. It refers to the {\it contents}, not to the -empty place!} - -\membersection{wxHtmlContainerCell::GetMaxLineWidth}\label{wxhtmlcontainercellgetmaxlinewidth} - -\constfunc{int}{GetMaxLineWidth}{\void} - -Returns width of widest line (note : this may be more than GetWidth()!! -E.g. if you have 640x480 image and the wxHtmlWindow is only 100x100...) - -Call to this method is valid only after calling \helpref{Layout}{wxhtmlcelllayout} - -\membersection{wxHtmlContainerCell::SetBackgroundColour}\label{wxhtmlcontainercellsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{clr}} - -Sets background color for this container. - -\membersection{wxHtmlContainerCell::SetBorder}\label{wxhtmlcontainercellsetborder} - -\func{void}{SetBorder}{\param{const wxColour\& }{clr1}, \param{const wxColour\& }{clr2}} - -Sets border (frame) colours. Border is rectangle around the container. - -\wxheading{Parameters} - -\docparam{clr1}{Color of top and left lines} - -\docparam{clr2}{Color of bottom and right lines} - -\membersection{wxHtmlContainerCell::GetFirstCell}\label{wxhtmlcontainercellgetfirstcell} - -\func{wxHtmlCell*}{GetFirstCell}{\void} - -Returns pointer to the first cell in the list. -You can then use wxHtmlCell's GetNext method to obtain pointer to the next -cell in list. - -{\bf Note} : This shouldn't be used by the end user. If you need some way of -finding particular cell in the list, try \helpref{Find}{wxhtmlcellfind} method -instead. - diff --git a/docs/latex/wx/htfilter.tex b/docs/latex/wx/htfilter.tex deleted file mode 100644 index c9956f817a..0000000000 --- a/docs/latex/wx/htfilter.tex +++ /dev/null @@ -1,58 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlfilter.tex at 29/Mar/99 18:35:09 -% - -\section{\class{wxHtmlFilter}}\label{wxhtmlfilter} - -This class is input filter for \helpref{wxHtmlWindow}{wxhtmlwindow}. -It allows you to read and display files of different file formats. - -\wxheading{Derived from} - -wxObject - -\wxheading{See Also} - -\helpref{Overview}{filters} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlFilter::wxHtmlFilter}\label{wxhtmlfilterwxhtmlfilter} - -\func{}{wxHtmlFilter}{\void} - -Constructor. - -\membersection{wxHtmlFilter::CanRead}\label{wxhtmlfiltercanread} - -\func{bool}{CanRead}{\param{const wxFSFile\& }{file}} - -Returns TRUE if this filter is capable of reading file {\it file}. - -Example: - -\begin{verbatim} -bool MyFilter::CanRead(const wxFSFile& file) -{ - return (file.GetMimeType() == "application/x-ugh"); -} -\end{verbatim} - -\membersection{wxHtmlFilter::ReadFile}\label{wxhtmlfilterreadfile} - -\func{wxString}{ReadFile}{\param{const wxFSFile\& }{file}} - -Reads the file and returns string with HTML document. - -Example: - -\begin{verbatim} -wxString MyImgFilter::ReadFile(const wxFSFile& file) -{ - return ""; -} -\end{verbatim} - diff --git a/docs/latex/wx/hthelpct.tex b/docs/latex/wx/hthelpct.tex deleted file mode 100644 index 6acbc42042..0000000000 --- a/docs/latex/wx/hthelpct.tex +++ /dev/null @@ -1,142 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlhelp.h at 02/May/99 19:58:53 -% - -\section{\class{wxHtmlHelpController}}\label{wxhtmlhelpcontroller} - -{\bf WARNING! This help controller has an API incompatible with wxWindows -wxHelpController!} - -This help controller provides easy way how to display HTML help in your -application (see {\it test} sample). Whole help system is based on {\bf books} -(see \helpref{AddBook}{wxhtmlhelpcontrolleraddbook}). A book is logical -part of documentation (for example "User's Guide" or "Programmer's Guide" or -"C++ Reference" or "wxWindows Reference"). Help controller can handle as -many books as you want. - -wxHTML uses Microsoft's HTML Help Workshop project files (.hhp, .hhk, .hhc) as its -native format. The file format is described \helpref{here}{helpformat}. -Have a look at docs/html/ directory where sample project files are stored. - -You can use tex2rtf to generate MHHW projects (see wxHTML homepage for details). - -In order to use the controller in your application under Windows you must -have following line in your .rc file: - -\begin{verbatim} -#include "wx/html/msw/wxhtml.rc" -\end{verbatim} - -\wxheading{Derived from} - -wxEvtHandler - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller} - -\func{}{wxHtmlHelpController}{\void} - -Constructor. - -\membersection{wxHtmlHelpController::SetTitleFormat}\label{wxhtmlhelpcontrollersettitleformat} - -\func{void}{SetTitleFormat}{\param{const wxString\& }{format}} - -Sets format of title of the frame. Must contain exactly one "\%s" -(for title of displayed HTML page). - -\membersection{wxHtmlHelpController::SetTempDir}\label{wxhtmlhelpcontrollersettempdir} - -\func{void}{SetTempDir}{\param{const wxString\& }{path}} - -Sets path for storing temporary files (cached binary versions of index and contents files. These binary -forms are much faster to read.) Default value is empty string (empty string means -that no cached data are stored). Note that these files are NOT -deleted when program exits! - -\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook} - -\func{bool}{AddBook}{\param{const wxString\& }{book}, \param{bool }{show_wait_msg}} - -Adds book (\helpref{.hhp file}{helpformat} - HTML Help Workshop project file) into the list of loaded books. -This must be called at least once before displaying any help. - -If {\it show_wait_msg} is TRUE then a decorationless window with progress message is displayed. - -\membersection{wxHtmlHelpController::Display}\label{wxhtmlhelpcontrollerdisplay} - -\func{void}{Display}{\param{const wxString\& }{x}} - -Displays page {\it x}. This is THE important function - it is used to display -the help in application. - -You can specify the page in many ways: - -\begin{itemize} -\item as direct filename of HTML document -\item as chapter name (from contents) or as a book name -\item as some word from index -\item even as any word (will be searched) -\end{itemize} - -Looking for the page runs in these steps: - -\begin{enumerate} -\item try to locate file named x (if x is for example "doc/howto.htm") -\item try to open starting page of book named x -\item try to find x in contents (if x is for example "How To ...") -\item try to find x in index (if x is for example "How To ...") -\item switch to Search panel and start searching -\end{enumerate} - -\func{void}{Display}{\param{const int }{id}} - -This alternative form is used to search help contents by numeric IDs. - -\membersection{wxHtmlHelpController::DisplayContents}\label{wxhtmlhelpcontrollerdisplaycontents} - -\func{void}{DisplayContents}{\void} - -Displays help window and focuses contents panel. - -\membersection{wxHtmlHelpController::DisplayIndex}\label{wxhtmlhelpcontrollerdisplayindex} - -\func{void}{DisplayIndex}{\void} - -Displays help window and focuses index panel. - -\membersection{wxHtmlHelpController::KeywordSearch}\label{wxhtmlhelpcontrollerkeywordsearch} - -\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}} - -Displays help window, focuses search panel and starts searching. -Returns TRUE if the keyword was found. - -IMPORTANT! KeywordSearch searches only pages listed in .htc file(s)! -(you should have all pages in contents file...) - -\membersection{wxHtmlHelpController::UseConfig}\label{wxhtmlhelpcontrolleruseconfig} - -\func{void}{UseConfig}{\param{wxConfigBase* }{config}, \param{const wxString\& }{rootpath = wxEmptyString}} - -Associates {\it config} object with the controller. - -If there is associated config object, wxHtmlHelpController automatically -reads and writes settings (including wxHtmlWindow's settings) when needed. - -The only thing you must do is create wxConfig object and call UseConfig. - -\membersection{wxHtmlHelpController::ReadCustomization}\label{wxhtmlhelpcontrollerreadcustomization} - -\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}} - -Reads controllers setting (position of window etc.) - -\membersection{wxHtmlHelpController::WriteCustomization}\label{wxhtmlhelpcontrollerwritecustomization} - -\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}} - -Stores controllers setting (position of window etc.) - diff --git a/docs/latex/wx/htmlcell.tex b/docs/latex/wx/htmlcell.tex deleted file mode 100644 index b728800910..0000000000 --- a/docs/latex/wx/htmlcell.tex +++ /dev/null @@ -1,82 +0,0 @@ -\subsection{Cells and Containers}\label{cells} - -This article describes mechanism used by -\helpref{wxHtmlWinParser}{wxhtmlwinparser} and -\helpref{wxHtmlWindow}{wxhtmlwindow} to parse and display HTML documents. - -\wxheading{Cells} - -You can divide any text (or HTML) into small fragments. Let's call these -fragments {\bf cells}. Cell is for example one word, horizontal line, image -or any other part of document. Each cell has width and height (except special -"magic" cells with zero dimensions - e.g. colour changers or font changers). - -See \helpref{wxHtmlCell}{wxhtmlcell}. - -\wxheading{Containers} - -Container is kind of cell that may contain sub-cells. Its size depends -on number and sizes of its sub-cells (and also depends on width of window). - -See \helpref{wxHtmlContainerCell}{wxhtmlcontainercell}, -\helpref{wxHtmlCell::Layout}{wxhtmlcelllayout}. - -\begin{comment} -% Bitmap is corrupt! -This image shows you cells and containers: - -\image{}{contbox.bmp} -\end{comment} -\wxheading{Using Containers in Tag Handler} - -\helpref{wxHtmlWinParser}{wxhtmlwinparser} provides a user-friendly way -of managing containers. It's based on the idea of opening and closing containers. - -Use \helpref{OpenContainer}{wxhtmlwinparseropencontainer} to open new -a container {\it within an already opened container}. This new container is a -{\it sub-container} of the old one. (If you want to create a new container with -the same depth level you can call {\tt CloseContainer(); OpenContainer();}.) - -Use \helpref{CloseContaier}{wxhtmlwinparserclosecontainer} to close the -container. This doesn't create a new container with same depth level but -it returns "control" to the parent container. - -\begin{comment} -% Bitmap corrupt! -See explanation: - -\image{}{cont.bmp} -\end{comment} -It's clear there must be same number of calls to -OpenContainer as to CloseContainer... - -\wxheading{Example} - -This code creates a new paragraph (container at same depth level) -with "Hello, world!": - -\begin{verbatim} -m_WParser -> CloseContainer(); -c = m_WParser -> OpenContainer(); - -m_WParser -> AddWord("Hello, "); -m_WParser -> AddWord("world!"); - -m_WParser -> CloseContainer(); -m_WParser -> OpenContainer(); -\end{verbatim} - -\begin{comment} -% Bitmap corrupt! -and here is image of the situation: - -\image{}{hello.bmp} -\end{comment} - -You can see that there was opened container before running the code. We closed -it, created our own container, then closed our container and opened -new container. The result was that we had {\it same depth level} after -executing. This is general rule that should be followed by tag handlers: -leave depth level of containers unmodified (in other words, number of -OpenContainer and CloseContainer calls should be same within \helpref{HandleTag}{wxhtmltaghandlerhandletag}'s body). - diff --git a/docs/latex/wx/htmlfilt.tex b/docs/latex/wx/htmlfilt.tex deleted file mode 100644 index b908668371..0000000000 --- a/docs/latex/wx/htmlfilt.tex +++ /dev/null @@ -1,10 +0,0 @@ -\membersection{Input Filters}\label{filters} - -The wxHTML library provides a mechanism for reading and displaying -files of many different file formats. - -\helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage} can load not -only HTML files but any known file. To make a file type known to wxHtmlWindow -you must create a \helpref{wxHtmlFilter}{wxhtmlfilter} filter and -register it using \helpref{wxHtmlWindow::AddFilter}{wxhtmlwindowaddfilter}. - diff --git a/docs/latex/wx/htmlhand.tex b/docs/latex/wx/htmlhand.tex deleted file mode 100644 index 1034c50246..0000000000 --- a/docs/latex/wx/htmlhand.tex +++ /dev/null @@ -1,147 +0,0 @@ -\membersection{Tag Handlers}\label{handlers} - -wxHTML library provides architecture of pluginable {\it tag handlers}. -Tag handler is class that understands particular HTML tag (or tags) and is -able to interpret it. - -\helpref{wxHtmlWinParser}{wxhtmlwinparser} has static table of {\bf modules}. -Each module contains one or more tag handlers. Each time new wxHtmlWinParser -object is constructed all modules are scanned and handlers are added -to wxHtmlParser's list of available handlers (note : wxHtmlParser's list -is non-static). - -\wxheading{How it works} - -Common tag handler's \helpref{HandleTag}{wxhtmltaghandlerhandletag} method -works in four steps: - -\begin{enumerate} -\item Save state of parent parser into local variables -\item Change parser state according to tag's params -\item Parse text between the tag and paired ending tag (if present) -\item Restore original parser state -\end{enumerate} - -See \helpref{wxHtmlWinParser}{wxhtmlwinparser} for methods for modifying -parser's state. In general you can do things like opening/closing containers, -changing colors, fonts etc. - -\wxheading{Providing own tag handlers} - -You should create new .cpp file and place following lines into it: - -\begin{verbatim} -#include -#include -FORCE_LINK_ME(yourmodulefilenamewithoutcpp) -\end{verbatim} - -Then you must define handlers and one module. - -\wxheading{Tag handlers} - -The handler is derived from \helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler} -(or directly from \helpref{wxHtmlTagHandler}{wxhtmltaghandler}) - -You can use set of macros to define the handler (see src/mod\_*.cpp files -for details). Handler definition must start with {\bf TAG\_HANDLER\_BEGIN} macro -and end with {\bf TAG\_HANDLER\_END} macro. I strongly recommend to have a look -at {\it include/wxhtml/mod\_templ.h} file. Otherwise you won't understand -the structure of macros... See macros reference: - -{\bf TAG\_HANDLER\_BEGIN}({\it name}, {\it tags}) - -Starts handler definition. {\it name} is handler identifier (in fact -part of class name), {\it tags} is string containing list of tags -supported by this handler (in uppercase). This macro derives new class from -wxHtmlWinTagHandler and implements it's -\helpref{GetSupportedTags}{wxhtmltaghandlergetsupportedtags} method. - -Example: TAG\_HANDLER\_BEGIN(FONTS, "B,I,U,T") - -{\bf TAG\_HANDLER\_VARS} - -This macro starts block of variables definitions. (Variables are identical -to class attributes.) Example: - -\begin{verbatim} -TAG_HANDLER_BEGIN(VARS_ONLY, "CRAZYTAG") - TAG_HANDLER_VARS - int my_int_var; - wxString something_else; -TAG_HANDLER_END(VARS_ONLY) -\end{verbatim} - -This macro is used only in rare cases. - -{\bf TAG\_HANDLER\_CONSTR}({\it name}) - -This macro supplies object constructor. {\it name} is same name as the one -from TAG\_HANDLER\_BEGIN macro. Body of constructor follow after -this macro (you must use { and } ). Example: - -\begin{verbatim} -TAG_HANDLER_BEGIN(VARS2, "CRAZYTAG") - TAG_HANDLER_VARS - int my_int_var; - TAG_HANDLER_CONSTR(vars2) - { // !!!!!! - my_int_var = 666; - } // !!!!!! -TAG_HANDLER_END(VARS2) -\end{verbatim} - -Never used in wxHTML :-) - -{\bf TAG\_HANDLER\_PROC}({\it varib}) - -This is very important macro. It defines \helpref{HandleTag}{wxhtmltaghandlerhandletag} -method. {\it varib} is name of parameter passed to the method, usually -{\it tag}. Body of method follows after this macro. -Note than you must use { and } ! Example: - -\begin{verbatim} -TAG_HANDLER_BEGIN(TITLE, "TITLE") - TAG_HANDLER_PROC(tag) - { - printf("TITLE found...\n"); - } -TAG_HANDLER_END(TITLE) -\end{verbatim} - -{\bf TAG\_HANDLER\_END}({\it name}) - -Ends definition of tag handler {\it name}. - - -\wxheading{Tags Modules} - -You can use set of 3 macros TAGS\_MODULE\_BEGIN, TAGS\_MODULE\_ADD and -TAGS\_MODULE\_END to inherit new module from -\helpref{wxHtmlTagsModule}{wxhtmltagsmodule} and to create instance of it. -See macros reference: - -{\bf TAGS\_MODULE\_BEGIN}({\it modname}) - -Begins module definition. {\it modname} is part of class name and must -be unique. - -{\bf TAGS\_MODULE\_ADD}({\it name}) - -Adds the handler to this module. {\it name} is the identifier from -TAG\_HANDLER\_BEGIN. - -{\bf TAGS\_MODULE\_END}({\it modname}) - -Ends the definition of module. - -{\bf Example:} - -\begin{verbatim} -TAGS_MODULE_BEGIN(Examples) - TAGS_MODULE_ADD(VARS_ONLY) - TAGS_MODULE_ADD(VARS2) - TAGS_MODULE_ADD(TITLE) -TAGS_MODULE_END(Examples) -\end{verbatim} - diff --git a/docs/latex/wx/htmlhlpf.tex b/docs/latex/wx/htmlhlpf.tex deleted file mode 100644 index 37c129e20b..0000000000 --- a/docs/latex/wx/htmlhlpf.tex +++ /dev/null @@ -1,82 +0,0 @@ -\membersection{Help Files Format}\label{helpformat} - -wxHTML library uses a reduced version of MS HTML Workshop format. - -(See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} for help controller description.) - -A {\bf book} consists of three files : header file, contents file and index file. - -\wxheading{Header file (.hhp)} - -Header file must contain these lines (and may contain additional lines which are ignored) : - -\begin{verbatim} -Contents file=@filename.hhc@ -Index file=@filename.hhk@ -Title=@title of your book@ -Default topic=@default page to be displayed.htm@ -\end{verbatim} - -All filenames (including Default topic) are relative to the location of .hhp file. - -For larger projects I recommend storing everything but .hhp file into one .zip archive. (E.g. contents file -would then be reffered as myhelp.zip\#zip:contents.hhc) - -\wxheading{Contents file (.hhc)} - -Contents file has HTML syntax and it can be parsed by regular HTML parser. It contains exactly one list -(

    ....
statement): - -\begin{verbatim} -
    - -
  • - - - - -
  • - - - - - ... - -
-\end{verbatim} - -You can modify value attributes of param tags. {\it topic name} is name of chapter/topic as is displayed in -contents, {\it filename.htm} is HTML page name (relative to .hhp file) and {\it numeric_id} is optional -- it is used only when you use \helpref{wxHtmlHelpController::Display(int)}{wxhtmlhelpcontrollerdisplay} - -Items in the list may be nested - one \ statement may contain \ sub-statement: - -\begin{verbatim} -
    - -
  • - - - -
      -
    • - - - - ... -
    - -
  • - - - - ... - -
-\end{verbatim} - -\wxheading{Index file (.hhk)} - -Index files have same format as contents file except that ID params are ignored and sublists are {\bf not} -allowed. - diff --git a/docs/latex/wx/htmlprn.tex b/docs/latex/wx/htmlprn.tex deleted file mode 100644 index 0fea5d25ff..0000000000 --- a/docs/latex/wx/htmlprn.tex +++ /dev/null @@ -1,63 +0,0 @@ -\membersection{Printing}\label{printing} - -The wxHTML library provides printing facilities. - -You can redirect output displayed by \helpref{wxHtmlWindow}{wxhtmlwindow} -to the printer DC using this (or similar) code (see {\bf printing} sample for -more details) : - -\begin{verbatim} -// -// This method prints page number one to dc: -// - -void MyPrintout::DrawPageOne(wxDC *dc) -{ - int leftMargin = 20; - int topMargin = 50; - // You must compute the margins there. - // Caution! These values are NOT in printer DC's units. - // These values are in screen pixels. - // (see bellow) - - // Here we obtain internal cell representation of HTML document: - // (html is our pointer to wxHtmlWindow object) - wxHtmlContainerCell *cell = html -> GetInternalRepresentation(); - - // 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); // DC size - GetPageSizePixels(&pageWidth, &pageHeight); // real size - - // Now we must scale it. This equation will map wxHtmlWindow - // to page in this way: - // |--this is whole page as printed---------| - // | | | | - // | | | | - // |-margin-|-----wxHtmlWindow-----|-margin-| - // - // So page width is 2*leftMargin + [wxHtmlWindow size] - // (measured in screen pixels). - // We will scale the printer DC so that wxHtmlWindow's content - // spreads from left to right: - float scale = (float)( - (float)(pageWidth) / - (float)(2 * leftMargin + cell -> GetMaxLineWidth())); - - // 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); - - // Set the user scale so that our computations take effect: - dc->SetUserScale(overallScale, overallScale); - dc->SetBackgroundMode(wxTRANSPARENT); - - // And this is - finally - HTML stuff: - cell -> Draw(*dc, leftMargin, topMargin, 0, cell -> GetHeight()); -} -\end{verbatim} - -(Thanks to Julian Smart for sample) - diff --git a/docs/latex/wx/htmlstrt.tex b/docs/latex/wx/htmlstrt.tex deleted file mode 100644 index f034cf23f7..0000000000 --- a/docs/latex/wx/htmlstrt.tex +++ /dev/null @@ -1,68 +0,0 @@ -\membersection{Quick Start}\label{quickstart} - -\wxheading{Displaying HMTL} - -First of all, you must include . - -Class \helpref{wxHtmlWindow}{wxhtmlwindow} (derived from wxScrolledWindow) -is used to display HTML documents. -It has two important methods : \helpref{LoadPage}{wxhtmlwindowloadpage} -and \helpref{SetPage}{wxhtmlwindowsetpage}. -LoadPage loads and displays HTML file while SetPage displays directly the -passed {\bf string}. See the example: - -\begin{verbatim} - mywin -> LoadPage("test.htm"); - mywin -> SetPage("" - "

Error

" - "Some error occured :-H)" - ""); -\end{verbatim} - -I think the difference is quite clear. - -\wxheading{Displaying Help} - -See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. - -\wxheading{Setting up wxHtmlWindow} - -Because wxHtmlWindow is derived from wxScrolledWindow and not from -wxFrame, it doesn't have visible frame. But the user usually want to see -the title of HTML page displayed somewhere and frame's titlebar is -ideal place for it. - -wxHtmlWindow provides 2 methods in order to handle this: -\helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe} and -\helpref{SetRelatedStatusBar}{wxhtmlwindowsetrelatedstatusbar}. -See the example: - -\begin{verbatim} - html = new wxHtmlWindow(this); - html -> SetRelatedFrame(this, "HTML : %%s"); - html -> SetRelatedStatusBar(0); -\end{verbatim} - -The first command associates html object with it's parent frame -(this points to wxFrame object there) and sets format of title. -Page title "Hello, world!" will be displayed as "HTML : Hello, world!" -in this example. - -The second command sets which frame's status bar should be used to display -browser's messages (such as "Loading..." or "Done" or hypertext links). - -\wxheading{Customizing wxHtmlWindow} - -You can customize wxHtmlWindow by setting font size, font face and -borders (space between border of window and displayed HTML). Related functions: - -\begin{itemize} -\item \helpref{SetFonts}{wxhtmlwindowsetfonts} -\item \helpref{SetBorders}{wxhtmlwindowsetborders} -\item \helpref{ReadCustomization}{wxhtmlwindowreadcustomization} -\item \helpref{WriteCustomization}{wxhtmlwindowwritecustomization} -\end{itemize} - -The last two functions are used to store user customization info wxConfig stuff -(for example registry under Windows or dotfile under Unix). - diff --git a/docs/latex/wx/htparser.tex b/docs/latex/wx/htparser.tex deleted file mode 100644 index 7d486f7170..0000000000 --- a/docs/latex/wx/htparser.tex +++ /dev/null @@ -1,184 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlparser.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlParser}}\label{wxhtmlparser} - -This class handles the {\bf generic} parsing of HTML document: it scans -the document and divide it into blocks of tags (where one block -consists of begining and ending tag and of text between these -two tags). - -It is independent from wxHtmlWindow and can be used as stand-alone parser -(Julian Smart's idea of speech-only HTML viewer or wget-like utility - -see InetGet sample for example). - -It uses system of tag handlers to parse the HTML document. Tag handlers -are not staticaly shared by all instances but are created for each -wxHtmlParser instance. The reason is that the handler may contain -document-specific temporary data used during parsing (e.g. complicated -structures like tables). - -Typically the user calls only the \helpref{Parse}{wxhtmlparserparse} method. - -\wxheading{Derived from} - -wxObject - -\wxheading{See also} - -\helpref{Cells Overview}{cells}, -\helpref{Tag Handlers Overview}{handlers}, -\helpref{wxHtmlTag}{wxhtmltag} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlParser::wxHtmlParser}\label{wxhtmlparserwxhtmlparser} - -\func{}{wxHtmlParser}{\void} - -Constructor. - -\membersection{wxHtmlParser::SetFS}\label{wxhtmlparsersetfs} - -\func{void}{SetFS}{\param{wxFileSystem }{*fs}} - -Sets the virtual file system that will be used to request additional -files. (For example {\tt } tag handler requests wxFSFile with the -image data.) - -\membersection{wxHtmlParser::GetFS}\label{wxhtmlparsergetfs} - -\constfunc{wxFileSystem*}{GetFS}{\void} - -Returns pointer to the file system. Because each tag handler has -reference to it's parent parser it can easily request the file by -calling - -\begin{verbatim} -wxFSFile *f = m_Parser -> GetFS() -> OpenFile("image.jpg"); -\end{verbatim} - -\membersection{wxHtmlParser::Parse}\label{wxhtmlparserparse} - -\func{wxObject*}{Parse}{\param{const wxString\& }{source}} - -Proceeds parsing of the document. This is end-user method. You can simply -call it when you need to obtain parsed output (which is parser-specific) - -The method does these things: - -\begin{enumerate} -\item calls \helpref{InitParser(source)}{wxhtmlparserinitparser} -\item calls \helpref{DoParsing}{wxhtmlparserdoparsing} -\item calls \helpref{GetProduct}{wxhtmlparsergetproduct} -\item calls \helpref{DoneParser}{wxhtmlparserdoneparser} -\item returns value returned by GetProduct -\end{enumerate} - -You shouldn't use InitParser, DoParsing, GetProduct or DoneParser directly. - -\membersection{wxHtmlParser::InitParser}\label{wxhtmlparserinitparser} - -\func{virtual void}{InitParser}{\param{const wxString\& }{source}} - -Setups the parser for parsing the {\it source} string. (Should be overriden -in derived class) - -\membersection{wxHtmlParser::DoneParser}\label{wxhtmlparserdoneparser} - -\func{virtual void}{DoneParser}{\void} - -This must be called after DoParsing(). - -\membersection{wxHtmlParser::DoParsing}\label{wxhtmlparserdoparsing} - -\func{void}{DoParsing}{\param{int }{begin\_pos}, \param{int }{end\_pos}} - -\func{void}{DoParsing}{\void} - -Parses the m\_Source from begin\_pos to end\_pos-1. -(in noparams version it parses whole m\_Source) - -\membersection{wxHtmlParser::GetProduct}\label{wxhtmlparsergetproduct} - -\func{virtual wxObject*}{GetProduct}{\void} - -Returns product of parsing. Returned value is result of parsing -of the document. The type of this result depends on internal -representation in derived parser (but it must be derived from wxObject!). - -See wxHtmlWinParser for details. - -\membersection{wxHtmlParser::AddTagHandler}\label{wxhtmlparseraddtaghandler} - -\func{virtual void}{AddTagHandler}{\param{wxHtmlTagHandler }{*handler}} - -Adds handler to the internal list (\& hash table) of handlers. This -method should not be called directly by user but rather by derived class' -constructor. - -This adds the handler to this {\bf instance} of wxHtmlParser, not to -all objects of this class! (Static front-end to AddTagHandler is provided -by wxHtmlWinParser). - -All handlers are deleted on object deletion. - -\membersection{wxHtmlParser::GetSource}\label{wxhtmlparsergetsource} - -\func{wxString*}{GetSource}{\void} - -Returns pointer to the source being parsed. - -\membersection{wxHtmlParser::GetTempData}\label{wxhtmlparsergettempdata} - -\func{virtual wxList*}{GetTempData}{\void} - -This method returns list of wxObjects that represents -all data allocated by the parser. These can't be freed -by the destructor because they must be valid as long as -GetProduct's return value is valid - the caller must -explicitly call - -\begin{verbatim} -delete (MyParser -> GetTempData()); -\end{verbatim} - -to free the memory (this method always sets the list to delete its contents). - -\wxheading{Example} - -Why is this neccessary? Imagine wxHtmlWinParser: when handling -a FONT tag it creates some fonts. These fonts are then used by wxHtmlWindow -to display the text. But the wxHtmWinParser object is needed only when parsing -the document - it may be deleted then. But fonts CAN'T be deleted - they -must exist as long as the window is displaying text. - -GetTempData() solves the problem. - -\membersection{wxHtmlParser::AddText}\label{wxhtmlparseraddword} - -\func{virtual void}{AddWord}{\param{const char* }{txt}} - -Must be overwriten in derived class. - -This method is called by \helpref{DoParsing}{wxhtmlparserdoparsing} -each time a part of text is parsed. {\it txt} is NOT only one word, it is -substring of input. It is not formatted or preprocessed (so white spaces are -unmodified). - -\membersection{wxHtmlParser::AddTag}\label{wxhtmlparseraddtag} - -\func{void}{AddTag}{\param{const wxHtmlTag\& }{tag}} - -This may (and may not) be overwriten in derived class. - -This method is called each time new tag is about to be added. -{\it tag} contains information about the tag. (See \helpref{wxHtmlTag}{wxhtmltag} -for details.) - -Default (wxHtmlParser) behaviour is this: -First it finds a handler capable of handling this tag and then it calls -handler's HandleTag method. - diff --git a/docs/latex/wx/httag.tex b/docs/latex/wx/httag.tex deleted file mode 100644 index 04ce4fb345..0000000000 --- a/docs/latex/wx/httag.tex +++ /dev/null @@ -1,169 +0,0 @@ -% -% automatically generated by HelpGen from -% htmltag.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlTag}}\label{wxhtmltag} - -This class represents single HTML tag. -It is used by \helpref{tag handlers}{handlers}. - -\wxheading{Derived from} - -wxObject - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlTag::wxHtmlTag}\label{wxhtmltagwxhtmltag} - -\func{}{wxHtmlTag}{\param{const wxString\& }{source}, \param{int }{pos}, \param{int }{end\_pos}, \param{wxHtmlTagsCache* }{cache}} - -Constructor. You'll probably never have to construct wxHtmlTag object -yourself. Feel free to ignore the constructor parameters... -(have a look at lib/htmlparser.cpp if you're interested in creating it) - -\membersection{wxHtmlTag::GetName}\label{wxhtmltaggetname} - -\constfunc{wxString}{GetName}{\void} - -Returns tag's name. The name is always in uppercase and it doesn't contain -'<' or '/' characters. (So the name of {\tt } tag is "FONT" -and name of {\tt } is "TABLE") - -\membersection{wxHtmlTag::HasParam}\label{wxhtmltaghasparam} - -\constfunc{bool}{HasParam}{\param{const wxString\& }{par}} - -Returns TRUE if the tag has parameter of the given name. -Example : {\tt } has two parameters named -"SIZE" and "COLOR". - -\wxheading{Parameters} - -\docparam{par}{the parameter you're looking for. It must {\it always} be in uppercase!} - -\membersection{wxHtmlTag::GetParam}\label{wxhtmltaggetparam} - -\constfunc{wxString}{GetParam}{\param{const wxString\& }{par}, \param{bool }{with\_commas = FALSE}} - -Retuns the value of the parameter. You should check whether the -param exists or not (use \helpref{HasParam}{wxhtmltaghasparam}) first. - -\wxheading{Parameters} - -\docparam{par}{The parameter's name in uppercase} - -\docparam{with\_commas}{TRUE if you want to get commas as well. See example.} - -\wxheading{Example} - -\begin{verbatim} -... -/* you have wxHtmlTag variable tag which is equal to - HTML tag */ -dummy = tag.GetParam("SIZE"); - // dummy == "+2" -dummy = tag.GetParam("COLOR"); - // dummy == "#0000FF" -dummy = tag.GetParam("COLOR", TRUE); - // dummy == "\"#0000FF\"" -- see the difference!! -\end{verbatim} - -\membersection{wxHtmlTag::ScanParam}\label{wxhtmltagscanparam} - -\constfunc{wxString}{ScanParam}{\param{const wxString\& }{par}, \param{const char *}{format}, fuck} - -This method scans given parameter. Usage is exatly the same as sscanf's -usage except that you don't pass string but param name as the first parameter. - -\wxheading{Parameters} - -\docparam{par}{The name of tag you wanna query (in uppercase)} - -\docparam{format}{scanf()-like format string.} - -\wxheading{Cygwin and Mingw32} - -If you're using Cygwin beta 20 or Mingw32 compiler please remember -that ScanParam() is only partially implemented!! The problem is -that under Cygnus' GCC vsscanf() function is not implemented. I workarounded -this in a way which causes that you can use only one parameter in ... -(and only one \% in {\it format}) - -\membersection{wxHtmlTag::GetAllParams}\label{wxhtmltaggetallparams} - -\constfunc{const wxString\&}{GetAllParams}{\void} - -Returns string with all params. - -Example : tag contains {\tt }. Call to -tag.GetAllParams() would return {\tt SIZE=+2 COLOR="\#000000"}. - -\membersection{wxHtmlTag::IsEnding}\label{wxhtmltagisending} - -\constfunc{bool}{IsEnding}{\void} - -Returns TRUE if this tag is ending one. -({\tt } is ending tag, {\tt } is not) - - -\membersection{wxHtmlTag::HasEnding}\label{wxhtmltaghasending} - -\constfunc{bool}{HasEnding}{\void} - -Returns TRUE if this tag is paired with ending tag, FALSE otherwise. - -See the example of HTML document: - -\begin{verbatim} - -Hello

-How are you? -

This is centered...

-Oops
Oooops! - -\end{verbatim} - -In this example tags HTML and BODY have ending tags, first P and BR -doesn't have ending tag while the second P has. The third P tag (which -is ending itself) of course doesn't have ending tag. - -\membersection{wxHtmlTag::GetBeginPos}\label{wxhtmltaggetbeginpos} - -\constfunc{int}{GetBeginPos}{\void} - -Returns beginning position of the text {\it between} this tag and paired -ending tag. -See explanation (returned position is marked with '^'): - -\begin{verbatim} -bla bla bla bla bla intenal text bla bla - ^ -\end{verbatim} - -\membersection{wxHtmlTag::GetEndPos1}\label{wxhtmltaggetendpos1} - -\constfunc{int}{GetEndPos1}{\void} - -Returns ending position of the text {\it between} this tag and paired -ending tag. -See explanation (returned position is marked with '^'): - -\begin{verbatim} -bla bla bla bla bla intenal text bla bla - ^ -\end{verbatim} - -\membersection{wxHtmlTag::GetEndPos2}\label{wxhtmltaggetendpos2} - -\constfunc{int}{GetEndPos2}{\void} - -Returns ending position 2 of the text {\it between} this tag and paired -ending tag. -See explanation (returned position is marked with '^'): - -\begin{verbatim} -bla bla bla bla bla intenal text bla bla - ^ -\end{verbatim} - diff --git a/docs/latex/wx/httaghnd.tex b/docs/latex/wx/httaghnd.tex deleted file mode 100644 index 12e1a0cfb3..0000000000 --- a/docs/latex/wx/httaghnd.tex +++ /dev/null @@ -1,87 +0,0 @@ -% -% automatically generated by HelpGen from -% htmltaghandler.tex at 18/Mar/99 19:20:29 -% - -\section{\class{wxHtmlTagHandler}}\label{wxhtmltaghandler} - -\wxheading{Derived from} - -wxObject - -\wxheading{See Also} - -\helpref{Overview}{handlers}, -\helpref{wxHtmlTag}{wxhtmltag} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlTagHandler::m\_Parser}\label{wxhtmltaghandlermparser} - -{\bf wxHtmlParser* m\_Parser} - -This attribute is used to access parent parser. It is protected so that -it can't be accessed by user but can be accessed from derived classes. - -\membersection{wxHtmlTagHandler::wxHtmlTagHandler}\label{wxhtmltaghandlerwxhtmltaghandler} - -\func{}{wxHtmlTagHandler}{\void} - -Constructor. - -\membersection{wxHtmlTagHandler::SetParser}\label{wxhtmltaghandlersetparser} - -\func{virtual void}{SetParser}{\param{wxHtmlParser }{*parser}} - -Assigns {\it parser} to this handler. Each {\bf instance} of handler -is guaranteed to be called only from the parser. - -\membersection{wxHtmlTagHandler::GetSupportedTags}\label{wxhtmltaghandlergetsupportedtags} - -\func{virtual wxString}{GetSupportedTags}{\void} - -Returns list of supported tags. The list is in uppercase and tags -are delimited by ','. Example : {\tt "I,B,FONT,P" } - -\membersection{wxHtmlTagHandler::HandleTag}\label{wxhtmltaghandlerhandletag} - -\func{virtual bool}{HandleTag}{\param{const wxHtmlTag\& }{tag}} - -This is the core method of each handler. It is called each time -one of supported tags is detected. {\it tag} contains all neccessary -info (see \helpref{wxHtmlTag}{wxhtmltag} for details). - -\wxheading{Return value} - -TRUE if \helpref{ParseInner}{wxhtmltaghandlerparseinner} was called, -FALSE otherwise. - -\wxheading{Example} - -\begin{verbatim} -bool MyHandler::HandleTag(const wxHtmlTag& tag) -{ - ... - // change state of parser (e.g. set bold face) - ParseInner(tag); - ... - // restore original state of parser -} -\end{verbatim} - -You shouldn't call ParseInner if the tag is not paired with ending one. - -\membersection{wxHtmlTagHandler::ParseInner}\label{wxhtmltaghandlerparseinner} - -\func{void}{ParseInner}{\param{const wxHtmlTag\& }{tag}} - -This method calls parser's \helpref{DoParsing}{wxhtmlparserdoparsing} method -for the string between this tag and paired ending tag: - -\begin{verbatim} -...Hello, world!... -\end{verbatim} - -In this example, a call to ParseInner (with {\it tag} pointing to A tag) -will parse 'Hello, world!'. - diff --git a/docs/latex/wx/httagmod.tex b/docs/latex/wx/httagmod.tex deleted file mode 100644 index e2e5c89009..0000000000 --- a/docs/latex/wx/httagmod.tex +++ /dev/null @@ -1,39 +0,0 @@ -% -% automatically generated by HelpGen from -% htmltagsmodule.tex at 14/Mar/99 20:13:37 - -\section{\class{wxHtmlTagsModule}}\label{wxhtmltagsmodule} - -This class provides easy way of filling wxHtmlWinParser's table of -tag handlers. It is used almost exclusively together with set of -\helpref{TAGS\_MODULE\_* macros}{handlers} - -\wxheading{Derived from} - -wxModule - -\wxheading{See Also} - -\helpref{Tag Handlers}{handlers}, -\helpref{wxHtmlTagHandler}{wxhtmltaghandler}, -\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}, - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlTagsModule::FillHandlersTable}\label{wxhtmltagsmodulefillhandlerstable} - -\func{virtual void}{FillHandlersTable}{\param{wxHtmlWinParser }{*parser}} - -You must override this method. In most common case it's body consists -only of lines of following type: - -\begin{verbatim} -parser -> AddTagHandler(new MyHandler); -\end{verbatim} - -I recommend using {\bf TAGS\_MODULE\_*} macros. - -\wxheading{Paremeters} - -\docparam{parser}{Pointer to the parser that requested tables filling.} - diff --git a/docs/latex/wx/http.tex b/docs/latex/wx/http.tex deleted file mode 100644 index 0df37561ff..0000000000 --- a/docs/latex/wx/http.tex +++ /dev/null @@ -1,70 +0,0 @@ -\section{\class{wxHTTP}}\label{wxhttp} - -\wxheading{Derived from} - -\helpref{wxProtocol}{wxprotocol} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxURL}{wxurl} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -% ---------------------------------------------------------------------------- -\membersection{wxHTTP::GetInputStream}\label{wxhttpgetinputstream} - -\func{wxInputStream *}{GetInputStream}{\param{const wxString\&}{ path}} - -Creates a new input stream on the the specified path. You can use all except the seek -functionality of wxStream. Seek isn't available on all streams. For example, -http or ftp streams doesn't deal with it. Other functions like Tell and SeekI -for this sort of stream. -You will be notified when the EOF is reached by an error. - -\wxheading{Note} - -You can know the size of the file you are getting using \helpref{wxStreamBase::GetSize()}{wxstreambasegetsize}. -But there is a limitation: as HTTP servers aren't obliged to pass the size ofi -the file, in some case, you will be returned 0xfffffff by GetSize(). In these -cases, you should use the value returned by \helpref{wxInputStream::LastRead()}{wxinputstreamlastread}: -this value will be 0 when the stream is finished. - -\wxheading{Return value} - -Returns the initialized stream. You will have to delete it yourself once you -don't use it anymore. The destructor closes the network connection. -The next time you will try to get a file the network connection will have -to be reestablished: but you don't have to take care of this wxHTTP reestablishes it automatically. - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream} - -% ---------------------------------------------------------------------------- - -\membersection{wxHTTP::SetHeader} - -\func{void}{SetHeader}{\param{const wxString\&}{ header}, \param{const wxString\&}{ h\_data}} - -It sets data of a field to be sent during the next request to the HTTP server. The field -name is specified by \it{header} and the content by \it{h\_data}. -This is a low level function and it assumes that you know what you are doing. - -\membersection{wxHTTP::GetHeader} - -\func{wxString}{GetHeader}{\param{const wxString\&}{ header}} - -Returns the data attached with a field whose name is specified by \it{header}. -If the field doesn't exist, it will return an empty string and not a NULL string. - -\wxheading{Note} - -The header is not case-sensitive: I mean that "CONTENT-TYPE" and "content-type" -represent the same header. - diff --git a/docs/latex/wx/htwidget.tex b/docs/latex/wx/htwidget.tex deleted file mode 100644 index 5191eca6e9..0000000000 --- a/docs/latex/wx/htwidget.tex +++ /dev/null @@ -1,33 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlcell.h at 14/Apr/99 20:12:40 -% - -\section{\class{wxHtmlWidgetCell}}\label{wxhtmlwidgetcell} - -wxHtmlWidgetCell is class that provides connection between HTML cell and widget (object derived -from wxWindow). You can use it to display things like forms, input boxes etc. in HTML window. - -wxHtmlWidgetCell takes care of resizing and moving window. - -\wxheading{Derived from} - -\helpref{wxHtmlCell}{wxhtmlcell} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlWidgetCell::wxHtmlWidgetCell}\label{wxhtmlwidgetcellwxhtmlwidgetcell} - -\func{}{wxHtmlWidgetCell}{\param{wxWindow* }{wnd}, \param{int }{w = 0}} - -Constructor - -\wxheading{Parameters} - -\docparam{wnd}{Connected window. It's parent window {\bf must} be the wxHtmlWindow object within -which it is displayed!} - -\docparam{w}{Floating width. If non-zero width of {\it wnd} window is adjusted so that it is -always {\it w} percents of parent container's width. (For example w = 100 means that the window -will always have same width as parent container)} - diff --git a/docs/latex/wx/htwindow.tex b/docs/latex/wx/htwindow.tex deleted file mode 100644 index 3b426f8221..0000000000 --- a/docs/latex/wx/htwindow.tex +++ /dev/null @@ -1,255 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlwindow.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlWindow}}\label{wxhtmlwindow} - -wxHtmlWindow is probably the only class you will directly use -unless you want to do something special (like adding new tag -handlers or MIME filters) - -Purpose of this class is to display HTML page (either local -file or downloaded via HTTP protocol) in a window. Width -of window is constant - given in constructor - virtual height -is changed dynamicly depending on page size. -Once the window is created you can set it's content by calling -\helpref{SetPage(text)}{wxhtmlwindowsetpage} or -\helpref{LoadPage(filename)}{wxhtmlwindowloadpage}. - -\wxheading{Derived from} - -wxScrolledWindow - -\wxheading{Include files} - - - -\membersection{wxHtmlWindow::wxHtmlWindow}\label{wxhtmlwindowwxhtmlwindow} - -\func{}{wxHtmlWindow}{\void} - -Default constructor. - -\func{}{wxHtmlWindow}{\param{wxWindow }{*parent}, \param{wxWindowID }{id = -1}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxHW_SCROLLBAR_AUTO}, \param{const wxString\& }{name = "htmlWindow"}} - -Constructor. The parameters are same as in wxScrollWindow ctor. -(Too lazy to document it once again... :-) - -\wxheading{Parameters} - -\docparam{style}{wxHW\_SCROLLBAR\_NEVER, or wxHW\_SCROLLBAR\_AUTO. -Affects appearance of vertical scrollbar in the window.} - -\membersection{wxHtmlWindow::SetPage}\label{wxhtmlwindowsetpage} - -\func{bool}{SetPage}{\param{const wxString\& }{source}} - -Sets HTML page and display it. This won't {\bf load} the page!! -It will display the {\it source}. See example: - -\begin{verbatim} -htmlwin -> SetPage("Hello, world!"); -\end{verbatim} - -If you want to load document from some location use -\helpref{LoadPage}{wxhtmlwindowloadpage} instead. - -\wxheading{Parameters} - -\docparam{source}{The HTML document source to be displayed.} - -\wxheading{Return value} - -FALSE if an error occured, TRUE otherwise - -\membersection{wxHtmlWindow::LoadPage}\label{wxhtmlwindowloadpage} - -\func{bool}{LoadPage}{\param{const wxString\& }{location}} - -Unlike SetPage this function first loads HTML page from {\it location} -and then displays it. See example: - -\begin{verbatim} -htmlwin -> SetPage("help/myproject/index.htm"); -\end{verbatim} - -\wxheading{Parameters} - -\docparam{location}{The address of document. See \helpref{wxFileSystem}{wxfilesystem} for details on address format and behaviour of "opener".} - -\wxheading{Return value} - -FALSE if an error occured, TRUE otherwise - -\membersection{wxHtmlWindow::GetOpenedPage}\label{wxhtmlwindowgetopenedpage} - -\func{wxString}{GetOpenedPage}{\void} - -Returns full location of the opened page. If no page is opened or if the displayed page wasn't -produced by call to LoadPage, empty string is returned. - -\membersection{wxHtmlWindow::SetRelatedFrame}\label{wxhtmlwindowsetrelatedframe} - -\func{void}{SetRelatedFrame}{\param{wxFrame* }{frame}, \param{const wxString\& }{format}} - -Sets frame in which page title will be displayed. {\it format} is format of -frame title, e.g. "HtmlHelp : \%s". It must contain exactly one \%s. This -\%s is substituted with HTML page title. - -\membersection{wxHtmlWindow::GetRelatedFrame}\label{wxhtmlwindowgetrelatedframe} - -\constfunc{wxFrame*}{GetRelatedFrame}{\void} - -Returns the related frame. - -\membersection{wxHtmlWindow::SetRelatedStatusBar}\label{wxhtmlwindowsetrelatedstatusbar} - -\func{void}{SetRelatedStatusBar}{\param{int }{bar}} - -{\bf After} calling \helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe}, -this sets statusbar slot where messages will be displayed. -(Default is -1 = no messages.) - -\wxheading{Parameters} - -\docparam{bar}{statusbar slot number (0..n)} - -\membersection{wxHtmlWindow::SetFonts}\label{wxhtmlwindowsetfonts} - -\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{int }{normal\_italic\_mode}, \param{wxString }{fixed\_face}, \param{int }{fixed\_italic\_mode}, \param{int }{*sizes}} - -This function sets font sizes and faces. - -\wxheading{Parameters} - -\docparam{normal_face}{This is face name for normal (i.e. non-fixed) font. -It can be either empty string (then the default face is choosen) or -platform-specific face name. Examples are "helvetica" under Unix or -"Times New Roman" under Windows.} - -\docparam{normal_italic_mode}{This is either wxSLANT or wxITALIC. -It determines how -italic (..) text is handled. See wxFont documentation for -details. For example you should use wxSLANT in conjuction with -"helvetica" face or wxITALIC with "times" face.} - -\docparam{fixed_face}{The same thing for fixed face ( .. )} - -\docparam{fixed_italic_mode}{The same thing for fixed face.} - -\docparam{sizes}{This is an array of 7 items of {\it int} type. -The values represent size of font with HTML size from -2 to +4 -( to )} - -\wxheading{Defaults} - -Under wxGTK: - -\begin{verbatim} - SetFonts("", wxSLANT, "", wxSLANT, {10, 12, 14, 16, 19, 24, 32}); -\end{verbatim} - -Under Windows: - -\begin{verbatim} - SetFonts("", wxSLANT, "", wxSLANT, {7, 8, 10, 12, 16, 22, 30}); -\end{verbatim} - -Athough it seems different the fact is that the fonts are of approximately -same size under both platforms (due to wxMSW / wxGTK inconsistency) - -\membersection{wxHtmlWindow::SetBorders}\label{wxhtmlwindowsetborders} - -\func{void}{SetBorders}{\param{int }{b}} - -This function sets the space between border of window and HTML contents. See image: - -\image{}{border.bmp} - -\wxheading{Parameters} - -\docparam{b}{indentation from borders in pixels} - -\membersection{wxHtmlWindow::ReadCustomization}\label{wxhtmlwindowreadcustomization} - -\func{virtual void}{ReadCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}} - -This reads custom settings from wxConfig. It uses the path 'path' -if given, otherwise it saves info into currently selected path. -The values are stored in sub-path {\tt wxHtmlWindow} - -Read values : all things set by SetFonts, SetBorders. - -\wxheading{Parameters} - -\docparam{cfg}{wxConfig from which you wanna read configuration} - -\docparam{path}{Optional path in config tree. If not given current path is used.} - -\membersection{wxHtmlWindow::WriteCustomization}\label{wxhtmlwindowwritecustomization} - -\func{virtual void}{WriteCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}} - -Saves custom settings into wxConfig. It uses the path 'path' -if given, otherwise it saves info into currently selected path. -Regardless path is given or not the function creates sub-path -{\tt wxHtmlWindow} - -Saved values : all things set by SetFonts, SetBorders. - -\wxheading{Parameters} - -\docparam{cfg}{wxConfig to which you wanna save configuration} - -\docparam{path}{Optional path in config tree. If not given current path is used.} - - -\membersection{wxHtmlWindow::GetInternalRepresentation}\label{wxhtmlwindowgetinternalrepresentation} - -\constfunc{wxHtmlContainerCell*}{GetInternalRepresentation}{\void} - -Returns pointer to the top-level container. - -See also: \helpref{Cells Overview}{cells}, -\helpref{Printing Overview}{printing} - -\membersection{wxHtmlWindow::AddFilter}\label{wxhtmlwindowaddfilter} - -\func{static void}{AddFilter}{\param{wxHtmlFilter }{*filter}} - -Adds \helpref{input filter}{filters} to the static list of available -filters. These filters are present by default: - -\begin{itemize} -\item {\tt text/html} MIME type -\item {\tt image/*} MIME types -\item Plain Text filter (this filter is used if no other filter matches) -\end{itemize} - -\membersection{wxHtmlWindow::HistoryBack}\label{wxhtmlwindowhistoryback} - -\func{bool}{HistoryBack}{\void} - -Moves back to the previous page. (each page displayed using -\helpref{LoadPage}{wxhtmlwindowloadpage} is stored in history list.) - -\membersection{wxHtmlWindow::HistoryForward}\label{wxhtmlwindowhistoryforward} - -\func{bool}{HistoryForward}{\void} - -Moves to next page in history. - -\membersection{wxHtmlWindow::HistoryClear}\label{wxhtmlwindowhistoryclear} - -\func{void}{HistoryClear}{\void} - -Clears history. - -\membersection{wxHtmlWindow::OnLinkClicked}\label{wxhtmlwindowonlinkclicked} - -\func{virtual void}{OnLinkClicked}{\param{const wxString\& }{link}} - -Called when user clicks on hypertext link. Default behaviour is to call -\helpref{LoadPage}{wxhtmlwindowloadpage} and do nothing else. - diff --git a/docs/latex/wx/htwinhnd.tex b/docs/latex/wx/htwinhnd.tex deleted file mode 100644 index 9e86f2eb6e..0000000000 --- a/docs/latex/wx/htwinhnd.tex +++ /dev/null @@ -1,26 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlwintaghandler.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlWinTagHandler}}\label{wxhtmlwintaghandler} - -This is basically wxHtmlTagHandler except that -it is extended with protected member m\_WParser pointing to -the wxHtmlWinParser object (value of this member is identical -to wxHtmlParser's m\_Parser). - -\wxheading{Derived from} - -\helpref{wxHtmlTagHandler}{wxhtmltaghandler} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlWinTagHandler::m\_WParser}\label{wxhtmlwintaghandlerwxhtmlwintaghandlermwparser} - -{\bf wxHtmlWinParser* m\_WParser} - -Value of this attribute is identical to value of m\_Parser. The only different -is that m\_WParser points to wxHtmlWinParser object while m\_Parser -points to wxHtmlParser object. (The same object, but overcast.) - diff --git a/docs/latex/wx/htwinprs.tex b/docs/latex/wx/htwinprs.tex deleted file mode 100644 index 0fa178d9df..0000000000 --- a/docs/latex/wx/htwinprs.tex +++ /dev/null @@ -1,254 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlwinparser.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlWinParser}}\label{wxhtmlwinparser} - -This class is derived from \helpref{wxHtmlParser}{wxhtmlparser} and -its mail goal is to parse HTML input so that it can be displayed in -\helpref{wxHtmlWindow}{wxhtmlwindow}. It uses special -\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}. - -\wxheading{Notes} - -\begin{enumerate} -\item Product of parsing is wxHtmlCell (resp. wxHtmlContainer) object. -\item This parser produces temporary data! You should call -\helpref{delete GetTempData()}{wxhtmlparsergettempdata}! -\end{enumerate} - -\wxheading{Derived from} - -\helpref{wxHtmlParser}{wxhtmlparser} - -\wxheading{See Also} - -\helpref{Handlers overview}{handlers} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlWinParser::wxHtmlWinParser}\label{wxhtmlwinparserwxhtmlwinparser} - -\func{}{wxHtmlWinParser}{\void} - -\func{}{wxHtmlWinParser}{\param{wxWindow }{*wnd}} - -Constructor. Don't use the default one, use constructor with -{\it wnd} paremeter ({\it wnd} is pointer to associated \helpref{wxHtmlWindow}{wxhtmlwindow}) - -\membersection{wxHtmlWinParser::SetDC}\label{wxhtmlwinparsersetdc} - -\func{virtual void}{SetDC}{\param{wxDC }{*dc}} - -Sets the DC. This must be called before \helpref{Parse}{wxhtmlparserparse}! - -\membersection{wxHtmlWinParser::GetDC}\label{wxhtmlwinparsergetdc} - -\func{wxDC*}{GetDC}{\void} - -Returns pointer to the DC used during parsing. - -\membersection{wxHtmlWinParser::GetCharHeight}\label{wxhtmlwinparsergetcharheight} - -\constfunc{int}{GetCharHeight}{\void} - -Returns (average) char height in standard font. It's used as DC-independent metrics. - -{\bf Note:} This function doesn't return {\it actual} height. If you wanna -know height of current font, call {\tt GetDC -> GetCharHeight()} - -\membersection{wxHtmlWinParser::GetCharWidth}\label{wxhtmlwinparsergetcharwidth} - -\constfunc{int}{GetCharWidth}{\void} - -Returns average char width in standard font. It's used as DC-independent metrics. - -{\bf Note:} This function doesn't return {\it actual} width. If you wanna -know height of current font, call {\tt GetDC -> GetCharWidth()} - -\membersection{wxHtmlWinParser::GetWindow}\label{wxhtmlwinparsergetwindow} - -\func{wxWindow*}{GetWindow}{\void} - -Returns associated window (wxHtmlWindow). This may be NULL! (You should always -test if it is non-NULL. For example {\tt TITLE} handler sets window -title only if some window is associated, otherwise it does nothing) - - -\membersection{wxHtmlWinParser::SetFonts}\label{wxhtmlwinparsersetfonts} - -\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{int }{normal\_italic\_mode}, \param{wxString }{fixed\_face}, \param{int }{fixed\_italic\_mode}, \param{int }{*sizes}} - -Sets fonts. This method is identical to \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} - -\membersection{wxHtmlWinParser::AddModule}\label{wxhtmlwinparseraddmodule} - -\func{static void}{AddModule}{\param{wxHtmlTagsModule }{*module}} - -Adds \helpref{module}{handlers} to the list of wxHtmlWinParser tag handler. - -\membersection{wxHtmlWinParser::GetContainer}\label{wxhtmlwinparsergetcontainer} - -\constfunc{wxHtmlContainerCell*}{GetContainer}{\void} - -Returns pointer to the currectly opened container (see \helpref{Overview}{cells}). -Common use: - -\begin{verbatim} -m_WParser -> GetContainer() -> InsertCell(new ...); -\end{verbatim} - -\membersection{wxHtmlWinParser::OpenContainer}\label{wxhtmlwinparseropencontainer} - -\func{wxHtmlContainerCell*}{OpenContainer}{\void} - -Opens new container and returns pointer to it (see \helpref{Overview}{cells}). - -% -%\membersection{wxHtmlWinParser::SetContainer}\label{wxhtmlwinparsersetcontainer} -% -%\func{wxHtmlContainerCell*}{SetContainer}{\param{wxHtmlContainerCell *}{c}} -% -%Allows you to directly set opened container. This is not recommended - you should use OpenContainer -%whereever possible. -% - -\membersection{wxHtmlWinParser::CloseContainer}\label{wxhtmlwinparserclosecontainer} - -\func{wxHtmlContainerCell*}{CloseContainer}{\void} - -Closes the container, sets actual container to the parent one -and returns pointer to it (see \helpref{Overview}{cells}). - -\membersection{wxHtmlWinParser::GetFontSize}\label{wxhtmlwinparsergetfontsize} - -\constfunc{int}{GetFontSize}{\void} - -Returns actual font size (HTML size varies from -2 to +4) - -\membersection{wxHtmlWinParser::SetFontSize}\label{wxhtmlwinparsersetfontsize} - -\func{void}{SetFontSize}{\param{int }{s}} - -Sets actual font size (HTML size varies from -2 to +4) - -\membersection{wxHtmlWinParser::GetFontBold}\label{wxhtmlwinparsergetfontbold} - -\constfunc{int}{GetFontBold}{\void} - -Returns TRUE if actual font is bold, FALSE otherwise. - -\membersection{wxHtmlWinParser::SetFontBold}\label{wxhtmlwinparsersetfontbold} - -\func{void}{SetFontBold}{\param{int }{x}} - -Sets bold flag of actualfont. {\it x} is either TRUE of FALSE. - -\membersection{wxHtmlWinParser::GetFontItalic}\label{wxhtmlwinparsergetfontitalic} - -\constfunc{int}{GetFontItalic}{\void} - -Returns TRUE if actual font is italic, FALSE otherwise. - - -\membersection{wxHtmlWinParser::SetFontItalic}\label{wxhtmlwinparsersetfontitalic} - -\func{void}{SetFontItalic}{\param{int }{x}} - -Sets italic flag of actualfont. {\it x} is either TRUE of FALSE. - -\membersection{wxHtmlWinParser::GetFontUnderlined}\label{wxhtmlwinparsergetfontunderlined} - -\constfunc{int}{GetFontUnderlined}{\void} - -Returns TRUE if actual font is underlined, FALSE otherwise. - -\membersection{wxHtmlWinParser::SetFontUnderlined}\label{wxhtmlwinparsersetfontunderlined} - -\func{void}{SetFontUnderlined}{\param{int }{x}} - -Sets underlined flag of actualfont. {\it x} is either TRUE of FALSE. - -\membersection{wxHtmlWinParser::GetFontFixed}\label{wxhtmlwinparsergetfontfixed} - -\constfunc{int}{GetFontFixed}{\void} - -Returns TRUE if actual font is fixed face, FALSE otherwise. - -\membersection{wxHtmlWinParser::SetFontFixed}\label{wxhtmlwinparsersetfontfixed} - -\func{void}{SetFontFixed}{\param{int }{x}} - -Sets fixed face flag of actualfont. {\it x} is either TRUE of FALSE. - -\membersection{wxHtmlWinParser::GetAlign}\label{wxhtmlwinparsergetalign} - -\constfunc{int}{GetAlign}{\void} - -Returns default horizontal alignment. - -\membersection{wxHtmlWinParser::SetAlign}\label{wxhtmlwinparsersetalign} - -\func{void}{SetAlign}{\param{int }{a}} - -Sets default horizontal alignment (see \helpref{wxHtmlContainerCell::SetAlignHor}{wxhtmlcontainercellsetalignhor}. -Alignment of newly opened container is set to this value. - -\membersection{wxHtmlWinParser::GetLinkColor}\label{wxhtmlwinparsergetlinkcolor} - -\constfunc{const wxColour\&}{GetLinkColor}{\void} - -Returns color of hypertext link text. - -\membersection{wxHtmlWinParser::SetLinkColor}\label{wxhtmlwinparsersetlinkcolor} - -\func{void}{SetLinkColor}{\param{const wxColour\& }{clr}} - -Sets color of hypertext link. - -\membersection{wxHtmlWinParser::GetActualColor}\label{wxhtmlwinparsergetactualcolor} - -\constfunc{const wxColour\&}{GetActualColor}{\void} - -Returns actual text color. - -\membersection{wxHtmlWinParser::SetActualColor}\label{wxhtmlwinparsersetactualcolor} - -\func{void}{SetActualColor}{\param{const wxColour\& }{clr}} - -Sets actual text color. Note: this DOESN'T change the color! -You must create \helpref{wxHtmlColourCell}{wxhtmlcolourcell} yourself. - -\membersection{wxHtmlWinParser::GetLink}\label{wxhtmlwinparsergetlink} - -\constfunc{const wxString\&}{GetLink}{\void} - -Returns actual hypertext link. (This value is non-empty string -if the parser is between {\tt } and {\tt } tags, -wxEmptyString otherwise. - - -\membersection{wxHtmlWinParser::SetLink}\label{wxhtmlwinparsersetlink} - -\func{void}{SetLink}{\param{const wxString\& }{link}} - -Sets actual hypertext link. wxEmptyString means no link. - -\membersection{wxHtmlWinParser::CreateCurrentFont}\label{wxhtmlwinparsercreatecurrentfont} - -\func{virtual wxFont*}{CreateCurrentFont}{\void} - -Creates font based on current setting (see -\helpref{SetFontSize}{wxhtmlwinparsersetfontsize}, -\helpref{SetFontBold}{wxhtmlwinparsersetfontbold}, -\helpref{SetFontItalic}{wxhtmlwinparsersetfontitalic}, -\helpref{SetFontFixed}{wxhtmlwinparsersetfontfixed}, -\helpref{SetFontUnderlined}{wxhtmlwinparsersetfontunderlined}) -and returns pointer to it. -(If the font was already created only a pointer is returned.) - -Fonts created during parsing are temporary data and are not freed on DoneParser. -You must call \helpref{delete myparser->GetTempData();}{wxhtmlparsergettempdata} -to free the memory! - diff --git a/docs/latex/wx/icon.tex b/docs/latex/wx/icon.tex deleted file mode 100644 index b5561fc37f..0000000000 --- a/docs/latex/wx/icon.tex +++ /dev/null @@ -1,383 +0,0 @@ -\section{\class{wxIcon}}\label{wxicon} - -An icon is a small rectangular bitmap usually used for denoting a -minimized application. It differs from a wxBitmap in always -having a mask associated with it for transparent drawing. On some platforms, -icons and bitmaps are implemented identically, since there is no real distinction between -a wxBitmap with a mask and an icon; and there is no specific icon format on -some platforms (X-based applications usually standardize on XPMs for small bitmaps -and icons). However, some platforms (such as Windows) make the distinction, so -a separate class is provided. - -\wxheading{Derived from} - -\helpref{wxBitmap}{wxbitmap}\\ -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullIcon} - -\wxheading{Remarks} - -It is usually desirable to associate a pertinent icon with a frame. Icons -can also be used for other purposes, for example with \helpref{wxTreeCtrl}{wxtreectrl} -and \helpref{wxListCtrl}{wxlistctrl}. - -Icons have different formats on different platforms. -Therefore, separate icons will usually be created for the different -environments. Platform-specific methods for creating a {\bf wxIcon}\rtfsp -structure are catered for, and this is an occasion where conditional -compilation will probably be required. - -Note that a new icon must be created for every time the icon is to be -used for a new window. In Windows, the icon will not be -reloaded if it has already been used. An icon allocated to a frame will -be deleted when the frame is deleted. - -For more information please see \helpref{Bitmap and icon overview}{wxbitmapoverview}. - -\wxheading{See also} - -\helpref{Bitmap and icon overview}{wxbitmapoverview}, \helpref{supported bitmap file formats}{supportedbitmapformats}, -\helpref{wxDC::DrawIcon}{wxdcdrawicon}, \helpref{wxCursor}{wxcursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxIcon::wxIcon}\label{wxiconconstr} - -\func{}{wxIcon}{\void} - -Default constructor. - -\func{}{wxIcon}{\param{const wxIcon\& }{icon}} - -Copy constructor. - -\func{}{wxIcon}{\param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates an icon from the given data, which can be of arbitrary type. - -\func{}{wxIcon}{\param{const char}{ bits[]}, \param{int}{ width}, \param{int}{ height}\\ - \param{int}{ depth = 1}} - -Creates an icon from an array of bits. - -\func{}{wxIcon}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a new icon. - -\func{}{wxIcon}{\param{const char**}{ bits}} - -Creates an icon from XPM data. - -\func{}{wxIcon}{\param{const wxString\& }{name}, \param{long}{ type}, - \param{int}{ desiredWidth = -1}, \param{int}{ desiredHeight = -1}} - -Loads an icon from a file or resource. - -\wxheading{Parameters} - -\docparam{bits}{Specifies an array of pixel values.} - -\docparam{width}{Specifies the width of the icon.} - -\docparam{height}{Specifies the height of the icon.} - -\docparam{desiredWidth}{Specifies the desired width of the icon. This -parameter only has an effect in Windows (32-bit) where icon resources can contain -several icons of different sizes.} - -\docparam{desiredWidth}{Specifies the desired height of the icon. This -parameter only has an effect in Windows (32-bit) where icon resources can contain -several icons of different sizes.} - -\docparam{depth}{Specifies the depth of the icon. If this is omitted, the display depth of the -screen is used.} - -\docparam{name}{This can refer to a resource name under MS Windows, or a filename under MS Windows and X. -Its meaning is determined by the {\it flags} parameter.} - -\docparam{type}{May be one of the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_ICO}}}{Load a Windows icon file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_ICO\_RESOURCE}}}{Load a Windows icon from the resource database.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_GIF}}}{Load a GIF bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XBM}}}{Load an X bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XPM}}}{Load an XPM bitmap file.} -%\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_RESOURCE}}}{Load a Windows resource name.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration. -If all possible wxWindows settings are used, the Windows platform supports ICO file, ICO resource, -XPM data, and XPM file. Under wxGTK, the available formats are BMP file, XPM data, XPM file, and PNG file. -Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file.} - -\wxheading{Remarks} - -The first form constructs an icon object with no data; an assignment or another member function such as Create -or LoadFile must be called subsequently. - -The second and third forms provide copy constructors. Note that these do not copy the -icon data, but instead a pointer to the data, keeping a reference count. They are therefore -very efficient operations. - -The fourth form constructs an icon from data whose type and value depends on -the value of the {\it type} argument. - -The fifth form constructs a (usually monochrome) icon from an array of pixel values, under both -X and Windows. - -The sixth form constructs a new icon. - -The seventh form constructs an icon from pixmap (XPM) data, if wxWindows has been configured -to incorporate this feature. - -To use this constructor, you must first include an XPM file. For -example, assuming that the file {\tt mybitmap.xpm} contains an XPM array -of character pointers called mybitmap: - -\begin{verbatim} -#include "mybitmap.xpm" - -... - -wxIcon *icon = new wxIcon(mybitmap); -\end{verbatim} - -A macro, wxICON, is available which creates an icon using an XPM -on the appropriate platform, or an icon resource on Windows. - -\begin{verbatim} -wxIcon icon(wxICON(mondrian)); - -// Equivalent to: - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -wxIcon icon(mondrian_xpm); -#endif - -#if defined(__WXMSW__) -wxIcon icon("mondrian"); -#endif -\end{verbatim} - -The eighth form constructs an icon from a file or resource. {\it name} can refer -to a resource name under MS Windows, or a filename under MS Windows and X. - -Under Windows, {\it type} defaults to wxBITMAP\_TYPE\_ICO\_RESOURCE. -Under X, {\it type} defaults to wxBITMAP\_TYPE\_XPM. - -\wxheading{See also} - -\helpref{wxIcon::LoadFile}{wxiconloadfile} - -\membersection{wxIcon::\destruct{wxIcon}} - -\func{}{\destruct{wxIcon}}{\void} - -Destroys the wxIcon object and possibly the underlying icon data. -Because reference counting is used, the icon may not actually be -destroyed at this point - only when the reference count is zero will the -data be deleted. - -If the application omits to delete the icon explicitly, the icon will be -destroyed automatically by wxWindows when the application exits. - -Do not delete an icon that is selected into a memory device context. - -\membersection{wxIcon::GetDepth} - -\constfunc{int}{GetDepth}{\void} - -Gets the colour depth of the icon. A value of 1 indicates a -monochrome icon. - -\membersection{wxIcon::GetHeight}\label{wxicongetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height of the icon in pixels. - -\membersection{wxIcon::GetWidth}\label{wxicongetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width of the icon in pixels. - -\wxheading{See also} - -\helpref{wxIcon::GetHeight}{wxicongetheight} - -\membersection{wxIcon::LoadFile}\label{wxiconloadfile} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}} - -Loads an icon from a file or resource. - -\wxheading{Parameters} - -\docparam{name}{Either a filename or a Windows resource name. -The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO\_RESOURCE}}{Load a Windows icon from the resource database.} -\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxIcon::wxIcon}{wxiconconstr} - -\membersection{wxIcon::Ok}\label{wxiconok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if icon data is present. - -\begin{comment} -\membersection{wxIcon::SaveFile}\label{wxiconsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}, \param{wxPalette* }{palette = NULL}} - -Saves an icon in the named file. - -\wxheading{Parameters} - -\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Save a Windows icon file.} -%\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Save a GIF icon file.} -%\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Save an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration.} - -\docparam{palette}{An optional palette used for saving the icon.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{Remarks} - -Depending on how wxWindows has been configured, not all formats may be available. - -\wxheading{See also} - -\helpref{wxIcon::LoadFile}{wxiconloadfile} -\end{comment} - -\membersection{wxIcon::SetDepth}\label{wxiconsetdepth} - -\func{void}{SetDepth}{\param{int }{depth}} - -Sets the depth member (does not affect the icon data). - -\wxheading{Parameters} - -\docparam{depth}{Icon depth.} - -\membersection{wxIcon::SetHeight}\label{wxiconsetheight} - -\func{void}{SetHeight}{\param{int }{height}} - -Sets the height member (does not affect the icon data). - -\wxheading{Parameters} - -\docparam{height}{Icon height in pixels.} - -\membersection{wxIcon::SetOk} - -\func{void}{SetOk}{\param{int }{isOk}} - -Sets the validity member (does not affect the icon data). - -\wxheading{Parameters} - -\docparam{isOk}{Validity flag.} - -\membersection{wxIcon::SetWidth} - -\func{void}{SetWidth}{\param{int }{width}} - -Sets the width member (does not affect the icon data). - -\wxheading{Parameters} - -\docparam{width}{Icon width in pixels.} - -\membersection{wxIcon::operator $=$} - -\func{wxIcon\& }{operator $=$}{\param{const wxIcon\& }{icon}} - -Assignment operator. This operator does not copy any data, but instead -passes a pointer to the data in {\it icon} and increments a reference -counter. It is a fast operation. - -\wxheading{Parameters} - -\docparam{icon}{Icon to assign.} - -\wxheading{Return value} - -Returns 'this' object. - -\membersection{wxIcon::operator $==$} - -\func{bool}{operator $==$}{\param{const wxIcon\& }{icon}} - -Equality operator. This operator tests whether the internal data pointers are -equal (a fast test). - -\wxheading{Parameters} - -\docparam{icon}{Icon to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the icons were effectively equal, FALSE otherwise. - -\membersection{wxIcon::operator $!=$} - -\func{bool}{operator $!=$}{\param{const wxIcon\& }{icon}} - -Inequality operator. This operator tests whether the internal data pointers are -unequal (a fast test). - -\wxheading{Parameters} - -\docparam{icon}{Icon to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the icons were unequal, FALSE otherwise. - - diff --git a/docs/latex/wx/idleevt.tex b/docs/latex/wx/idleevt.tex deleted file mode 100644 index f38cf33a03..0000000000 --- a/docs/latex/wx/idleevt.tex +++ /dev/null @@ -1,63 +0,0 @@ -\section{\class{wxIdleEvent}}\label{wxidleevent} - -This class is used for idle events, which are generated when the system is idle. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process an idle event, use this event handler macro to direct input to a member -function that takes a wxIdleEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_IDLE(func)}}{Process a wxEVT\_IDLE event.} -\end{twocollist}% - -\wxheading{Remarks} - -Idle events can be caught by the wxApp class, or by top-level window classes. - -\wxheading{See also} - -\helpref{wxApp::OnIdle}{wxapponidle}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxIdleEvent::wxIdleEvent} - -\func{}{wxIdleEvent}{\void} - -Constructor. - -\membersection{wxIdleEvent::RequestMore}\label{wxidleeventrequestmore} - -\func{void}{RequestMore}{\param{bool}{ needMore = TRUE}} - -Tells wxWindows that more processing is required. This function can be called by an OnIdle -handler for a window or window event handler to indicate that wxApp::OnIdle should -forward the OnIdle event once more to the application windows. If no window calls this function -during OnIdle, then the application will remain in a passive event loop (not calling OnIdle) until a -new event is posted to the application by the windowing system. - -\wxheading{See also} - -\helpref{wxIdleEvent::MoreRequested}{wxidleeventmorerequested}, \helpref{wxApp::OnIdle}{wxapponidle} - -\membersection{wxIdleEvent::MoreRequested}\label{wxidleeventmorerequested} - -\constfunc{bool}{MoreRequested}{\void} - -Returns TRUE if the OnIdle function processing this event requested more processing time. - -\wxheading{See also} - -\helpref{wxIdleEvent::RequestMore}{wxidleeventrequestmore}, \helpref{wxApp::OnIdle}{wxapponidle} - diff --git a/docs/latex/wx/ignore.txt b/docs/latex/wx/ignore.txt deleted file mode 100644 index 2d5a620e5e..0000000000 --- a/docs/latex/wx/ignore.txt +++ /dev/null @@ -1,7 +0,0 @@ -# this file contains classes and functions HelpGen should ignore -# in 'diff' mode -wxCursorRefData -wxCursor::SetHCURSOR -wxCursor::GetHCURSOR -wxCursor::FreeResource -wxStringData \ No newline at end of file diff --git a/docs/latex/wx/ilayout.tex b/docs/latex/wx/ilayout.tex deleted file mode 100644 index 9bbe08e3d9..0000000000 --- a/docs/latex/wx/ilayout.tex +++ /dev/null @@ -1,135 +0,0 @@ -\section{\class{wxIndividualLayoutConstraint}}\label{wxindividuallayoutconstraint} - -Objects of this class are stored in the wxIndividualLayoutConstraint class -as one of eight possible constraints that a window can be involved in. - -Constraints are initially set to have the relationship wxUnconstrained, -which means that their values should be calculated by looking at known constraints. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Overview and examples}{constraintsoverview},\rtfsp -\helpref{wxLayoutConstraints}{wxlayoutconstraints}, \helpref{wxWindow::SetConstraints}{wxwindowsetconstraints}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\subsection{Edges and relationships} - -The {\it wxEdge}\index{wxEdge} enumerated type specifies the type of edge or dimension of a window. - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLeft}{The left edge.} -\twocolitem{wxTop}{The top edge.} -\twocolitem{wxRight}{The right edge.} -\twocolitem{wxBottom}{The bottom edge.} -\twocolitem{wxCentreX}{The x-coordinate of the centre of the window.} -\twocolitem{wxCentreY}{The y-coordinate of the centre of the window.} -\end{twocollist} - -The {\it wxRelationship}\index{wxRelationship} enumerated type specifies the relationship that -this edge or dimension has with another specified edge or dimension. Normally, the user -doesn't use these directly because functions such as {\it Below} and {\it RightOf} are a convenience -for using the more general {\it Set} function. - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUnconstrained}{The edge or dimension is unconstrained (the default for edges.} -\twocolitem{wxAsIs}{The edge or dimension is to be taken from the current window position or size (the -default for dimensions.} -\twocolitem{wxAbove}{The edge should be above another edge.} -\twocolitem{wxBelow}{The edge should be below another edge.} -\twocolitem{wxLeftOf}{The edge should be to the left of another edge.} -\twocolitem{wxRightOf}{The edge should be to the right of another edge.} -\twocolitem{wxSameAs}{The edge or dimension should be the same as another edge or dimension.} -\twocolitem{wxPercentOf}{The edge or dimension should be a percentage of another edge or dimension.} -\twocolitem{wxAbsolute}{The edge or dimension should be a given absolute value.} -\end{twocollist} - -\membersection{wxIndividualLayoutConstraint::wxIndividualLayoutConstraint} - -\func{void}{wxIndividualLayoutConstraint}{\void} - -Constructor. Not used by the end-user. - -\membersection{wxIndividualLayoutConstraint::Above} - -\func{void}{Above}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be above the given window, with an -optional margin. Implicitly, this is relative to the top edge of the other window. - -\membersection{wxIndividualLayoutConstraint::Absolute} - -\func{void}{Absolute}{\param{int}{ value}} - -Constrains this edge or dimension to be the given absolute value. - -\membersection{wxIndividualLayoutConstraint::AsIs} - -\func{void}{AsIs}{\void} - -Sets this edge or constraint to be whatever the window's value is -at the moment. If either of the width and height constraints -are {\it as is}, the window will not be resized, but moved instead. -This is important when considering panel items which are intended -to have a default size, such as a button, which may take its size -from the size of the button label. - -\membersection{wxIndividualLayoutConstraint::Below} - -\func{void}{Below}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be below the given window, with an -optional margin. Implicitly, this is relative to the bottom edge of the other window. - -\membersection{wxIndividualLayoutConstraint::Unconstrained} - -\func{void}{Unconstrained}{\void} - -Sets this edge or dimension to be unconstrained, that is, dependent on -other edges and dimensions from which this value can be deduced. - -\membersection{wxIndividualLayoutConstraint::LeftOf} - -\func{void}{LeftOf}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be to the left of the given window, with an -optional margin. Implicitly, this is relative to the left edge of the other window. - -\membersection{wxIndividualLayoutConstraint::PercentOf} - -\func{void}{PercentOf}{\param{wxWindow *}{otherWin}, \param{wxEdge}{ edge}, \param{int}{ margin = 0}} - -Constrains this edge or dimension to be to a percentage of the given window, with an -optional margin. - -\membersection{wxIndividualLayoutConstraint::RightOf} - -\func{void}{RightOf}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be to the right of the given window, with an -optional margin. Implicitly, this is relative to the right edge of the other window. - -\membersection{wxIndividualLayoutConstraint::SameAs} - -\func{void}{SameAs}{\param{wxWindow *}{otherWin}, \param{wxEdge}{ edge}, \param{int}{ margin = 0}} - -Constrains this edge or dimension to be to the same as the edge of the given window, with an -optional margin. - -\membersection{wxIndividualLayoutConstraint::Set} - -\func{void}{Set}{\param{wxRelationship}{ rel}, \param{wxWindow *}{otherWin}, \param{wxEdge}{ otherEdge}, - \param{int}{ value = 0}, \param{int}{ margin = 0}} - -Sets the properties of the constraint. Normally called by one of the convenience -functions such as Above, RightOf, SameAs. - - diff --git a/docs/latex/wx/image.tex b/docs/latex/wx/image.tex deleted file mode 100644 index a68a97cfea..0000000000 --- a/docs/latex/wx/image.tex +++ /dev/null @@ -1,715 +0,0 @@ -\section{\class{wxImage}}\label{wximage} - -This class encapsulates a platform-independent image. An image can be created -from data, or using the constructor taking a wxBitmap object. An image -can be loaded from a file in a variety of formats, and is extensible to new formats -via image format handlers. Functions are available to set and get image bits, so -it can be used for basic image manipulation. - -A wxImage cannot (currently) be drawn directly to a wxDC. Instead, a platform-specific -wxBitmap object must be created from it, and that bitmap drawn on the wxDC, using -wxDC::DrawBitmap. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxImage::wxImage}\label{wximageconstr} - -\func{}{wxImage}{\void} - -Default constructor. - -\func{}{wxImage}{\param{const wxImage\& }{image}} - -Copy constructor. - -\func{}{wxImage}{\param{const wxBitmap\&}{ bitmap}} - -Constructs an image from a platform-dependent bitmap. This preserves -mask information so that bitmaps and images can be converted back -and forth without loss in that respect. - -\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}} - -Creates an image with the given width and height. - -\func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxBITMAP\_TYPE\_PNG}} - -\func{}{wxImage}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}} - -Loads an image from a file. - -\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{long}{ type = wxBITMAP\_TYPE\_PNG}} - -\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{const wxString\&}{ mimetype}} - -Loads an image from an input stream. - -\wxheading{Parameters} - -\docparam{width}{Specifies the width of the image.} - -\docparam{height}{Specifies the height of the image.} - -\docparam{name}{This refers to an image filename. Its meaning is determined by the {\it type} parameter.} - -\docparam{stream}{This refers to an input stream. Its meaning is determined by the {\it type} parameter. It is equal to loading from file except that you provide opened stream (file, HTTP or any other custom class).} - -\docparam{type}{May be one of the following: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP}}}{Load a Windows bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_PNG}}}{Load a PNG bitmap file.} -\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_JPEG}}}{Load a JPEG bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration. -If all possible wxWindows settings are used, the loading a BMP (Windows bitmap) file, -a PNG (portable network graphics) file and a JPEG file is supported on all platforms that -implement wxImage.} - -\docparam{mimetype}{MIME type string (for example 'image/jpeg')} - -Note : you must call wxImage::AddHandler(new wxJPEGHandler) during application -initialization in order to work with JPEGs. - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{wxImage(name, flag)}}{Loads an image from a file} -\twocolitem{\bf{wxNullImage()}}{Create a null image (has no size or -image data)} -\twocolitem{\bf{wxEmptyImage(width, height)}}{Creates an empty image -of the given size} -\twocolitem{\bf{wxImageFromMime(name, mimetype}}{Creates an image from -the given file of the given mimetype} -\twocolitem{\bf{wxImageFromBitmap(bitmap)}}{Creates an image from a -platform-dependent bitmap} -\end{twocollist}} -} - -\membersection{wxImage::\destruct{wxImage}} - -\func{}{\destruct{wxImage}}{\void} - -Destructor. - -\membersection{wxImage::AddHandler}\label{wximageaddhandler} - -\func{static void}{AddHandler}{\param{wxImageHandler*}{ handler}} - -Adds a handler to the end of the static list of format handlers. - -\docparam{handler}{A new image format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - -\pythonnote{In wxPython this static method is named \tt{wxImage_AddHandler}.} -\membersection{wxImage::CleanUpHandlers} - -\func{static void}{CleanUpHandlers}{\void} - -Deletes all image handlers. - -This function is called by wxWindows on exit. - -\membersection{wxImage::ConvertToBitmap}\label{wximageconverttobitmap} - -\constfunc{wxBitmap}{ConvertToBitmap}{\void} - -Converts the image to a platform-specific bitmap object. This has to be done -to actually display an image as you cannot draw an image directly on a window. -The resulting bitmap will use the colour depth of the current system which entails -that a (crude) colour reduction has to take place. When in 8-bit mode, this -routine will use a color cube created on program start-up to look up colors. -Still, the image quality won't be perfect for photo images. - -\membersection{wxImage::Create}\label{wximagecreate} - -\func{bool}{Create}{\param{int}{ width}, \param{int}{ height}} - -Creates a fresh image. - -\wxheading{Parameters} - -\docparam{width}{The width of the image in pixels.} - -\docparam{height}{The height of the image in pixels.} - -\wxheading{Return value} - -TRUE if the call succeeded, FALSE otherwise. - -\membersection{wxImage::Destroy}\label{wximagedestroy} - -\func{bool}{Destroy}{\void} - -Destroys the image data. - -\membersection{wxImage::FindHandler} - -\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name. - -\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ imageType}} - -Finds the handler associated with the given extension and type. - -\func{static wxImageHandler*}{FindHandler}{\param{long }{imageType}} - -Finds the handler associated with the given image type. - -\func{static wxImageHandler*}{FindHandlerMime}{\param{const wxString\& }{mimetype}} - -Finds the handler associated with the given MIME type. - -\docparam{name}{The handler name.} - -\docparam{extension}{The file extension, such as ``bmp".} - -\docparam{imageType}{The image type, such as wxBITMAP\_TYPE\_BMP.} - -\docparam{mimetype}{MIME type.} - -\wxheading{Return value} - -A pointer to the handler if found, NULL otherwise. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - -\membersection{wxImage::GetBlue}\label{wximagegetblue} - -\constfunc{unsigned char}{GetBlue}{\param{int}{ x}, \param{int}{ y}} - -Returns the blue intensity at the given coordinate. - -\membersection{wxImage::GetData}\label{wximagegetdata} - -\constfunc{unsigned char*}{GetData}{\void} - -Returns the image data as an array. This is most often used when doing -direct image manipulation. The return value points to an array of -chararcters in RGBGBRGB... format. - -\membersection{wxImage::GetGreen}\label{wximagegetgreen} - -\constfunc{unsigned char}{GetGreen}{\param{int}{ x}, \param{int}{ y}} - -Returns the green intensity at the given coordinate. - -\membersection{wxImage::GetRed}\label{wximagegetred} - -\constfunc{unsigned char}{GetRed}{\param{int}{ x}, \param{int}{ y}} - -Returns the red intensity at the given coordinate. - -\membersection{wxImage::GetHandlers} - -\func{static wxList\&}{GetHandlers}{\void} - -Returns the static list of image format handlers. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - -\membersection{wxImage::GetHeight}\label{wximagegetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height of the image in pixels. - -\membersection{wxImage::GetMaskBlue}\label{wximagegetmaskblue} - -\constfunc{unsigned char}{GetMaskBlue}{\void} - -Gets the blue value of the mask colour. - -\membersection{wxImage::GetMaskGreen}\label{wximagegetmaskgreen} - -\constfunc{unsigned char}{GetMaskGreen}{\void} - -Gets the green value of the mask colour. - -\membersection{wxImage::GetMaskRed}\label{wximagegetmaskred} - -\constfunc{unsigned char}{GetMaskRed}{\void} - -Gets the red value of the mask colour. - -\membersection{wxImage::GetWidth}\label{wximagegetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width of the image in pixels. - -\wxheading{See also} - -\helpref{wxImage::GetHeight}{wximagegetheight} - -\membersection{wxImage::HasMask}\label{wximagehasmask} - -\constfunc{bool}{HasMask}{\void} - -Returns TRUE if there is a mask active, FALSE otherwise. - -\membersection{wxImage::InitStandardHandlers} - -\func{static void}{InitStandardHandlers}{\void} - -Adds the standard image format handlers, which, depending on wxWindows -configuration, can be handlers for Windows BMP (loading), PNG -(loading and saving) and JPEG (loading and saving) file formats. - -This function is called by wxWindows on startup. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - -\membersection{wxImage::InsertHandler} - -\func{static void}{InsertHandler}{\param{wxImageHandler*}{ handler}} - -Adds a handler at the start of the static list of format handlers. - -\docparam{handler}{A new image format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - -\membersection{wxImage::LoadFile}\label{wximageloadfile} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}} - -Loads an image from a file. - -\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}} - -\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ mimetype}} - -Loads an image from an input stream. - -\wxheading{Parameters} - -\docparam{name}{A filename. -The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{stream}{An input stream. -The meaning of {\it stream} data is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration.} - -\docparam{mimetype}{MIME type string (for example 'image/jpeg')} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxImage::SaveFile}{wximagesavefile} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{LoadFile(filename, type)}}{Loads an image of the given -type from a file} -\twocolitem{\bf{LoadMimeFile(filename, mimetype)}}{Loads an image of the given -mimetype from a file} -\end{twocollist}} -} - - -\membersection{wxImage::Ok}\label{wximageok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if image data is present. - -\membersection{wxImage::RemoveHandler} - -\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name, and removes it. The handler -is not deleted. - -\docparam{name}{The handler name.} - -\wxheading{Return value} - -TRUE if the handler was found and removed, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - -\membersection{wxImage::SaveFile}\label{wximagesavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}} - -\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}} - -Saves a image in the named file. - -\func{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{int}{ type}} - -\func{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{const wxString\&}{ mimetype}} - -Saves a image in the given stream. - -\wxheading{Parameters} - -\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{stream}{An output stream. The meaning of {\it stream} is determined by the {\it type} parameter.} - -\docparam{type}{Currently two types can be used: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Save a PNG image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Save a JPEG image file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWindows configuration -as well as user-added handlers.} - -\docparam{mimetype}{MIME type.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{Remarks} - -Depending on how wxWindows has been configured, not all formats may be available. - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SaveFile(filename, type)}}{Saves the image using the given -type to the named file} -\twocolitem{\bf{SaveMimeFile(filename, mimetype)}}{Saves the image using the given -mimetype to the named file} -\end{twocollist}} -} - -\membersection{wxImage::Rescale}\label{wximagerescale} - -\func{wxImage}{Rescale}{\param{int}{ width}, \param{int}{ height}} - -Changes the size of the image in-place: after a call to this function, thei -mage will have the given width and height. - -\wxheading{See also} - -\helpref{Scale}{wximagescale} - -\membersection{wxImage::Scale}\label{wximagescale} - -\constfunc{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}} - -Returns a scaled version of the image. This is also useful for -scaling bitmaps in general as the only other way to scale bitmaps -is to blit a wxMemoryDC into another wxMemoryDC. - -NB: although Windows can do such scaling itself but in the GTK port, scaling -bitmaps is done using this routine internally. - -Example: - -\begin{verbatim} - // get the bitmap from somewhere - wxBitmap bmp = ...; - - // rescale it to have size of 32*32 - if ( bmp.GetWidth() != 32 || bmp.GetHeight() != 32 ) - { - wxImage image(bmp); - bmp = image.Scale(32, 32).ConvertToBitmap(); - - // another possibility: - image.Rescale(32, 32); - bmp = image; - } - -\end{verbatim} - -\wxheading{See also} - -\helpref{Rescale}{wximagerescale} - -\membersection{wxImage::GetSubImage}\label{wximagegetsubimage} - -\constfunc{wxImage}{GetSubImage}{\param{const wxRect&}{rect}} - -Returns a sub image of the current one as long as the rect belongs entirely to -the image. - -\membersection{wxImage::SetData}\label{wximagesetdata} - -\func{void}{SetData}{\param{unsigned char*}{data}} - -Sets the image data without performing checks. The data given must have -the size (width*height*3) or results will be unexpected. Don't use this -method if you aren't sure you know what you are doing. - -\membersection{wxImage::SetMask}\label{wximagesetmask} - -\func{void}{SetMask}{\param{bool}{ hasMask = TRUE}} - -Specifies whether there is a mask or not. The area of the mask is determined by the current mask colour. - -\membersection{wxImage::SetMaskColour}\label{wximagesetmaskcolour} - -\func{void}{SetMaskColour}{\param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}} - -Sets the mask colour for this image (and tells the image to use the mask). - -\membersection{wxImage::SetRGB}\label{wximagesetrgb} - -\func{void}{SetRGB}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}} - -Sets the pixel at the given coordinate. This routine performs bounds-checks -for the coordinate so it can be considered a safe way to manipulate the -data, but in some cases this might be too slow so that the data will have to -be set directly. In that case you have to get that data by calling GetData(). - -\membersection{wxImage::operator $=$} - -\func{wxImage\& }{operator $=$}{\param{const wxImage\& }{image}} - -Assignment operator. This operator does not copy any data, but instead -passes a pointer to the data in {\it image} and increments a reference -counter. It is a fast operation. - -\wxheading{Parameters} - -\docparam{image}{Image to assign.} - -\wxheading{Return value} - -Returns 'this' object. - -\membersection{wxImage::operator $==$} - -\func{bool}{operator $==$}{\param{const wxImage\& }{image}} - -Equality operator. This operator tests whether the internal data pointers are -equal (a fast test). - -\wxheading{Parameters} - -\docparam{image}{Image to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the images were effectively equal, FALSE otherwise. - -\membersection{wxImage::operator $!=$} - -\func{bool}{operator $!=$}{\param{const wxImage\& }{image}} - -Inequality operator. This operator tests whether the internal data pointers are -unequal (a fast test). - -\wxheading{Parameters} - -\docparam{image}{Image to compare with 'this'} - -\wxheading{Return value} - -Returns TRUE if the images were unequal, FALSE otherwise. - -\section{\class{wxImageHandler}}\label{wximagehandler} - -This is the base class for implementing image file loading/saving, and image creation from data. -It is used within wxImage and is not normally seen by the application. - -If you wish to extend the capabilities of wxImage, derive a class from wxImageHandler -and add the handler using \helpref{wxImage::AddHandler}{wximageaddhandler} in your -application initialisation. - -\wxheading{Note (Legal Issue)} - -This software is based in part on the work of the Independent JPEG Group. - -(Applies when wxWindows is linked with JPEG support. wxJPEGHandler uses libjpeg -created by IJG.) - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxImage}{wximage} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxImageHandler::wxImageHandler}\label{wximagehandlerconstr} - -\func{}{wxImageHandler}{\void} - -Default constructor. In your own default constructor, initialise the members -m\_name, m\_extension and m\_type. - -\membersection{wxImageHandler::\destruct{wxImageHandler}} - -\func{}{\destruct{wxImageHandler}}{\void} - -Destroys the wxImageHandler object. - -\membersection{wxImageHandler::GetName} - -\constfunc{wxString}{GetName}{\void} - -Gets the name of this handler. - -\membersection{wxImageHandler::GetExtension} - -\constfunc{wxString}{GetExtension}{\void} - -Gets the file extension associated with this handler. - -\membersection{wxImageHandler::GetType} - -\constfunc{long}{GetType}{\void} - -Gets the image type associated with this handler. - -\membersection{wxImageHandler::GetMimeType} - -\constfunc{wxString}{GetMimeType}{\void} - -Gets the MIME type associated with this handler. - -\membersection{wxImageHandler::LoadFile}\label{wximagehandlerloadfile} - -\func{bool}{LoadFile}{\param{wxImage* }{image}, \param{wxInputStream\&}{ stream}} - -Loads a image from a stream, putting the resulting data into {\it image}. - -\wxheading{Parameters} - -\docparam{image}{The image object which is to be affected by this operation.} - -\docparam{stream}{Opened input stream. -The meaning of {\it stream} is determined by the {\it type} parameter.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile}\\ -\helpref{wxImage::SaveFile}{wximagesavefile}\\ -\helpref{wxImageHandler::SaveFile}{wximagehandlersavefile} - -\membersection{wxImageHandler::SaveFile}\label{wximagehandlersavefile} - -\func{bool}{SaveFile}{\param{wxImage* }{image}, \param{wxOutputStream\& }{stream}} - -Saves a image in the output stream. - -\wxheading{Parameters} - -\docparam{image}{The image object which is to be affected by this operation.} - -\docparam{stream}{A stream. The meaning of {\it stream} is determined by the {\it type} parameter.} - -\wxheading{Return value} - -TRUE if the operation succeeded, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile}\\ -\helpref{wxImage::SaveFile}{wximagesavefile}\\ -\helpref{wxImageHandler::LoadFile}{wximagehandlerloadfile} - -\membersection{wxImageHandler::SetName} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the handler name. - -\wxheading{Parameters} - -\docparam{name}{Handler name.} - -\membersection{wxImageHandler::SetExtension} - -\func{void}{SetExtension}{\param{const wxString\& }{extension}} - -Sets the handler extension. - -\wxheading{Parameters} - -\docparam{extension}{Handler extension.} - -\membersection{wxImageHandler::SetType} - -\func{void}{SetType}{\param{long }{type}} - -Sets the handler type. - -\wxheading{Parameters} - -\docparam{name}{Handler type.} - - -\membersection{wxImageHandler::SetMimeType} - -\func{void}{SetMimeType}{\param{const wxString\& }{mimetype}} - -Sets the handler MIME type. - -\wxheading{Parameters} - -\docparam{mimename}{Handler MIME type.} - diff --git a/docs/latex/wx/imaglist.tex b/docs/latex/wx/imaglist.tex deleted file mode 100644 index 159e866cc4..0000000000 --- a/docs/latex/wx/imaglist.tex +++ /dev/null @@ -1,174 +0,0 @@ -\section{\class{wxImageList}}\label{wximagelist} - -A wxImageList contains a list of images, which are stored in -an unspecified form. Images can have masks for transparent -drawing, and can be made from a variety of sources including bitmaps -and icons. - -wxImageList is used principally in conjunction with \helpref{wxTreeCtrl}{wxtreectrl} and -\rtfsp\helpref{wxListCtrl}{wxlistctrl} classes. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxListCtrl}{wxlistctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxImageList::wxImageList}\label{wximagelistconstr} - -\func{}{wxImageList}{\void} - -Default constructor. - -\func{}{wxImageList}{\param{int }{width}, \param{int }{height}, \param{const bool }{mask = TRUE},\rtfsp -\param{int }{initialCount = 1}} - -Constructor specifying the image size, whether image masks should be created, and the initial size of the list. - -\wxheading{Parameters} - -\docparam{width}{Width of the images in the list.} - -\docparam{height}{Height of the images in the list.} - -\docparam{mask}{TRUE if masks should be created for all images.} - -\docparam{initialCount}{The initial size of the list.} - -\wxheading{See also} - -\helpref{wxImageList::Create}{wximagelistcreate} - -\membersection{wxImageList::Add}\label{wximagelistadd} - -\func{int}{Add}{\param{const wxBitmap\&}{ bitmap}, \param{const wxBitmap\&}{ mask = wxNullBitmap}} - -Adds a new image using a bitmap and optional mask bitmap. - -\func{int}{Add}{\param{const wxBitmap\&}{ bitmap}, \param{const wxColour\&}{ maskColour}} - -Adds a new image using a bitmap and mask colour. - -\func{int}{Add}{\param{const wxIcon\&}{ icon}} - -Adds a new image using an icon. - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap representing the opaque areas of the image.} - -\docparam{mask}{Monochrome mask bitmap, representing the transparent areas of the image.} - -\docparam{maskColour}{Colour indicating which parts of the image are transparent.} - -\docparam{icon}{Icon to use as the image.} - -\wxheading{Return value} - -The new zero-based image index. - -\wxheading{Remarks} - -The original bitmap or icon is not affected by the {\bf Add} operation, and can be deleted afterwards. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{Add(bitmap, mask=wxNullBitmap)}}{} -\twocolitem{\bf{AddWithColourMask(bitmap, colour)}}{} -\twocolitem{\bf{AddIcon(icon)}}{} -\end{twocollist}} -} -\membersection{wxImageList::Create}\label{wximagelistcreate} - -\func{bool}{Create}{\param{int }{width}, \param{int }{height}, \param{const bool }{mask = TRUE},\rtfsp -\param{int }{initialCount = 1}} - -Initializes the list. See \helpref{wxImageList::wxImageList}{wximagelistconstr} for details. - -\membersection{wxImageList::Draw}\label{wximagelistdraw} - -\func{bool}{Draw}{\param{int}{ index}, \param{wxDC\&}{ dc}, \param{int }{x},\rtfsp -\param{int }{x}, \param{int }{flags = wxIMAGELIST\_DRAW\_NORMAL},\rtfsp -\param{const bool }{solidBackground = FALSE}} - -Draws a specified image onto a device context. - -\wxheading{Parameters} - -\docparam{index}{Image index, starting from zero.} - -\docparam{dc}{Device context to draw on.} - -\docparam{x}{X position on the device context.} - -\docparam{y}{Y position on the device context.} - -\docparam{flags}{How to draw the image. A bitlist of a selection of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxIMAGELIST\_DRAW\_NORMAL}}{Draw the image normally.} -\twocolitem{{\bf wxIMAGELIST\_DRAW\_TRANSPARENT}}{Draw the image with transparency.} -\twocolitem{{\bf wxIMAGELIST\_DRAW\_SELECTED}}{Draw the image in selected state.} -\twocolitem{{\bf wxIMAGELIST\_DRAW\_FOCUSED}}{Draw the image in a focussed state.} -\end{twocollist} -} - -\docparam{solidBackground}{For optimisation - drawing can be faster if the function is told -that the background is solid.} - -\membersection{wxImageList::GetImageCount}\label{wximagelistgetimagecount} - -\constfunc{int}{GetImageCount}{\void} - -Returns the number of images in the list. - -\membersection{wxImageList::Remove}\label{wximagelistremove} - -\func{bool}{Remove}{\param{int}{ index}} - -Removes the image at the given position. - -\membersection{wxImageList::RemoveAll}\label{wximagelistremoveall} - -\func{bool}{RemoveAll}{\void} - -Removes all the images in the list. - -\membersection{wxImageList::Replace}\label{wximagelistreplace} - -\func{bool}{Replace}{\param{int}{ index}, \param{const wxBitmap\&}{ bitmap}, \param{const wxBitmap\&}{ mask = wxNullBitmap}} - -Replaces the existing image with the new image. - -\func{bool}{Replace}{\param{int}{ index}, \param{const wxIcon\&}{ icon}} - -Replaces the existing image with the new image. - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap representing the opaque areas of the image.} - -\docparam{mask}{Monochrome mask bitmap, representing the transparent areas of the image.} - -\docparam{icon}{Icon to use as the image.} - -\wxheading{Return value} - -TRUE if the replacement was successful, FALSE otherwise. - -\wxheading{Remarks} - -The original bitmap or icon is not affected by the {\bf Replace} operation, and can be deleted afterwards. - -\pythonnote{The second form is called \tt{ReplaceIcon} in wxPython.} - - diff --git a/docs/latex/wx/indent.bmp b/docs/latex/wx/indent.bmp deleted file mode 100644 index ddac2334f3..0000000000 Binary files a/docs/latex/wx/indent.bmp and /dev/null differ diff --git a/docs/latex/wx/indent.gif b/docs/latex/wx/indent.gif deleted file mode 100644 index 9a804d7f8a..0000000000 Binary files a/docs/latex/wx/indent.gif and /dev/null differ diff --git a/docs/latex/wx/indlgevt.tex b/docs/latex/wx/indlgevt.tex deleted file mode 100644 index 259a55b49d..0000000000 --- a/docs/latex/wx/indlgevt.tex +++ /dev/null @@ -1,38 +0,0 @@ -\section{\class{wxInitDialogEvent}}\label{wxinitdialogevent} - -A wxInitDialogEvent is sent as a dialog or panel is being initialised. -Handlers for this event can transfer data to the window. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process an activate event, use these event handler macros to direct input to a member -function that takes a wxInitDialogEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_INIT\_DIALOG(func)}}{Process a wxEVT\_INIT\_DIALOG event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnInitDialog}{wxwindowoninitdialog},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxInitDialogEvent::wxInitDialogEvent} - -\func{}{wxInitDialogEvent}{\param{int }{id = 0}} - -Constructor. - - diff --git a/docs/latex/wx/inputstr.tex b/docs/latex/wx/inputstr.tex deleted file mode 100644 index 9edd5d824a..0000000000 --- a/docs/latex/wx/inputstr.tex +++ /dev/null @@ -1,102 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxInputStream}}\label{wxinputstream} - -\wxheading{Derived from} - -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxInputStream::wxInputStream} - -\func{}{wxInputStream}{\void} - -Creates a dummy input stream. - -\membersection{wxInputStream::\destruct{wxInputStream}} - -\func{}{\destruct{wxInputStream}}{\void} - -Destructor. - -\membersection{wxInputStream::GetC} - -\func{char}{GetC}{\void} - -Returns the first character in the input queue and removes it. - -\membersection{wxInputStream::LastRead}\label{wxinputstreamlastread} - -\constfunc{size\_t}{LastRead}{\void} - -Returns the last number of bytes read. - -\membersection{wxInputStream::Peek} - -\func{char}{Peek}{\void} - -Returns the first character in the input queue without removing it. - -\membersection{wxInputStream::Read} - -\func{wxInputStream\&}{Read}{\param{void *}{buffer}, \param{size\_t}{ size}} - -Reads the specified amount of bytes and stores the data in \it{buffer}. - -\wxheading{Warning} - -The buffer absolutely needs to have at least the specified size. - -\wxheading{Return value} - -This function returns a reference on the current object, so the user can test -any states of the stream right away. - -\func{wxInputStream\&}{Read}{\param{wxOutputStream\&}{ stream\_out}} - -Reads data from the input queue and stores it in the specified output stream. -The data is read until an error is raised by one of the two streams. - -\wxheading{Return value} - -This function returns a reference on the current object, so the user can test -any states of the stream right away. - -\membersection{wxInputStream::SeekI} - -\func{off\_t}{SeekI}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode = wxFromStart}} - -Changes the stream current position. - -\membersection{wxInputStream::TellI} - -\constfunc{off\_t}{TellI}{\void} - -Returns the current stream position. - -\membersection{wxInputStream::Ungetch}\label{wxinputstream_ungetch} - -\func{size\_t}{Ungetch}{\param{const char*}{ buffer}, \param{size\_t}{ size}} - -This function is only useful in \it{read} mode. It is the manager of the "Write-Back" -buffer. This buffer acts like a temporary buffer where datas which has to be -read during the next read IO call are put. This is useful when you get a big -block of data which you didn't want to read: you can replace them at the top -of the input queue by this way. - -\wxheading{Return value} - -Returns the amount of bytes saved in the Write-Back buffer. - -\func{bool}{Ungetch}{\param{char }{c}} - -This function acts like the previous one except that it takes only one -character: it is sometimes shorter to use than the generic function. - diff --git a/docs/latex/wx/ipvaddr.tex b/docs/latex/wx/ipvaddr.tex deleted file mode 100644 index 07ae2e0a74..0000000000 --- a/docs/latex/wx/ipvaddr.tex +++ /dev/null @@ -1,95 +0,0 @@ -% ---------------------------------------------------------------------------- -% CLASS: wxIPV4address -% ---------------------------------------------------------------------------- -\section{\class{wxIPV4address}}\label{wxipv4address} - -\wxheading{Derived from} - -\helpref{wxSockAddress}{wxsockaddress} - -\wxheading{Include files} - - - -% ---------------------------------------------------------------------------- -% MEMBERS -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - -% -% Hostname -% - -\membersection{wxIPV4address::Hostname} - -\func{bool}{Hostname}{\param{const wxString\&}{ hostname}} - -Use the specified {\it hostname} for the address. - -\wxheading{Return value} - -Returns FALSE if something bad happens (invalid hostname, invalid IP address). - -% -% Hostname -% - -\membersection{wxIPV4address::Hostname} - -\func{wxString}{Hostname}{\void} - -Returns the hostname which matches the IP address. - -% -% Service -% - -\membersection{wxIPV4address::Service} - -\func{bool}{Service}{\param{const wxString\&}{ service}} - -Use the specified {\it service} string for the address. - -\wxheading{Return value} - -Returns FALSE if something bad happens (invalid service). - -% -% Service -% - -\membersection{wxIPV4address::Service} - -\func{bool}{Service}{\param{unsigned short}{ service}} - -Use the specified {\it service} for the address. - -\wxheading{Return value} - -Returns FALSE if something bad happens (invalid service). - -% -% Service -% - -\membersection{wxIPV4address::Service} - -\func{unsigned short}{Service}{\void} - -Returns the current service. - -% -% LocalHost -% - -\membersection{wxIPV4address::LocalHost} - -\func{bool}{LocalHost}{\void} - -Initialize peer host to local host. - -\wxheading{Return value} - -Returns FALSE if something bad happens. - diff --git a/docs/latex/wx/joyevent.tex b/docs/latex/wx/joyevent.tex deleted file mode 100644 index 8f2e8b3ced..0000000000 --- a/docs/latex/wx/joyevent.tex +++ /dev/null @@ -1,122 +0,0 @@ -\section{\class{wxJoystickEvent}}\label{wxjoystickevent} - -This event class contains information about mouse events, particularly -events received by windows. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a mouse event, use these event handler macros to direct input to member -functions that take a wxJoystickEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_JOY\_BUTTON\_DOWN(func)}}{Process a wxEVT\_JOY\_BUTTON\_DOWN event.} -\twocolitem{{\bf EVT\_JOY\_BUTTON\_UP(func)}}{Process a wxEVT\_JOY\_BUTTON\_UP event.} -\twocolitem{{\bf EVT\_JOY\_MOVE(func)}}{Process a wxEVT\_JOY\_MOVE event.} -\twocolitem{{\bf EVT\_JOY\_ZMOVE(func)}}{Process a wxEVT\_JOY\_ZMOVE event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxJoystick}{wxjoystick} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxJoystickEvent::wxJoystickEvent} - -\func{}{wxJoystickEvent}{\param{WXTYPE}{ eventType = 0}, \param{int}{ state = 0}, - \param{int}{ joystick = wxJOYSTICK1}, \param{int }{change = 0}} - -Constructor. - -\membersection{wxJoystickEvent::ButtonDown}\label{wxjoystickeventbuttondown} - -\constfunc{bool}{ButtonDown}{\param{int}{ button = wxJOY\_BUTTON\_ANY}} - -Returns TRUE if the event was a down event from the specified button (or any button). - -\wxheading{Parameters} - -\docparam{button}{Can be wxJOY\_BUTTONn where n is 1, 2, 3 or 4; or wxJOY\_BUTTON\_ANY to -indicate any button down event.} - -\membersection{wxJoystickEvent::ButtonIsDown}\label{wxjoystickeventbuttonisdown} - -\constfunc{bool}{ButtonIsDown}{\param{int}{ button = wxJOY\_BUTTON\_ANY}} - -Returns TRUE if the specified button (or any button) was in a down state. - -\wxheading{Parameters} - -\docparam{button}{Can be wxJOY\_BUTTONn where n is 1, 2, 3 or 4; or wxJOY\_BUTTON\_ANY to -indicate any button down event.} - -\membersection{wxJoystickEvent::ButtonUp}\label{wxjoystickeventbuttonup} - -\constfunc{bool}{ButtonUp}{\param{int}{ button = wxJOY\_BUTTON\_ANY}} - -Returns TRUE if the event was an up event from the specified button (or any button). - -\wxheading{Parameters} - -\docparam{button}{Can be wxJOY\_BUTTONn where n is 1, 2, 3 or 4; or wxJOY\_BUTTON\_ANY to -indicate any button down event.} - -\membersection{wxJoystickEvent::GetButtonChange}\label{wxjoystickeventgetbuttonchange} - -\constfunc{int}{GetButtonChange}{\void} - -Returns the identifier of the button changing state. This is a wxJOY\_BUTTONn identifier, where -n is one of 1, 2, 3, 4. - -\membersection{wxJoystickEvent::GetButtonState}\label{wxjoystickeventgetbuttonstate} - -\constfunc{int}{GetButtonState}{\void} - -Returns the down state of the buttons. This is a bitlist of wxJOY\_BUTTONn identifiers, where -n is one of 1, 2, 3, 4. - -\membersection{wxJoystickEvent::GetJoystick}\label{wxjoystickeventgetjoystick} - -\constfunc{int}{GetJoystick}{\void} - -Returns the identifier of the joystick generating the event - one of wxJOYSTICK1 and wxJOYSTICK2. - -\membersection{wxJoystickEvent::GetPosition}\label{wxjoystickeventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the x, y position of the joystick event. - -\membersection{wxJoystickEvent::GetZPosition}\label{wxjoystickeventgetzposition} - -\constfunc{int}{GetZPosition}{\void} - -Returns the z position of the joystick event. - -\membersection{wxJoystickEvent::IsButton}\label{wxjoystickeventisbutton} - -\constfunc{bool}{IsButton}{\void} - -Returns TRUE if this was a button up or down event ({\it not} 'is any button down?'). - -\membersection{wxJoystickEvent::IsMove}\label{wxjoystickeventismove} - -\constfunc{bool}{IsMove}{\void} - -Returns TRUE if this was an x, y move event. - -\membersection{wxJoystickEvent::IsZMove}\label{wxjoystickeventiszmove} - -\constfunc{bool}{IsZMove}{\void} - -Returns TRUE if this was a z move event. - diff --git a/docs/latex/wx/joystick.tex b/docs/latex/wx/joystick.tex deleted file mode 100644 index f9c03f49fb..0000000000 --- a/docs/latex/wx/joystick.tex +++ /dev/null @@ -1,298 +0,0 @@ -\section{\class{wxJoystick}}\label{wxjoystick} - -wxJoystick allows an application to control one or more joysticks. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxJoystickEvent}{wxjoystickevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxJoystick::wxJoystick}\label{wxjoystickconstr} - -\func{}{wxJoystick}{\param{int}{ joystick = wxJOYSTICK1}} - -Constructor. {\it joystick} may be one of wxJOYSTICK1, wxJOYSTICK2, indicating the joystick -controller of interest. - -\membersection{wxJoystick::\destruct{wxJoystick}} - -\func{}{\destruct{wxJoystick}}{\void} - -Destroys the wxJoystick object. - -\membersection{wxJoystick::GetButtonState}\label{wxjoystickgetbuttonstate} - -\constfunc{int}{GetButtonState}{\void} - -Returns the state of the joystick buttons. A bitlist of wxJOY\_BUTTONn identifiers, -where n is 1, 2, 3 or 4. - -\membersection{wxJoystick::GetManufacturerId}\label{wxjoystickgetmanufacturerid} - -\constfunc{int}{GetManufacturerId}{\void} - -Returns the manufacturer id. - -\membersection{wxJoystick::GetMovementThreshold}\label{wxjoystickgetmovementthreshold} - -\constfunc{int}{GetMovementThreshold}{\void} - -Returns the movement threshold, the number of steps outside which the joystick is deemed to have -moved. - -\membersection{wxJoystick::GetNumberAxes}\label{wxjoystickgetnumberaxes} - -\constfunc{int}{GetNumberAxes}{\void} - -Returns the number of axes for this joystick. - -\membersection{wxJoystick::GetNumberButtons}\label{wxjoystickgetnumberbuttons} - -\constfunc{int}{GetNumberButtons}{\void} - -Returns the number of buttons for this joystick. - -\membersection{wxJoystick::GetNumberJoysticks}\label{wxjoystickgetnumberjoysticks} - -\constfunc{int}{GetNumberJoysticks}{\void} - -Returns the number of joysticks currently attached to the computer. - -\membersection{wxJoystick::GetPollingMax}\label{wxjoystickgetpollingmax} - -\constfunc{int}{GetPollingMax}{\void} - -Returns the maximum polling frequency. - -\membersection{wxJoystick::GetPollingMin}\label{wxjoystickgetpollingmin} - -\constfunc{int}{GetPollingMin}{\void} - -Returns the minimum polling frequency. - -\membersection{wxJoystick::GetProductId}\label{wxjoystickgetproductid} - -\constfunc{int}{GetProductId}{\void} - -Returns the product id for the joystick. - -\membersection{wxJoystick::GetProductName}\label{wxjoystickgetproductname} - -\constfunc{wxString}{GetProductName}{\void} - -Returns the product name for the joystick. - -\membersection{wxJoystick::GetPosition}\label{wxjoystickgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the x, y position of the joystick. - -\membersection{wxJoystick::GetPOVPosition}\label{wxjoystickgetpovposition} - -\constfunc{int}{GetPOVPosition}{\void} - -Returns the point-of-view position, expressed in discrete units. - -\membersection{wxJoystick::GetPOVCTSPosition}\label{wxjoystickgetpovctsposition} - -\constfunc{int}{GetPOVCTSPosition}{\void} - -Returns the point-of-view position, expressed in continuous, one-hundredth of a degree units. - -\membersection{wxJoystick::GetRudderMax}\label{wxjoystickgetruddermax} - -\constfunc{int}{GetRudderMax}{\void} - -Returns the maximum rudder position. - -\membersection{wxJoystick::GetRudderMin}\label{wxjoystickgetruddermin} - -\constfunc{int}{GetRudderMin}{\void} - -Returns the minimum rudder position. - -\membersection{wxJoystick::GetRudderPosition}\label{wxjoystickgetrudderposition} - -\constfunc{int}{GetRudderPosition}{\void} - -Returns the rudder position. - -\membersection{wxJoystick::GetUMax}\label{wxjoystickgetumax} - -\constfunc{int}{GetUMax}{\void} - -Returns the maximum U position. - -\membersection{wxJoystick::GetUMin}\label{wxjoystickgetumin} - -\constfunc{int}{GetUMin}{\void} - -Returns the minimum U position. - -\membersection{wxJoystick::GetUPosition}\label{wxjoystickgetuposition} - -\constfunc{int}{GetUPosition}{\void} - -Gets the position of the fifth axis of the joystick, if it exists. - -\membersection{wxJoystick::GetVMax}\label{wxjoystickgetvmax} - -\constfunc{int}{GetVMax}{\void} - -Returns the maximum V position. - -\membersection{wxJoystick::GetVMin}\label{wxjoystickgetvmin} - -\constfunc{int}{GetVMin}{\void} - -Returns the minimum V position. - -\membersection{wxJoystick::GetVPosition}\label{wxjoystickgetvposition} - -\constfunc{int}{GetVPosition}{\void} - -Gets the position of the sixth axis of the joystick, if it exists. - -\membersection{wxJoystick::GetXMax}\label{wxjoystickgetxmax} - -\constfunc{int}{GetXMax}{\void} - -Returns the maximum x position. - -\membersection{wxJoystick::GetXMin}\label{wxjoystickgetxmin} - -\constfunc{int}{GetXMin}{\void} - -Returns the minimum x position. - -\membersection{wxJoystick::GetYMax}\label{wxjoystickgetymax} - -\constfunc{int}{GetYMax}{\void} - -Returns the maximum y position. - -\membersection{wxJoystick::GetYMin}\label{wxjoystickgetymin} - -\constfunc{int}{GetYMin}{\void} - -Returns the minimum y position. - -\membersection{wxJoystick::GetZMax}\label{wxjoystickgetzmax} - -\constfunc{int}{GetZMax}{\void} - -Returns the maximum z position. - -\membersection{wxJoystick::GetZMin}\label{wxjoystickgetzmin} - -\constfunc{int}{GetXMin}{\void} - -Returns the minimum z position. - -\membersection{wxJoystick::GetZPosition}\label{wxjoystickgetzposition} - -\constfunc{int}{GetZPosition}{\void} - -Returns the z position of the joystick. - -\membersection{wxJoystick::HasPOV}\label{wxjoystickhaspov} - -\constfunc{bool}{HasPOV}{\void} - -Returns TRUE if the joystick has a point of view control. - -\membersection{wxJoystick::HasPOV4Dir}\label{wxjoystickhaspovfdir} - -\constfunc{bool}{HasPOV4Dir}{\void} - -Returns TRUE if the joystick point-of-view supports discrete values (centered, forward, backward, left, and right). - -\membersection{wxJoystick::HasPOVCTS}\label{wxjoystickhaspovcts} - -\constfunc{bool}{HasPOVCTS}{\void} - -Returns TRUE if the joystick point-of-view supports continuous degree bearings. - -\membersection{wxJoystick::HasRudder}\label{wxjoystickhasrudder} - -\constfunc{bool}{HasRudder}{\void} - -Returns TRUE if there is a rudder attached to the computer. - -\membersection{wxJoystick::HasU}\label{wxjoystickhasu} - -\constfunc{bool}{HasU}{\void} - -Returns TRUE if the joystick has a U axis. - -\membersection{wxJoystick::HasV}\label{wxjoystickhasv} - -\constfunc{bool}{HasV}{\void} - -Returns TRUE if the joystick has a V axis. - -\membersection{wxJoystick::HasZ}\label{wxjoystickhasz} - -\constfunc{bool}{HasZ}{\void} - -Returns TRUE if the joystick has a Z axis. - -\membersection{wxJoystick::IsOk}\label{wxjoystickisok} - -\constfunc{bool}{IsOk}{\void} - -Returns TRUE if the joystick is functioning. - -\membersection{wxJoystick::ReleaseCapture}\label{wxjoystickreleasecapture} - -\func{bool}{ReleaseCapture}{\void} - -Releases the capture set by {\bf SetCapture}. - -\wxheading{Return value} - -TRUE if the capture release succeeded. - -\wxheading{See also} - -\helpref{wxJoystick::SetCapture}{wxjoysticksetcapture}, \helpref{wxJoystickEvent}{wxjoystickevent} - -\membersection{wxJoystick::SetCapture}\label{wxjoysticksetcapture} - -\func{bool}{SetCapture}{\param{wxWindow*}{ win}, \param{int}{ pollingFreq = 0}} - -Sets the capture to direct joystick events to {\it win}. - -\wxheading{Parameters} - -\docparam{win}{The window that will receive joystick events.} - -\docparam{pollingFreq}{If zero, movement events are sent when above the -threshold. If greater than zero, events are received every {\it pollingFreq} milliseconds.} - -\wxheading{Return value} - -TRUE if the capture succeeded. - -\wxheading{See also} - -\helpref{wxJoystick::ReleaseCapture}{wxjoystickreleasecapture}, \helpref{wxJoystickEvent}{wxjoystickevent} - -\membersection{wxJoystick::SetMovementThreshold}\label{wxjoysticksetmovementthreshold} - -\func{void}{SetMovementThreshold}{\param{int}{ threshold}} - -Sets the movement threshold, the number of steps outside which the joystick is deemed to have -moved. - - diff --git a/docs/latex/wx/keycode.tex b/docs/latex/wx/keycode.tex deleted file mode 100644 index 9b39ab66e5..0000000000 --- a/docs/latex/wx/keycode.tex +++ /dev/null @@ -1,84 +0,0 @@ -\section{Keycodes}\label{keycodes} - -Keypresses are represented by an enumerated type, wxKeyCode. The possible values -are the ASCII character codes, plus the following: - -{\small -\begin{verbatim} - WXK_BACK = 8 - WXK_TAB = 9 - WXK_RETURN = 13 - WXK_ESCAPE = 27 - WXK_SPACE = 32 - WXK_DELETE = 127 - - 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 - WXK_NEXT - 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 -\end{verbatim} -} - diff --git a/docs/latex/wx/keyevent.tex b/docs/latex/wx/keyevent.tex deleted file mode 100644 index 95552f4206..0000000000 --- a/docs/latex/wx/keyevent.tex +++ /dev/null @@ -1,136 +0,0 @@ -\section{\class{wxKeyEvent}}\label{wxkeyevent} - -This event class contains information about keypress (character) events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a key event, use these event handler macros to direct input to member -functions that take a wxKeyEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHAR(func)}}{Process a wxEVT\_CHAR event (a non-modifier key has been pressed).} -\twocolitem{{\bf EVT\_KEY\_DOWN(func)}}{Process a wxEVT\_KEY\_DOWN event (any key has been pressed).} -\twocolitem{{\bf EVT\_KEY\_UP(func)}}{Process a wxEVT\_KEY\_UP event (any key has been released).} -\twocolitem{{\bf EVT\_CHAR(func)}}{Process a wxEVT\_CHAR event.} -\twocolitem{{\bf EVT\_CHAR\_HOOK(func)}}{Process a wxEVT\_CHAR\_HOOK event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnChar}{wxwindowonchar}, -\helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, -\helpref{wxWindow::OnKeyDown}{wxwindowonkeydown}, -\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxKeyEvent::m\_altDown} - -\member{bool}{m\_altDown} - -TRUE if the Alt key is pressed down. - -\membersection{wxKeyEvent::m\_controlDown} - -\member{bool}{m\_controlDown} - -TRUE if control is pressed down. - -\membersection{wxKeyEvent::m\_keyCode} - -\member{long}{m\_keyCode} - -Virtual keycode. See \helpref{Keycodes}{keycodes} for a list of identifiers. - -\membersection{wxKeyEvent::m\_metaDown} - -\member{bool}{m\_metaDown} - -TRUE if the Meta key is pressed down. - -\membersection{wxKeyEvent::m\_shiftDown} - -\member{bool}{m\_shiftDown} - -TRUE if shift is pressed down. - -\membersection{wxKeyEvent::m\_x} - -\member{int}{m\_x} - -X position of the event. - -\membersection{wxKeyEvent::m\_y} - -\member{int}{m\_y} - -Y position of the event. - -\membersection{wxKeyEvent::wxKeyEvent} - -\func{}{wxKeyEvent}{\param{WXTYPE}{ keyEventType}} - -Constructor. Currently, the only valid event types are wxEVT\_CHAR and wxEVT\_CHAR\_HOOK. - -\membersection{wxKeyEvent::AltDown} - -\constfunc{bool}{AltDown}{\void} - -Returns TRUE if the Alt key was down at the time of the key event. - -\membersection{wxKeyEvent::ControlDown} - -\constfunc{bool}{ControlDown}{\void} - -Returns TRUE if the control key was down at the time of the key event. - -\membersection{wxKeyEvent::GetX} - -\constfunc{long}{GetX}{\void} - -Returns the X position of the event. - -\membersection{wxKeyEvent::GetY} - -\constfunc{long}{GetY}{\void} - -Returns the Y position of the event. - -\membersection{wxKeyEvent::KeyCode} - -\constfunc{long}{KeyCode}{\void} - -Returns the virtual key code. ASCII events return normal ASCII values, -while non-ASCII events return values such as {\bf WXK\_LEFT} for the -left cursor key. See \helpref{Keycodes}{keycodes} for a full list of the virtual key codes. - -\membersection{wxKeyEvent::MetaDown} - -\constfunc{bool}{MetaDown}{\void} - -Returns TRUE if the Meta key was down at the time of the key event. - -\membersection{wxKeyEvent::GetPosition} - -\constfunc{wxPoint}{GetPosition}{\void} - -\constfunc{void}{GetPosition}{\param{long *}{x}, \param{long *}{y}} - -Obtains the position at which the key was pressed. - -\membersection{wxKeyEvent::ShiftDown} - -\constfunc{bool}{ShiftDown}{\void} - -Returns TRUE if the shift key was down at the time of the key event. - - diff --git a/docs/latex/wx/layalgor.tex b/docs/latex/wx/layalgor.tex deleted file mode 100644 index e4d58e3264..0000000000 --- a/docs/latex/wx/layalgor.tex +++ /dev/null @@ -1,145 +0,0 @@ -\section{\class{wxLayoutAlgorithm}}\label{wxlayoutalgorithm} - -wxLayoutAlgorithm implements layout of subwindows in MDI or SDI frames. -It sends a wxCalculateLayoutEvent event -to children of the frame, asking them for information about -their size. For MDI parent frames, the algorithm allocates -the remaining space to the MDI client window (which contains the MDI child frames). -For SDI (normal) frames, a 'main' window is specified as taking up the -remaining space. - -Because the event system is used, this technique can be applied to any windows, -which are not necessarily 'aware' of the layout classes (no virtual functions -in wxWindow refer to wxLayoutAlgorithm or its events). However, you -may wish to use \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} for your subwindows -since this class provides handlers for the required events, and accessors -to specify the desired size of the window. The sash behaviour in the base class -can be used, optionally, to make the windows user-resizable. - -wxLayoutAlgorithm is typically used in IDE (integrated development environment) applications, -where there are several resizable windows in addition to the MDI client window, or -other primary editing window. Resizable windows might include toolbars, a project -window, and a window for displaying error and warning messages. - -When a window receives an OnCalculateLayout event, it should call SetRect in -the given event object, to be the old supplied rectangle minus whatever space the -window takes up. It should also set its own size accordingly. -wxSashLayoutWindow::OnCalculateLayout generates an OnQueryLayoutInfo event -which it sends to itself to determine the orientation, alignment and size of the window, -which it gets from internal member variables set by the application. - -The algorithm works by starting off with a rectangle equal to the whole frame client area. -It iterates through the frame children, generating OnCalculateLayout events which subtract -the window size and return the remaining rectangle for the next window to process. It -is assumed (by wxSashLayoutWindow::OnCalculateLayout) that a window stretches the full dimension -of the frame client, according to the orientation it specifies. For example, a horizontal window -will stretch the full width of the remaining portion of the frame client area. -In the other orientation, the window will be fixed to whatever size was specified by -OnQueryLayoutInfo. An alignment setting will make the window 'stick' to the left, top, right or -bottom of the remaining client area. This scheme implies that order of window creation is important. -Say you wish to have an extra toolbar at the top of the frame, a project window to the left of -the MDI client window, and an output window above the status bar. You should therefore create -the windows in this order: toolbar, output window, project window. This ensures that the toolbar and -output window take up space at the top and bottom, and then the remaining height inbetween is used for -the project window. - -wxLayoutAlgorithm is quite independent of the way in which -OnCalculateLayout chooses to interpret a window's size and alignment. Therefore you -could implement a different window class with a new OnCalculateLayout event handler, -that has a more sophisticated way of laying out the windows. It might allow -specification of whether stretching occurs in the specified orientation, for example, -rather than always assuming stretching. (This could, and probably should, be added to the existing -implementation). - -{\it Note:} wxLayoutAlgorithm has nothing to do with wxLayoutConstraints. It is an alternative -way of specifying layouts for which the normal constraint system is unsuitable. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event handling} - -The algorithm object does not respond to events, but itself generates the -following events in order to calculate window sizes. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event, -to get size, orientation and alignment from a window. See \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.} -\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event, -which asks the window to take a 'bite' out of a rectangle provided by the algorithm. -See \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.} -\end{twocollist} - -\wxheading{Data types} - -{\small -\begin{verbatim} -enum wxLayoutOrientation { - wxLAYOUT_HORIZONTAL, - wxLAYOUT_VERTICAL -}; - -enum wxLayoutAlignment { - wxLAYOUT_NONE, - wxLAYOUT_TOP, - wxLAYOUT_LEFT, - wxLAYOUT_RIGHT, - wxLAYOUT_BOTTOM, -}; -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview} - -\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp -\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp -\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp -\helpref{wxSashWindow}{wxsashwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLayoutAlgorithm::wxLayoutAlgorithm} - -\func{}{wxLayoutAlgorithm}{\void} - -Default constructor. - -\membersection{wxLayoutAlgorithm::\destruct{wxLayoutAlgorithm}} - -\func{}{\destruct{wxLayoutAlgorithm}}{\void} - -Destructor. - -\membersection{wxLayoutAlgorithm::LayoutFrame}\label{wxlayoutalgorithmlayoutframe} - -\constfunc{bool}{LayoutFrame}{\param{wxFrame* }{frame}, \param{wxWindow*}{ mainWindow = NULL}} - -Lays out the children of a normal frame. {\it mainWindow} is set to occupy the remaining space. - -This function simply calls \helpref{wxLayoutAlgorithm::LayoutWindow}{wxlayoutalgorithmlayoutwindow}. - -\membersection{wxLayoutAlgorithm::LayoutMDIFrame}\label{wxlayoutalgorithmlayoutmdiframe} - -\constfunc{bool}{LayoutMDIFrame}{\param{wxMDIParentFrame* }{frame}, \param{wxRect*}{ rect = NULL}} - -Lays out the children of an MDI parent frame. If {\it rect} is non-NULL, the -given rectangle will be used as a starting point instead of the frame's client area. - -The MDI client window is set to occupy the remaining space. - -\membersection{wxLayoutAlgorithm::LayoutWindow}\label{wxlayoutalgorithmlayoutwindow} - -\constfunc{bool}{LayoutWindow}{\param{wxWindow* }{parent}, \param{wxWindow*}{ mainWindow = NULL}} - -Lays out the children of a normal frame or other window. - -{\it mainWindow} is set to occupy the remaining space. - diff --git a/docs/latex/wx/layout.tex b/docs/latex/wx/layout.tex deleted file mode 100644 index 31ec86c587..0000000000 --- a/docs/latex/wx/layout.tex +++ /dev/null @@ -1,98 +0,0 @@ -\section{\class{wxLayoutConstraints}}\label{wxlayoutconstraints} - -Objects of this class can be associated with a window to define its -layout constraints, with respect to siblings or its parent. - -The class consists of the following eight constraints of class wxIndividualLayoutConstraint, -some or all of which should be accessed directly to set the appropriate -constraints. - -\begin{itemize}\itemsep=0pt -\item {\bf left:} represents the left hand edge of the window -\item {\bf right:} represents the right hand edge of the window -\item {\bf top:} represents the top edge of the window -\item {\bf bottom:} represents the bottom edge of the window -\item {\bf width:} represents the width of the window -\item {\bf height:} represents the height of the window -\item {\bf centreX:} represents the horizontal centre point of the window -\item {\bf centreY:} represents the vertical centre point of the window -\end{itemize} - -Most constraints are initially set to have the relationship wxUnconstrained, -which means that their values should be calculated by looking at known constraints. -The exceptions are {\it width} and {\it height}, which are set to wxAsIs to -ensure that if the user does not specify a constraint, the existing -width and height will be used, to be compatible with panel items which often -have take a default size. If the constraint is wxAsIs, the dimension will -not be changed. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Overview and examples}{constraintsoverview},\rtfsp -\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}, \helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLayoutConstraints::wxLayoutConstraints} - -\func{}{wxLayoutConstraints}{\void} - -Constructor. - -\membersection{wxLayoutConstraints::bottom} - -\member{wxIndividualLayoutConstraint}{bottom} - -Constraint for the bottom edge. - -\membersection{wxLayoutConstraints::centreX} - -\member{wxIndividualLayoutConstraint}{centreX} - -Constraint for the horizontal centre point. - -\membersection{wxLayoutConstraints::centreY} - -\member{wxIndividualLayoutConstraint}{centreY} - -Constraint for the vertical centre point. - -\membersection{wxLayoutConstraints::height} - -\member{wxIndividualLayoutConstraint}{height} - -Constraint for the height. - -\membersection{wxLayoutConstraints::left} - -\member{wxIndividualLayoutConstraint}{left} - -Constraint for the left-hand edge. - -\membersection{wxLayoutConstraints::right} - -\member{wxIndividualLayoutConstraint}{right} - -Constraint for the right-hand edge. - -\membersection{wxLayoutConstraints::top} - -\member{wxIndividualLayoutConstraint}{top} - -Constraint for the top edge. - -\membersection{wxLayoutConstraints::width} - -\member{wxIndividualLayoutConstraint}{width} - -Constraint for the width. - - diff --git a/docs/latex/wx/list.tex b/docs/latex/wx/list.tex deleted file mode 100644 index 8cdcdf03f8..0000000000 --- a/docs/latex/wx/list.tex +++ /dev/null @@ -1,291 +0,0 @@ -\section{\class{wxList}}\label{wxlist} - -wxList classes provide linked list functionality for wxWindows, and for an -application if it wishes. Depending on the form of constructor used, a list -can be keyed on integer or string keys to provide a primitive look-up ability. -See \helpref{wxHashTable}{wxhashtable}\rtfsp for a faster method of storage -when random access is required. - -While wxList class in the previous versions of wxWindows only could contain -elements of type wxObject and had essentially untyped interface (thus allowing -you to put apples in the list and read back oranges from it), the new wxList -classes family may contain elements of any type and has much more stricter type -checking. Unfortunately, it also requires an additional line to be inserted in -your program for each list class you use (which is the only solution short of -using templates which is not done in wxWindows because of portability issues). - -The general idea is to have the base class wxListBase working with {\it void *} -data but make all of its dangerous (because untyped) functions protected, so -that they can only be used from derived classes which, in turn, expose a type -safe interface. With this approach a new wxList-like class must be defined for -each list type (i.e. list of ints, of wxStrings or of MyObjects). This is done -with {\it WX\_DECLARE\_LIST} and {\it WX\_IMPLEMENT\_LIST} macros like this -(notice the similarity with WX\_DECLARE\_OBJARRAY and WX\_IMPLEMENT\_OBJARRAY -macros): - -\wxheading{Example} - -{\small% -\begin{verbatim} - // this part might be in a header or source (.cpp) file - class MyListElement - { - ... // whatever - }; - - // declare our list class: this macro declares and partly implements MyList - // class (which derives from wxListBase) - WX_DECLARE_LIST(MyListElement, MyList); - - ... - - // the only requirment for the rest is to be AFTER the full declaration of - // MyListElement (for WX_DECLARE_LIST forward declaration is enough), but - // usually it will be found in the source file and not in the header - - #include - WX_DEFINE_LIST(MyList); - - // now MyList class may be used as a usual wxList, but all of its methods - // will take/return the objects of the right (i.e. MyListElement) type. You - // also have MyList::Node type which is the type-safe version of wxNode. - MyList list; - MyListElement element; - list.Add(element); // ok - list.Add(17); // error: incorrect type - - // let's iterate over the list - for ( MyList::Node *node = list.GetFirst(); node; node = node->GetNext() ) - { - MyListElement *current = node->GetData(); - - ...process the current element... - } -\end{verbatim} -} - -For compatibility with previous versions wxList and wxStringList classes are -still defined, but their usage is deprecated and they will disappear in the -future versions completely. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Example} - -It is very common to iterate on a list as follows: - -\begin{verbatim} - ... - wxWindow *win1 = new wxWindow(...); - wxWindow *win2 = new wxWindow(...); - - wxList SomeList; - SomeList.Append(win1); - SomeList.Append(win2); - - ... - - wxNode *node = SomeList.GetFirst(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - ... - node = node->Next(); - } -\end{verbatim} - -To delete nodes in a list as the list is being traversed, replace - -\begin{verbatim} - ... - node = node->Next(); - ... -\end{verbatim} - -with - -\begin{verbatim} - ... - delete win; - delete node; - node = SomeList.GetFirst(); - ... -\end{verbatim} - -See \helpref{wxNode}{wxnode} for members that retrieve the data associated with a node, and -members for getting to the next or previous node. - -Note that a cast is required when retrieving the data from a node. Although a -node is defined to store objects of type {\bf wxObject} and derived types, other -types (such as char*) may be used with appropriate casting. - -\wxheading{See also} - -\helpref{wxNode}{wxnode}, \helpref{wxStringList}{wxstringlist}, -\helpref{wxArray}{wxarray} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxList::wxList} - -\func{}{wxList}{\void} - -\func{}{wxList}{\param{unsigned int}{ key\_type}} - -\func{}{wxList}{\param{int}{ n}, \param{wxObject *}{objects[]}} - -\func{}{wxList}{\param{wxObject *}{object}, ...} - -Constructors. {\it key\_type} is one of wxKEY\_NONE, wxKEY\_INTEGER, or wxKEY\_STRING, -and indicates what sort of keying is required (if any). - -{\it objects} is an array of {\it n} objects with which to initialize the list. - -The variable-length argument list constructor must be supplied with a -terminating NULL. - -\membersection{wxList::\destruct{wxList}} - -\func{}{\destruct{wxList}}{\void} - -Destroys the list. Also destroys any remaining nodes, but does not destroy -client data held in the nodes. - -\membersection{wxList::Append} - -\func{wxNode *}{Append}{\param{wxObject *}{object}} - -\func{wxNode *}{Append}{\param{long}{ key}, \param{wxObject *}{object}} - -\func{wxNode *}{Append}{\param{const wxString\& }{key}, \param{wxObject *}{object}} - -Appends a new {\bf wxNode} to the end of the list and puts a pointer to the -\rtfsp{\it object} in the node. The last two forms store a key with the object for -later retrieval using the key. The new node is returned in each case. - -The key string is copied and stored by the list implementation. - -\membersection{wxList::Clear} - -\func{void}{Clear}{\void} - -Clears the list (but does not delete the client data stored with each node). - -\membersection{wxList::DeleteContents}\label{wxlistdeletecontents} - -\func{void}{DeleteContents}{\param{bool}{ destroy}} - -If {\it destroy} is TRUE, instructs the list to call {\it delete} on the client contents of -a node whenever the node is destroyed. The default is FALSE. - -\membersection{wxList::DeleteNode} - -\func{bool}{DeleteNode}{\param{wxNode *}{node}} - -Deletes the given node from the list, returning TRUE if successful. - -\membersection{wxList::DeleteObject} - -\func{bool}{DeleteObject}{\param{wxObject *}{object}} - -Finds the given client {\it object} and deletes the appropriate node from the list, returning -TRUE if successful. The application must delete the actual object separately. - -\membersection{wxList::Find} - -\func{wxNode *}{Find}{\param{long}{ key}} - -\func{wxNode *}{Find}{\param{const wxString\& }{key}} - -Returns the node whose stored key matches {\it key}. Use on a keyed list only. - -\membersection{wxList::GetFirst} - -\func{wxNode *}{GetFirst}{\void} - -Returns the first node in the list (NULL if the list is empty). - -\membersection{wxList::IndexOf} - -\func{int}{IndexOf}{\param{wxObject*}{ obj }} - -Returns the index of {\it obj} within the list or NOT\_FOUND if {\it obj} -is not found in the list. - -\membersection{wxList::Insert} - -\func{wxNode *}{Insert}{\param{wxObject *}{object}} - -Insert object at front of list. - -\func{wxNode *}{Insert}{\param{wxNode *}{position}, \param{wxObject *}{object}} - -Insert object before {\it position}. - - -\membersection{wxList::GetLast} - -\func{wxNode *}{GetLast}{\void} - -Returns the last node in the list (NULL if the list is empty). - -\membersection{wxList::Member} - -\func{wxNode *}{Member}{\param{wxObject *}{object}} - -Returns the node associated with {\it object} if it is in the list, NULL otherwise. - -\membersection{wxList::Nth} - -\func{wxNode *}{Nth}{\param{int}{ n}} - -Returns the {\it nth} node in the list, indexing from zero (NULL if the list is empty -or the nth node could not be found). - -\membersection{wxList::Number} - -\func{int}{Number}{\void} - -Returns the number of elements in the list. - -\membersection{wxList::Sort} - -\func{void}{Sort}{\param{wxSortCompareFunction}{ compfunc}} - -\begin{verbatim} - // Type of compare function for list sort operation (as in 'qsort') - typedef int (*wxSortCompareFunction)(const void *elem1, const void *elem2); -\end{verbatim} - -Allows the sorting of arbitrary lists by giving -a function to compare two list elements. We use the system {\bf qsort} function -for the actual sorting process. The sort function receives pointers to wxObject pointers (wxObject **), -so be careful to dereference appropriately. - -Example: - -\begin{verbatim} - int listcompare(const void *arg1, const void *arg2) - { - return(compare(**(wxString **)arg1, // use the wxString 'compare' - **(wxString **)arg2)); // function - } - - void main() - { - wxList list; - - list.Append(new wxString("DEF")); - list.Append(new wxString("GHI")); - list.Append(new wxString("ABC")); - list.Sort(listcompare); - } -\end{verbatim} - - diff --git a/docs/latex/wx/listbox.tex b/docs/latex/wx/listbox.tex deleted file mode 100644 index ea6620608f..0000000000 --- a/docs/latex/wx/listbox.tex +++ /dev/null @@ -1,385 +0,0 @@ -\section{\class{wxListBox}}\label{wxlistbox} - -A listbox is used to select one or more of a list of strings. The -strings are displayed in a scrolling box, with the selected string(s) -marked in reverse video. A listbox can be single selection (if an item -is selected, the previous selection is removed) or multiple selection -(clicking an item toggles the item on or off independently of other -selections). - -List box elements are numbered from zero. - -A listbox callback gets an event wxEVT\_COMMAND\_LISTBOX\_SELECT for single clicks, and -wxEVT\_COMMAND\_LISTBOX\_DOUBLE\_CLICKED for double clicks. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxLB\_SINGLE}}{Single-selection list.} -\twocolitem{\windowstyle{wxLB\_MULTIPLE}}{Multiple-selection list: the user can toggle multiple -items on and off.} -\twocolitem{\windowstyle{wxLB\_EXTENDED}}{Extended-selection list: the user can -select multiple items using the SHIFT key and the mouse or special key combinations.} -\twocolitem{\windowstyle{wxLB\_HSCROLL}}{Create horizontal scrollbar if contents are too wide (Windows only).} -\twocolitem{\windowstyle{wxLB\_ALWAYS\_SB}}{Always show a vertical scrollbar.} -\twocolitem{\windowstyle{wxLB\_NEEDED\_SB}}{Only create a vertical scrollbar if needed.} -\twocolitem{\windowstyle{wxLB\_SORT}}{The listbox contents are sorted in alphabetical order.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED event, -when an item on the list is selected.} -\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED event, -when the listbox is doubleclicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListBox::wxListBox}\label{wxlistboxconstr} - -\func{}{wxListBox}{\void} - -Default constructor. - -\func{}{wxListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -Constructor, creating and showing a list box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxListBox}{wxlistbox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxListBox::Create}{wxlistboxcreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxListBox constructor in wxPython reduces the \tt{n} -and \tt{choices} arguments are to a single argument, which is -a list of strings.} - - - -\membersection{wxListBox::\destruct{wxListBox}} - -\func{void}{\destruct{wxListBox}}{\void} - -Destructor, destroying the list box. - -\membersection{wxListBox::Append}\label{wxlistboxappend} - -\func{void}{Append}{\param{const wxString\& }{ item}} - -Adds the item to the end of the list box. - -\func{void}{Append}{\param{const wxString\& }{ item}, \param{char* }{clientData}} - -Adds the item to the end of the list box, associating the given data -with the item. - -\wxheading{Parameters} - -\docparam{item}{String to add.} - -\docparam{clientData}{Client data to associate with the item.} - -\membersection{wxListBox::Clear}\label{wxlistboxclear} - -\func{void}{Clear}{\void} - -Clears all strings from the list box. - -\membersection{wxListBox::Create}\label{wxlistboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -Creates the listbox for two-step construction. See \helpref{wxListBox::wxListBox}{wxlistboxconstr}\rtfsp -for further details. - -\membersection{wxListBox::Delete}\label{wxlistboxdelete} - -\func{void}{Delete}{\param{int}{ n}} - -Deletes an item from the listbox. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\membersection{wxListBox::Deselect}\label{wxlistboxdeselect} - -\func{void}{Deselect}{\param{int}{ n}} - -Deselects an item in the list box. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item to deselect.} - -\wxheading{Remarks} - -This applies to multiple selection listboxes only. - -\membersection{wxListBox::FindString}\label{wxlistboxfindstring} - -\func{int}{FindString}{\param{const wxString\& }{string}} - -Finds an item matching the given string. - -\wxheading{Parameters} - -\docparam{string}{String to find.} - -\wxheading{Return value} - -The zero-based position of the item, or -1 if the string was not found. - -\membersection{wxListBox::GetClientData}\label{wxlistboxgetclientdata} - -\constfunc{char*}{GetClientData}{\param{int}{ n}} - -Returns a pointer to the client data associated with the given item (if any). - -\wxheading{Parameters} - -\docparam{n}{The zero-based position of the item.} - -\wxheading{Return value} - -A pointer to the client data, or NULL if not present. - -\membersection{wxListBox::GetSelection}\label{wxlistboxgetselection} - -\constfunc{int}{GetSelection}{\void} - -Gets the position of the selected item. - -\wxheading{Return value} - -The position of the current selection. - -\wxheading{Remarks} - -Applicable to single selection list boxes only. - -\wxheading{See also} - -\helpref{wxListBox::SetSelection}{wxlistboxsetselection},\rtfsp -\helpref{wxListBox::GetStringSelection}{wxlistboxgetstringselection},\rtfsp -\helpref{wxListBox::GetSelections}{wxlistboxgetselections} - -\membersection{wxListBox::GetSelections}\label{wxlistboxgetselections} - -\constfunc{int}{GetSelections}{\param{wxArrayInt&}{selections}} - -Fill an array of ints with the positions of the currently selected items. - -\wxheading{Parameters} - -\docparam{selections}{A reference to an wxArrayInt instance that is used to store the result of the query.} - -\wxheading{Return value} - -The number of selections. - -\wxheading{Remarks} - -Use this with a multiple selection listbox. - -\wxheading{See also} - -\helpref{wxListBox::GetSelection}{wxlistboxgetselection},\rtfsp -\helpref{wxListBox::GetStringSelection}{wxlistboxgetstringselection},\rtfsp -\helpref{wxListBox::SetSelection}{wxlistboxsetselection} - -\pythonnote{The wxPython version of this method takes no parameters -and returns a tuple of the selected items.} - -\membersection{wxListBox::GetString}\label{wxlistboxgetstring} - -\constfunc{wxString}{GetString}{\param{int}{ n}} - -Returns the string at the given position. - -\wxheading{Parameters} - -\docparam{n}{The zero-based position.} - -\wxheading{Return value} - -The string, or an empty string if the position was invalid. - -\membersection{wxListBox::GetStringSelection}\label{wxlistboxgetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Gets the selected string - for single selection list boxes only. This -must be copied by the calling program if long term use is to be made of -it. - -\wxheading{See also} - -\helpref{wxListBox::GetSelection}{wxlistboxgetselection},\rtfsp -\helpref{wxListBox::GetSelections}{wxlistboxgetselections},\rtfsp -\helpref{wxListBox::SetSelection}{wxlistboxsetselection} - -\membersection{wxListBox::InsertItems}\label{wxlistboxinsertitems} - -\func{void}{InsertItems}{\param{int}{ nItems}, \param{const wxString}{ items}, \param{int}{ pos}} - -Insert the given number of strings before the specified position. - -\wxheading{Parameters} - -\docparam{nItems}{Number of items in the array {\it items}} - -\docparam{items}{Labels of items to be inserted} - -\docparam{pos}{Position before which to insert the items: for example, if {\it pos} is 0 the items -will be inserted in the beginning of the listbox} - -\membersection{wxListBox::Number}\label{wxlistboxnumber} - -\constfunc{int}{Number}{\void} - -Returns the number of items in the listbox. - -\membersection{wxListBox::Selected}\label{wxlistboxselected} - -\constfunc{bool}{Selected}{\param{int}{ n}} - -Determines whether an item is selected. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\wxheading{Return value} - -TRUE if the given item is selected, FALSE otherwise. - -\membersection{wxListBox::Set}\label{wxlistboxset} - -\func{void}{Set}{\param{int}{ n}, \param{const wxString*}{ choices}} - -Clears the list box and adds the given strings. - -\wxheading{Parameters} - -\docparam{n}{The number of strings to set.} - -\docparam{choices}{An array of strings to set.} - -\wxheading{Remarks} - -Deallocate the array from the calling program -after this function has been called. - -\membersection{wxListBox::SetClientData}\label{wxlistboxsetclientdata} - -\func{void}{SetClientData}{\param{int}{ n}, \param{char* }{data}} - -Associates the given client data pointer with the given item. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{data}{The client data to associate with the item.} - -\membersection{wxListBox::SetFirstItem}\label{wxlistboxsetfirstitem} - -\func{void}{SetFirstItem}{\param{int}{ n}} - -\func{void}{SetFirstItem}{\param{const wxString\& }{string}} - -Set the specified item to be the first visible item. Windows only. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{string}{The string that should be visible.} - -\membersection{wxListBox::SetSelection}\label{wxlistboxsetselection} - -\func{void}{SetSelection}{\param{int}{ n}, \param{const bool }{select = TRUE}} - -Selects or deselects the given item. This does not cause a -wxEVT\_COMMAND\_LISTBOX\_SELECT event to get emitted. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{select}{If TRUE, will select the item. If FALSE, will deselect it.} - -\membersection{wxListBox::SetString}\label{wxlistboxsetstring} - -\func{void}{SetString}{\param{int}{ n}, \param{const wxString\& }{ string}} - -Sets the string value of an item. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{string}{The string to set.} - -\membersection{wxListBox::SetStringSelection}\label{wxlistboxsetstringselection} - -\func{void}{SetStringSelection}{\param{const wxString\& }{ string}, \param{const bool}{ select = TRUE}} - -Sets the current selection. This does not cause a -wxEVT\_COMMAND\_LISTBOX\_SELECT event to get emitted. - -\wxheading{Parameters} - -\docparam{string}{The item to select.} - -\docparam{select}{If TRUE, will select the item. If FALSE, will deselect it.} - diff --git a/docs/latex/wx/listctrl.tex b/docs/latex/wx/listctrl.tex deleted file mode 100644 index 0adf77c4de..0000000000 --- a/docs/latex/wx/listctrl.tex +++ /dev/null @@ -1,613 +0,0 @@ -\section{\class{wxListCtrl}}\label{wxlistctrl} - -A list control presents lists in a number of formats: list view, report view, icon view -and small icon view. Elements are numbered from zero. - -To intercept events from a list control, use the event table macros described in \helpref{wxListEvent}{wxlistevent}. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxLC\_LIST}}{multicolumn list view, with optional small icons. -Columns are computed automatically, i.e. you don't set columns as in wxLC\_REPORT. In other words, -the list wraps, unlike a wxListBox.} -\twocolitem{\windowstyle{wxLC\_REPORT}}{single or multicolumn report view, with optional header.} -\twocolitem{\windowstyle{wxLC\_ICON}}{Large icon view, with optional labels.} -\twocolitem{\windowstyle{wxLC\_SMALL\_ICON}}{Small icon view, with optional labels.} -\twocolitem{\windowstyle{wxLC\_ALIGN\_TOP}}{Icons align to the top. Win32 default, Win32 only. } -\twocolitem{\windowstyle{wxLC\_ALIGN\_LEFT}}{Icons align to the left. } -\twocolitem{\windowstyle{wxLC\_AUTOARRANGE}}{Icons arrange themselves. Win32 only. } -\twocolitem{\windowstyle{wxLC\_USER\_TEXT}}{The application provides label text on demand, except for column headers. Win32 only. } -\twocolitem{\windowstyle{wxLC\_EDIT\_LABELS}}{Labels are editable: the application will be notified when editing starts.} -\twocolitem{\windowstyle{wxLC\_NO\_HEADER}}{No header in report mode. Win32 only. } -\twocolitem{\windowstyle{wxLC\_SINGLE\_SEL}}{Single selection.} -\twocolitem{\windowstyle{wxLC\_SORT\_ASCENDING}}{Sort in ascending order (must still supply a comparison callback in SortItems.} -\twocolitem{\windowstyle{wxLC\_SORT\_DESCENDING}}{Sort in descending order (must still supply a comparison callback in SortItems.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -To process input from a list control, use these event handler macros to direct input to member -functions that take a \helpref{wxListEvent}{wxlistevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.} -\twocolitem{{\bf EVT\_LIST\_GET\_INFO(id, func)}}{Request information from the application, usually the item text.} -\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).} -\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).} -\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.} -\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxListCtrl overview}{wxlistctrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxTreeCtrl}{wxtreectrl},\rtfsp -\helpref{wxImageList}{wximagelist}, \helpref{wxListEvent}{wxlistevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListCtrl::wxListCtrl}\label{wxlistctrlconstr} - -\func{}{wxListCtrl}{\void} - -Default constructor. - -\func{}{wxListCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} - -Constructor, creating and showing a list control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxListCtrl}{wxlistctrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxListCtrl::Create}{wxlistctrlcreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxListCtrl::\destruct{wxListCtrl}} - -\func{void}{\destruct{wxListCtrl}}{\void} - -Destructor, destroying the list control. - -\membersection{wxListCtrl::Arrange}\label{wxlistctrlarrange} - -\func{bool}{Arrange}{\param{int }{flag = wxLIST\_ALIGN\_DEFAULT}} - -Arranges the items in icon or small icon view. This only has effect on Win32. {\it flag} is one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_ALIGN\_DEFAULT}{Default alignment.} -\twocolitem{wxLIST\_ALIGN\_LEFT}{Align to the left side of the control.} -\twocolitem{wxLIST\_ALIGN\_TOP}{Align to the top side of the control.} -\twocolitem{wxLIST\_ALIGN\_SNAP\_TO\_GRID}{Snap to grid.} -\end{twocollist} - -\membersection{wxListCtrl::Create}\label{wxlistctrlcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} - -Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlconstr} for further details. - -\membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall} - -\func{void}{ClearAll}{} - -Deletes all items and all columns. - -\membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem} - -\func{bool}{DeleteItem}{\param{long }{item}} - -Deletes the specified item. - -\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems} - -\func{bool}{DeleteAllItems}{} - -Deletes all the items in the list control. - -\membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn} - -\func{bool}{DeleteColumn}{\param{int }{col}} - -Deletes a column. - -\membersection{wxListCtrl::EditLabel}\label{wxlistctrledit} - -\func{void}{EditLabel}{\param{long }{item}} - -Starts editing the label of the given item. This function generates a -EVT\_LIST\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no -text control will appear for in-place editing. - -If the user changed the label (i.e. s/he does not press ESC or leave -the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event -will be sent which can be vetoed as well. - -\membersection{wxListCtrl::EnsureVisible}\label{wxlistctrlensurevisible} - -\func{bool}{EnsureVisible}{\param{long }{item}} - -Ensures this item is visible. - -\membersection{wxListCtrl::FindItem}\label{wxlistctrlfinditem} - -\func{long}{FindItem}{\param{long }{start}, \param{const wxString\& }{str}, \param{const bool }{partial = FALSE}} - -Find an item whose label matches this string, starting from the item after {\it start} or -the beginning if {\it start} is -1. - -\func{long}{FindItem}{\param{long }{start}, \param{long }{data}} - -Find an item whose data matches this data, starting from the item after {\it start} or -the beginning if 'start' is -1. - -\func{long}{FindItem}{\param{long }{start}, \param{const wxPoint\& }{pt}, \param{int }{direction}} - -Find an item nearest this position in the specified direction, starting from -the item after {\it start} or the beginning if {\it start} is -1. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{FindItem(start, str, partial=FALSE)}}{} -\twocolitem{\bf{FindItemData(start, data)}}{} -\twocolitem{\bf{FindItemAtPos(start, point, direction)}}{} -\end{twocollist}} -} - -\membersection{wxListCtrl::GetColumn}\label{wxlistctrlgetcolumn} - -\constfunc{bool}{GetColumn}{\param{int }{col}, \param{wxListItem\& }{item}} - -Gets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more -information. - -\membersection{wxListCtrl::GetColumnWidth}\label{wxlistctrlgetcolumnwidth} - -\constfunc{int}{GetColumnWidth}{\param{int }{col}} - -Gets the column width (report view only). - -\membersection{wxListCtrl::GetCountPerPage}\label{wxlistctrlgetcountperpage} - -\constfunc{int}{GetCountPerPage}{\void} - -Gets the number of items that can fit vertically in the -visible area of the list control (list or report view) -or the total number of items in the list control (icon -or small icon view). - -\membersection{wxListCtrl::GetEditControl}\label{wxlistctrlgeteditcontrol} - -\constfunc{wxTextCtrl\&}{GetEditControl}{\void} - -Gets the edit control for editing labels. - -\membersection{wxListCtrl::GetImageList}\label{wxlistctrlgetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\param{int }{which}} - -Returns the specified image list. {\it which} may be one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).} -\end{twocollist} - -\membersection{wxListCtrl::GetItem}\label{wxlistctrlgetitem} - -\constfunc{bool}{GetItem}{\param{wxListItem\& }{info}} - -Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more -information. - -\pythonnote{The wxPython version of this method takes a parameter -representing the item ID, and returns the wxListItem object. -} - -\membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata} - -\constfunc{long}{GetItemData}{\param{long }{item}} - -Gets the application-defined data associated with this item. - -\membersection{wxListCtrl::GetItemPosition}\label{wxlistctrlgetitemposition} - -\constfunc{bool}{GetItemPosition}{\param{long }{item}, \param{wxPoint\& }{pos}} - -Returns the position of the item, in icon or small icon view. - -\pythonnote{The wxPython version of this method accepts only the item -ID and returns the wxPoint.} - -\membersection{wxListCtrl::GetItemRect}\label{wxlistctrlgetitemrect} - -\constfunc{bool}{GetItemRect}{\param{long }{item}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}} - -Returns the rectangle representing the item's size and position, in client coordinates. - -{\it code} is one of wxLIST\_RECT\_BOUNDS, wxLIST\_RECT\_ICON, wxLIST\_RECT\_LABEL. - -\pythonnote{The wxPython version of this method accepts only the item -ID and returns the wxRect.} - -\membersection{wxListCtrl::GetItemState}\label{wxlistctrlgetitemstate} - -\constfunc{int}{GetItemState}{\param{long }{item}, \param{long }{stateMask}} - -Gets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - -The {\bf stateMask} indicates which state flags are of interest. - -\membersection{wxListCtrl::GetItemCount}\label{wxlistctrlgetitemcount} - -\constfunc{int}{GetItemCount}{\void} - -Returns the number of items in the list control. - -\membersection{wxListCtrl::GetItemSpacing}\label{wxlistctrlgetitemspacing} - -\constfunc{int}{GetItemSpacing}{\param{bool }{isSmall}} - -Retrieves the spacing between icons in pixels. -If {\it small} is TRUE, gets the spacing for the small icon -view, otherwise the large icon view. - -\membersection{wxListCtrl::GetItemText}\label{wxlistctrlgetitemtext} - -\constfunc{wxString}{GetItemText}{\param{long }{item}} - -Gets the item text for this item. - -\membersection{wxListCtrl::GetNextItem}\label{wxlistctrlgetnextitem} - -\constfunc{long}{GetNextItem}{\param{long }{item}, \param{int }{geometry = wxLIST\_NEXT\_ALL}, \param{int }{state = wxLIST\_STATE\_DONTCARE}} - -Searches for an item with the given goemetry or state, starting from {\it item}. {\it item} can be -1 -to find the first item that matches the specified flags. - -Returns the item or -1 if unsuccessful. - -{\it geometry} can be one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_NEXT\_ABOVE}{Searches for an item above the specified item.} -\twocolitem{wxLIST\_NEXT\_ALL}{Searches for subsequent item by index.} -\twocolitem{wxLIST\_NEXT\_BELOW}{Searches for an item below the specified item.} -\twocolitem{wxLIST\_NEXT\_LEFT}{Searches for an item to the left of the specified item.} -\twocolitem{wxLIST\_NEXT\_RIGHT}{Searches for an item to the right of the specified item.} -\end{twocollist} - -{\it state} can be a bitlist of the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is.} -\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item indicates it is a drop target.} -\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.} -\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.} -\twocolitem{wxLIST\_STATE\_CUT}{The item is selected as part of a cut and paste operation.} -\end{twocollist} - -\membersection{wxListCtrl::GetSelectedItemCount}\label{wxlistctrlgetselecteditemcount} - -\constfunc{int}{GetSelectedItemCount}{\void} - -Returns the number of selected items in the list control. - -\membersection{wxListCtrl::GetTextColour}\label{wxlistctrlgettextcolour} - -\constfunc{wxColour}{GetTextColour}{\void} - -Gets the text colour of the list control. - -\membersection{wxListCtrl::GetTopItem}\label{wxlistctrlgettopitem} - -\constfunc{long}{GetTopItem}{\void} - -Gets the index of the topmost visible item when in -list or report view. - -\membersection{wxListCtrl::HitTest}\label{wxlistctrlhittest} - -\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}} - -Determines which item (if any) is at the specified point, -giving details in {\it flags}. {\it flags} will be a combination of the following flags: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_HITTEST\_ABOVE}{Above the client area.} -\twocolitem{wxLIST\_HITTEST\_BELOW}{Below the client area.} -\twocolitem{wxLIST\_HITTEST\_NOWHERE}{In the client area but below the last item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.} -\twocolitem{wxLIST\_HITTEST\_TOLEFT}{To the right of the client area.} -\twocolitem{wxLIST\_HITTEST\_TORIGHT}{To the left of the client area.} -\twocolitem{wxLIST\_HITTEST\_ONITEM}{Combination of wxLIST\_HITTEST\_ONITEMICON, wxLIST\_HITTEST\_ONITEMLABEL, -wxLIST\_HITTEST\_ONITEMSTATEICON.} -\end{twocollist} - -\membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn} - -\func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}} - -For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - -\func{long}{InsertColumn}{\param{long }{col}, \param{const wxString\& }{heading}, \param{int }{format = wxLIST\_FORMAT\_LEFT},\rtfsp -\param{int }{width = -1}} - -For list view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{InsertColumn(col, heading, format=wxLIST_FORMAT_LEFT, -width=-1)}}{Creates a column using a header string only.} -\twocolitem{\bf{InsertColumnInfo(col, item)}}{Creates a column using a -wxListInfo.} -\end{twocollist}} -} - -\membersection{wxListCtrl::InsertItem}\label{wxlistctrlinsertitem} - -\func{long}{InsertItem}{\param{wxListItem\& }{info}} - -Inserts an item, returning the index of the new item if successful, --1 otherwise. - -\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}} - -Inserts a string item. - -\func{long}{InsertItem}{\param{long }{index}, \param{int }{imageIndex}} - -Inserts an image item. - -\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}, \param{int }{imageIndex}} - -Insert an image/string item. - -\wxheading{Parameters} - -\docparam{info}{wxListItem object} - -\docparam{index}{Index of the new item, supplied by the application} - -\docparam{label}{String label} - -\docparam{imageIndex}{index into the image list associated with this control and view style} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{InsertItem(item)}}{Inserts an item using a wxListItem.} -\twocolitem{\bf{InsertStringItem(index, label)}}{Inserts a string item.} -\twocolitem{\bf{InsertImageItem(index, imageIndex)}}{Inserts an image item.} -\twocolitem{\bf{InsertImageStringItem(index, label, imageIndex)}}{Insert an image/string item.} -\end{twocollist}} -} - -\membersection{wxListCtrl::ScrollList}\label{wxlistctrlscrolllist} - -\func{bool}{ScrollList}{\param{int }{dx}, \param{int }{dy}} - -Scrolls the list control. If in icon, small icon or report view mode, -dx specifies the number of pixels to scroll. If in list view mode, dx -specifies the number of columns to scroll. - -If in icon, small icon or list view mode, dy specifies the number of pixels -to scroll. If in report view mode, dy specifies the number of lines to scroll. - -\membersection{wxListCtrl::SetBackgroundColour}\label{wxlistctrlsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{col}} - -Sets the background colour (GetBackgroundColour already implicit in -wxWindow class). - -\membersection{wxListCtrl::SetColumn}\label{wxlistctrlsetcolumn} - -\func{bool}{SetColumn}{\param{int }{col}, \param{wxListItem\& }{item}} - -Sets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more -information. - -\membersection{wxListCtrl::SetColumnWidth}\label{wxlistctrlsetcolumnwidth} - -\func{bool}{SetColumnWidth}{\param{int }{col}, \param{int }{width}} - -Sets the column width. - -{\it width} can be a width in pixels or wxLIST\_AUTOSIZE (-1) or wxLIST\_AUTOSIZE\_USEHEADER (-2). -wxLIST\_AUTOSIZE will resize the column to the length of its longest item. wxLIST\_AUTOSIZE\_USEHEADER -will resize the column to the length of the header (Win32) or 80 pixels (other platforms). - -In small or normal icon view, {\it col} must be -1, and the column width is set for all columns. - -\membersection{wxListCtrl::SetImageList}\label{wxlistctrlsetimagelist} - -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}} - -Sets the image list associated with the control. {\it which} is one of -wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented). - -\membersection{wxListCtrl::SetItem}\label{wxlistctrlsetitem} - -\func{bool}{SetItem}{\param{wxListItem\& }{info}} - -Sets information about the item. - -wxListItem is a class with the following members: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{long m\_mask}{Indicates which fields are valid. See the list of valid mask flags below.} -\twocolitem{long m\_itemId}{The zero-based item position.} -\twocolitem{int m\_col}{Zero-based column, if in report mode.} -\twocolitem{long m\_state}{The state of the item. See the list of valid state flags below.} -\twocolitem{long m\_stateMask}{A mask indicating which state flags are valid. See the list of valid state flags below.} -\twocolitem{wxString m\_text}{The label/header text.} -\twocolitem{int m\_image}{The zero-based index into an image list.} -\twocolitem{long m\_data}{Application-defined data.} -\twocolitem{int m\_format}{For columns only: the format. Can be wxLIST\_FORMAT\_LEFT, wxLIST\_FORMAT\_RIGHT or -wxLIST\_FORMAT\_CENTRE.} -\twocolitem{int m\_width}{For columns only: the column width.} -\end{twocollist} - -The {\bf m\_mask} member contains a bitlist specifying which of the other fields are valid. The flags are: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_MASK\_STATE}{The {\bf m\_state} field is valid.} -\twocolitem{wxLIST\_MASK\_TEXT}{The {\bf m\_text} field is valid.} -\twocolitem{wxLIST\_MASK\_IMAGE}{The {\bf m\_image} field is valid.} -\twocolitem{wxLIST\_MASK\_DATA}{The {\bf m\_data} field is valid.} -\twocolitem{wxLIST\_MASK\_WIDTH}{The {\bf m\_width} field is valid.} -\twocolitem{wxLIST\_MASK\_FORMAT}{The {\bf m\_format} field is valid.} -\end{twocollist} - -The {\bf m\_stateMask} and {\bf m\_state} members take flags from the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is. Win32 only. } -\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item is highlighted to receive a drop event. Win32 only. } -\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.} -\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.} -\twocolitem{wxLIST\_STATE\_CUT}{The item is in the cut state. Win32 only. } -\end{twocollist} - -\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const wxString\& }{label}, \param{int }{imageId = -1}} - -Sets a string field at a particular column. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetItem(item)}}{Sets information about the given wxListItem.} -\twocolitem{\bf{SetStringItem(index, col, label, imageId)}}{Sets a -string or image at a given location.} -\end{twocollist}} -} - - -\membersection{wxListCtrl::SetItemData}\label{wxlistctrlsetitemdata} - -\func{bool}{SetItemData}{\param{long }{item}, \param{long }{data}} - -Associates application-defined data with this item. - -\membersection{wxListCtrl::SetItemImage}\label{wxlistctrlsetitemimage} - -\func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}, \param{int }{selImage}} - -Sets the unselected and selected images associated with the item. The images are indices into the -image list associated with the list control. - -\membersection{wxListCtrl::SetItemPosition}\label{wxlistctrlsetitemposition} - -\func{bool}{SetItemPosition}{\param{long }{item}, \param{const wxPoint\& }{pos}} - -Sets the position of the item, in icon or small icon view. - -\membersection{wxListCtrl::SetItemState}\label{wxlistctrlsetitemstate} - -\func{bool}{SetItemState}{\param{long }{item}, \param{long }{state}, \param{long }{stateMask}} - -Sets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - -The {\bf stateMask} indicates which state flags are valid. - -\membersection{wxListCtrl::SetItemText}\label{wxlistctrlsetitemtext} - -\func{void}{SetItemText}{\param{long }{item}, \param{const wxString\& }{text}} - -Sets the item text for this item. - -\membersection{wxListCtrl::SetSingleStyle}\label{wxlistctrlsetsinglestyle} - -\func{void}{SetSingleStyle}{\param{long }{style}, \param{const bool }{add = TRUE}} - -Adds or removes a single window style. - -\membersection{wxListCtrl::SetTextColour}\label{wxlistctrlsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{col}} - -Sets the text colour of the list control. - -\membersection{wxListCtrl::SetWindowStyleFlag}\label{wxlistctrlsetwindowstyleflag} - -\func{void}{SetWindowStyleFlag}{\param{long }{style}} - -Sets the whole window style. - -\membersection{wxListCtrl::SortItems}\label{wxlistctrlsortitems} - -\func{bool}{SortItems}{\param{wxListCtrlCompare }{fn}, \param{long }{data}} - -Sorts the items in the list control. - -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. - diff --git a/docs/latex/wx/listevt.tex b/docs/latex/wx/listevt.tex deleted file mode 100644 index 1723a34d79..0000000000 --- a/docs/latex/wx/listevt.tex +++ /dev/null @@ -1,93 +0,0 @@ -\section{\class{wxListEvent}}\label{wxlistevent} - -A list event holds information about events associated with wxListCtrl objects. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process input from a list control, use these event handler macros to direct input to member -functions that take a wxListEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.} -\twocolitem{{\bf EVT\_LIST\_GET\_INFO(id, func)}}{Request information from the application, usually the item text.} -\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).} -\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).} -\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.} -\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxListCtrl}{wxlistctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListEvent::wxListEvent} - -\func{}{wxListEvent}{\param{WXTYPE }{commandType = 0}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxListEvent::m\_code} - -\member{int}{m\_code} - -Key code if the event is a keypress event. - -\membersection{wxListEvent::m\_itemIndex} - -\member{long}{m\_itemIndex} - -The item index. - -\membersection{wxListEvent::m\_oldItemIndex} - -\member{long}{m\_oldItemIndex} - -The old item index. - -\membersection{wxListEvent::m\_col} - -\member{int}{m\_col} - -The column position. - -\membersection{wxListEvent::m\_cancelled} - -\member{bool}{m\_cancelled} - -TRUE if this event is an end edit event and the user cancelled the edit. - -\membersection{wxListEvent::m\_pointDrag} - -\member{wxPoint}{m\_pointDrag} - -The position of the mouse pointer if the event is a drag event. - -\membersection{wxListEvent::m\_item} - -\member{wxListItem}{m\_item} - -An item object, used by some events. See also \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - - diff --git a/docs/latex/wx/locale.tex b/docs/latex/wx/locale.tex deleted file mode 100644 index e6a0431c51..0000000000 --- a/docs/latex/wx/locale.tex +++ /dev/null @@ -1,148 +0,0 @@ -\section{\class{wxLocale}}\label{wxlocale} - -wxLocale class encapsulates all language-dependent settings and is a -generalization of the C locale concept. - -In wxWindows this class manages message catalogs which contain the translations -of the strings used to the current language. - -\wxheading{Derived from} - -No base class - -\wxheading{See also} - -\helpref{I18n overview}{internationalization} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLocale::wxLocale}\label{wxlocaledefctor} - -\func{}{wxLocale}{\void} - -This is the default constructor and it does nothing to initialize the object: -\helpref{Init()}{wxlocaleinit} must be used to do that. - -\func{}{wxLocale}{\param{const char }{*szName}, \param{const char }{*szShort = NULL}, \param{const char }{*szLocale = NULL}, \param{bool }{bLoadDefault = TRUE}} - -The parameters have the following meaning: -\begin{itemize}\itemsep=0pt -\item szName is the name of the locale and is only used in diagnostic messages -\item szShort is the standard 2 letter locale abbreviation and is used as the -directory prefix when looking for the message catalog files -\item szLocale is the parameter for the call to setlocale() -\item bLoadDefault may be set to FALSE to prevent loading of the message catalog -for the given locale containing the translations of standard wxWindows messages. -This parameter would be rarely used in normal circumstances. -\end{itemize} - -The call of this function has several global side effects which you should -understand: first of all, the application locale is changed - note that this -will affect many of standard C library functions such as printf() or strftime(). -Second, this wxLocale object becomes the new current global locale for the -application and so all subsequent calls to wxGetTranslation() will try to -translate the messages using the message catalogs for this locale. - -\membersection{wxLocale::\destruct{wxLocale}}\label{wxlocaledtor} - -\func{}{\destruct{wxLocale}}{\void} - -The destructor, like the constructor, also has global side effects: the previously -set locale is restored and so the changes described in -\helpref{Init}{wxlocaleinit} documentation are rolled back. - -\membersection{wxLocale::GetLocale}\label{wxlocalegetlocale} - -\constfunc{const char*}{GetLocale}{\void} - -Returns the locale name as passed to the constructor or -\helpref{Init()}{wxlocaleinit}. - -\membersection{wxLocale::AddCatalog}\label{wxlocaleaddcatalog} - -\func{bool}{AddCatalog}{\param{const char }{*szDomain}} - -Add a catalog for use with the current locale: it's searched for in standard -places (current directory first, then the system one), but you may also prepend -additional directories to the search path with -\helpref{AddCatalogLookupPathPrefix()}{wxlocaleaddcataloglookuppathprefix}. - -All loaded catalogs will be used for message lookup by GetString() for the -current locale. - -Returns TRUE if catalog was successfully loaded, FALSE otherwise (which might -mean that the catalog is not found or that it isn't in the correct format). - -\membersection{wxLocale::AddCatalogLookupPathPrefix}\label{wxlocaleaddcataloglookuppathprefix} - -\func{void}{AddCatalogLookupPathPrefix}{\param{const wxString\& }{prefix}} - -Add a prefix to the catalog lookup path: the message catalog files will be -looked up under prefix//LC\_MESSAGES, prefix/LC\_MESSAGES and prefix -(in this order). - -This only applies to subsequent invocations of AddCatalog()! - -\membersection{wxLocale::Init}\label{wxlocaleinit} - -\func{bool}{Init}{\param{const char }{*szName}, \param{const char }{*szShort = NULL}, \param{const char }{*szLocale = NULL}, \param{bool }{bLoadDefault = TRUE}} - -The parameters have the following meaning: - -\begin{itemize}\itemsep=0pt -\item szName is the name of the locale and is only used in diagnostic messages -\item szShort is the standard 2 letter locale abbreviation and is used as the -directory prefix when looking for the message catalog files -\item szLocale is the parameter for the call to setlocale() -\item bLoadDefault may be set to FALSE to prevent loading of the message catalog -for the given locale containing the translations of standard wxWindows messages. -This parameter would be rarely used in normal circumstances. -\end{itemize} - -The call of this function has several global side effects which you should -understand: first of all, the application locale is changed - note that this -will affect many of standard C library functions such as printf() or strftime(). -Second, this wxLocale object becomes the new current global locale for the -application and so all subsequent calls to wxGetTranslation() will try to -translate the messages using the message catalogs for this locale. - -Returns TRUE on success or FALSE if the given locale couldn't be set. - -\membersection{wxLocale::IsLoaded}\label{wxlocaleisloaded} - -\constfunc{bool}{IsLoaded}{\param{const char* }{domain}} - -Check if the given catalog is loaded, and returns TRUE if it is. - -According to GNU gettext tradition, each catalog -normally corresponds to 'domain' which is more or less the application name. - -See also: \helpref{AddCatalog}{wxlocaleaddcatalog} - -\membersection{wxLocale::GetName}\label{wxlocalegetname} - -\constfunc{const wxString\&}{GetName}{\void} - -Returns the current short name for the locale (as given to the constructor or -the Init() function). - -\membersection{wxLocale::GetString}\label{wxlocalegetstring} - -\constfunc{const char*}{GetString}{\param{const char }{*szOrigString}, \param{const char }{*szDomain = NULL}} - -Retrieves the translation for a string in all loaded domains unless the szDomain -parameter is specified (and then only this catalog/domain is searched). - -Returns original string if translation is not available -(in this case an error message is generated the first time -a string is not found; use \helpref{wxLogNull}{wxlogoverview} to suppress it). - -\wxheading{Remarks} - -Domains are searched in the last to first order, i.e. catalogs -added later override those added before. - diff --git a/docs/latex/wx/log.tex b/docs/latex/wx/log.tex deleted file mode 100644 index e789c37132..0000000000 --- a/docs/latex/wx/log.tex +++ /dev/null @@ -1,191 +0,0 @@ -\section{\class{wxLog}}\label{wxlog} - -wxLog class defines the interface for the {\it log targets} used by wxWindows -logging functions as explained in the \helpref{wxLog overview}{wxlogoverview}. -The only situations when you need to directly use this class is when you want -to derive your own log target because the existing ones don't satisfy your -needs. Another case is if you wish to customize the behaviour of the standard -logging classes (all of which respect the wxLog settings): for example, set -which trace messages are logged and which are not or change (or even remove -completely) the timestamp on the messages. - -Otherwise, it is completely hidden behind the {\it wxLogXXX()} functions and -you may not even know about its existence. - -See \helpref{log overview}{wxlogoverview} for the descriptions of wxWindows -logging facilities. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Static functions} - -The functions in this section work with and manipulate the active log target. -The {\it OnLog()} is called by the {\it wxLogXXX()} functions and invokes the -{\it DoLog()} of the active log target if any. Get/Set methods are used to -install/query the current active target and, finally, {\it -DontCreateOnDemand()} disables the automatic creation of a standard log target -if none actually exists. It is only useful when the application is terminating -and shouldn't be used in other situations because it may easily lead to a loss -of messages. - -\helpref{OnLog}{wxlogonlog}\\ -\helpref{GetActiveTarget}{wxloggetactivetarget}\\ -\helpref{SetActiveTarget}{wxlogsetactivetarget}\\ -\helpref{DontCreateOnDemand}{wxlogdontcreateondemand} - -\membersection{Message buffering} - -Some of wxLog implementations, most notably the standard -wxLogGui class, buffer the messages (for example, to avoid -showing the user a zillion of modal message boxes one after another - which -would be really annoying). {\it Flush()} shows them all and clears the buffer -contents. Although this function doesn't do anything if the buffer is already -empty, {\it HasPendingMessages()} is also provided which allows to explicitly -verify it. - -\helpref{Flush}{wxlogflush}\\ -\helpref{HasPendingMessages}{haspendingmessages} - -\membersection{Customization}\label{wxlogcustomization} - -The functions below allow some limited customization of wxLog behaviour -without writing a new log target class (which, aside of being a matter of -several minutes, allows you to do anything you want). - -The verbose messages are the trace messages which are not disabled in the -release mode and are generated by {\it wxLogVerbose()}. They are not normally -shown to the user because they present little interest, but may be activated, -for example, in order to help the user find some program problem. - -As for the (real) trace messages, they come in different kinds: - -\begin{itemize}\itemsep=0pt -\item{wxTraceMemAlloc} for the messages about creating and deleting objects -\item{wxTraceMessages} for tracing the windowing system messages/events -\item{wxTraceResAlloc} for allocating and releasing the system ressources -\item{wxTraceRefCount} for reference counting related messages -\item{wxTraceOleCalls} for the OLE (or COM) method invocations (wxMSW only) -\item{other} the remaining bits are free for user-defined trace levels -\end{itemize} - -The trace mask is a bit mask which tells which (if any) of these trace -messages are going to be actually logged. For the trace message to appear -somewhere, all the bits in the mask used in the call to {\it wxLogTrace()} -function must be set in the current trace mask. For example, -\begin{verbatim} -wxLogTrace(wxTraceRefCount | wxTraceOle, "Active object ref count: %d", nRef); -\end{verbatim} -will do something only if the current trace mask contains both wxTraceRefCount -and wxTraceOle. - -Finally, the {\it wxLog::DoLog()} function automatically prepends a time stamp -to all the messages. The format of the time stamp may be changed: it can be -any string with \% specificators fully described in the documentation of the -standard {\it strftime()} function. For example, the default format is -"[\%d/\%b/\%y \%H:\%M:\%S] " which gives something like "[17/Sep/98 22:10:16] " -(without quotes) for the current date. Setting an empty string as the time -format disables timestamping of the messages completely. - -\helpref{SetVerbose}{wxlogsetverbose}\\ -\helpref{GetVerbose}{wxloggetverbose}\\ -\helpref{SetTimestamp}{wxlogsettimestamp}\\ -\helpref{GetTimestamp}{wxloggettimestamp}\\ -\helpref{SetTraceMask}{wxlogsettracemask}\\ -\helpref{GetTraceMask}{wxloggettracemask} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{wxLog::OnLog}\label{wxlogonlog} - -\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}} - -Forwards the message at specified level to the {\it DoLog()} function of the -active log target if there is any, does nothing otherwise. - -\membersection{wxLog::GetActiveTarget}\label{wxloggetactivetarget} - -\func{static wxLog *}{GetActiveTarget}{\void} - -Returns the pointer to the active log target (may be NULL). - -\membersection{wxLog::SetActiveTarget}\label{wxlogsetactivetarget} - -\func{static wxLog *}{SetActiveTarget}{\param{wxLog * }{ logtarget}} - -Sets the specified log target as the active one. Returns the pointer to the -previous active log target (may be NULL). - -\membersection{wxLog::DontCreateOnDemand}\label{wxlogdontcreateondemand} - -\func{static void}{DontCreateOnDemand}{\void} - -Instructs wxLog to not create new log targets on the fly if there is none -currently. (Almost) for internal use only. - -\membersection{wxLog::Flush}\label{wxlogflush} - -\func{virtual void}{Flush}{\void} - -Shows all the messages currently in buffer and clears it. If the buffer -is already empty, nothing happens. - -\membersection{wxLog::HasPendingMessages}\label{haspendingmessages} - -\constfunc{bool}{HasPendingMessages}{\void} - -Returns true if there are any messages in the buffer (not yet shown to the -user). (Almost) for internal use only. - -\membersection{wxLog::SetVerbose}\label{wxlogsetverbose} - -\func{void}{SetVerbose}{\param{bool }{ verbose = TRUE}} - -Activates or desactivates verbose mode in which the verbose messages are -logged as the normal ones instead of being silently dropped. - -\membersection{wxLog::GetVerbose}\label{wxloggetverbose} - -\constfunc{bool}{GetVerbose}{\void} - -Returns whether the verbose mode is currently active. - -\membersection{wxLog::SetTimestamp}\label{wxlogsettimestamp} - -\func{void}{SetTimestamp}{\param{const char * }{ format}} - -Sets the timestamp format prepended by the default log targets to all -messages. The string may contain any normal characters as well as \% -prefixed format specificators, see {\it strftime()} manual for details. -Passing a null value (not empty string) to this function disables message timestamping. - -\membersection{wxLog::GetTimestamp}\label{wxloggettimestamp} - -\constfunc{const char *}{GetTimestamp}{\void} - -Returns the current timestamp format string. - -\membersection{wxLog::SetTraceMask}\label{wxlogsettracemask} - -\func{static void}{SetTraceMask}{\param{wxTraceMask }{ mask}} - -Sets the trace mask, see \helpref{Customization}{wxlogcustomization} -section for details. - -\membersection{wxLog::GetTraceMask}\label{wxloggettracemask} - -Returns the current trace mask, see \helpref{Customization}{wxlogcustomization} section -for details. - diff --git a/docs/latex/wx/longlong.tex b/docs/latex/wx/longlong.tex deleted file mode 100644 index 948c69903e..0000000000 --- a/docs/latex/wx/longlong.tex +++ /dev/null @@ -1,17 +0,0 @@ -\section{\class{wxLongLong}}\label{wxlonglong} - -This class represents a signed 64 bit long number. It is implemented using the -native 64 bit type where available (machines with 64 bit longs or compilers -which have (an analog of) {\it long long} type) and uses the emulation code in -the other cases which ensures that it is the most efficient solution for -working with 64 bit integers independently of the architecture. - -wxLongLong defines all usual arithmetic operations such as addition, -substraction, bitwise shifts and logical operations as well as multiplication -and division (not yet for the machines without native {\it long long}). It -also has operators for implicit construction from and conversion to the native -{\it long long} type if it exists and {\it long}. - -You would usually use this type in exactly the same manner as any other -(built-in) arithmetic type. - diff --git a/docs/latex/wx/manual.tex b/docs/latex/wx/manual.tex deleted file mode 100644 index 1a718b141a..0000000000 --- a/docs/latex/wx/manual.tex +++ /dev/null @@ -1,138 +0,0 @@ -\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report} -% JACS: doesn't make it through Tex2RTF, sorry. I'll put it into texhelp.sty -% since Tex2RTF doesn't parse it. -% BTW, style MUST be report for it to work for Tex2RTF. -%KB: -%\addtolength{\textwidth}{1in} -%\addtolength{\oddsidemargin}{-0.5in} -%\addtolength{\topmargin}{-0.5in} -%\addtolength{\textheight}{1in} -%\sloppy -%end of my changes -\newcommand{\indexit}[1]{#1\index{#1}}% -\newcommand{\pipe}[0]{$\|$\ }% -\definecolour{black}{0}{0}{0}% -\definecolour{cyan}{0}{255}{255}% -\definecolour{green}{0}{255}{0}% -\definecolour{magenta}{255}{0}{255}% -\definecolour{red}{255}{0}{0}% -\definecolour{blue}{0}{0}{200}% -\definecolour{yellow}{255}{255}{0}% -\definecolour{white}{255}{255}{255}% -% -\input psbox.tex -% Remove this for processing with dvi2ps instead of dvips -%\special{!/@scaleunit 1 def} -\parskip=10pt -\parindent=0pt -\title{User Manual for wxWindows 2.1: a portable C++ GUI toolkit} -\winhelponly{\author{by Julian Smart et al -%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$} -}} -\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin et al} -\date{August 6th 1999} -} -\makeindex -\begin{document} -\maketitle -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage}% -\pagenumbering{roman} -\tableofcontents - -% A special table of contents for the WinHelp manual -\begin{comment} -\winhelponly{ -\chapter*{wxWindows class library reference}\label{winhelpcontents} - -\center{ -%\image{}{wxwin.wmf} -}% - -\sethotspotcolour{off}% -\sethotspotunderline{on}% -\large{ -\image{}{cpp.bmp} \helpref{Alphabetical class reference}{classref} - -\image{}{shelves.bmp} \helpref{Classes by category}{classesbycat} - -\image{}{book1.bmp} \helpref{Topic overviews}{overviews} - -\image{}{hand1.bmp} \helpref{Guide to wxWindows}{wxwinchapters} -} -\sethotspotcolour{on}% -\sethotspotunderline{on}% - -\chapter*{Overview of wxWindows}\label{wxwinchapters} - -\helpref{Introduction}{introduction}\\ -%\helpref{Resource guide}{resguide}\\ -%\helpref{Comparison with other GUI models}{comparison}\\ -%\helpref{Multi-platform development with wxWindows}{multiplat}\\ -%\helpref{Tutorial}{tutorial}\\ -\helpref{The wxWindows resource system}{resourceformats}\\ -\helpref{Utilities}{utilities}\\ -\helpref{Programming strategies}{strategies}\\ -\helpref{Bugs and future directions}{bugs}\\ -\helpref{References}{bibliography} -} -\end{comment} - -\chapter*{Copyright notice} -\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\begin{center} -Copyright \copyright{} 1998 Julian Smart, Robert Roebling and other -members of the wxWindows team\\ -Portions \copyright{} 1996 Artificial Intelligence Applications Institute\\ -\end{center} - -Please see the wxWindows licence files (preamble.txt, lgpl.txt, gpl.txt, licence.txt, -licendoc.txt) for conditions of software and documentation use. - -\input{body.tex} -\helpinput{classes.tex} -\helpinput{category.tex} -\helpinput{topics.tex} -\helpinput{wxhtml.tex} -\helpinput{wxPython.tex} - -\begin{comment} -\newpage - -% Puts books in the bibliography without needing to cite them in the -% text -\nocite{helpbook}% -\nocite{wong93}% -\nocite{pree94}% -\nocite{gamma95}% -\nocite{smart95a}% -\nocite{smart95b}% - -\bibliography{refs} -\addcontentsline{toc}{chapter}{Bibliography} -\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\end{comment} - -\newpage -% Note: In RTF, the \printindex must come before the -% change of header/footer, since the \printindex inserts -% the RTF \sect command which divides one chapter from -% the next. -\rtfonly{\printindex -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -} -% In Latex, it must be this way around (I think) -\latexonly{\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -\printindex -} - -\end{document} diff --git a/docs/latex/wx/mask.tex b/docs/latex/wx/mask.tex deleted file mode 100644 index cfe8fc68d1..0000000000 --- a/docs/latex/wx/mask.tex +++ /dev/null @@ -1,84 +0,0 @@ -\section{\class{wxMask}}\label{wxmask} - -This class encapsulates a monochrome mask bitmap, where the masked area is black and -the unmasked area is white. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -A mask may be associated with a \helpref{wxBitmap}{wxbitmap}. It is used in \helpref{wxDC::Blit}{wxdcblit} when -the source device context is a \helpref{wxMemoryDC}{wxmemorydc} with wxBitmap selected into it that -contains a mask. - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxDC::Blit}{wxdcblit}, \helpref{wxMemoryDC}{wxmemorydc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMask::wxMask}\label{wxmaskconstr} - -\func{}{wxMask}{\void} - -Default constructor. - -\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}} - -Constructs a mask from a monochrome bitmap. - -\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}, \param{const wxColour\& }{colour}} - -Constructs a mask from a bitmap and a colour that indicates the background. Not -yet implemented for GTK. - -\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}, \param{int}{ index}} - -Constructs a mask from a bitmap and a palette index that indicates the background. Not -yet implemented for GTK. - -\wxheading{Parameters} - -\docparam{bitmap}{A valid bitmap.} - -\docparam{colour}{A colour specifying the transparency RGB values.} - -\docparam{index}{Index into a palette, specifying the transparency colour.} - -\membersection{wxMask::\destruct{wxMask}} - -\func{}{\destruct{wxMask}}{\void} - -Destroys the wxMask object and the underlying bitmap data. - -\membersection{wxMask::Create}\label{wxmaskcreate} - -\func{bool}{Create}{\param{const wxBitmap\& }{bitmap}} - -Constructs a mask from a monochrome bitmap. - -\func{bool}{Create}{\param{const wxBitmap\& }{bitmap}, \param{const wxColour\& }{colour}} - -Constructs a mask from a bitmap and a colour that indicates the background. Not -yet implemented for GTK. - -\func{bool}{Create}{\param{const wxBitmap\& }{bitmap}, \param{int}{ index}} - -Constructs a mask from a bitmap and a palette index that indicates the background. Not -yet implemented for GTK. - -\wxheading{Parameters} - -\docparam{bitmap}{A valid bitmap.} - -\docparam{colour}{A colour specifying the transparency RGB values.} - -\docparam{index}{Index into a palette, specifying the transparency colour.} - - diff --git a/docs/latex/wx/mdi.tex b/docs/latex/wx/mdi.tex deleted file mode 100644 index 64d7d75eb9..0000000000 --- a/docs/latex/wx/mdi.tex +++ /dev/null @@ -1,531 +0,0 @@ -\section{\class{wxMDIChildFrame}}\label{wxmdichildframe} - -An MDI child frame is a frame that can only exist on a \helpref{wxMDIClientWindow}{wxmdiclientwindow}, -which is itself a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.} -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only; -for Windows, it is implicit in wxTHICK\_FRAME).} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).} -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -Although internally an MDI child frame is a child of the MDI client window, in wxWindows -you create it as a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}. You can usually -forget that the client window exists. - -MDI child frames are clipped to the area of the MDI client window, and may be iconized -on the client window. - -You can associate a menubar with a child frame as usual, although an MDI child doesn't display -its menubar under its own title bar. The MDI parent frame's menubar will be changed to -reflect the currently active child frame. If there are currently no children, the parent -frame's own menubar will be displayed. - -\wxheading{See also} - -\helpref{wxMDIClientWindow}{wxmdiclientwindow}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp -\helpref{wxFrame}{wxframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMDIChildFrame::wxMDIChildFrame}\label{wxmdichildframeconstr} - -\func{}{wxMDIChildFrame}{\void} - -Default constructor. - -\func{}{wxMDIChildFrame}{\param{wxMDIParentFrame* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This should not be NULL.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxMDIChildFrame}{wxmdichildframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -None. - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Create}{wxmdichildframecreate} - -\membersection{wxMDIChildFrame::\destruct{wxMDIChildFrame}} - -\func{}{\destruct{wxMDIChildFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxMDIChildFrame::Activate}\label{wxmdichildframeactivate} - -\func{void}{Activate}{\void} - -Activates this MDI child frame. - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize},\rtfsp -\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore} - -\membersection{wxMDIChildFrame::Create}\label{wxmdichildframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxMDIChildFrame::wxMDIChildFrame}{wxmdichildframeconstr}\rtfsp -for further details. - -\membersection{wxMDIChildFrame::Maximize}\label{wxmdichildframemaximize} - -\func{void}{Maximize}{\void} - -Maximizes this MDI child frame. - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp -\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore} - -\membersection{wxMDIChildFrame::Restore}\label{wxmdichildframerestore} - -\func{void}{Restore}{\void} - -Restores this MDI child frame (unmaximizes). - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp -\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize} - - -\section{\class{wxMDIClientWindow}}\label{wxmdiclientwindow} - -An MDI client window is a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}, and manages zero or -more \helpref{wxMDIChildFrame}{wxmdichildframe} objects. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -The client window is the area where MDI child windows exist. It doesn't have to cover the whole -parent frame; other windows such as toolbars and a help window might coexist with it. -There can be scrollbars on a client window, which are controlled by the parent window style. - -The {\bf wxMDIClientWindow} class is usually adequate without further derivation, and it is created -automatically when the MDI parent frame is created. If the application needs to derive a new class, -the function \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} must be -overridden in order to give an opportunity to use a different class of client window. - -Under Windows 95, the client window will automatically have a sunken border style when -the active child is not maximized, and no border style when a child is maximized. - -\wxheading{See also} - -\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp -\helpref{wxFrame}{wxframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMDIClientWindow::wxMDIClientWindow}\label{wxmdiclientwindowconstr} - -\func{}{wxMDIClientWindow}{\void} - -Default constructor. - -\func{}{wxMDIClientWindow}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent.} - -\docparam{style}{The window style. Currently unused.} - -\wxheading{Remarks} - -The second style of constructor is called within \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframeconstr},\rtfsp -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} - -\membersection{wxMDIClientWindow::\destruct{wxMDIClientWindow}} - -\func{}{\destruct{wxMDIClientWindow}}{\void} - -Destructor. - -\membersection{wxMDIClientWindow::CreateClient}\label{wxmdiclientwindowcreateclient} - -\func{bool}{CreateClient}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}} - -Used in two-step frame construction. See \helpref{wxMDIClientWindow::wxMDIClientWindow}{wxmdiclientwindowconstr}\rtfsp -for further details. - -\section{\class{wxMDIParentFrame}}\label{wxmdiparentframe} - -An MDI (Multiple Document Interface) parent frame is a window which can contain -MDI child frames in its own `desktop'. It is a convenient way to avoid window clutter, -and is used in many popular Windows applications, such as Microsoft Word(TM). - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -There may be multiple MDI parent frames in a single application, but this probably only makes sense -within programming development environments. - -Child frames may be either \helpref{wxMDIChildFrame}{wxmdichildframe}, or \helpref{wxFrame}{wxframe}. - -An MDI parent frame always has a \helpref{wxMDIClientWindow}{wxmdiclientwindow} associated with it, which -is the parent for MDI client frames. -This client window may be resized to accomodate non-MDI windows, as seen in Microsoft Visual C++ (TM) and -Microsoft Publisher (TM), where a documentation window is placed to one side of the workspace. - -MDI remains popular despite dire warnings from Microsoft itself that MDI is an obsolete -user interface style. - -The implementation is native in Windows, and simulated under Motif. Under Motif, -the child window frames will often have a different appearance from other frames -because the window decorations are simulated. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.} -\twocolitem{\windowstyle{wxHSCROLL}}{Displays a horizontal scrollbar in the {\it client window}, allowing -the user to view child frames that are off the current view.} -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only; -for Windows, it is implicit in wxTHICK\_FRAME).} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).} -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).} -\twocolitem{\windowstyle{wxVSCROLL}}{Displays a vertical scrollbar in the {\it client window}, allowing -the user to view child frames that are off the current view.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIClientWindow}{wxmdiclientwindow},\rtfsp -\helpref{wxFrame}{wxframe}, \helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMDIParentFrame::wxMDIParentFrame}\label{wxmdiparentframeconstr} - -\func{}{wxMDIParentFrame}{\void} - -Default constructor. - -\func{}{wxMDIParentFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This should be NULL.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxMDIParentFrame}{wxmdiparentframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -During the construction of the frame, the client window will be created. To use a different class -from \helpref{wxMDIClientWindow}{wxmdiclientwindow}, override\rtfsp -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}. - -Under Windows 95, the client window will automatically have a sunken border style when -the active child is not maximized, and no border style when a child is maximized. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Create}{wxmdiparentframecreate},\rtfsp -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} - -\membersection{wxMDIParentFrame::\destruct{wxMDIParentFrame}} - -\func{}{\destruct{wxMDIParentFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxMDIParentFrame::ActivateNext}\label{wxmdiparentframeactivatenext} - -\func{void}{ActivateNext}{\void} - -Activates the MDI child following the currently active one. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::ActivatePrevious}{wxmdiparentframeactivateprevious} - -\membersection{wxMDIParentFrame::ActivatePrevious}\label{wxmdiparentframeactivateprevious} - -\func{void}{ActivatePrevious}{\void} - -Activates the MDI child preceding the currently active one. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::ActivateNext}{wxmdiparentframeactivatenext} - - -\membersection{wxMDIParentFrame::ArrangeIcons}\label{wxmdiparentframearrangeicons} - -\func{void}{ArrangeIcons}{\void} - -Arranges any iconized (minimized) MDI child windows. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp -\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile} - -\membersection{wxMDIParentFrame::Cascade}\label{wxmdiparentframecascade} - -\func{void}{Cascade}{\void} - -Arranges the MDI child windows in a cascade. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile},\rtfsp -\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons} - -\membersection{wxMDIParentFrame::Create}\label{wxmdiparentframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframeconstr}\rtfsp -for further details. - -\membersection{wxMDIParentFrame::GetClientSize}\label{wxmdiparentframegetclientsize} - -\constfunc{virtual void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}} - -This gets the size of the frame `client area' in pixels. - -\wxheading{Parameters} - -\docparam{width}{Receives the client width in pixels.} - -\docparam{height}{Receives the client height in pixels.} - -\wxheading{Remarks} - -The client area is the area which may be drawn on by the programmer, excluding title bar, border, status bar, -and toolbar if present. - -If you wish to manage your own toolbar (or perhaps you have more than one), -provide an {\bf OnSize} event handler. Call {\bf GetClientSize} to -find how much space there is for your windows and don't forget to set the size and position -of the MDI client window as well as your toolbar and other windows (but not the status bar). - -If you have set a toolbar with \helpref{wxMDIParentFrame::SetToolbar}{wxmdiparentframesettoolbar}, -the client size returned will have subtracted the toolbar height. However, the available positions -for the client window and other windows of the frame do not start at zero - you must add the toolbar height. - -The position and size of the status bar and toolbar (if known to the frame) are always managed -by {\bf wxMDIParentFrame}, regardless of what behaviour is defined in your {\bf OnSize} event handler. -However, the client window position and size are always set in {\bf OnSize}, so if you override this -event handler, make sure you deal with the client window. - -You do not have to manage the size and position of MDI child windows, since they are managed -automatically by the client window. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp -\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar},\rtfsp -\helpref{wxWindow}{wxwindowonsize},\rtfsp -\helpref{wxMDIClientWindow}{wxmdiclientwindow} - - -\pythonnote{The wxPython version of this method takes no arguments and -returns a tuple containing width and height.} - -\membersection{wxMDIParentFrame::GetActiveChild}\label{wxmdiparentframegetactivechild} - -\constfunc{wxMDIChildFrame*}{GetActiveChild}{\void} - -Returns a pointer to the active MDI child, if there is one. - -\membersection{wxMDIParentFrame::GetClientWindow}\label{wxmdiparentframegetclientwindow} - -\constfunc{wxMDIClientWindow*}{GetClientWindow}{\void} - -Returns a pointer to the client window. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} - -\membersection{wxMDIParentFrame::GetToolBar}\label{wxmdiparentframegettoolbar} - -\constfunc{virtual wxWindow*}{GetToolBar}{\void} - -Returns the window being used as the toolbar for this frame. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar} - -\membersection{wxMDIParentFrame::OnCreateClient}\label{wxmdiparentframeoncreateclient} - -\func{virtual wxMDIClientWindow*}{OnCreateClient}{\void} - -Override this to return a different kind of client window. - -\wxheading{Remarks} - -You might wish to derive from \helpref{wxMDIClientWindow}{wxmdiclientwindow} in order -to implement different erase behaviour, for example, such as painting a bitmap -on the background. - -Note that it is probably impossible to have a client window that scrolls as well as painting -a bitmap or pattern, since in {\bf OnScroll}, the scrollbar positions always return zero. -(Solutions to: \verb$julian.smart@ukonline.co.uk$). - -\wxheading{See also} - -\helpref{wxMDIParentFrame::GetClientWindow}{wxmdiparentframegetclientwindow},\rtfsp -\helpref{wxMDIClientWindow}{wxmdiclientwindow} - -\membersection{wxMDIParentFrame::SetToolBar}\label{wxmdiparentframesettoolbar} - -\func{virtual void}{SetToolBar}{\param{wxWindow*}{ toolbar}} - -Sets the window to be used as a toolbar for this -MDI parent window. It saves the application having to manage the positioning -of the toolbar MDI client window. - -\wxheading{Parameters} - -\docparam{toolbar}{Toolbar to manage.} - -\wxheading{Remarks} - -When the frame is resized, the toolbar is resized to be the width of -the frame client area, and the toolbar height is kept the same. - -The parent of the toolbar must be this frame. - -If you wish to manage your own toolbar (or perhaps you have more than one), -don't call this function, and instead manage your subwindows and the MDI client window by -providing an {\bf OnSize} event handler. Call \helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize} to -find how much space there is for your windows. - -Note that SDI (normal) frames and MDI child windows must always have their -toolbars managed by the application. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp -\helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize} - -\membersection{wxMDIParentFrame::Tile}\label{wxmdiparentframetile} - -\func{void}{Tile}{\void} - -Tiles the MDI child windows. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp -\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons} - - diff --git a/docs/latex/wx/memorydc.tex b/docs/latex/wx/memorydc.tex deleted file mode 100644 index 9ae8c50927..0000000000 --- a/docs/latex/wx/memorydc.tex +++ /dev/null @@ -1,61 +0,0 @@ -\section{\class{wxMemoryDC}}\label{wxmemorydc} - -A memory device context provides a means to draw graphics onto a bitmap. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -A bitmap must be selected into the new memory DC before it may be used -for anything. Typical usage is as follows: - -\begin{verbatim} - // Create a memory DC - wxMemoryDC temp_dc; - temp_dc.SelectObject(test_bitmap); - - // We can now draw into the memory DC... - // Copy from this DC to another DC. - old_dc.Blit(250, 50, BITMAP_WIDTH, BITMAP_HEIGHT, temp_dc, 0, 0); -\end{verbatim} - -Note that the memory DC {\it must} be deleted (or the bitmap selected out of it) before a bitmap -can be reselected into another memory DC. - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxDC}{wxdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMemoryDC::wxMemoryDC} - -\func{}{wxMemoryDC}{\void} - -Constructs a new memory device context. - -Use the {\it Ok} member to test whether the constructor was successful -in creating a useable device context. Don't forget to select a bitmap -into the DC before drawing on it. - -\membersection{wxMemoryDC::SelectObject} - -\func{}{SelectObject}{\param{const wxBitmap\& }{bitmap}} - -Selects the given bitmap into the device context, to use as the memory -bitmap. Selecting the bitmap into a memory DC allows you to draw into -the DC (and therefore the bitmap) and also to use {\bf Blit} to copy -the bitmap to a window. For this purpose, you may find \helpref{wxDC::DrawIcon}{wxdcdrawicon}\rtfsp -easier to use instead. - -If the argument is wxNullBitmap (or some other uninitialised wxBitmap) the current bitmap is selected out of the device -context, and the original bitmap restored, allowing the current bitmap to -be destroyed safely. - diff --git a/docs/latex/wx/menu.tex b/docs/latex/wx/menu.tex deleted file mode 100644 index 136021b3ed..0000000000 --- a/docs/latex/wx/menu.tex +++ /dev/null @@ -1,698 +0,0 @@ -\section{\class{wxMenu}}\label{wxmenu} - -A menu is a popup (or pull down) list of items, one of which may be -selected before the menu goes away (clicking elsewhere dismisses the -menu). Menus may be used to construct either menu bars or popup menus. - -A menu item has an integer ID associated with it which can be used to -identify the selection, or to change the menu item in some way. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event handling} - -If the menu is part of a menubar, then \helpref{wxMenuBar}{wxmenubar} event processing is used. - -With a popup menu, there is a variety of ways to handle a menu selection event -(wxEVT\_COMMAND\_MENU\_SELECTED). - -\begin{enumerate}\itemsep=0pt -\item Define a callback of type wxFunction, which you pass to the wxMenu constructor. -The callback takes a reference to the menu, and a reference to a \helpref{wxCommandEvent}{wxcommandevent}. -\item Derive a new class from wxMenu and define event table entries using the EVT\_MENU macro. -\item Set a new event handler for wxMenu, using an object whose class has EVT\_MENU entries. -\item Provide EVT\_MENU handlers in the window which pops up the menu, or in an ancestor of -this window. -\end{enumerate} - -\wxheading{See also} - -\helpref{wxMenuBar}{wxmenubar}, \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMenu::wxMenu}\label{wxmenuconstr} - -\func{}{wxMenu}{\param{const wxString\& }{title = ""}, - \param{const wxFunction}{ func = NULL}\param{long}{ style = 0}} - -Constructs a wxMenu object. - -\wxheading{Parameters} - -\docparam{title}{A title for the popup menu: the empty string denotes no title.} - -\docparam{func}{A callback function if the menu is used as a popup using \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu}.} - -\docparam{style}{If set to \tt{wxMENU_TEAROFF}, the menu will be detachable.} - -\pythonnote{The wxPython version of the \tt{wxMenu} constructor -doesn't accept the callback argument because of reference counting -issues. There is a specialized wxMenu constructor called -\tt{wxPyMenu} which does and can be used for PopupMenus when callbacks -are needed. You must retain a reference to the menu while useing it -otherwise your callback function will get dereferenced when the menu -does. -} - -\func{}{wxMenu}{\param{long}{ style }} - -Constructs a wxMenu object. - -\wxheading{Parameters} -\docparam{style}{If set to \tt{wxMENU_TEAROFF}, the menu will be detachable.} - -\membersection{wxMenu::\destruct{wxMenu}} - -\func{}{\destruct{wxMenu}}{\void} - -Destructor, destroying the menu. - -Note: under Motif, a popup menu must have a valid parent (the window -it was last popped up on) when being destroyed. Therefore, make sure -you delete or re-use the popup menu {\it before} destroying the -parent window. Re-use in this context means popping up the menu on -a different window from last time, which causes an implicit destruction -and recreation of internal data structures. - -\membersection{wxMenu::Append}\label{wxmenuappend} - -\func{void}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""},\rtfsp -\param{const bool}{ checkable = FALSE}} - -Adds a string item to the end of the menu. - -\func{void}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{wxMenu *}{subMenu},\rtfsp -\param{const wxString\& }{helpString = ""}} - -Adds a pull-right submenu to the end of the menu. - -\func{void}{Append}{\param{wxMenuItem*}{ menuItem}} - -Adds a menu item object. You can specify various extra properties of a menu item this way, -such as bitmaps and fonts. - -\wxheading{Parameters} - -\docparam{id}{The menu command identifier.} - -\docparam{item}{The string to appear on the menu item.} - -\docparam{menu}{Pull-right submenu.} - -\docparam{checkable}{If TRUE, this item is checkable.} - -\docparam{helpString}{An optional help string associated with the item. -By default, \helpref{wxFrame::OnMenuHighlight}{wxframeonmenuhighlight} displays -this string in the status line.} - -\docparam{menuItem}{A menuitem object. It will be owned by the wxMenu object after this function -is called, so do not delete it yourself.} - -\wxheading{Remarks} - -This command can be used after the menu has been shown, as well as on initial -creation of a menu or menubar. - -\wxheading{See also} - -\helpref{wxMenu::AppendSeparator}{wxmenuappendseparator}, \helpref{wxMenu::SetLabel}{wxmenusetlabel}, \helpref{wxMenu::GetHelpString}{wxmenugethelpstring},\rtfsp -\helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenuItem}{wxmenuitem} - - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{Append(id, string, helpStr="", checkable=FALSE)}}{} -\twocolitem{\bf{AppendMenu(id, string, aMenu, helpStr="")}}{} -\twocolitem{\bf{AppendItem(aMenuItem)}}{} -\end{twocollist}} -} - - -\membersection{wxMenu::AppendSeparator}\label{wxmenuappendseparator} - -\func{void}{AppendSeparator}{\void} - -Adds a separator to the end of the menu. - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend} - -\membersection{wxMenu::Break}\label{wxmenubreak} - -\func{void}{Break}{\void} - -Inserts a break in a menu, causing the next appended item to appear in a new column. - -\membersection{wxMenu::Check}\label{wxmenucheck} - -\func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}} - -Checks or unchecks the menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{check}{If TRUE, the item will be checked, otherwise it will be unchecked.} - -\wxheading{See also} - -\helpref{wxMenu::IsChecked}{wxmenuischecked} - -\membersection{wxMenu::Enable}\label{wxmenuenable} - -\func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}} - -Enables or disables (greys out) a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{enable}{TRUE to enable the menu item, FALSE to disable it.} - -\wxheading{See also} - -\helpref{wxMenu::IsEnabled}{wxmenuisenabled} - -\membersection{wxMenu::FindItem}\label{wxmenufinditem} - -\constfunc{int}{FindItem}{\param{const wxString\& }{itemString}} - -Finds the menu item id for a menu item string. - -\wxheading{Parameters} - -\docparam{itemString}{Menu item string to find.} - -\wxheading{Return value} - -Menu item identifier, or -1 if none is found. - -\wxheading{Remarks} - -Any special menu codes are stripped out of source and target strings -before matching. - -\wxheading{See also} - -\helpref{wxMenu::FindItemForId}{wxmenufinditemforid} - -\membersection{wxMenu::FindItemForId}\label{wxmenufinditemforid} - -\constfunc{wxMenuItem*}{FindItemForId}{\param{int}{ id}, \param{wxMenu **}{ menuForItem = NULL}} - -Finds the menu item object associated with the given menu item identifier. - -\wxheading{Parameters} - -\docparam{id}{Menu item identifier.} -\docparam{menuForItem}{will be filled with the menu for this item if not NULL.} - -\wxheading{Return value} - -Returns the menu item object, or NULL if it is not found. - -\wxheading{See also} - -\helpref{wxMenu::FindItem}{wxmenufinditem} - -\membersection{wxMenu::GetHelpString}\label{wxmenugethelpstring} - -\constfunc{wxString}{GetHelpString}{\param{int}{ id}} - -Returns the help string associated with a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The help string, or the empty string if there is no help string or the -item was not found. - -\wxheading{See also} - -\helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenu::Append}{wxmenuappend} - -\membersection{wxMenu::GetLabel}\label{wxmenugetlabel} - -\constfunc{wxString}{GetLabel}{\param{int}{ id}} - -Returns a menu item label. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The item label, or the empty string if the item was not found. - -\wxheading{See also} - -\helpref{wxMenu::SetLabel}{wxmenusetlabel} - -\membersection{wxMenu::GetTitle}\label{wxmenugettitle} - -\constfunc{wxString}{GetTitle}{\void} - -Returns the title of the menu. - -\wxheading{Remarks} - -This is relevant only to popup menus. - -\wxheading{See also} - -\helpref{wxMenu::SetTitle}{wxmenusettitle} - -\membersection{wxMenu::IsChecked}\label{wxmenuischecked} - -\constfunc{bool}{IsChecked}{\param{int}{ id}} - -Determines whether a menu item is checked. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -TRUE if the menu item is checked, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxMenu::Check}{wxmenucheck} - -\membersection{wxMenu::IsEnabled}\label{wxmenuisenabled} - -\constfunc{bool}{IsEnabled}{\param{int}{ id}} - -Determines whether a menu item is enabled. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -TRUE if the menu item is enabled, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxMenu::Enable}{wxmenuenable} - -\membersection{wxMenu::SetHelpString}\label{wxmenusethelpstring} - -\func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}} - -Sets an item's help string. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{helpString}{The help string to set.} - -\wxheading{See also} - -\helpref{wxMenu::GetHelpString}{wxmenugethelpstring} - -\membersection{wxMenu::SetLabel}\label{wxmenusetlabel} - -\func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}} - -Sets the label of a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{label}{The menu item label to set.} - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend}, \helpref{wxMenu::GetLabel}{wxmenugetlabel} - -\membersection{wxMenu::SetTitle}\label{wxmenusettitle} - -\func{void}{SetTitle}{\param{const wxString\& }{title}} - -Sets the title of the menu. - -\wxheading{Parameters} - -\docparam{title}{The title to set.} - -\wxheading{Remarks} - -This is relevant only to popup menus. - -\wxheading{See also} - -\helpref{wxMenu::SetTitle}{wxmenusettitle} - -\membersection{wxMenu::UpdateUI}\label{wxmenuupdateui} - -\constfunc{void}{UpdateUI}{\param{wxEvtHandler*}{ source = NULL}} - -Sends events to {\it source} (or owning window if NULL) to update the -menu UI. This is called just before the menu is popped up with \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu}, but -the application may call it at other times if required. - -\wxheading{See also} - -\helpref{wxUpdateUIEvent}{wxupdateuievent} - -\section{\class{wxMenuBar}}\label{wxmenubar} - -A menu bar is a series of menus accessible from the top of a frame. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event handling} - -To respond to a menu selection, provide a handler for EVT\_MENU, in the frame -that contains the menu bar. If you have a toolbar which uses the same identifiers -as your EVT\_MENU entries, events from the toolbar will also be processed by your -EVT\_MENU event handlers. - -Note that menu commands (and UI update events for menus) are first sent to -the focus window within the frame. If no window within the frame has the focus, -then the events are sent directly to the frame. This allows command and UI update -handling to be processed by specific windows and controls, and not necessarily -by the application frame. - -\wxheading{See also} - -\helpref{wxMenu}{wxmenu}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMenuBar::wxMenuBar}\label{wxmenubarconstr} - -\func{void}{wxMenuBar}{\void} - -Default constructor. - -\func{void}{wxMenuBar}{\param{int}{ n}, \param{wxMenu*}{ menus[]}, \param{const wxString }{titles[]}} - -Construct a menu bar from arrays of menus and titles. - -\wxheading{Parameters} - -\docparam{n}{The number of menus.} - -\docparam{menus}{An array of menus. Do not use this array again - it now belongs to the -menu bar.} - -\docparam{titles}{An array of title strings. Deallocate this array after creating the menu bar.} - -\pythonnote{Only the default constructor is supported in wxPython. -Use wxMenuBar.Append instead.} - - -\membersection{wxMenuBar::\destruct{wxMenuBar}} - -\func{void}{\destruct{wxMenuBar}}{\void} - -Destructor, destroying the menu bar and removing it from the parent frame (if any). - -\membersection{wxMenuBar::Append}\label{wxmenubarappend} - -\func{void}{Append}{\param{wxMenu *}{menu}, \param{const wxString\& }{title}} - -Adds the item to the end of the menu bar. - -\wxheading{Parameters} - -\docparam{menu}{The menu to add. Do not deallocate this menu after calling {\bf Append}.} - -\docparam{title}{The title of the menu.} - -\membersection{wxMenuBar::Check}\label{wxmenubarcheck} - -\func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}} - -Checks or unchecks a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{check}{If TRUE, checks the menu item, otherwise the item is unchecked.} - -\wxheading{Remarks} - -Only use this when the menu bar has been associated -with a frame; otherwise, use the wxMenu equivalent call. - -\membersection{wxMenuBar::Enable}\label{wxmenubarenable} - -\func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}} - -Enables or disables (greys out) a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{enable}{TRUE to enable the item, FALSE to disable it.} - -\wxheading{Remarks} - -Only use this when the menu bar has been -associated with a frame; otherwise, use the wxMenu equivalent call. - -\membersection{wxMenuBar::EnableTop}\label{wxmenubarenabletop} - -\func{void}{EnableTop}{\param{int}{ pos}, \param{const bool}{ enable}} - -Enables or disables a whole menu. - -\wxheading{Parameters} - -\docparam{pos}{The position of the menu, starting from zero.} - -\docparam{enable}{TRUE to enable the menu, FALSE to disable it.} - -\wxheading{Remarks} - -Only use this when the menu bar has been -associated with a frame. - -\membersection{wxMenuBar::FindMenuItem}\label{wxmenubarfindmenuitem} - -\constfunc{int}{FindMenuItem}{\param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}} - -Finds the menu item id for a menu name/menu item string pair. - -\wxheading{Parameters} - -\docparam{menuString}{Menu title to find.} - -\docparam{itemString}{Item to find.} - -\wxheading{Return value} - -The menu item identifier, or -1 if none was found. - -\wxheading{Remarks} - -Any special menu codes are stripped out of source and target strings -before matching. - -\membersection{wxMenuBar::FindItemForId}\label{wxmenubarfinditemforid} - -\constfunc{wxMenuItem *}{FindItemForId}{\param{int}{ id}} - -Finds the menu item object associated with the given menu item identifier, - -\wxheading{Parameters} - -\docparam{id}{Menu item identifier.} - -\wxheading{Return value} - -The found menu item object, or NULL if one was not found. - -\membersection{wxMenuBar::GetHelpString}\label{wxmenubargethelpstring} - -\constfunc{wxString}{GetHelpString}{\param{int}{ id}} - -Gets the help string associated with the menu item identifer. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The help string, or the empty string if there was no help string or the menu item -was not found. - -\wxheading{See also} - -\helpref{wxMenuBar::SetHelpString}{wxmenubarsethelpstring} - -\membersection{wxMenuBar::GetLabel}\label{wxmenubargetlabel} - -\constfunc{wxString}{GetLabel}{\param{int}{ id}} - -Gets the label associated with a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The menu item label, or the empty string if the item was not found. - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\membersection{wxMenuBar::GetLabelTop}\label{wxmenubargetlabeltop} - -\constfunc{wxString}{GetLabelTop}{\param{int}{ pos}} - -Returns the label of a top-level menu. - -\wxheading{Parameters} - -\docparam{pos}{Position of the menu on the menu bar, starting from zero.} - -\wxheading{Return value} - -The menu label, or the empty string if the menu was not found. - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\wxheading{See also} - -\helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop} - -\membersection{wxMenuBar::GetMenu}\label{wxmenubargetmenu} - -\constfunc{wxMenu*}{GetMenu}{\param{int}{ menuIndex}} - -Returns the menu at {\it menuIndex} (zero-based). - -\membersection{wxMenuBar::GetMenuCount}\label{wxmenubargetmenucount} - -\constfunc{int}{GetMenuCount}{\void} - -Returns the number of menus in this menubar. - -\membersection{wxMenuBar::IsChecked}\label{wxmenubarischecked} - -\constfunc{bool}{IsChecked}{\param{int}{ id}} - -Determines whether an item is checked. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -TRUE if the item was found and is checked, FALSE otherwise. - -\membersection{wxMenuBar::IsEnabled}\label{wxmenubarisenabled} - -\constfunc{bool}{IsEnabled}{\param{int}{ id}} - -Determines whether an item is enabled. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -TRUE if the item was found and is enabled, FALSE otherwise. - -\membersection{wxMenuBar::SetHelpString}\label{wxmenubarsethelpstring} - -\func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}} - -Sets the help string associated with a menu item. - -\wxheading{Parameters} - -\docparam{id}{Menu item identifier.} - -\docparam{helpString}{Help string to associate with the menu item.} - -\wxheading{See also} - -\helpref{wxMenuBar::GetHelpString}{wxmenubargethelpstring} - -\membersection{wxMenuBar::SetLabel}\label{wxmenubarsetlabel} - -\func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}} - -Sets the label of a menu item. - -\wxheading{Parameters} - -\docparam{id}{Menu item identifier.} - -\docparam{label}{Menu item label.} - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\wxheading{See also} - -\helpref{wxMenuBar::GetLabel}{wxmenubargetlabel} - -\membersection{wxMenuBar::SetLabelTop}\label{wxmenubarsetlabeltop} - -\func{void}{SetLabelTop}{\param{int}{ pos}, \param{const wxString\& }{label}} - -Sets the label of a top-level menu. - -\wxheading{Parameters} - -\docparam{pos}{The position of a menu on the menu bar, starting from zero.} - -\docparam{label}{The menu label.} - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\wxheading{See also} - -\helpref{wxMenuBar::GetLabelTop}{wxmenubargetlabeltop} - - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/docs/latex/wx/menuevt.tex b/docs/latex/wx/menuevt.tex deleted file mode 100644 index 51cba035cf..0000000000 --- a/docs/latex/wx/menuevt.tex +++ /dev/null @@ -1,57 +0,0 @@ -\section{\class{wxMenuEvent}}\label{wxmenuevent} - -This class is used for a variety of menu-related events. Note that -these do not include menu command events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a menu event, use these event handler macros to direct input to member -functions that take a wxMenuEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MENU\_CHAR(func)}}{Process a wxEVT\_MENU\_CHAR event (a keypress -when a menu is showing). Windows only; not yet implemented.} -\twocolitem{{\bf EVT\_MENU\_INIT(func)}}{Process a wxEVT\_MENU\_INIT event (the menu -is about to pop up). Windows only; not yet implemented.} -\twocolitem{{\bf EVT\_MENU\_HIGHLIGHT(func)}}{Process a wxEVT\_MENU\_HIGHLIGHT event (a menu -item is being highlighted). Windows only; not yet implemented.} -\twocolitem{{\bf EVT\_POPUP\_MENU(func)}}{Process a wxEVT\_POPUP\_MENU event (a menu -item is being highlighted). Windows only; not yet implemented.} -\twocolitem{{\bf EVT\_CONTEXT\_MENU(func)}}{Process a wxEVT\_CONTEXT\_MENU event (F1 has -been pressed with a particular menu item highlighted). Windows only; not yet implemented.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnMenuHighlight}{wxwindowonmenuhighlight}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMenuEvent::wxMenuEvent} - -\func{}{wxMenuEvent}{\param{WXTYPE }{id = 0}, \param{int }{id = 0}, \param{wxDC* }{dc = NULL}} - -Constructor. - -\membersection{wxMenuEvent::m\_menuId} - -\member{int}{m\_menuId} - -The relevant menu identifier. - -\membersection{wxMenuEvent::GetMenuId}\label{wxmenueventgetmenuid} - -\constfunc{int}{GetMenuId}{\void} - -Returns the menu identifier associated with the event. - diff --git a/docs/latex/wx/menuitem.tex b/docs/latex/wx/menuitem.tex deleted file mode 100644 index d780b742a7..0000000000 --- a/docs/latex/wx/menuitem.tex +++ /dev/null @@ -1,195 +0,0 @@ -\section{\class{wxMenuItem}}\label{wxmenuitem} - -A menu item represents an item in a popup menu. Note that the majority of this -class is only implemented under Windows so far, but everything except fonts, colours and -bitmaps can be achieved via wxMenu on all platforms. - -\wxheading{Derived from} - -wxOwnerDrawn (Windows only)\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMenuItem::wxMenuItem}\label{wxmenuitemconstr} - -\func{}{wxMenuItem}{\param{wxMenu*}{ parentMenu = NULL}, \param{int}{ id = ID\_SEPARATOR}, - \param{const wxString\& }{text = ""}, \param{const wxString\& }{helpString = ""}, - \param{bool }{checkable = FALSE}, \param{wxMenu*}{ subMenu = NULL}, } - -Constructs a wxMenuItem object. - -\wxheading{Parameters} - -\docparam{parentMenu}{Menu that the menu item belongs to.} - -\docparam{id}{Identifier for this menu item, or ID\_SEPARATOR to indicate a separator.} - -\docparam{text}{Text for the menu item, as shown on the menu.} - -\docparam{helpString}{Optional help string that will be shown on the status bar.} - -\docparam{checkable}{TRUE if this menu item is checkable.} - -\docparam{subMenu}{If non-NULL, indicates that the menu item is a submenu.} - -\membersection{wxMenuItem::\destruct{wxMenuItem}} - -\func{}{\destruct{wxMenuItem}}{\void} - -Destructor. - -\membersection{wxMenuItem::Check}\label{wxmenuitemcheck} - -\func{void}{Check}{\param{bool}{ check}} - -Checks or unchecks the menu item. - -\membersection{wxMenuItem::DeleteSubMenu}\label{wxmenuitemdeletesubmenu} - -\func{void}{DeleteSubMenu}{\void} - -Deletes the submenu, if any. - -\membersection{wxMenuItem::Enable}\label{wxmenuitemenable} - -\func{void}{Enable}{\param{bool}{ enable}} - -Enables or disables the menu item. - -\membersection{wxMenuItem::GetBackgroundColour}\label{wxmenuitemgetbackgroundcolour} - -\constfunc{wxColour\&}{GetBackgroundColour}{\void} - -Returns the background colour associated with the menu item (Windows only). - -\membersection{wxMenuItem::GetBitmap}\label{wxmenuitemgetbitmap} - -\constfunc{wxBitmap\&}{GetBitmap}{\param{bool}{ checked = TRUE}} - -Returns the checked or unchecked bitmap (Windows only). - -\membersection{wxMenuItem::GetFont}\label{wxmenuitemgetfont} - -\constfunc{wxFont\&}{GetFont}{\void} - -Returns the font associated with the menu item (Windows only). - -\membersection{wxMenuItem::GetHelp}\label{wxmenuitemgethelp} - -\constfunc{wxString}{GetHelp}{\void} - -Returns the help string associated with the menu item. - -\membersection{wxMenuItem::GetId}\label{wxmenuitemgetid} - -\constfunc{int}{GetId}{\void} - -Returns the menu item identifier. - -\membersection{wxMenuItem::GetMarginWidth}\label{wxmenuitemgetmarginwidth} - -\constfunc{int}{GetMarginWidth}{\void} - -Gets the width of the menu item checkmark bitmap (Windows only). - -\membersection{wxMenuItem::GetName}\label{wxmenuitemgetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the text associated with the menu item. - -\membersection{wxMenuItem::GetSubMenu}\label{wxmenuitemgetsubmenu} - -\constfunc{wxMenu*}{GetSubMenu}{\void} - -Returns the submenu associated with the menu item, or NULL if there isn't one. - -\membersection{wxMenuItem::GetTextColour}\label{wxmenuitemgettextcolour} - -\constfunc{wxColour\&}{GetTextColour}{\void} - -Returns the text colour associated with the menu item (Windows only). - -\membersection{wxMenuItem::IsCheckable}\label{wxmenuitemischeckable} - -\constfunc{bool}{IsCheckable}{\void} - -Returns TRUE if the item is checkable. - -\membersection{wxMenuItem::IsChecked}\label{wxmenuitemischecked} - -\constfunc{bool}{IsChecked}{\void} - -Returns TRUE if the item is checked. - -\membersection{wxMenuItem::IsEnabled}\label{wxmenuitemisenabled} - -\constfunc{bool}{IsEnabled}{\void} - -Returns TRUE if the item is enabled. - -\membersection{wxMenuItem::IsSeparator}\label{wxmenuitemisseparator} - -\constfunc{bool}{IsSeparator}{\void} - -Returns TRUE if the item is a separator. - -\membersection{wxMenuItem::SetBackgroundColour}\label{wxmenuitemsetbackgroundcolour} - -\constfunc{void}{SetBackgroundColour}{\param{const wxColour\& }{colour}} - -Sets the background colour associated with the menu item (Windows only). - -\membersection{wxMenuItem::SetBitmaps}\label{wxmenuitemsetbitmaps} - -\constfunc{void}{SetBitmaps}{\param{const wxBitmap\& }{checked}, - \param{const wxBitmap\& }{unchecked = wxNullBitmap}} - -Sets the checked/unchecked bitmaps for the menu item (Windows only). The first bitmap -is also used as the single bitmap for uncheckable menu items. - -\membersection{wxMenuItem::SetFont}\label{wxmenuitemsetfont} - -\constfunc{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font associated with the menu item (Windows only). - -\membersection{wxMenuItem::SetHelp}\label{wxmenuitemsethelp} - -\constfunc{void}{SetHelp}{\param{const wxString\& }{helpString}} - -Sets the help string. - -\membersection{wxMenuItem::SetMarginWidth}\label{wxmenuitemsetmarginwidth} - -\constfunc{void}{SetMarginWidth}{\param{int}{ width}} - -Sets the width of the menu item checkmark bitmap (Windows only). - -\membersection{wxMenuItem::SetName}\label{wxmenuitemsetname} - -\constfunc{void}{SetName}{\param{const wxString\& }{text}} - -Sets the text associated with the menu item. - -\membersection{wxMenuItem::SetTextColour}\label{wxmenuitemsettextcolour} - -\constfunc{void}{SetTextColour}{\param{const wxColour\& }{colour}} - -Sets the text colour associated with the menu item (Windows only). - - - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "referenc" -%%% End: diff --git a/docs/latex/wx/metafile.tex b/docs/latex/wx/metafile.tex deleted file mode 100644 index 394496c3b4..0000000000 --- a/docs/latex/wx/metafile.tex +++ /dev/null @@ -1,131 +0,0 @@ -\section{\class{wxMetafile}}\label{wxmetafile} - -A {\bf wxMetafile} represents the MS Windows metafile object, so metafile -operations have no effect in X. In wxWindows, only sufficient functionality -has been provided for copying a graphic to the clipboard; this may be extended -in a future version. Presently, the only way of creating a metafile -is to use a wxMetafileDC. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMetafileDC}{wxmetafiledc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMetafile::wxMetafile} - -\func{}{wxMetafile}{\param{const wxString\& }{filename = ""}} - -Constructor. If a filename is given, the Windows disk metafile is -read in. Check whether this was performed successfully by -using the \helpref{wxMetafile::Ok}{wxmetafileok} member. - -\membersection{wxMetafile::\destruct{wxMetafile}} - -\func{}{\destruct{wxMetafile}}{\void} - -Destructor. - -\membersection{wxMetafile::Ok}\label{wxmetafileok} - -\func{bool}{Ok}{\void} - -Returns TRUE if the metafile is valid. - -\membersection{wxMetafile::Play}\label{wxmetafileplay} - -\func{bool}{Play}{\param{wxDC *}{dc}} - -Plays the metafile into the given device context, returning -TRUE if successful. - -\membersection{wxMetafile::SetClipboard} - -\func{bool}{SetClipboard}{\param{int}{ width = 0}, \param{int}{ height = 0}} - -Passes the metafile data to the clipboard. The metafile can no longer be -used for anything, but the wxMetafile object must still be destroyed by -the application. - -Below is a example of metafle, metafile device context and clipboard use -from the {\tt hello.cpp} example. Note the way the metafile dimensions -are passed to the clipboard, making use of the device context's ability -to keep track of the maximum extent of drawing commands. - -\begin{verbatim} - wxMetafileDC dc; - if (dc.Ok()) - { - Draw(dc, FALSE); - wxMetafile *mf = dc.Close(); - if (mf) - { - bool success = mf->SetClipboard((int)(dc.MaxX() + 10), (int)(dc.MaxY() + 10)); - delete mf; - } - } -\end{verbatim} - -\section{\class{wxMetafileDC}}\label{wxmetafiledc} - -This is a type of device context that allows a metafile object to be -created (Windows only), and has most of the characteristics of a normal -\rtfsp{\bf wxDC}. The \helpref{wxMetafileDC::Close}{wxmetafiledcclose} member must be called after drawing into the -device context, to return a metafile. The only purpose for this at -present is to allow the metafile to be copied to the clipboard (see \helpref{wxMetafile}{wxmetafile}). - -Adding metafile capability to an application should be easy if you -already write to a wxDC; simply pass the wxMetafileDC to your drawing -function instead. You may wish to conditionally compile this code so it -is not compiled under X (although no harm will result if you leave it -in). - -Note that a metafile saved to disk is in standard Windows metafile format, -and cannot be imported into most applications. To make it importable, -call the function \helpref{::wxMakeMetafilePlaceable}{wxmakemetafileplaceable} after -closing your disk-based metafile device context. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMetafile}{wxmetafile}, \helpref{wxDC}{wxdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMetafileDC::wxMetafileDC} - -\func{}{wxMetafileDC}{\param{const wxString\& }{filename = ""}} - -Constructor. If no filename is passed, the metafile is created -in memory. - -\membersection{wxMetafileDC::\destruct{wxMetafileDC}} - -\func{}{\destruct{wxMetafileDC}}{\void} - -Destructor. - -\membersection{wxMetafileDC::Close}\label{wxmetafiledcclose} - -\func{wxMetafile *}{Close}{\void} - -This must be called after the device context is finished with. A -metafile is returned, and ownership of it passes to the calling -application (so it should be destroyed explicitly). - diff --git a/docs/latex/wx/mimetype.tex b/docs/latex/wx/mimetype.tex deleted file mode 100644 index 822e0a553c..0000000000 --- a/docs/latex/wx/mimetype.tex +++ /dev/null @@ -1,163 +0,0 @@ -\section{\class{wxMimeTypesManager}}\label{wxmimetypesmanager} - -This class allows the application to retrieve the information about all known -MIME types from a system-specific location and the filename extensions to the -MIME types and vice versa. After initialization the functions -\helpref{wxMimeTypesManager::GetFileTypeFromMimeType}{wxmimetypesmanagergetfiletypefrommimetype} -and \helpref{wxMimeTypesManager::GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} -may be called: they will return a \helpref{wxFileType}{wxfiletype} object which -may be further queried for file description, icon and other attributes. - -{\bf Windows:} MIME type information is stored in the registry and no additional -initialization is needed. - -{\bf Unix:} MIME type information is stored in the files mailcap and mime.types -(system-wide) and .mailcap and .mime.types in the current user's home directory: -all of these files are searched for and loaded if found by default. However, -additional functions -\helpref{wxMimeTypesManager::ReadMailcap}{wxmimetypesmanagerreadmailcap} and -\helpref{wxMimeTypesManager::ReadMimeTypes}{wxmimetypesmanagerreadmimetypes} are -provided to load additional files. - -NB: Currently, wxMimeTypesManager is limited to reading MIME type information -but it will support modifying it as well in the future versions. - -\wxheading{Derived from} - -No base class. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxFileType}{wxfiletype} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Helper functions} - -All of these functions are static (i.e. don't need a wxMimeTypesManager object -to call them) and provide some useful operations for string representations of -MIME types. Their usage is recommended instead of directly working with MIME -types using wxString functions. - -\helpref{IsOfType}{wxmimetypesmanagerisoftype} - -\membersection{Constructor and destructor} - -NB: You won't normally need to use more than one wxMimeTypesManager object in a -program. - -\helpref{wxMimeTypesManager}{wxmimetypesmanagerctor}\\ -\helpref{\destruct{wxMimeTypesManager}}{wxmimetypesmanagerdtor} - -\membersection{Query database} - -These functions are the heart of this class: they allow to find a \helpref{file type}{wxfiletype} object -from either file extension or MIME type. -If the function is successful, it returns a pointer to the wxFileType object -which {\bf must} be deleted by the caller, otherwise NULL will be returned. - -\helpref{GetFileTypeFromMimeType}{wxmimetypesmanagergetfiletypefrommimetype}\\ -\helpref{GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} - -\membersection{Initialization functions}\label{wxmimetypesmanagerinit} - -{\bf Unix:} These functions may be used to load additional files (except for the -default ones which are loaded automatically) containing MIME -information in either mailcap(5) or mime.types(5) format. - -\helpref{ReadMailcap}{wxmimetypesmanagerreadmailcap}\\ -\helpref{ReadMimeTypes}{wxmimetypesmanagerreadmimetypes}\\ -\helpref{AddFallbacks}{wxmimetypesmanageraddfallbacks} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{wxMimeTypesManager::wxMimeTypesManager}\label{wxmimetypesmanagerctor} - -\func{}{wxMimeTypesManager}{\void} - -Constructor puts the object in the "working" state, no additional initialization -are needed - but \helpref{ReadXXX}{wxmimetypesmanagerinit} may be used to load -additional mailcap/mime.types files. - -\membersection{wxMimeTypesManager::\destruct{wxMimeTypesManager}}\label{wxmimetypesmanagerdtor} - -\func{}{\destruct{wxMimeTypesManager}}{\void} - -Destructor is not virtual, so this class should not be derived from. - -\membersection{wxMimeTypesManager::AddFallbacks}\label{wxmimetypesmanageraddfallbacks} - -\func{void}{AddFallbacks}{\param{const wxFileTypeInfo *}{fallbacks}} - -This function may be used to provdie hard-wired fallbacks for the MIME types -and extensions that might not be present in the system MIME database. - -% TODO - -Please see the typetest sample for an example of using it. - -\membersection{wxMimeTypesManager::GetFileTypeFromExtension}\label{wxmimetypesmanagergetfiletypefromextension} - -\func{wxFileType*}{GetFileTypeFromExtension}{\param{const wxString\&}{ extension}} - -Gather information about the files with given extension and return the -corresponding \helpref{wxFileType}{wxfiletype} object or NULL if the extension -is unknown. - -\membersection{wxMimeTypesManager::GetFileTypeFromMimeType}\label{wxmimetypesmanagergetfiletypefrommimetype} - -\func{wxFileType*}{GetFileTypeFromMimeType}{\param{const wxString\&}{ mimeType}} - -Gather information about the files with given MIME type and return the -corresponding \helpref{wxFileType}{wxfiletype} object or NULL if the MIME type -is unknown. - -\membersection{wxMimeTypesManager::IsOfType}\label{wxmimetypesmanagerisoftype} - -\func{bool}{IsOfType}{\param{const wxString\&}{ mimeType}, \param{const wxString\&}{ wildcard}} - -This function returns TRUE if either the given {\it mimeType} is exactly the -same as {\it wildcard} or if it has the same category and the subtype of -{\it wildcard} is '*'. Note that the '*' wildcard is not allowed in -{\it mimeType} itself. - -The comparaison don by this function is case insensitive so it is not -necessary to convert the strings to the same case before calling it. - -\membersection{wxMimeTypesManager::ReadMailcap}\label{wxmimetypesmanagerreadmailcap} - -\func{bool}{ReadMailcap}{\param{const wxString\&}{ filename}, \param{bool}{ fallback = FALSE}} - -Load additional file containing information about MIME types and associated -information in mailcap format. See metamail(1) and mailcap(5) for more -information. - -{\it fallback} parameter may be used to load additional mailcap files without -overriding the settings found in the standard files: normally, entries from -files loaded with ReadMailcap will override the entries from files loaded -previously (and the standard ones are loaded in the very beginning), but this -will not happen if this parameter is set to TRUE (default is FALSE). - -The return value is TRUE if there were no errors in the file or FALSE -otherwise. - -\membersection{wxMimeTypesManager::ReadMimeTypes}\label{wxmimetypesmanagerreadmimetypes} - -\func{bool}{ReadMimeTypes}{\param{const wxString\&}{ filename}} - -Load additional file containing information about MIME types and associated -information in mime.types file format. See metamail(1) and mailcap(5) for more -information. - -The return value is TRUE if there were no errors in the file or FALSE -otherwise. - diff --git a/docs/latex/wx/minifram.tex b/docs/latex/wx/minifram.tex deleted file mode 100644 index 0acfcd6567..0000000000 --- a/docs/latex/wx/minifram.tex +++ /dev/null @@ -1,114 +0,0 @@ -\section{\class{wxMiniFrame}}\label{wxminiframe} - -A miniframe is a frame with a small title bar. It is suitable for floating toolbars that must not -take up too much screen area. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).} -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).} -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).} -\twocolitem{\windowstyle{wxTINY\_CAPTION\_HORIZ}}{Displays a small horizontal caption. Use instead of -wxCAPTION.} -\twocolitem{\windowstyle{wxTINY\_CAPTION\_VERT}}{Under Windows, displays a small vertical caption. Use instead of -wxCAPTION.} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only; -for Windows, it is implicit in {\bf wxTHICK\_FRAME}).} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. Note that all the window styles -above are ignored under GTK and the mini frame cannot be resized by the user. - -\wxheading{Remarks} - -This class has miniframe functionality under Windows and GTK, i.e. the presence -of mini frame will not be noted in the task bar and focus behaviour is different. -On other platforms, it behaves like a normal frame. - -\wxheading{See also} - -\helpref{wxMDIParentFrame}{wxmdiparentframe}, \helpref{wxMDIChildFrame}{wxmdichildframe},\rtfsp -\helpref{wxFrame}{wxframe}, \helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMiniFrame::wxMiniFrame}\label{wxminiframeconstr} - -\func{}{wxMiniFrame}{\void} - -Default constructor. - -\func{}{wxMiniFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This may be NULL. If it is non-NULL, the frame will -always be displayed on top of the parent window on Windows.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxMiniFrame}{wxminiframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -The frame behaves like a normal frame on non-Windows platforms. - -\wxheading{See also} - -\helpref{wxMiniFrame::Create}{wxminiframecreate} - -\membersection{wxMiniFrame::\destruct{wxMiniFrame}} - -\func{void}{\destruct{wxMiniFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxMiniFrame::Create}\label{wxminiframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxMiniFrame::wxMiniFrame}{wxminiframeconstr}\rtfsp -for further details. - - - diff --git a/docs/latex/wx/minimald.tex b/docs/latex/wx/minimald.tex deleted file mode 100644 index 0e5f72265b..0000000000 --- a/docs/latex/wx/minimald.tex +++ /dev/null @@ -1,45 +0,0 @@ -% -% Minimal document skeleton. For testing, link your 'manpage' in at -% the place indicated below. -% -% Run tex2rtf with (for example) -% tex2rtf minimal.tex test.htm -html -twice -% -% latex should also parse this file correctly. -% -% Of course many references will be unresolved in the test page, but -% local references should be there. -% -\documentstyle[a4,makeidx,verbatim,texhelp,fancyheadings,palatino]{report} -\sloppy -\newcommand{\indexit}[1]{#1\index{#1}} -\newcommand{\pipe}[0]{$\|$\ }% -\input psbox.tex - -\parskip=2pt -\parindent=0pt - -\makeindex -\begin{document} -\tableofcontents - -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage} -\pagenumbering{roman} - -\chapter{Minimal} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -% put your file(s) in an \input{} statement here -\input{arrstrng.tex} - -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -\end{document} - diff --git a/docs/latex/wx/mltchdlg.tex b/docs/latex/wx/mltchdlg.tex deleted file mode 100644 index 709e91dfce..0000000000 --- a/docs/latex/wx/mltchdlg.tex +++ /dev/null @@ -1,25 +0,0 @@ -\section{\class{wxMultipleChoiceDialog}}\label{wxmultiplechoicedialog} - -This class represents a dialog that shows a list of strings, and allows -the user to select one or more. - -{\bf NOTE:} this class is not yet implemented. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMultipleChoiceDialog overview}{wxmultiplechoicedialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - diff --git a/docs/latex/wx/module.tex b/docs/latex/wx/module.tex deleted file mode 100644 index bb515828dc..0000000000 --- a/docs/latex/wx/module.tex +++ /dev/null @@ -1,110 +0,0 @@ -\section{\class{wxModule}}\label{wxmodule} - -The module system is a very simple mechanism to allow applications (and parts of wxWindows itself) to -define initialization and cleanup functions that are automatically called on wxWindows -startup and exit. - -To define a new kind of module, derive a class from wxModule, override the OnInit and OnExit functions, -and add the DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS to header and implementation files -(which can be the same file). On initialization, wxWindows will find all classes derived from wxModule, -create an instance of each, and call each OnInit function. On exit, wxWindows will call the OnExit -function for each module instance. - -Note that your module class does not have to be in a header file. - -For example: - -\begin{verbatim} - // A module to allow DDE initialization/cleanup - // without calling these functions from app.cpp or from - // the user's application. - - class wxDDEModule: public wxModule - { - DECLARE_DYNAMIC_CLASS(wxDDEModule) - public: - wxDDEModule() {} - bool OnInit() { wxDDEInitialize(); return TRUE; }; - void OnExit() { wxDDECleanUp(); }; - }; - - IMPLEMENT_DYNAMIC_CLASS(wxDDEModule, wxModule) -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxModule::wxModule}\label{wxmoduleconstr} - -\func{}{wxModule}{\void} - -Constructs a wxModule object. - -\membersection{wxModule::\destruct{wxModule}} - -\func{}{\destruct{wxModule}}{\void} - -Destructor. - -\membersection{wxModule::CleanupModules}\label{wxmodulecleanupmodules} - -\func{static void}{CleanupModules}{\void} - -Calls Exit for each module instance. Called by wxWindows on exit, so there is no -need for an application to call it. - -\membersection{wxModule::Exit}\label{wxmoduleexit} - -\func{void}{Exit}{\void} - -Calls OnExit. This function is called by wxWindows and should not need to be called -by an application. - -\membersection{wxModule::Init}\label{wxmoduleinit} - -\func{bool}{Init}{\void} - -Calls OnInit. This function is called by wxWindows and should not need to be called -by an application. - -\membersection{wxModule::InitializeModules}\label{wxmoduleinitializemodules} - -\func{static bool}{InitializeModules}{\void} - -Calls Init for each module instance. Called by wxWindows on startup, so there is no -need for an application to call it. - -\membersection{wxModule::OnExit}\label{wxmoduleonexit} - -\func{virtual void}{OnExit}{\void} - -Provide this function with appropriate cleanup for your module. - -\membersection{wxModule::OnInit}\label{wxmoduleoninit} - -\func{virtual bool}{OnInit}{\void} - -Provide this function with appropriate initialization for your module. If the function -returns FALSE, wxWindows will exit immediately. - -\membersection{wxModule::RegisterModule}\label{wxmoduleregistermodule} - -\func{static void}{RegisterModule}{\param{wxModule*}{ module}} - -Registers this module with wxWindows. Called by wxWindows on startup, so there is no -need for an application to call it. - -\membersection{wxModule::RegisterModules}\label{wxmoduleregistermodules} - -\func{static bool}{RegisterModules}{\void} - -Creates instances of and registers all modules. Called by wxWindows on startup, so there is no -need for an application to call it. - diff --git a/docs/latex/wx/mouseevt.tex b/docs/latex/wx/mouseevt.tex deleted file mode 100644 index 0c112ef708..0000000000 --- a/docs/latex/wx/mouseevt.tex +++ /dev/null @@ -1,325 +0,0 @@ -\section{\class{wxMouseEvent}}\label{wxmouseevent} - -This event class contains information about mouse events. -See \helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a mouse event, use these event handler macros to direct input to member -functions that take a wxMouseEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LEFT\_DOWN(func)}}{Process a wxEVT\_LEFT\_DOWN event.} -\twocolitem{{\bf EVT\_LEFT\_UP(func)}}{Process a wxEVT\_LEFT\_UP event.} -\twocolitem{{\bf EVT\_LEFT\_DCLICK(func)}}{Process a wxEVT\_LEFT\_DCLICK event.} -\twocolitem{{\bf EVT\_MIDDLE\_DOWN(func)}}{Process a wxEVT\_MIDDLE\_DOWN event.} -\twocolitem{{\bf EVT\_MIDDLE\_UP(func)}}{Process a wxEVT\_MIDDLE\_UP event.} -\twocolitem{{\bf EVT\_MIDDLE\_DCLICK(func)}}{Process a wxEVT\_MIDDLE\_DCLICK event.} -\twocolitem{{\bf EVT\_RIGHT\_DOWN(func)}}{Process a wxEVT\_RIGHT\_DOWN event.} -\twocolitem{{\bf EVT\_RIGHT\_UP(func)}}{Process a wxEVT\_RIGHT\_UP event.} -\twocolitem{{\bf EVT\_RIGHT\_DCLICK(func)}}{Process a wxEVT\_RIGHT\_DCLICK event.} -\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.} -\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.} -\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.} -\twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMouseEvent::m\_altDown} - -\member{bool}{m\_altDown} - -TRUE if the Alt key is pressed down. - -\membersection{wxMouseEvent::m\_controlDown} - -\member{bool}{m\_controlDown} - -TRUE if control key is pressed down. - -\membersection{wxMouseEvent::m\_leftDown} - -\member{bool}{m\_leftDown} - -TRUE if the left mouse button is currently pressed down. - -\membersection{wxMouseEvent::m\_middleDown} - -\member{bool}{m\_middleDown} - -TRUE if the middle mouse button is currently pressed down. - -\membersection{wxMouseEvent::m\_rightDown} - -\member{bool}{m\_rightDown} - -TRUE if the right mouse button is currently pressed down. - -\membersection{wxMouseEvent::m\_leftDown} - -\member{bool}{m\_leftDown} - -TRUE if the left mouse button is currently pressed down. - -\membersection{wxMouseEvent::m\_metaDown} - -\member{bool}{m\_metaDown} - -TRUE if the Meta key is pressed down. - -\membersection{wxMouseEvent::m\_shiftDown} - -\member{bool}{m\_shiftDown} - -TRUE if shift is pressed down. - -\membersection{wxMouseEvent::m\_x} - -\member{long}{m\_x} - -X-coordinate of the event. - -\membersection{wxMouseEvent::m\_y} - -\member{long}{m\_y} - -Y-coordinate of the event. - -\membersection{wxMouseEvent::wxMouseEvent} - -\func{}{wxMouseEvent}{\param{WXTYPE}{ mouseEventType = 0}, \param{int}{ id = 0}} - -Constructor. Valid event types are: - -\begin{itemize} -\itemsep=0pt -\item {\bf wxEVT\_ENTER\_WINDOW} -\item {\bf wxEVT\_LEAVE\_WINDOW} -\item {\bf wxEVT\_LEFT\_DOWN} -\item {\bf wxEVT\_LEFT\_UP} -\item {\bf wxEVT\_LEFT\_DCLICK} -\item {\bf wxEVT\_MIDDLE\_DOWN} -\item {\bf wxEVT\_MIDDLE\_UP} -\item {\bf wxEVT\_MIDDLE\_DCLICK} -\item {\bf wxEVT\_RIGHT\_DOWN} -\item {\bf wxEVT\_RIGHT\_UP} -\item {\bf wxEVT\_RIGHT\_DCLICK} -\item {\bf wxEVT\_MOTION} -\end{itemize} - -\membersection{wxMouseEvent::AltDown} - -\func{bool}{AltDown}{\void} - -Returns TRUE if the Alt key was down at the time of the event. - -\membersection{wxMouseEvent::Button} - -\func{bool}{Button}{\param{int}{ button}} - -Returns TRUE if the identified mouse button is changing state. Valid -values of {\it button} are 1, 2 or 3 for left, middle and right -buttons respectively. - -Not all mice have middle buttons so a portable application should avoid -this one. - -\membersection{wxMouseEvent::ButtonDClick}\label{buttondclick} - -\func{bool}{ButtonDClick}{\param{int}{ but = -1}} - -If the argument is omitted, this returns TRUE if the event was a mouse -double click event. Otherwise the argument specifies which double click event -was generated (1, 2 or 3 for left, middle and right buttons respectively). - -\membersection{wxMouseEvent::ButtonDown} - -\func{bool}{ButtonDown}{\param{int}{ but = -1}} - -If the argument is omitted, this returns TRUE if the event was a mouse -button down event. Otherwise the argument specifies which button-down event -was generated (1, 2 or 3 for left, middle and right buttons respectively). - -\membersection{wxMouseEvent::ButtonUp} - -\func{bool}{ButtonUp}{\param{int}{ but = -1}} - -If the argument is omitted, this returns TRUE if the event was a mouse -button up event. Otherwise the argument specifies which button-up event -was generated (1, 2 or 3 for left, middle and right buttons respectively). - -\membersection{wxMouseEvent::ControlDown} - -\func{bool}{ControlDown}{\void} - -Returns TRUE if the control key was down at the time of the event. - -\membersection{wxMouseEvent::Dragging} - -\func{bool}{Dragging}{\void} - -Returns TRUE if this was a dragging event (motion while a button is depressed). - -\membersection{wxMouseEvent::Entering}\label{wxmouseevententering} - -\func{bool}{Entering}{\void} - -Returns TRUE if the mouse was entering the window (MS Windows and Motif). - -See also \helpref{wxMouseEvent::Leaving}{wxmouseeventleaving}. - -\membersection{wxMouseEvent::GetPosition}\label{wxmouseeventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -\constfunc{void}{GetPosition}{\param{long *}{x}, \param{long *}{y}} - -Sets *x and *y to the position at which the event occurred. - -Returns the physical mouse position in pixels. - -\membersection{wxMouseEvent::GetLogicalPosition}\label{wxmouseeventgetlogicalposition} - -\constfunc{wxPoint}{GetLogicalPosition}{\param{const wxDC\&}{ dc}} - -Returns the logical mouse position in pixels (i.e. translated according to the -translation set for the DC, which usually indicates that the window has been scrolled). - -\membersection{wxMouseEvent::GetX}\label{wxmouseeventgetx} - -\constfunc{long}{GetX}{\void} - -Returns X coordinate of the physical mouse event position. - -\membersection{wxMouseEvent::GetY}\label{wxmouseeventgety} - -\func{long}{GetY}{\void} - -Returns Y coordinate of the physical mouse event position. - -\membersection{wxMouseEvent::IsButton} - -\constfunc{bool}{IsButton}{\void} - -Returns TRUE if the event was a mouse button event (not necessarily a button down event - -that may be tested using {\it ButtonDown}). - -\membersection{wxMouseEvent::Leaving}\label{wxmouseeventleaving} - -\constfunc{bool}{Leaving}{\void} - -Returns TRUE if the mouse was leaving the window (MS Windows and Motif). - -See also \helpref{wxMouseEvent::Entering}{wxmouseevententering}. - -\membersection{wxMouseEvent::LeftDClick} - -\constfunc{bool}{LeftDClick}{\void} - -Returns TRUE if the event was a left double click. - -\membersection{wxMouseEvent::LeftDown}\label{wxmouseeventleftdown} - -\constfunc{bool}{LeftDown}{\void} - -Returns TRUE if the left mouse button changed to down. - -\membersection{wxMouseEvent::LeftIsDown} - -\constfunc{bool}{LeftIsDown}{\void} - -Returns TRUE if the left mouse button is currently down, independent -of the current event type. - -Please notice that it is {\bf not} the same as -\helpref{LeftDown}{wxmouseeventleftdown} which returns TRUE if the left mouse -button was just pressed. Rather, it describes the state of the mouse button -before the event happened. - -This event is usually used in the mouse event handlers which process "move -mouse" messages to determine whether the user is (still) dragging the mouse. - -\membersection{wxMouseEvent::LeftUp} - -\constfunc{bool}{LeftUp}{\void} - -Returns TRUE if the left mouse button changed to up. - -\membersection{wxMouseEvent::MetaDown} - -\constfunc{bool}{MetaDown}{\void} - -Returns TRUE if the Meta key was down at the time of the event. - -\membersection{wxMouseEvent::MiddleDClick} - -\constfunc{bool}{MiddleDClick}{\void} - -Returns TRUE if the event was a middle double click. - -\membersection{wxMouseEvent::MiddleDown} - -\constfunc{bool}{MiddleDown}{\void} - -Returns TRUE if the middle mouse button changed to down. - -\membersection{wxMouseEvent::MiddleIsDown} - -\constfunc{bool}{MiddleIsDown}{\void} - -Returns TRUE if the middle mouse button is currently down, independent -of the current event type. - -\membersection{wxMouseEvent::MiddleUp} - -\constfunc{bool}{MiddleUp}{\void} - -Returns TRUE if the middle mouse button changed to up. - -\membersection{wxMouseEvent::Moving} - -\constfunc{bool}{Moving}{\void} - -Returns TRUE if this was a motion event (no buttons depressed). - -\membersection{wxMouseEvent::RightDClick} - -\constfunc{bool}{RightDClick}{\void} - -Returns TRUE if the event was a right double click. - -\membersection{wxMouseEvent::RightDown} - -\constfunc{bool}{RightDown}{\void} - -Returns TRUE if the right mouse button changed to down. - -\membersection{wxMouseEvent::RightIsDown} - -\constfunc{bool}{RightIsDown}{\void} - -Returns TRUE if the right mouse button is currently down, independent -of the current event type. - -\membersection{wxMouseEvent::RightUp} - -\constfunc{bool}{RightUp}{\void} - -Returns TRUE if the right mouse button changed to up. - -\membersection{wxMouseEvent::ShiftDown} - -\constfunc{bool}{ShiftDown}{\void} - -Returns TRUE if the shift key was down at the time of the event. - diff --git a/docs/latex/wx/moveevt.tex b/docs/latex/wx/moveevt.tex deleted file mode 100644 index 932dd343bb..0000000000 --- a/docs/latex/wx/moveevt.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{\class{wxMoveEvent}}\label{wxmoveevent} - -A move event holds information about move change events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a move event, use this event handler macro to direct input to a member -function that takes a wxMoveEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MOVE(func)}}{Process a wxEVT\_MOVE event, which is generated -when a window is moved.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnMove}{wxwindowonmove}, \helpref{wxPoint}{wxpoint}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMoveEvent::wxMoveEvent} - -\func{}{wxMoveEvent}{\param{const wxPoint\& }{pt}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxMoveEvent::GetPosition}\label{wxmoveeventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the position of the window generating the move change event. - diff --git a/docs/latex/wx/msgdlg.tex b/docs/latex/wx/msgdlg.tex deleted file mode 100644 index 51589de029..0000000000 --- a/docs/latex/wx/msgdlg.tex +++ /dev/null @@ -1,68 +0,0 @@ -\section{\class{wxMessageDialog}}\label{wxmessagedialog} - -This class represents a dialog that shows a single or multi-line message, -with a choice of OK, Yes, No and Cancel buttons. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMessageDialog overview}{wxmessagedialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMessageDialog::wxMessageDialog}\label{wxmessagedialogconstr} - -\func{}{wxMessageDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption = "Message box"}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor. Use \helpref{wxMessageDialog::ShowModal}{wxmessagedialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{caption}{The dialog caption.} - -\docparam{style}{A dialog style (bitlist) containing flags chosen from the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxOK}}{Show an OK button.} -\twocolitem{{\bf wxCANCEL}}{Show a Cancel button.} -\twocolitem{{\bf wxYES\_NO}}{Show Yes and No buttons.} -\twocolitem{{\bf wx\_NO\_DEFAULT}}{Used with {\bf wxYES\_NO}, makes {\bf No} button the default.} -\twocolitem{{\bf wxCENTRE}}{Centre the message. Not Windows.} -\twocolitem{{\bf wxICON\_EXCLAMATION}}{Shows an exclamation mark icon. Windows only.} -\twocolitem{{\bf wxICON\_HAND}}{Shows a hand icon. Windows only.} -\twocolitem{{\bf wxICON\_QUESTION}}{Shows a question mark icon. Windows only.} -\twocolitem{{\bf wxICON\_INFORMATION}}{Shows an information (i) icon. Windows only.} -\end{twocollist} -} - -\docparam{pos}{Dialog position. Not Windows.} - -\membersection{wxMessageDialog::\destruct{wxMessageDialog}} - -\func{}{\destruct{wxMessageDialog}}{\void} - -Destructor. - -\membersection{wxMessageDialog::ShowModal}\label{wxmessagedialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning one of wxID\_OK, wxID\_CANCEL, wxID\_YES, wxID\_NO. - diff --git a/docs/latex/wx/mutex.tex b/docs/latex/wx/mutex.tex deleted file mode 100644 index f102c519a0..0000000000 --- a/docs/latex/wx/mutex.tex +++ /dev/null @@ -1,144 +0,0 @@ -\section{\class{wxMutex}}\label{wxmutex} - -A mutex object is a synchronization object whose state is set to signaled when -it is not owned by any thread, and nonsignaled when it is owned. Its name comes -from its usefulness in coordinating mutually-exclusive access to a shared -resource. Only one thread at a time can own a mutex object. - -For example, when several thread use the data stored in the linked list, -modifications to the list should be only allowed to one thread at a time -because during a new node addition the list integrity is temporarily broken -(this is also called {\it program invariant}). - -\wxheading{Example} - -{\small% -\begin{verbatim} - // this variable has an "s_" prefix because it is static: seeing an "s_" in - // a multithreaded program is in general a good sign that you should use a - // mutex (or a critical section) - static wxMutex *s_mutexProtectingTheGlobalData; - - // we store some numbers in this global array which is presumably used by - // several threads simultaneously - wxArrayInt s_data; - - void MyThread::AddNewNode(int num) - { - // ensure that no other thread accesses the list - s_mutexProtectingTheGlobalList->Lock(); - - s_data.Add(num); - - s_mutexProtectingTheGlobalList->Unlock(); - } - - // return TRUE the given number is greater than all array elements - bool MyThread::IsGreater(int num) - { - // before using the list we must acquire the mutex - wxMutexLocker lock(s_mutexProtectingTheGlobalData); - - size_t count = s_data.Count(); - for ( size_t n = 0; n < count; n++ ) - { - if ( s_data[n] > num ) - return FALSE; - } - - return TRUE; - } -\end{verbatim} -} - -Notice how wxMutexLocker was used in the second function to ensure that the -mutex is unlocked in any case: whether the function returns TRUE or FALSE -(because the destructor of the local object {\it lock} is always called). Using -this class instead of directly using wxMutex is, in general safer and is even -more so if yoor program uses C++ exceptions. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxThread}{wxthread}, \helpref{wxCondition}{wxcondition}, -\helpref{wxMutexLocker}{wxmutexlocker}, \helpref{wxCriticalSection}{wxcriticalsection} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMutex::wxMutex}\label{wxmutexconstr} - -\func{}{wxMutex}{\void} - -Default constructor. - -\membersection{wxMutex::\destruct{wxMutex}} - -\func{}{\destruct{wxMutex}}{\void} - -Destroys the wxMutex object. - -\membersection{wxMutex::IsLocked}\label{wxmutexislocked} - -\constfunc{bool}{IsLocked}{\void} - -Returns TRUE if the mutex is locked, FALSE otherwise. - -\membersection{wxMutex::Lock}\label{wxmutexlock} - -\func{wxMutexError}{Lock}{\void} - -Locks the mutex object. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.} -\twocolitem{{\bf wxMUTEX\_BUSY}}{The mutex is already locked by another thread.} -\end{twocollist} - -\membersection{wxMutex::TryLock}\label{wxmutextrylock} - -\func{wxMutexError}{TryLock}{\void} - -Tries to lock the mutex object. If it can't, returns immediately with an error. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.} -\twocolitem{{\bf wxMUTEX\_BUSY}}{The mutex is already locked by another thread.} -\end{twocollist} - -\membersection{wxMutex::Unlock}\label{wxmutexunlock} - -\func{wxMutexError}{Unlock}{\void} - -Unlocks the mutex object. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.} -\twocolitem{{\bf wxMUTEX\_BUSY}}{The mutex is already locked by another thread.} -\twocolitem{{\bf wxMUTEX\_UNLOCKED}}{The calling thread tries to unlock an unlocked mutex.} -\end{twocollist} - diff --git a/docs/latex/wx/mutexlck.tex b/docs/latex/wx/mutexlck.tex deleted file mode 100644 index b0be0556c1..0000000000 --- a/docs/latex/wx/mutexlck.tex +++ /dev/null @@ -1,43 +0,0 @@ -\section{\class{wxMutexLocker}}\label{wxmutexlocker} - -This is a small helper class to be used with \helpref{wxMutex}{wxmutex} -objects. A wxMutexLocker acquires a mutex lock in the constructor and releases -(or unlocks) the mutex in the destructor making it much more difficult to -forget to release a mutex (which, in general, will promptly lead to the serious -problems). See \helpref{wxMutex}{wxmutex} for an example of wxMutexLocker -usage. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMutex}{wxmutex}, \helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMutexLocker::wxMutexLocker}\label{wxmutexlockerctor} - -\func{}{wxMutexLocker}{\param{wxMutex *}{mutex}} - -Constructs a wxMutexLocker object associated with mutex which must be non NULL -and locks it. Call \helpref{IsLocked}{wxmutexlockerisok} to check if the mutex was -successfully locked. - -\membersection{wxMutexLocker::\destruct{wxMutexLocker}}\label{wxmutexlockerdtor} - -\func{}{\destruct{wxMutexLocker}}{\void} - -Destuctor releases the mutex if it was successfully acquired in the ctor. - -\membersection{wxMutexLocker::IsOk}\label{wxmutexlockerisok} - -\constfunc{bool}{IsOk}{\void} - -Returns TRUE if mutex was acquired in the constructor, FALSE otherwise. - diff --git a/docs/latex/wx/node.tex b/docs/latex/wx/node.tex deleted file mode 100644 index c718a7220e..0000000000 --- a/docs/latex/wx/node.tex +++ /dev/null @@ -1,56 +0,0 @@ -\section{\class{wxNodeBase}}\label{wxnode} - -A node structure used in linked lists (see \helpref{wxList}{wxlist}) and -derived classes. You should never use wxNodeBase class directly because it -works with untyped (void *) data and this is unsafe. Use wxNode-derived classes -which are defined by WX\_DECLARE\_LIST and WX\_DEFIBE\_LIST macros instead as -described in \helpref{wxList}{wxlist} documentation (see example there). wxNode -is defined for compatibility as wxNodeBase containing "wxObject *" pointer, but -usage of this class is deprecated. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxList}{wxlist}, \helpref{wxHashTable}{wxhashtable} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNodeBase::GetData} - -\func{void *}{Data}{\void} - -Retrieves the client data pointer associated with the node. - -\membersection{wxNodeBase::GetNext} - -\func{wxNodeBase *}{Next}{\void} - -Retrieves the next node (NULL if at end of list). - -\membersection{wxNodeBase::GetPrevious} - -\func{wxNodeBase *}{GetPrevious}{\void} - -Retrieves the previous node (NULL if at start of list). - -\membersection{wxNodeBase::SetData} - -\func{void}{SetData}{\param{void *}{data}} - -Sets the data associated with the node (usually the pointer will have been -set when the node was created). - -\membersection{wxNodeBase::IndexOf} - -\func{int}{IndexOf}{\void} - -Returns the zero-based index of this node within the list. The return value -will be NOT\_FOUND if the node has not been added to a list yet. - diff --git a/docs/latex/wx/notebook.tex b/docs/latex/wx/notebook.tex deleted file mode 100644 index 1b810993e0..0000000000 --- a/docs/latex/wx/notebook.tex +++ /dev/null @@ -1,270 +0,0 @@ -\section{\class{wxNotebook}}\label{wxnotebook} - -This class represents a notebook control, which manages multiple windows with associated tabs. - -To use the class, create a wxNotebook object and call \helpref{AddPage}{wxnotebookaddpage} or \helpref{InsertPage}{wxnotebookinsertpage}, -passing a window to be used as the page. Do not explicitly delete the window for a page that is currently -managed by wxNotebook. - -{\bf wxNotebookPage} is a typedef for wxWindow. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event handling} - -To process input from a notebook control, use the following event handler macros to direct input to member -functions that take a \helpref{wxNotebookEvent}{wxnotebookevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed.} -\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed. -This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist},\rtfsp -\helpref{wxTabCtrl}{wxtabctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNotebook::wxNotebook}\label{wxnotebookconstr} - -\func{}{wxNotebook}{\void} - -Default constructor. - -\func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}} - -Constructs a notebook control. - -\wxheading{Parameters} - -\docparam{parent}{The parent window. Must be non-NULL.} - -\docparam{id}{The window identifier.} - -\docparam{pos}{The window position.} - -\docparam{size}{The window size.} - -\docparam{style}{The window style. Its value is a bit list of zero or more of {\bf wxTC\_MULTILINE}, - {\bf wxTC\_RIGHTJUSTIFY}, {\bf wxTC\_FIXEDWIDTH} and {\bf wxTC\_OWNERDRAW}.} - -\docparam{name}{The name of the control (used only under Motif).} - -\membersection{wxNotebook::\destruct{wxNotebook}} - -\func{}{\destruct{wxNotebook}}{\void} - -Destroys the wxNotebook object. - -\membersection{wxNotebook::AddPage}\label{wxnotebookaddpage} - -\func{bool}{AddPage}{\param{wxNotebookPage*}{ page}, - \param{const wxString\&}{ text}, - \param{bool}{ select = FALSE}, - \param{int}{ imageId = -1}} - -Adds a new page. - -\wxheading{Parameters} - -\docparam{page}{Specifies the new page.} - -\docparam{text}{Specifies the text for the new page.} - -\docparam{select}{Specifies whether the page should be selected.} - -\docparam{imageId}{Specifies the optional image index for the new page.} - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\wxheading{Remarks} - -Do not delete the page, it will be deleted by the notebook. - -\wxheading{See also} - -\helpref{wxNotebook::InsertPage}{wxnotebookinsertpage} - -\membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection} - -\func{void}{AdvanceSelection}{\param{bool}{ forward = TRUE}} - -Cycles through the tabs. - -\membersection{wxNotebook::Create}\label{wxnotebookcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}} - -Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookconstr} for a description -of the parameters. - -\membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages} - -\func{bool}{DeleteAllPages}{\void} - -Deletes all pages. - -\membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage} - -\func{bool}{DeletePage}{\param{int}{ page}} - -Deletes the specified page, and the associated window. - -\membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\void} - -Returns the associated image list. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist} - -\membersection{wxNotebook::GetPage}\label{wxnotebookgetpage} - -\func{wxNotebookPage*}{GetPage}{\param{int}{ page}} - -Returns the window at the given page position. - -\membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount} - -\constfunc{int}{GetPageCount}{\void} - -Returns the number of pages in the notebook control. - -\membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage} - -\constfunc{int}{GetPageImage}{\void} - -Returns the image index for the given page. - -\membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext} - -\constfunc{wxString}{GetPageText}{\void} - -Returns the string for the given page. - -\membersection{wxNotebook::GetRowCount}\label{wxnotebookgetrowcount} - -\constfunc{int}{GetRowCount}{\void} - -Returns the number of rows in the notebook control. - -\membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the currently selected page, or -1 if none was selected. - -\membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage} - -\func{bool}{InsertPage}{\param{int}{ index}, \param{wxNotebookPage*}{ page}, - \param{const wxString\&}{ text}, - \param{bool}{ select = FALSE}, - \param{int}{ imageId = -1}} - -Inserts a new page at the specified position. - -\wxheading{Parameters} - -\docparam{index}{Specifies the position for the new page.} - -\docparam{page}{Specifies the new page.} - -\docparam{text}{Specifies the text for the new page.} - -\docparam{select}{Specifies whether the page should be selected.} - -\docparam{imageId}{Specifies the optional image index for the new page.} - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\wxheading{Remarks} - -Do not delete the page, it will be deleted by the notebook. - -\wxheading{See also} - -\helpref{wxNotebook::AddPage}{wxnotebookaddpage} - -\membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange} - -\func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}} - -An event handler function, called when the page selection is changed. - -\wxheading{See also} - -\helpref{wxNotebookEvent}{wxnotebookevent} - -\membersection{wxNotebook::RemovePage}\label{wxnotebookremovepage} - -\func{bool}{RemovePage}{\param{int}{ page}} - -Deletes the specified page, without deleting the associated window. - -\membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist} - -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}} - -Sets the image list for the page control. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist} - -\membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding} - -\func{void}{SetPadding}{\param{const wxSize\&}{ padding}} - -Sets the amount of space around each page's icon and label, in pixels. - -\membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize} - -\func{void}{SetPageSize}{\param{const wxSize\&}{ size}} - -Sets the width and height of the pages. - -\membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage} - -\func{bool}{SetPageImage}{\param{int}{ page}, \param{int }{image}} - -Sets the image index for the given page. {\it image} is an index into -the image list which was set with \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}. - -\membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext} - -\func{bool}{SetPageText}{\param{int}{ page}, \param{const wxString\& }{text}} - -Sets the text for the given page. - -\membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection} - -\func{int}{SetSelection}{\param{int}{ page}} - -Sets the selection for the given page, returning the previous selection. - -\wxheading{See also} - -\helpref{wxNotebook::GetSelection}{wxnotebookgetselection} - - diff --git a/docs/latex/wx/noteevt.tex b/docs/latex/wx/noteevt.tex deleted file mode 100644 index 4fcc6816d6..0000000000 --- a/docs/latex/wx/noteevt.tex +++ /dev/null @@ -1,85 +0,0 @@ -\section{\class{wxNotebookEvent}}\label{wxnotebookevent} - -This class represents the events generated by a notebook control: currently, -there are two of them. The PAGE\_CHANGING event is sent before the current -page is changed. It allows to the program to examine the current page (which -can be retrieved with -\helpref{GetOldSelection()}wxnotebookeventgetoldselection}) and to veto the page -change by calling \helpref{Veto()}{wxnotifyeventveto} if, for example, the -current values in the controls of the old page are invalid. - -The second event - PAGE\_CHANGED - is sent after the page has been changed and -the program cannot veto it any more, it just informs it about the page change. - -To summarize, if the program is interested in validating the page values -before allowing the user to change it, it should process the PAGE\_CHANGING -event, otherwise PAGE\_CHANGED is probably enough. In any case, it is probably -unnecessary to process both events at once. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a notebook event, use these event handler macros to direct input to member -functions that take a wxNotebookEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a -wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.} -\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed. -Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event. This event can be \helpref{vetoed}{wxnotifyeventveto}.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxNotebook}{wxnotebook}, \helpref{wxTabCtrl}{wxtabctrl}, \helpref{wxTabEvent}{wxtabevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNotebookEvent::wxNotebookEvent}\label{wxnotebookeventconstr} - -\func{}{wxNotebookEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL}, - \param{int}{ id = 0}, \param{int}{ sel = -1}, \param{int}{ oldSel = -1}} - -Constructor (used internally by wxWindows only). - -\membersection{wxNotebookEvent::GetOldSelection}\label{wxnotebookeventgetoldselection} - -\constfunc{int}{GetOldSelection}{\void} - -Returns the page that was selected before the change, -1 if none was selected. - -\membersection{wxNotebookEvent::GetSelection}\label{wxnotebookeventgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the currently selected page, or -1 if none was selected. - -\membersection{wxNotebookEvent::SetOldSelection}\label{wxnotebookeventsetoldselection} - -\func{void}{SetOldSelection}{\param{int}{ page}} - -Sets the id of the page selected before the change. - -\membersection{wxNotebookEvent::SetSelection}\label{wxnotebookeventsetselection} - -\func{void}{SetSelection}{\param{int}{ page}} - -Sets the selection member variable. - -\wxheading{See also} - -\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection} - - diff --git a/docs/latex/wx/notifevt.tex b/docs/latex/wx/notifevt.tex deleted file mode 100644 index c68b7eca8b..0000000000 --- a/docs/latex/wx/notifevt.tex +++ /dev/null @@ -1,53 +0,0 @@ -\section{\class{wxNotifyEvent}}\label{wxnotifyevent} - -This class is not used by the event handlers by itself, but is a base class -for other event classes (such as \helpref{wxNotebookEvent}{wxnotebookevent}). - -It (or an object of a derived class) is sent when the controls state is being -changed and allows the program to \helpref{Veto()}{wxnotifyeventveto} this -change if it wants to prevent it from happening. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -None - -\wxheading{See also} - -\helpref{wxNotebookEvent}{wxnotebookevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNotifyEvent::wxNotifyEvent}\label{wxnotifyeventconstr} - -\func{}{wxNotifyEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL}, \param{int}{ id = 0}} - -Constructor (used internally by wxWindows only). - -\membersection{wxNotifyEvent::IsAllowed}\label{wxnotifyeventisallowed} - -\constfunc{bool}{IsAllowed}{\void} - -Returns TRUE if the change is allowed (\helpref{Veto()}{wxnotifyeventveto} -hasn't been called) or FALSE otherwise (if it was). - -\membersection{wxNotifyEvent::Veto}\label{wxnotifyeventveto} - -\func{void}{Veto}{\void} - -Prevents the change announced by this event from happening. - -It is in general a good idea to notify the user about the reasons for vetoing -the change because otherwise the applications behaviour (which just refuses to -do what the user wants) might be quite surprising. - diff --git a/docs/latex/wx/object.tex b/docs/latex/wx/object.tex deleted file mode 100644 index 1cce58e408..0000000000 --- a/docs/latex/wx/object.tex +++ /dev/null @@ -1,213 +0,0 @@ -\section{\class{wxObject}}\label{wxobject} - -This is the root class of all wxWindows classes. -It declares a virtual destructor which ensures that -destructors get called for all derived class objects where necessary. - -wxObject is the hub of a dynamic object creation -scheme, enabling a program to create instances of a class only knowing -its string class name, and to query the class hierarchy. - -The class contains optional debugging versions -of {\bf new} and {\bf delete}, which can help trace memory allocation -and deallocation problems. - -wxObject can be used to implement reference counted objects, such as -wxPen, wxBitmap and others. - -\wxheading{See also} - -\helpref{wxClassInfo}{wxclassinfo}, \helpref{Debugging overview}{debuggingoverview},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxObject::wxObject}\label{wxobjectconstr} - -\func{}{wxObject}{\void} - -Default constructor. - -\membersection{wxObject::\destruct{wxObject}} - -\func{}{wxObject}{\void} - -Destructor. Performs dereferencing, for those objects -that use reference counting. - -\membersection{wxObject::m\_refData}\label{wxobjectmrefdata} - -\member{wxObjectRefData* }{m\_refData} - -Pointer to an object which is the object's reference-counted data. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata},\rtfsp -\helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::Dump}\label{wxobjectdump} - -\func{void}{Dump}{\param{ostream\&}{ stream}} - -A virtual function that should be redefined by derived classes to allow dumping of -memory states. - -\wxheading{Parameters} - -\docparam{stream}{Stream on which to output dump information.} - -\wxheading{Remarks} - -Currently wxWindows does not define Dump for derived classes, but -programmers may wish to use it for their own applications. Be sure to -call the Dump member of the class's base class to allow all information to be dumped. - -The implementation of this function just writes the class name of the object. -If DEBUG is undefined or zero, the implementation is empty. - -\membersection{wxObject::GetClassInfo}\label{wxobjectgetclassinfo} - -\func{wxClassInfo *}{GetClassInfo}{\void} - -This virtual function is redefined for every class that requires run-time -type information, when using DECLARE\_CLASS macros. - -\membersection{wxObject::GetRefData}\label{wxobjectgetrefdata} - -\constfunc{wxObjectRefData*}{GetRefData}{\void} - -Returns the {\bf m\_refData} pointer. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::IsKindOf}\label{wxobjectiskindof} - -\func{bool}{IsKindOf}{\param{wxClassInfo *}{info}} - -Determines whether this class is a subclass of (or the same class as) -the given class. - -\wxheading{Parameters} - -\docparam{info}{A pointer to a class information object, which may be obtained -by using the CLASSINFO macro.} - -\wxheading{Return value} - -TRUE if the class represented by {\it info} is the same class as -this one or is derived from it. - -\wxheading{Example} - -\begin{verbatim} - bool tmp = obj->IsKindOf(CLASSINFO(wxFrame)); -\end{verbatim} - -\membersection{wxObject::Ref}\label{wxobjectref} - -\func{void}{Ref}{\param{const wxObject\& }{clone}} - -Makes this object refer to the data in {\it clone}. - -\wxheading{Parameters} - -\docparam{clone}{The object to `clone'.} - -\wxheading{Remarks} - -First this function calls \helpref{wxObject::UnRef}{wxobjectunref} on itself -to decrement (and perhaps free) the data it is currently referring to. - -It then sets its own m\_refData to point to that of {\it clone}, and increments the reference count -inside the data. - -\wxheading{See also} - -\helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::SetRefData}\label{wxobjectsetrefdata} - -\func{void}{SetRefData}{\param{wxObjectRefData*}{ data}} - -Sets the {\bf m\_refData} pointer. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::UnRef}\label{wxobjectunref} - -\func{void}{UnRef}{\void} - -Decrements the reference count in the associated data, and if it is zero, deletes the data. -The {\bf m\_refData} member is set to NULL. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::operator new}\label{wxobjectnew} - -\func{void *}{new}{\param{size\_t }{size}, \param{const wxString\& }{filename = NULL}, \param{int}{ lineNum = 0}} - -The {\it new} operator is defined for debugging versions of the library only, when -the identifier DEBUG is defined and is more than zero. It takes over memory allocation, allowing -wxDebugContext operations. - -\membersection{wxObject::operator delete}\label{wxobjectdelete} - -\func{void}{delete}{\param{void }{buf}} - -The {\it delete} operator is defined for debugging versions of the library only, when -the identifier DEBUG is defined and is more than zero. It takes over memory deallocation, allowing -wxDebugContext operations. - -\section{\class{wxObjectRefData}}\label{wxobjectrefdata} - -This class is used to store reference-counted data. Derive classes from this to -store your own data. When retrieving information from a {\bf wxObject}'s reference data, -you will need to cast to your own derived class. - -\wxheading{Friends} - -\helpref{wxObject}{wxobject} - -\wxheading{See also} - -\helpref{wxObject}{wxobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxObjectRefData::m\_count} - -\member{int}{m\_count} - -Reference count. When this goes to zero during a \helpref{wxObject::UnRef}{wxobjectunref}, an object -can delete the {\bf wxObjectRefData} object. - -\membersection{wxObjectRefData::wxObjectRefData}\label{wxobjectrefdataconstr} - -\func{}{wxObjectRefData}{\void} - -Default constructor. Initialises the {\bf m\_count} member to 1. - -\membersection{wxObjectRefData::\destruct{wxObjectRefData}} - -\func{}{wxObjectRefData}{\void} - -Destructor. - - diff --git a/docs/latex/wx/outptstr.tex b/docs/latex/wx/outptstr.tex deleted file mode 100644 index af0d1c54d0..0000000000 --- a/docs/latex/wx/outptstr.tex +++ /dev/null @@ -1,67 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxOutputStream}}\label{wxoutputstream} - -\wxheading{Derived from} - -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxOutputStream::wxOutputStream} - -\func{}{wxOutputStream}{\void} - -Creates a dummy wxOutputStream object. - -\membersection{wxOutputStream::\destruct{wxOutputStream}} - -\func{}{\destruct{wxOutputStream}}{\void} - -Destructor. - -\membersection{wxOutputStream::LastWrite} - -\constfunc{size\_t}{LastWrite}{\void} - -\membersection{wxOutputStream::PutC} - -\func{void}{PutC}{\param{char}{ c}} - -Puts the specified character in the output queue and increments the -stream position. - -\membersection{wxOutputStream::SeekO} - -\func{off\_t}{SeekO}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode}} - -Changes the stream current position. - -\membersection{wxOutputStream::TellO} - -\constfunc{off\_t}{TellO}{\void} - -Returns the current stream position. - -\membersection{wxOutputStream::Write} - -\func{wxOutputStream\&}{Write}{\param{const void *}{buffer}, \param{size\_t}{ size}} - -Writes the specified amount of bytes using the data of \it{buffer}. -\it{WARNING!} The buffer absolutely needs to have at least the specified size. - -This function returns a reference on the current object, so the user can test -any states of the stream right away. - -\func{wxOutputStream\&}{Write}{\param{wxInputStream\&}{ stream\_in}} - -Reads data from the specified input stream and stores them -in the current stream. The data is read until an error is raised -by one of the two streams. - diff --git a/docs/latex/wx/pagedlg.tex b/docs/latex/wx/pagedlg.tex deleted file mode 100644 index 7cd42caf5f..0000000000 --- a/docs/latex/wx/pagedlg.tex +++ /dev/null @@ -1,288 +0,0 @@ -\section{\class{wxPageSetupDialogData}}\label{wxpagesetupdialogdata} - -This class holds a variety of information related to \helpref{wxPageSetupDialog}{wxpagesetupdialog}. - -It contains a \helpref{wxPrintData}{wxprintdata} member which is used to hold basic printer configuration data (as opposed to the -user-interface configuration settings stored by wxPageSetupDialogData). - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPageSetupDialog}{wxpagesetupdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPageSetupDialogData::wxPageSetupDialogData} - -\func{}{wxPageSetupDialogData}{\void} - -Default constructor. - -\func{}{wxPageSetupDialogData}{\param{wxPageSetupDialogData\&}{ data}} - -Copy constructor. - -\func{}{wxPrintDialogData}{\param{wxPrintData\&}{ printData}} - -Construct an object from a print dialog data object. - -\membersection{wxPageSetupDialogData::\destruct{wxPageSetupDialogData}} - -\func{}{\destruct{wxPageSetupDialogData}}{\void} - -Destructor. - -\membersection{wxPageSetupDialogData::EnableHelp}\label{wxpagesetupdialogdataenablehelp} - -\func{void}{EnableHelp}{\param{bool }{flag}} - -Enables or disables the `Help' button (Windows only). - -\membersection{wxPageSetupDialogData::EnableMargins}\label{wxpagesetupdialogdataenablemargins} - -\func{void}{EnableMargins}{\param{bool }{flag}} - -Enables or disables the margin controls (Windows only). - -\membersection{wxPageSetupDialogData::EnableOrientation}\label{wxpagesetupdialogdataenableorientation} - -\func{void}{EnableOrientation}{\param{bool }{flag}} - -Enables or disables the orientation control (Windows only). - -\membersection{wxPageSetupDialogData::EnablePaper}\label{wxpagesetupdialogdataenablepaper} - -\func{void}{EnablePaper}{\param{bool }{flag}} - -Enables or disables the paper size control (Windows only). - -\membersection{wxPageSetupDialogData::EnablePrinter}\label{wxpagesetupdialogdataenableprinter} - -\func{void}{EnablePrinter}{\param{bool }{flag}} - -Enables or disables the {\bf Printer} button, which invokes a printer setup dialog. - -\membersection{wxPageSetupDialogData::GetDefaultMinMargins}\label{wxpagesetupdialogdatagetdefaultminmargins} - -\constfunc{bool}{GetDefaultMinMargins}{\void} - -Returns TRUE if the page setup dialog will take its minimum margin values from the currently -selected printer properties. Windows only. - -\membersection{wxPageSetupDialogData::GetEnableMargins}\label{wxpagesetupdialogdatagetenablemargins} - -\constfunc{bool}{GetEnableMargins}{\void} - -Returns TRUE if the margin controls are enabled (Windows only). - -\membersection{wxPageSetupDialogData::GetEnableOrientation}\label{wxpagesetupdialogdatagetenableorientation} - -\constfunc{bool}{GetEnableOrientation}{\void} - -Returns TRUE if the orientation control is enabled (Windows only). - -\membersection{wxPageSetupDialogData::GetEnablePaper}\label{wxpagesetupdialogdatagetenablepaper} - -\constfunc{bool}{GetEnablePaper}{\void} - -Returns TRUE if the paper size control is enabled (Windows only). - -\membersection{wxPageSetupDialogData::GetEnablePrinter}\label{wxpagesetupdialogdatagetenableprinter} - -\constfunc{bool}{GetEnablePrinter}{\void} - -Returns TRUE if the printer setup button is enabled. - -\membersection{wxPageSetupDialogData::GetEnableHelp}\label{wxpagesetupdialogdatagetenablehelp} - -\constfunc{bool}{GetEnableHelp}{\void} - -Returns TRUE if the printer setup button is enabled. - -\membersection{wxPageSetupDialogData::GetDefaultInfo}\label{wxpagesetupdialogdatagetdefaultinfo} - -\constfunc{bool}{GetDefaultInfo}{\void} - -Returns TRUE if the dialog will simply return default printer information (such as orientation) -instead of showing a dialog. Windows only. - -\membersection{wxPageSetupDialogData::GetMarginTopLeft}\label{wxpagesetupdialogdatagetmargintopleft} - -\constfunc{wxPoint}{GetMarginTopLeft}{\void} - -Returns the left (x) and top (y) margins. - -\membersection{wxPageSetupDialogData::GetMarginBottomRight}\label{wxpagesetupdialogdatagetmarginbottomright} - -\constfunc{wxPoint}{GetMarginBottomRight}{\void} - -Returns the right (x) and bottom (y) margins. - -\membersection{wxPageSetupDialogData::GetMinMarginTopLeft}\label{wxpagesetupdialogdatagetminmargintopleft} - -\constfunc{wxPoint}{GetMinMarginTopLeft}{\void} - -Returns the left (x) and top (y) minimum margins the user can enter (Windows only). - -\membersection{wxPageSetupDialogData::GetMinMarginBottomRight}\label{wxpagesetupdialogdatagetminmarginbottomright} - -\constfunc{wxPoint}{GetMinMarginBottomRight}{\void} - -Returns the right (x) and bottom (y) minimum margins the user can enter (Windows only). - -\membersection{wxPageSetupDialogData::GetPaperId}\label{wxpagesetupdialogdatagetpaperid} - -\constfunc{wxPaperSize}{GetPaperId}{\void} - -Returns the paper id (stored in the internal wxPrintData object). - -For further information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}. - -\membersection{wxPageSetupDialogData::GetPaperSize}\label{wxpagesetupdialogdatagetpapersize} - -\constfunc{wxSize}{GetPaperSize}{\void} - -Returns the paper size in millimetres. - -\membersection{wxPageSetupDialogData::GetPrintData}\label{wxpagesetupdialogdatagetprintdata} - -\func{wxPrintData\&}{GetPrintData}{\void} - -Returns a reference to the \helpref{print data}{wxprintdata} associated with this object. - -\membersection{wxPageSetupDialogData::SetDefaultInfo}\label{wxpagesetupdialogdatasetdefaultinfo} - -\func{void}{SetDefaultInfo}{\param{bool}{ flag}} - -Pass TRUE if the dialog will simply return default printer information (such as orientation) -instead of showing a dialog. Windows only. - -\membersection{wxPageSetupDialogData::SetDefaultMinMargins}\label{wxpagesetupdialogdatasetdefaultminmargins} - -\func{void}{SetDefaultMinMargins}{\param{bool}{ flag}} - -Pass TRUE if the page setup dialog will take its minimum margin values from the currently -selected printer properties. Windows only. - -\membersection{wxPageSetupDialogData::SetMarginTopLeft}\label{wxpagesetupdialogdatasetmargintopleft} - -\func{void}{GetMarginTopLeft}{\param{const wxPoint\& }{pt}} - -Sets the left (x) and top (y) margins. - -\membersection{wxPageSetupDialogData::SetMarginBottomRight}\label{wxpagesetupdialogdatasetmarginbottomright} - -\func{void}{SetMarginBottomRight}{\param{const wxPoint\& }{pt}} - -Sets the right (x) and bottom (y) margins. - -\membersection{wxPageSetupDialogData::SetMinMarginTopLeft}\label{wxpagesetupdialogdatasetminmargintopleft} - -\func{void}{SetMinMarginTopLeft}{\param{const wxPoint\& }{pt}} - -Sets the left (x) and top (y) minimum margins the user can enter (Windows only). - -\membersection{wxPageSetupDialogData::SetMinMarginBottomRight}\label{wxpagesetupdialogdatasetminmarginbottomright} - -\func{void}{SetMinMarginBottomRight}{\param{const wxPoint\& }{pt}} - -Sets the right (x) and bottom (y) minimum margins the user can enter (Windows only). - -\membersection{wxPageSetupDialogData::SetPaperId}\label{wxpagesetupdialogdatasetpaperid} - -\func{void}{SetPaperId}{\param{wxPaperSize\& }{id}} - -Sets the paper size id. For further information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}. - -Calling this function overrides the explicit paper dimensions passed in \helpref{wxPageSetupDialogData::SetPaperSize}{wxpagesetupdialogdatasetpapersize}. - -\membersection{wxPageSetupDialogData::SetPaperSize}\label{wxpagesetupdialogdatasetpapersize} - -\func{void}{SetPaperSize}{\param{const wxSize\& }{size}} - -Sets the paper size in millimetres. If a corresponding paper id is found, it will be set in the -internal wxPrintData object, otherwise the paper size overrides the paper id. - -\membersection{wxPageSetupDialogData::SetPrintData}\label{wxpagesetupdialogdatasetprintdata} - -\func{void}{SetPrintData}{\param{const wxPrintData\&}{ printData}} - -Sets the \helpref{print data}{wxprintdata} associated with this object. - -\membersection{wxPageSetupDialogData::operator $=$}\label{wxpagesetupdialogdataassign} - -\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}} - -Assigns print data to this object. - -\func{void}{operator $=$}{\param{const wxPageSetupDialogData\&}{ data}} - -Assigns page setup data to this object. - -\section{\class{wxPageSetupDialog}}\label{wxpagesetupdialog} - -This class represents the page setup common dialog. The page setup dialog is standard from -Windows 95 on, replacing the print setup dialog (which is retained in Windows and wxWindows -for backward compatibility). On Windows 95 and NT 4.0 and above, the page setup dialog is -native to the windowing system, otherwise it is emulated. - -The page setup dialog contains controls for paper size (A4, A5 etc.), orientation (landscape -or portrait), and controls for setting left, top, right and bottom margin sizes in millimetres. - -When the dialog has been closed, you need to query the \helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} object -associated with the dialog. - -Note that the OK and Cancel buttons do not destroy the dialog; this must be done by the -application. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPageSetupDialog::wxPageSetupDialog} - -\func{}{wxPageSetupDialog}{\param{wxWindow* }{parent}, \param{wxPageSetupDialogData* }{data = NULL}} - -Constructor. Pass a parent window, and optionally a pointer to a block of page setup -data, which will be copied to the print dialog's internal data. - -\membersection{wxPageSetupDialog::\destruct{wxPageSetupDialog}} - -\func{}{\destruct{wxPageSetupDialog}}{\void} - -Destructor. - -\membersection{wxPageSetupDialog::GetPageSetupData}\label{wxpagesetupdialoggetpagesetupdata} - -\func{wxPageSetupDialogData\&}{GetPageSetupData}{\void} - -Returns the \helpref{page setup data}{wxpagesetupdialogdata} associated with the dialog. - -\membersection{wxPageSetupDialog::ShowModal}\label{wxpagesetupdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/paintdc.tex b/docs/latex/wx/paintdc.tex deleted file mode 100644 index c9c88d03e9..0000000000 --- a/docs/latex/wx/paintdc.tex +++ /dev/null @@ -1,41 +0,0 @@ -\section{\class{wxPaintDC}}\label{wxpaintdc} - -A wxPaintDC must be constructed if an application wishes to paint on the -client area of a window from within an {\bf OnPaint} event. -This should normally be constructed as a temporary stack object; don't store -a wxPaintDC object. If you have an OnPaint handler, you {\it must} create a wxPaintDC -object within it even if you don't actually use it. - -Using wxPaintDC within OnPaint is important because it automatically -sets the clipping area to the damaged area of the window. Attempts to draw -outside this area do not appear. - -To draw on a window from outside {\bf OnPaint}, construct a \helpref{wxClientDC}{wxclientdc} object. - -To draw on the whole window including decorations, construct a \helpref{wxWindowDC}{wxwindowdc} object -(Windows only). - -\wxheading{Derived from} - -\helpref{wxWindowDC}{wxwindowdc}\\ -\helpref{wxDC}{wxdc} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxWindowDC}{wxwindowdc}, \helpref{wxScreenDC}{wxscreendc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPaintDC::wxPaintDC} - -\func{}{wxPaintDC}{\param{wxWindow*}{ window}} - -Constructor. Pass a pointer to the window on which you wish to paint. - - - diff --git a/docs/latex/wx/paintevt.tex b/docs/latex/wx/paintevt.tex deleted file mode 100644 index e7b0551f45..0000000000 --- a/docs/latex/wx/paintevt.tex +++ /dev/null @@ -1,35 +0,0 @@ -\section{\class{wxPaintEvent}}\label{wxpaintevent} - -A paint event is sent when a window's contents needs to be repainted. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a paint event, use this event handler macro to direct input to a member -function that takes a wxPaintEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_PAINT(func)}}{Process a wxEVT\_PAINT event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnPaint}{wxwindowonpaint}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPaintEvent::wxPaintEvent} - -\func{}{wxPaintEvent}{\param{int }{id = 0}} - -Constructor. - diff --git a/docs/latex/wx/palette.tex b/docs/latex/wx/palette.tex deleted file mode 100644 index 994a0c6727..0000000000 --- a/docs/latex/wx/palette.tex +++ /dev/null @@ -1,169 +0,0 @@ -\section{\class{wxPalette}}\label{wxpalette} - -A palette is a table that maps pixel values to RGB colours. It allows the colours -of a low-depth bitmap, for example, to be mapped to the available colours in a display. - -%TODO: topic overview for wxPalette. -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullPalette} - -\wxheading{See also} - -\helpref{wxDC::SetPalette}{wxdcsetpalette}, \helpref{wxBitmap}{wxbitmap} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPalette::wxPalette}\label{wxpaletteconstr} - -\func{}{wxPalette}{\void} - -Default constructor. - -\func{}{wxPalette}{\param{const wxPalette\&}{ palette}} - -Copy constructor. This uses reference counting so is a cheap operation. - -\func{}{wxPalette}{\param{int}{ n}, \param{const unsigned char* }{red},\\ - \param{const unsigned char* }{green}, \param{const unsigned char* }{blue}} - -Creates a palette from arrays of size {\it n}, one for each -red, blue or green component. - -\wxheading{Parameters} - -\docparam{palette}{A pointer or reference to the palette to copy.} - -\docparam{n}{The number of indices in the palette.} - -\docparam{red}{An array of red values.} - -\docparam{green}{An array of green values.} - -\docparam{blue}{An array of blue values.} - -\wxheading{See also} - -\helpref{wxPalette::Create}{wxpalettecreate} - -\membersection{wxPalette::\destruct{wxPalette}} - -\func{}{\destruct{wxPalette}}{\void} - -Destructor. - -\membersection{wxPalette::Create}\label{wxpalettecreate} - -\func{bool}{Create}{\param{int}{ n}, \param{const unsigned char* }{red},\rtfsp - \param{const unsigned char* }{green}, \param{const unsigned char* }{blue}} - -Creates a palette from arrays of size {\it n}, one for each -red, blue or green component. - -\wxheading{Parameters} - -\docparam{n}{The number of indices in the palette.} - -\docparam{red}{An array of red values.} - -\docparam{green}{An array of green values.} - -\docparam{blue}{An array of blue values.} - -\wxheading{Return value} - -TRUE if the creation was successful, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxPalette::wxPalette}{wxpaletteconstr} - -\membersection{wxPalette::GetPixel}\label{wxpalettegetpixel} - -\constfunc{int}{GetPixel}{\param{const unsigned char }{red}, \param{const unsigned char }{green},\rtfsp - \param{const unsigned char }{blue}} - -Returns a pixel value (index into the palette) for the given RGB values. - -\wxheading{Parameters} - -\docparam{red}{Red value.} - -\docparam{green}{Green value.} - -\docparam{blue}{Blue value.} - -\wxheading{Return value} - -The nearest palette index. - -\wxheading{See also} - -\helpref{wxPalette::GetRGB}{wxpalettegetrgb} - -\membersection{wxPalette::GetRGB}\label{wxpalettegetrgb} - -\constfunc{bool}{GetPixel}{\param{int}{ pixel}, \param{const unsigned char* }{red}, \param{const unsigned char* }{green},\rtfsp - \param{const unsigned char* }{blue}} - -Returns RGB values for a given palette index. - -\wxheading{Parameters} - -\docparam{pixel}{The palette index.} - -\docparam{red}{Receives the red value.} - -\docparam{green}{Receives the green value.} - -\docparam{blue}{Receives the blue value.} - -\wxheading{Return value} - -TRUE if the operation was successful. - -\wxheading{See also} - -\helpref{wxPalette::GetPixel}{wxpalettegetpixel} - -\membersection{wxPalette::Ok}\label{wxpaletteok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if palette data is present. - -\membersection{wxPalette::operator $=$}\label{wxpaletteassignment} - -\func{wxPalette\&}{operator $=$}{\param{const wxPalette\& }{palette}} - -Assignment operator, using reference counting. Returns a reference -to `this'. - -\membersection{wxPalette::operator $==$}\label{wxpaletteequals} - -\func{bool}{operator $==$}{\param{const wxPalette\& }{palette}} - -Equality operator. Two palettes are equal if they contain pointers -to the same underlying palette data. It does not compare each attribute, -so two independently-created palettes using the same parameters will -fail the test. - -\membersection{wxPalette::operator $!=$}\label{wxpalettenotequals} - -\func{bool}{operator $!=$}{\param{const wxPalette\& }{palette}} - -Inequality operator. Two palettes are not equal if they contain pointers -to different underlying palette data. It does not compare each attribute. - - diff --git a/docs/latex/wx/panel.tex b/docs/latex/wx/panel.tex deleted file mode 100644 index ac46c67323..0000000000 --- a/docs/latex/wx/panel.tex +++ /dev/null @@ -1,126 +0,0 @@ -\section{\class{wxPanel}}\label{wxpanel} - -A panel is a window on which controls are placed. It is usually placed within a frame. -It contains minimal extra functionality over and above its parent class wxWindow; its main -purpose is to be similar in appearance and functionality to a dialog, but with the flexibility of -having any window as a parent. - -{\it Note:} if not all characters are being intercepted by your OnKeyDown or OnChar handler, -it may be because you are using the wxTAB\_TRAVERSAL style, which grabs some keypresses for use -by child controls. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no specific styles for this window. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -By default, a panel has the same colouring as a dialog. - -A panel may be loaded from a wxWindows resource file (extension {\tt wxr}). - -\wxheading{See also} - -\helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPanel::wxPanel}\label{wxpanelconstr} - -\func{}{wxPanel}{\void} - -Default constructor. - -\func{}{wxPanel}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp -\param{const wxString\& }{name = ``panel"}} - -Constructor. - -\wxheading{Parameters} - -\docparam{parent}{The parent window.} - -\docparam{id}{An identifier for the panel. A value of -1 is taken to mean a default.} - -\docparam{pos}{The panel position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{size}{The panel size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxPanel}{wxpanel}.} - -\docparam{name}{Used to associate a name with the window, -allowing the application user to set Motif resource values for -individual dialog boxes.} - -\wxheading{See also} - -\helpref{wxPanel::Create}{wxpanelcreate} - -\membersection{wxPanel::\destruct{wxPanel}} - -\func{}{\destruct{wxPanel}}{\void} - -Destructor. Deletes any child windows before deleting the physical window. - -\membersection{wxPanel::Create}\label{wxpanelcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp -\param{const wxString\& }{name = ``panel"}} - -Used for two-step panel construction. See \helpref{wxPanel::wxPanel}{wxpanelconstr}\rtfsp -for details. - -\membersection{wxPanel::InitDialog}\label{wxpanelinitdialog} - -\func{void}{InitDialog}{\void} - -Sends an \helpref{wxWindow::OnInitDialog}{wxwindowoninitdialog} event, which -in turn transfers data to the dialog via validators. - -\wxheading{See also} - -\helpref{wxWindow::OnInitDialog}{wxwindowoninitdialog} - -\membersection{wxPanel::OnSysColourChanged}\label{wxpanelonsyscolourchanged} - -\func{void}{OnSysColourChanged}{\param{wxSysColourChangedEvent\& }{event}} - -The default handler for wxEVT\_SYS\_COLOUR\_CHANGED. - -\wxheading{Parameters} - -\docparam{event}{The colour change event.} - -\wxheading{Remarks} - -Changes the panel's colour to conform to the current settings (Windows only). -Add an event table entry for your panel class if you wish the behaviour -to be different (such as keeping a user-defined -background colour). If you do override this function, call \helpref{wxWindow::OnSysColourChanged}{wxwindowonsyscolourchanged} to -propagate the notification to child windows and controls. - -\wxheading{See also} - -\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent} - - diff --git a/docs/latex/wx/pantabv.tex b/docs/latex/wx/pantabv.tex deleted file mode 100644 index 8fbe4a7a01..0000000000 --- a/docs/latex/wx/pantabv.tex +++ /dev/null @@ -1,73 +0,0 @@ -\section{\class{wxPanelTabView}}\label{wxpaneltabview} - -The wxPanelTabView is responsible for input and output on a wxPanel. - -\wxheading{Derived from} - -\helpref{wxTabView}{wxtabview}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTabView overview}{wxtabviewoverview}, \helpref{wxTabView}{wxtabview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPanelTabView::wxPanelTabView}\label{wxpaneltabviewconstr} - -\func{void}{wxPanelTabView}{\param{wxPanel *}{panel}, \param{long }{style = wxTAB\_STYLE\_DRAW\_BOX \pipe wxTAB\_STYLE\_COLOUR\_INTERIOR}} - -Constructor. {\it panel} should be a wxTabbedPanel or wxTabbedDialog: the type will be checked by the view at run time. - -{\it style} may be a bit list of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTAB\_STYLE\_DRAW\_BOX}{Draw a box around the view area. Most commonly used for dialogs.} -\twocolitem{wxTAB\_STYLE\_COLOUR\_INTERIOR}{Draw tab backgrounds in the specified colour. Omitting this style -will ensure that the tab background matches the dialog background.} -\end{twocollist} - -\membersection{wxPanelTabView::\destruct{wxPanelTabView}} - -\func{void}{\destruct{wxPanelTabView}}{\void} - -Destructor. This destructor deletes all the panels associated with the view. -If you do not wish this to happen, call ClearWindows with argument FALSE before the -view is likely to be destroyed. This will clear the list of windows, without deleting them. - -\membersection{wxPanelTabView::AddTabWindow}\label{wxpaneltabviewaddtabwindow} - -\func{void}{AddTabPanel}{\param{int}{ id}, \param{wxWindow *}{window}} - -Adds a window to the view. The window is associated with the tab identifier, and will be shown or hidden as the tab -is selected or deselected. - -\membersection{wxPanelTabView::ClearWindows} - -\func{void}{ClearWindows}{\param{bool}{ deleteWindows = TRUE}} - -Removes the child windows from the view. If {\it deleteWindows} is TRUE, the windows will be deleted. - -\membersection{wxPanelTabView::GetCurrentWindow} - -\func{wxPanel *}{GetCurrentWindow}{\void} - -Returns the child window currently being displayed on the tabbed panel or dialog box. - -\membersection{wxPanelTabView::GetTabWindow} - -\func{wxWindow *}{GetTabWindow}{\param{int}{ id}} - -Returns the window associated with the tab identifier. - -\membersection{wxPanelTabView::ShowWindowForTab} - -\func{void}{ShowWindowForTab}{\param{int}{ id}} - -Shows the child window corresponding to the tab identifier, and hides the previously shown window. - - diff --git a/docs/latex/wx/pathlist.tex b/docs/latex/wx/pathlist.tex deleted file mode 100644 index 82fdc7c662..0000000000 --- a/docs/latex/wx/pathlist.tex +++ /dev/null @@ -1,79 +0,0 @@ -\section{\class{wxPathList}}\label{wxpathlist} - -The path list is a convenient way of storing a number of directories, and -when presented with a filename without a directory, searching for an existing file -in those directories. Storing the filename only in an application's files and -using a locally-defined list of directories makes the application and its files more -portable. - -Use the {\it wxFileNameFromPath} global function to extract the filename -from the path. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxList}{wxlist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPathList::wxPathList} - -\func{}{wxPathList}{\void} - -Constructor. - -\membersection{wxPathList::AddEnvList} - -\func{void}{AddEnvList}{\param{const wxString\& }{env\_variable}} - -Finds the value of the given environment variable, and adds all paths -to the path list. Useful for finding files in the PATH variable, for -example. - -\membersection{wxPathList::Add} - -\func{void}{Add}{\param{const wxString\& }{path}} - -Adds the given directory to the path list, but does not -check if the path was already on the list (use wxPathList::Member) -for this). - -\membersection{wxPathList::EnsureFileAccessible} - -\func{void}{EnsureFileAccessible}{\param{const wxString\& }{filename}} - -Given a full filename (with path), ensures that files in the same path -can be accessed using the pathlist. It does this by stripping the -filename and adding the path to the list if not already there. - -\membersection{wxPathList::FindAbsoluteValidPath} - -\func{wxString}{FindAbsoluteValidPath}{\param{const wxString\& }{file}} - -Searches for a full path for an existing file by appending {\it file} to -successive members of the path list. If the file exists, a temporary -pointer to the absolute path is returned. - -\membersection{wxPathList::FindValidPath} - -\func{wxString}{FindValidPath}{\param{const wxString\& }{file}} - -Searches for a full path for an existing file by appending {\it file} to -successive members of the path list. If the file exists, a temporary -pointer to the full path is returned. This path may be relative to the current -working directory. - -\membersection{wxPathList::Member} - -\func{bool}{Member}{\param{const wxString\& }{file}} - -TRUE if the path is in the path list (ignoring case). - diff --git a/docs/latex/wx/pen.tex b/docs/latex/wx/pen.tex deleted file mode 100644 index 8754bae778..0000000000 --- a/docs/latex/wx/pen.tex +++ /dev/null @@ -1,408 +0,0 @@ -\section{\class{wxPen}}\label{wxpen} - -A pen is a drawing tool for drawing outlines. It is used for drawing -lines and painting the outline of rectangles, ellipses, etc. It has a -colour, a width and a style. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullPen} - -Pointers: - -{\bf wxRED\_PEN\\ -wxCYAN\_PEN\\ -wxGREEN\_PEN\\ -wxBLACK\_PEN\\ -wxWHITE\_PEN\\ -wxTRANSPARENT\_PEN\\ -wxBLACK\_DASHED\_PEN\\ -wxGREY\_PEN\\ -wxMEDIUM\_GREY\_PEN\\ -wxLIGHT\_GREY\_PEN} - -\wxheading{Remarks} - -On a monochrome display, wxWindows shows all non-white pens as black. - -Do not initialize objects on the stack before the program commences, -since other required structures may not have been set up yet. Instead, -define global pointers to objects and create them in {\it OnInit} or -when required. - -An application may wish to dynamically create pens with different -characteristics, and there is the consequent danger that a large number -of duplicate pens will be created. Therefore an application may wish to -get a pointer to a pen by using the global list of pens {\bf -wxThePenList}, and calling the member function {\bf FindOrCreatePen}. -See the entry for \helpref{wxPenList}{wxpenlist}. - -wxPen uses a reference counting system, so assignments between brushes are very -cheap. You can therefore use actual wxPen objects instead of pointers without -efficiency problems. Once one wxPen object changes its data it will create its -own pen data internally so that other pens, which previously shared the -data using the reference counting, are not affected. - -%TODO: an overview for wxPen. -\wxheading{See also} - -\helpref{wxPenList}{wxpenlist}, \helpref{wxDC}{wxdc}, \helpref{wxDC::SetPen}{wxdcsetpen} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPen::wxPen}\label{wxpenconstr} - -\func{}{wxPen}{\void} - -Default constructor. The pen will be uninitialised, and \helpref{wxPen::Ok}{wxpenok} will -return FALSE. - -\func{}{wxPen}{\param{const wxColour\&}{ colour}, \param{int}{ width}, \param{int}{ style}} - -Constructs a pen from a colour object, pen width and style. - -\func{}{wxPen}{\param{const wxString\& }{colourName}, \param{int}{ width}, \param{int}{ style}} - -Constructs a pen from a colour name, pen width and style. - -\func{}{wxPen}{\param{const wxBitmap\&}{ stipple}, \param{int}{ width}} - -Constructs a stippled pen from a stipple bitmap and a width. - -\func{}{wxPen}{\param{const wxPen\&}{ pen}} - -Copy constructor. This uses reference counting so is a cheap operation. - -\wxheading{Parameters} - -\docparam{colour}{A colour object.} - -\docparam{colourName}{A colour name.} - -\docparam{width}{Pen width. Under Windows, the pen width cannot be greater than 1 if -the style is wxDOT, wxLONG\_DASH, wxSHORT\_DASH, wxDOT\_DASH, or wxUSER\_DASH.} - -\docparam{stipple}{A stipple bitmap.} - -\docparam{pen}{A pointer or reference to a pen to copy.} - -\docparam{style}{The style may be one of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSOLID}}{Solid style.} -\twocolitem{{\bf wxTRANSPARENT}}{No pen is used.} -\twocolitem{{\bf wxDOT}}{Dotted style.} -\twocolitem{{\bf wxLONG\_DASH}}{Long dashed style.} -\twocolitem{{\bf wxSHORT\_DASH}}{Short dashed style.} -\twocolitem{{\bf wxDOT\_DASH}}{Dot and dash style.} -\twocolitem{{\bf wxSTIPPLE}}{Use the stipple bitmap.} -\twocolitem{{\bf wxUSER\_DASH}}{Use the user dashes: see \helpref{wxPen::SetDashes}{wxpensetdashes}.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\end{twocollist}} - -\wxheading{Remarks} - -Different versions of Windows and different versions of other platforms -support {\it very} different subsets of the styles above - there is no -similarity even between Windows95 and Windows98 - so handle with care. - -If the named colour form is used, an appropriate {\bf wxColour} structure -is found in the colour database. - -\wxheading{See also} - -\helpref{wxPen::SetStyle}{wxpensetstyle}, \helpref{wxPen::SetColour}{wxpensetcolour},\rtfsp -\helpref{wxPen::SetWidth}{wxpensetwidth}, \helpref{wxPen::SetStipple}{wxpensetstipple} - -\membersection{wxPen::\destruct{wxPen}} - -\func{}{\destruct{wxPen}}{\void} - -Destructor. - -\wxheading{Remarks} - -The destructor may not delete the underlying pen object of the native windowing -system, since wxBrush uses a reference counting system for efficiency. - -Although all remaining pens are deleted when the application exits, -the application should try to clean up all pens itself. This is because -wxWindows cannot know if a pointer to the pen object is stored in an -application data structure, and there is a risk of double deletion. - -\membersection{wxPen::GetCap}\label{wxpengetcap} - -\constfunc{int}{GetCap}{\void} - -Returns the pen cap style, which may be one of {\bf wxCAP\_ROUND}, {\bf wxCAP\_PROJECTING} and -\rtfsp{\bf wxCAP\_BUTT}. The default is {\bf wxCAP\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::SetCap}{wxpensetcap} - -\membersection{wxPen::GetColour}\label{wxpengetcolour} - -\constfunc{wxColour\&}{GetColour}{\void} - -Returns a reference to the pen colour. - -\wxheading{See also} - -\helpref{wxPen::SetColour}{wxpensetcolour} - -\membersection{wxPen::GetDashes}\label{wxpengetdashes} - -\constfunc{int}{GetDashes}{\param{wxDash**}{ dashes}} - -Gets an array of dashes (defined as char in X, DWORD under Windows). -{\it dashes} is a pointer to the internal array. Do not deallocate or store this pointer. -The function returns the number of dashes associated with this pen. - -\wxheading{See also} - -\helpref{wxPen::SetDashes}{wxpensetdashes} - -\membersection{wxPen::GetJoin}\label{wxpengetjoin} - -\constfunc{int}{GetJoin}{\void} - -Returns the pen join style, which may be one of {\bf wxJOIN\_BEVEL}, {\bf wxJOIN\_ROUND} and -\rtfsp{\bf wxJOIN\_MITER}. The default is {\bf wxJOIN\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::SetJoin}{wxpensetjoin} - -\membersection{wxPen::GetStipple}\label{wxpengetstipple} - -\constfunc{wxBitmap* }{GetStipple}{\void} - -Gets a pointer to the stipple bitmap. - -\wxheading{See also} - -\helpref{wxPen::SetStipple}{wxpensetstipple} - -\membersection{wxPen::GetStyle}\label{wxpengetstyle} - -\constfunc{int}{GetStyle}{\void} - -Returns the pen style. - -\wxheading{See also} - -\helpref{wxPen::wxPen}{wxpenconstr}, \helpref{wxPen::SetStyle}{wxpensetstyle} - -\membersection{wxPen::GetWidth}\label{wxpengetwidth} - -\constfunc{int}{GetWidth}{\void} - -Returns the pen width. - -\wxheading{See also} - -\helpref{wxPen::SetWidth}{wxpensetwidth} - -\membersection{wxPen::Ok}\label{wxpenok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if the pen is initialised. - -\membersection{wxPen::SetCap}\label{wxpensetcap} - -\func{void}{SetCap}{\param{int}{ capStyle}} - -Sets the pen cap style, which may be one of {\bf wxCAP\_ROUND}, {\bf wxCAP\_PROJECTING} and -\rtfsp{\bf wxCAP\_BUTT}. The default is {\bf wxCAP\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::GetCap}{wxpengetcap} - -\membersection{wxPen::SetColour}\label{wxpensetcolour} - -\func{void}{SetColour}{\param{wxColour\&}{ colour}} - -\func{void}{SetColour}{\param{const wxString\& }{colourName}} - -\func{void}{SetColour}{\param{int}{ red}, \param{int}{ green}, \param{int}{ blue}} - -The pen's colour is changed to the given colour. - -\wxheading{See also} - -\helpref{wxPen::GetColour}{wxpengetcolour} - -\membersection{wxPen::SetDashes}\label{wxpensetdashes} - -\func{void}{SetDashes}{\param{int }{n}, \param{wxDash*}{ dashes}} - -Associates an array of pointers to dashes (defined as char in X, DWORD under Windows) -with the pen. The array is not deallocated by wxPen, but neither must it be -deallocated by the calling application until the pen is deleted or this -function is called with a NULL array. - -%TODO: describe in detail. -\wxheading{See also} - -\helpref{wxPen::GetDashes}{wxpengetdashes} - -\membersection{wxPen::SetJoin}\label{wxpensetjoin} - -\func{void}{SetJoin}{\param{int}{join\_style}} - -Sets the pen join style, which may be one of {\bf wxJOIN\_BEVEL}, {\bf wxJOIN\_ROUND} and -\rtfsp{\bf wxJOIN\_MITER}. The default is {\bf wxJOIN\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::GetJoin}{wxpengetjoin} - -\membersection{wxPen::SetStipple}\label{wxpensetstipple} - -\func{void}{SetStipple}{\param{wxBitmap* }{stipple}} - -Sets the bitmap for stippling. - -\wxheading{See also} - -\helpref{wxPen::GetStipple}{wxpengetstipple} - -\membersection{wxPen::SetStyle}\label{wxpensetstyle} - -\func{void}{SetStyle}{\param{int}{ style}} - -Set the pen style. - -\wxheading{See also} - -\helpref{wxPen::wxPen}{wxpenconstr} - -\membersection{wxPen::SetWidth}\label{wxpensetwidth} - -\func{void}{SetWidth}{\param{int}{ width}} - -Sets the pen width. - -\wxheading{See also} - -\helpref{wxPen::GetWidth}{wxpengetwidth} - -\membersection{wxPen::operator $=$}\label{wxpenassignment} - -\func{wxPen\&}{operator $=$}{\param{const wxPen\& }{pen}} - -Assignment operator, using reference counting. Returns a reference -to `this'. - -\membersection{wxPen::operator $==$}\label{wxpenequals} - -\func{bool}{operator $==$}{\param{const wxPen\& }{pen}} - -Equality operator. Two pens are equal if they contain pointers -to the same underlying pen data. It does not compare each attribute, -so two independently-created pens using the same parameters will -fail the test. - -\membersection{wxPen::operator $!=$}\label{wxpennotequals} - -\func{bool}{operator $!=$}{\param{const wxPen\& }{pen}} - -Inequality operator. Two pens are not equal if they contain pointers -to different underlying pen data. It does not compare each attribute. - -\section{\class{wxPenList}}\label{wxpenlist} - -There is only one instance of this class: {\bf wxThePenList}. Use -this object to search for a previously created pen of the desired -type and create it if not already found. In some windowing systems, -the pen may be a scarce resource, so it can pay to reuse old -resources if possible. When an application finishes, all pens will -be deleted and their resources freed, eliminating the possibility of -`memory leaks'. However, it is best not to rely on this automatic -cleanup because it can lead to double deletion in some circumstances. - -There are two mechanisms in recent versions of wxWindows which make the -pen list less useful than it once was. Under Windows, scarce resources -are cleaned up internally if they are not being used. Also, a referencing -counting mechanism applied to all GDI objects means that some sharing -of underlying resources is possible. You don't have to keep track of pointers, -working out when it is safe delete a pen, because the referencing counting does -it for you. For example, you can set a pen in a device context, and then -immediately delete the pen you passed, because the pen is `copied'. - -So you may find it easier to ignore the pen list, and instead create -and copy pens as you see fit. If your Windows resource meter suggests -your application is using too many resources, you can resort to using -GDI lists to share objects explicitly. - -The only compelling use for the pen list is for wxWindows to keep -track of pens in order to clean them up on exit. It is also kept for -backward compatibility with earlier versions of wxWindows. - -\wxheading{See also} - -\helpref{wxPen}{wxpen} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPenList::wxPenList} - -\func{void}{wxPenList}{\void} - -Constructor. The application should not construct its own pen list: -use the object pointer {\bf wxThePenList}. - -\membersection{wxPenList::AddPen}\label{wxpenlistaddpen} - -\func{void}{AddPen}{\param{wxPen*}{ pen}} - -Used internally by wxWindows to add a pen to the list. - -\membersection{wxPenList::FindOrCreatePen}\label{wxpenlistfindorcreatepen} - -\func{wxPen*}{FindOrCreatePen}{\param{const wxColour\& }{colour}, \param{int}{ width}, \param{int}{ style}} - -Finds a pen with the specified attributes and returns it, else creates a new pen, adds it -to the pen list, and returns it. - -\func{wxPen*}{FindOrCreatePen}{\param{const wxString\& }{colourName}, \param{int}{ width}, \param{int}{ style}} - -Finds a pen with the specified attributes and returns it, else creates a new pen, adds it -to the pen list, and returns it. - -\wxheading{Parameters} - -\docparam{colour}{Colour object.} - -\docparam{colourName}{Colour name, which should be in the \helpref{colour database}{wxcolourdatabase}.} - -\docparam{width}{Width of pen.} - -\docparam{style}{Pen style. See \helpref{wxPen::wxPen}{wxpenconstr} for a list of styles.} - -\membersection{wxPenList::RemovePen}\label{wxpenlistremovepen} - -\func{void}{RemovePen}{\param{wxPen*}{ pen}} - -Used by wxWindows to remove a pen from the list. - - diff --git a/docs/latex/wx/plug.bmp b/docs/latex/wx/plug.bmp deleted file mode 100644 index 6541a1ffb0..0000000000 Binary files a/docs/latex/wx/plug.bmp and /dev/null differ diff --git a/docs/latex/wx/point.tex b/docs/latex/wx/point.tex deleted file mode 100644 index 06fdd5a9a4..0000000000 --- a/docs/latex/wx/point.tex +++ /dev/null @@ -1,41 +0,0 @@ -\section{\class{wxPoint}}\label{wxpoint} - -A {\bf wxPoint} is a useful data structure for graphics operations. -It simply contains integer {\it x} and {\it y} members. - -See also \helpref{wxRealPoint}{wxrealpoint} for a floating point version. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxRealPoint}{wxrealpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPoint::wxPoint} - -\func{}{wxPoint}{\void} - -\func{}{wxPoint}{\param{int}{ x}, \param{int}{ y}} - -Create a point. - -\membersection{wxPoint::x} - -\member{int}{x} - -x member. - -\membersection{wxPoint::y} - -\member{int}{ y} - -y member. - diff --git a/docs/latex/wx/postscpt.tex b/docs/latex/wx/postscpt.tex deleted file mode 100644 index 425d22d4e7..0000000000 --- a/docs/latex/wx/postscpt.tex +++ /dev/null @@ -1,39 +0,0 @@ -\section{\class{wxPostScriptDC}}\label{wxpostscriptdc} - -This defines the wxWindows Encapsulated PostScript device context, -which can write PostScript files on any platform. See \helpref{wxDC}{wxdc} for -descriptions of the member functions. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\membersection{wxPostScriptDC::wxPostScriptDC} - -\func{}{wxPostScriptDC}{\param{const wxPrintData\&}{ printData}} - -Constructs a PostScript printer device context from a \helpref{wxPrintData}{wxprintdata} object. - -\func{}{wxPostScriptDC}{\param{const wxString\& }{output}, \param{bool }{interactive = TRUE},\\ - \param{wxWindow *}{parent}} - -Constructor. {\it output} is an optional file for printing to, and if -\rtfsp{\it interactive} is TRUE a dialog box will be displayed for adjusting -various parameters. {\it parent} is the parent of the printer dialog box. - -Use the {\it Ok} member to test whether the constructor was successful -in creating a useable device context. - -See \helpref{Printer settings}{printersettings} for functions to set and -get PostScript printing settings. - -This constructor and the global printer settings are now deprecated; -use the wxPrintData constructor instead. - - - diff --git a/docs/latex/wx/prevwin.tex b/docs/latex/wx/prevwin.tex deleted file mode 100644 index 93681025de..0000000000 --- a/docs/latex/wx/prevwin.tex +++ /dev/null @@ -1,188 +0,0 @@ -\section{\class{wxPreviewCanvas}}\label{wxpreviewcanvas} - -A preview canvas is the default canvas used by the print preview -system to display the preview. - -\wxheading{Derived from} - -\helpref{wxScrolledWindow}{wxscrolledwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxevthandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPreviewFrame}{wxpreviewframe}, \helpref{wxPreviewControlBar}{wxpreviewcontrolbar},\rtfsp -\helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPreviewCanvas::wxPreviewCanvas} - -\func{}{wxPreviewCanvas}{\param{wxPrintPreview* }{preview}, \param{wxWindow* }{parent}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, - \param{long}{ style = 0}, \param{const wxString\& }{name = ``canvas"}} - -Constructor. - -\membersection{wxPreviewCanvas::\destruct{wxPreviewCanvas}} - -\func{}{\destruct{wxPreviewCanvas}}{\void} - -Destructor. - -\membersection{wxPreviewCanvas::OnPaint}\label{wxpreviewcanvasonpaint} - -\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} - -Calls \helpref{wxPrintPreview::PaintPage}{wxprintpreviewpaintpage} to refresh the canvas. - -\section{\class{wxPreviewControlBar}}\label{wxpreviewcontrolbar} - -This is the default implementation of the preview control bar, a panel -with buttons and a zoom control. You can derive a new class from this and -override some or all member functions to change the behaviour and appearance; -or you can leave it as it is. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPreviewFrame}{wxpreviewframe}, \helpref{wxPreviewCanvas}{wxpreviewcanvas},\rtfsp -\helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPreviewControlBar::wxPreviewControlbar} - -\func{}{wxPreviewControlBar}{\param{wxPrintPreview* }{preview}, \param{long}{ buttons}, \param{wxWindow* }{parent}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, - \param{long}{ style = 0}, \param{const wxString\& }{name = ``panel"}} - -Constructor. - -The buttons parameter may be a combination of the following, using the bitwise `or' operator. - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxPREVIEW\_PRINT}{Create a print button.} -\twocolitem{wxPREVIEW\_NEXT}{Create a next page button.} -\twocolitem{wxPREVIEW\_PREVIOUS}{Create a previous page button.} -\twocolitem{wxPREVIEW\_ZOOM}{Create a zoom control.} -\twocolitem{wxPREVIEW\_DEFAULT}{Equivalent to a combination of wxPREVIEW\_PREVIOUS, wxPREVIEW\_NEXT and -wxPREVIEW\_ZOOM.} -\end{twocollist} - -\membersection{wxPreviewControlBar::\destruct{wxPreviewControlBar}} - -\func{}{\destruct{wxPreviewControlBar}}{\void} - -Destructor. - -\membersection{wxPreviewControlBar::CreateButtons} - -\func{void}{CreateButtons}{\void} - -Creates buttons, according to value of the button style flags. - -\membersection{wxPreviewControlBar::GetPrintPreview} - -\func{wxPrintPreview *}{GetPrintPreview}{\void} - -Gets the print preview object associated with the control bar. - -\membersection{wxPreviewControlBar::GetZoomControl} - -\func{int}{GetZoomControl}{\void} - -Gets the current zoom setting in percent. - -\membersection{wxPreviewControlBar::SetZoomControl} - -\func{void}{SetZoomControl}{\param{int }{percent}} - -Sets the zoom control. - -\section{\class{wxPreviewFrame}}\label{wxpreviewframe} - -This class provides the default method of managing the print preview interface. -Member functions may be overridden to replace functionality, or the -class may be used without derivation. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPreviewCanvas}{wxpreviewcanvas}, \helpref{wxPreviewControlBar}{wxpreviewcontrolbar},\rtfsp -\helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPreviewFrame::wxPreviewFrame} - -\func{}{wxPreviewFrame}{\param{wxPrintPreview* }{preview}, \param{wxFrame* }{parent}, \param{const wxString\& }{title}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& size }{size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}} - -Constructor. Pass a print preview object plus other normal frame arguments. - -\membersection{wxPreviewFrame::\destruct{wxPreviewFrame}} - -\func{}{\destruct{wxPreviewFrame}}{\void} - -Destructor. - -\membersection{wxPreviewFrame::CreateControlBar} - -\func{void}{CreateControlBar}{\void} - -Creates a wxPreviewControlBar. Override this function to allow -a user-defined preview control bar object to be created. - -\membersection{wxPreviewFrame::CreateCanvas} - -\func{void}{CreateCanvas}{\void} - -Creates a wxPreviewCanvas. Override this function to allow -a user-defined preview canvas object to be created. - -\membersection{wxPreviewFrame::Initialize} - -\func{void}{Initialize}{\void} - -Creates the preview canvas and control bar, and calls -wxWindow::MakeModal(TRUE) to disable other top-level windows -in the application. - -This function should be called by the application prior to -showing the frame. - -\membersection{wxPreviewFrame::OnCloseWindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Enables the other frames in the application, and deletes the print preview -object, implicitly deleting any printout objects associated with the print -preview object. - diff --git a/docs/latex/wx/print.tex b/docs/latex/wx/print.tex deleted file mode 100644 index 96af356c34..0000000000 --- a/docs/latex/wx/print.tex +++ /dev/null @@ -1,1012 +0,0 @@ -\section{\class{wxPrintData}}\label{wxprintdata} - -This class holds a variety of information related to printers and -printer device contexts. This class is used to create a wxPrinterDC -and a wxPostScriptDC. It is also used as a data member of wxPrintDialogData -and wxPageSetupDialogData, as part of the mechanism for transferring data -between the print dialogs and the application. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPageSetupDialog}{wxpagesetupdialog}, -\helpref{wxPrintDialogData}{wxprintdialogdata}, -\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata}, -\helpref{wxPrintDialog Overview}{wxprintdialogoverview}, -\helpref{wxPrinterDC}{wxprinterdc}, -\helpref{wxPostScriptDC}{wxpostscriptdc} - -\wxheading{Remarks} - -The following functions are specific to PostScript printing -and have not yet been documented: - -\begin{verbatim} -const wxString& GetPrinterCommand() const ; -const wxString& GetPrinterOptions() const ; -const wxString& GetPreviewCommand() const ; -const wxString& GetFilename() const ; -const wxString& GetFontMetricPath() const ; -double GetPrinterScaleX() const ; -double GetPrinterScaleY() const ; -long GetPrinterTranslateX() const ; -long GetPrinterTranslateY() const ; -// wxPRINT_MODE_PREVIEW, wxPRINT_MODE_FILE, wxPRINT_MODE_PRINTER -wxPrintMode GetPrintMode() const ; - -void SetPrinterCommand(const wxString& command) ; -void SetPrinterOptions(const wxString& options) ; -void SetPreviewCommand(const wxString& command) ; -void SetFilename(const wxString& filename) ; -void SetFontMetricPath(const wxString& path) ; -void SetPrinterScaleX(double x) ; -void SetPrinterScaleY(double y) ; -void SetPrinterScaling(double x, double y) ; -void SetPrinterTranslateX(long x) ; -void SetPrinterTranslateY(long y) ; -void SetPrinterTranslation(long x, long y) ; -void SetPrintMode(wxPrintMode printMode) ; -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrintData::wxPrintData} - -\func{}{wxPrintData}{\void} - -Default constructor. - -\func{}{wxPrintData}{\param{const wxPrintData\&}{ data}} - -Copy constructor. - -\membersection{wxPrintData::\destruct{wxPrintData}} - -\func{}{\destruct{wxPrintData}}{\void} - -Destructor. - -\membersection{wxPrintData::GetCollate}\label{wxprintdatagetcollate} - -\constfunc{bool}{GetCollate}{\void} - -Returns TRUE if collation is on. - -\membersection{wxPrintData::GetColour}\label{wxprintdatagetcolour} - -\constfunc{bool}{GetColour}{\void} - -Returns TRUE if colour printing is on. - -\membersection{wxPrintData::GetDuplex}\label{wxprintdatagetduplex} - -\constfunc{wxDuplexMode}{GetDuplex}{\void} - -Returns the duplex mode. One of wxDUPLEX\_SIMPLEX, wxDUPLEX\_HORIZONTAL, wxDUPLEX\_VERTICAL. - -\membersection{wxPrintData::GetNoCopies}\label{wxprintdatagetnocopies} - -\constfunc{int}{GetNoCopies}{\void} - -Returns the number of copies requested by the user. - -\membersection{wxPrintData::GetOrientation}\label{wxprintdatagetorientation} - -\constfunc{int}{GetOrientation}{\void} - -Gets the orientation. This can be wxLANDSCAPE or wxPORTRAIT. - -\membersection{wxPrintData::GetPaperId}\label{wxprintdatagetpaperid} - -\constfunc{wxPaperSize}{GetPaperId}{\void} - -Returns the paper size id. For more information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}. - -\membersection{wxPrintData::GetPrinterName}\label{wxprintdatagetprintername} - -\constfunc{const wxString\&}{GetPrinterName}{\void} - -Returns the printer name. If the printer name is the empty string, it indicates that the default -printer should be used. - -\membersection{wxPrintData::GetQuality}\label{wxprintdatagetquality} - -\constfunc{wxPaperQuality}{GetQuality}{\void} - -Returns the current print quality. This can be a positive integer, denoting the number of dots per inch, or -one of the following identifiers: - -\begin{verbatim} -wxPRINT\_QUALITY\_HIGH -wxPRINT\_QUALITY\_MEDIUM -wxPRINT\_QUALITY\_LOW -wxPRINT\_QUALITY\_DRAFT -\end{verbatim} - -On input you should pass one of these identifiers, but on return you may get back a positive integer -indicating the current resolution setting. - -\membersection{wxPrintData::SetCollate}\label{wxprintdatasetcollate} - -\func{void}{SetCollate}{\param{bool }{flag}} - -Sets collation to on or off. - -\membersection{wxPrintData::SetColour}\label{wxprintdatasetcolour} - -\func{void}{SetColour}{\param{bool }{flag}} - -Sets colour printing on or off. - -\membersection{wxPrintData::SetDuplex}\label{wxprintdatasetduplex} - -\func{void}{SetDuplex}{\param{wxDuplexMode}{ mode}} - -Returns the duplex mode. One of wxDUPLEX\_SIMPLEX, wxDUPLEX\_HORIZONTAL, wxDUPLEX\_VERTICAL. - -\membersection{wxPrintData::SetNoCopies}\label{wxprintdatasetnocopies} - -\func{void}{SetNoCopies}{\param{int }{n}} - -Sets the default number of copies to be printed out. - -\membersection{wxPrintData::SetOrientation}\label{wxprintdatasetorientation} - -\func{void}{SetOrientation}{\param{int }{orientation}} - -Sets the orientation. This can be wxLANDSCAPE or wxPORTRAIT. - -\membersection{wxPrintData::SetPaperId}\label{wxprintdatasetpaperid} - -\func{void}{SetPaperId}{\param{wxPaperSize}{ paperId}} - -\index{wxPaperSize}Sets the paper id. This indicates the type of paper to be used. For a mapping between -paper id, paper size and string name, see wxPrintPaperDatabase in {\tt paper.h} (not yet documented). - -{\it paperId} can be one of: - -{\small -\begin{verbatim} - wxPAPER_NONE, // Use specific dimensions - wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches - wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches - wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters - wxPAPER_CSHEET, // C Sheet, 17 by 22 inches - wxPAPER_DSHEET, // D Sheet, 22 by 34 inches - wxPAPER_ESHEET, // E Sheet, 34 by 44 inches - wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches - wxPAPER_TABLOID, // Tabloid, 11 by 17 inches - wxPAPER_LEDGER, // Ledger, 17 by 11 inches - wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches - wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches - wxPAPER_A3, // A3 sheet, 297 by 420 millimeters - wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters - wxPAPER_A5, // A5 sheet, 148 by 210 millimeters - wxPAPER_B4, // B4 sheet, 250 by 354 millimeters - wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper - wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper - wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper - wxPAPER_10X14, // 10-by-14-inch sheet - wxPAPER_11X17, // 11-by-17-inch sheet - wxPAPER_NOTE, // Note, 8 1/2 by 11 inches - wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches - wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches - wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches - wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches - wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches - wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters - wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters - wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters - wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters - wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters - wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters - wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters - wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters - wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters - wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters - wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches - wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches - wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches - wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches - wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches - -Windows 95 only: - wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm - wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm - wxPAPER_9X11, // 9 x 11 in - wxPAPER_10X11, // 10 x 11 in - wxPAPER_15X11, // 15 x 11 in - wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm - wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in - wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in - wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in - wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in - wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in - wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm - wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in - wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm - wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm - wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in - wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm - wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm - wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm - wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm - wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm - wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm - wxPAPER_A2, // A2 420 x 594 mm - wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm - wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm -\end{verbatim} -} - -\membersection{wxPrintData::SetPrinterName}\label{wxprintdatasetprintername} - -\func{void}{SetPrinterName}{\param{const wxString\& }{printerName}} - -Sets the printer name. This can be the empty string to indicate that the default -printer should be used. - -\membersection{wxPrintData::SetQuality}\label{wxprintdatasetquality} - -\func{void}{SetQuality}{\param{wxPaperQuality}{ quality}} - -Sets the desired print quality. This can be a positive integer, denoting the number of dots per inch, or -one of the following identifiers: - -\begin{verbatim} -wxPRINT\_QUALITY\_HIGH -wxPRINT\_QUALITY\_MEDIUM -wxPRINT\_QUALITY\_LOW -wxPRINT\_QUALITY\_DRAFT -\end{verbatim} - -On input you should pass one of these identifiers, but on return you may get back a positive integer -indicating the current resolution setting. - -\membersection{wxPrintData::operator $=$}\label{wxprintdataassign} - -\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}} - -Assigns print data to this object. - -\func{void}{operator $=$}{\param{const wxPrintSetupData\&}{ data}} - -Assigns print setup data to this object. wxPrintSetupData is deprecated, -but retained for backward compatibility. - -\section{\class{wxPrintDialog}}\label{wxprintdialog} - -This class represents the print and print setup common dialogs. -You may obtain a \helpref{wxPrinterDC}{wxprinterdc} device context from -a successfully dismissed print dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPrintDialog Overview}{wxprintdialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrintDialog::wxPrintDialog} - -\func{}{wxPrintDialog}{\param{wxWindow* }{parent}, \param{wxPrintDialogData* }{data = NULL}} - -Constructor. Pass a parent window, and optionally a pointer to a block of print -data, which will be copied to the print dialog's print data. - -\wxheading{See also} - -\helpref{wxPrintDialogData}{wxprintdialogdata} - -\membersection{wxPrintDialog::\destruct{wxPrintDialog}} - -\func{}{\destruct{wxPrintDialog}}{\void} - -Destructor. If wxPrintDialog::GetPrintDC has {\it not} been called, -the device context obtained by the dialog (if any) will be deleted. - -\membersection{wxPrintDialog::GetPrintDialogData}\label{wxprintdialoggetprintdialogdata} - -\func{wxPrintDialogData\&}{GetPrintDialogData}{\void} - -Returns the \helpref{print dialog data}{wxprintdialogdata} associated with the print dialog. - -\membersection{wxPrintDialog::GetPrintDC}\label{wxprintdialoggetprintdc} - -\func{wxDC* }{GetPrintDC}{\void} - -Returns the device context created by the print dialog, if any. -When this function has been called, the ownership of the device context -is transferred to the application, so it must then be deleted -explicitly. - -\membersection{wxPrintDialog::ShowModal}\label{wxprintdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. After this function is called, a device context may -be retrievable using \helpref{wxPrintDialog::GetPrintDC}{wxprintdialoggetprintdc}. - -\section{\class{wxPrintDialogData}}\label{wxprintdialogdata} - -This class holds information related to the visual characteristics of wxPrintDialog. -It contains a wxPrintData object with underlying printing settings. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxPrintDialog Overview}{wxprintdialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrintDialogData::wxPrintDialogData} - -\func{}{wxPrintDialogData}{\void} - -Default constructor. - -\func{}{wxPrintDialogData}{\param{wxPrintDialogData\&}{ dialogData}} - -Copy constructor. - -\func{}{wxPrintDialogData}{\param{wxPrintData\&}{ printData}} - -Construct an object from a print dialog data object. - -\membersection{wxPrintDialogData::\destruct{wxprintdialogdata}} - -\func{}{\destruct{wxPrintDialogData}}{\void} - -Destructor. - -\membersection{wxPrintDialogData::EnableHelp}\label{wxprintdialogdataenablehelp} - -\func{void}{EnableHelp}{\param{bool }{flag}} - -Enables or disables the `Help' button. - -\membersection{wxPrintDialogData::EnablePageNumbers}\label{wxprintdialogdataenablepagenumbers} - -\func{void}{EnablePageNumbers}{\param{bool }{flag}} - -Enables or disables the `Page numbers' controls. - -\membersection{wxPrintDialogData::EnablePrintToFile}\label{wxprintdialogdataenableprinttofile} - -\func{void}{EnablePrintToFile}{\param{bool }{flag}} - -Enables or disables the `Print to file' checkbox. - -\membersection{wxPrintDialogData::EnableSelection}\label{wxprintdialogdataenableselection} - -\func{void}{EnableSelection}{\param{bool }{flag}} - -Enables or disables the `Selection' radio button. - -\membersection{wxPrintDialogData::GetAllPages}\label{wxprintdialogdatagetallpages} - -\constfunc{bool}{GetAllPages}{\void} - -Returns TRUE if the user requested that all pages be printed. - -\membersection{wxPrintDialogData::GetCollate}\label{wxprintdialogdatagetcollate} - -\constfunc{bool}{GetCollate}{\void} - -Returns TRUE if the user requested that the document(s) be collated. - -\membersection{wxPrintDialogData::GetFromPage}\label{wxprintdialogdatagetfrompage} - -\constfunc{int}{GetFromPage}{\void} - -Returns the {\it from} page number, as entered by the user. - -\membersection{wxPrintDialogData::GetMaxPage}\label{wxprintdialogdatagetmaxpage} - -\constfunc{int}{GetMaxPage}{\void} - -Returns the {\it maximum} page number. - -\membersection{wxPrintDialogData::GetMinPage}\label{wxprintdialogdatagetminpage} - -\constfunc{int}{GetMinPage}{\void} - -Returns the {\it minimum} page number. - -\membersection{wxPrintDialogData::GetNoCopies}\label{wxprintdialogdatagetnocopies} - -\constfunc{int}{GetNoCopies}{\void} - -Returns the number of copies requested by the user. - -\membersection{wxPrintDialogData::GetPrintData}\label{wxprintdialogdatagetprintdata} - -\func{wxPrintData\&}{GetPrintData}{\void} - -Returns a reference to the internal wxPrintData object. - -\membersection{wxPrintDialogData::GetPrintToFile}\label{wxprintdialogdatagetprinttofile} - -\constfunc{bool}{GetPrintToFile}{\void} - -Returns TRUE if the user has selected printing to a file. - -\membersection{wxPrintDialogData::GetToPage}\label{wxprintdialogdatagettopage} - -\constfunc{int}{GetToPage}{\void} - -Returns the {\it to} page number, as entered by the user. - -\membersection{wxPrintDialogData::SetCollate}\label{wxprintdialogdatasetcollate} - -\func{void}{SetCollate}{\param{bool }{flag}} - -Sets the 'Collate' checkbox to TRUE or FALSE. - -\membersection{wxPrintDialogData::SetFromPage}\label{wxprintdialogdatasetfrompage} - -\func{void}{SetFromPage}{\param{int }{page}} - -Sets the {\it from} page number. - -\membersection{wxPrintDialogData::SetMaxPage}\label{wxprintdialogdatasetmaxpage} - -\func{void}{SetMaxPage}{\param{int }{page}} - -Sets the {\it maximum} page number. - -\membersection{wxPrintDialogData::SetMinPage}\label{wxprintdialogdatasetminpage} - -\func{void}{SetMinPage}{\param{int }{page}} - -Sets the {\it minimum} page number. - -\membersection{wxPrintDialogData::SetNoCopies}\label{wxprintdialogdatasetnocopies} - -\func{void}{SetNoCopies}{\param{int }{n}} - -Sets the default number of copies the user has requested to be printed out. - -\membersection{wxPrintDialogData::SetPrintData}\label{wxprintdialogdatasetprintdata} - -\func{void}{SetPrintData}{\param{const wxPrintData\& }{printData}} - -Sets the internal wxPrintData. - -\membersection{wxPrintDialogData::SetPrintToFile}\label{wxprintdialogdatasetprinttofile} - -\func{void}{SetPrintToFile}{\param{bool }{flag}} - -Sets the 'Print to file' checkbox to TRUE or FALSE. - -\membersection{wxPrintDialogData::SetSetupDialog}\label{wxprintdialogdatasetsetupdialog} - -\func{void}{SetSetupDialog}{\param{bool }{flag}} - -Determines whether the dialog to be shown will be the Print dialog -(pass FALSE) or Print Setup dialog (pass TRUE). - -Note that the setup dialog is (according to Microsoft) obsolete from -Windows 95, though retained for backward compatibility. - -\membersection{wxPrintDialogData::SetToPage}\label{wxprintdialogdatasettopage} - -\func{void}{SetToPage}{\param{int }{page}} - -Sets the {\it to} page number. - -\membersection{wxPrintDialogData::operator $=$}\label{wxprintdialogdataassign} - -\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}} - -Assigns print data to this object. - -\func{void}{operator $=$}{\param{const wxPrintDialogData\&}{ data}} - -Assigns another print dialog data object to this object. - -\section{\class{wxPrinter}}\label{wxprinter} - -This class represents the Windows or PostScript printer, and is the vehicle through -which printing may be launched by an application. Printing can also -be achieved through using of lower functions and classes, but -this and associated classes provide a more convenient and general -method of printing. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, \helpref{wxPrinterDC}{wxprinterdc}, \helpref{wxPrintDialog}{wxprintdialog},\rtfsp -\helpref{wxPrintout}{wxprintout}, \helpref{wxPrintPreview}{wxprintpreview}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrinter::wxPrinter} - -\func{}{wxPrinter}{\param{wxPrintDialogData* }{data = NULL}} - -Constructor. Pass an optional pointer to a block of print -dialog data, which will be copied to the printer object's local data. - -\wxheading{See also} - -\helpref{wxPrintDialogData}{wxprintdialogdata}, -\helpref{wxPrintData}{wxprintdata} - -\membersection{wxPrinter::\destruct{wxPrinter}} - -\func{}{\destruct{wxPrinter}}{\void} - -Destructor. - -\membersection{wxPrinter::Abort}\label{wxprinterabort} - -\func{bool}{Abort}{\void} - -Returns TRUE if the user has aborted the print job. - -\membersection{wxPrinter::CreateAbortWindow}\label{wxprintercreateabortwindow} - -\func{void}{CreateAbortWindow}{\param{wxWindow* }{parent}, \param{wxPrintout* }{printout}} - -Creates the default printing abort window, with a cancel button. - -\membersection{wxPrinter::GetPrintDialogData}\label{wxprintergetprintdialogdata} - -\func{wxPrintDialogData\&}{GetPrintDialogData}{\void} - -Returns the \helpref{print data}{wxprintdata} associated with the printer object. - -\membersection{wxPrinter::Print}\label{wxprinterprint} - -\func{bool}{Print}{\param{wxWindow *}{parent}, \param{wxPrintout *}{printout}, \param{bool }{prompt=TRUE}} - -Starts the printing process. Provide a parent window, a user-defined wxPrintout object which controls -the printing of a document, and whether the print dialog should be invoked first. - -Print could return FALSE if there was a problem initializing the printer device context -(current printer not set, for example). - -\membersection{wxPrinter::PrintDialog}\label{wxprinterprintdialog} - -\func{wxDC*}{PrintDialog}{\param{wxWindow *}{parent}} - -Invokes the print dialog. If successful (the user did not press Cancel -and no error occurred), a suitable device context will be returned -(otherwise NULL is returned). - -The application must delete this device context to avoid a memory leak. - -\membersection{wxPrinter::ReportError}\label{wxprinterreporterror} - -\func{void}{ReportError}{\param{wxWindow *}{parent}, \param{wxPrintout *}{printout}, \param{const wxString\& }{message}} - -Default error-reporting function. - -\membersection{wxPrinter::Setup}\label{wxprintersetup} - -\func{bool}{Setup}{\param{wxWindow *}{parent}} - -Invokes the print setup dialog. Note that the setup dialog is obsolete from -Windows 95, though retained for backward compatibility. - -\section{\class{wxPrinterDC}}\label{wxprinterdc} - -A printer device context is specific to Windows, and allows access to -any printer with a Windows driver. See \helpref{wxDC}{wxdc} for further information -on device contexts, and \helpref{wxDC::GetSize}{wxdcgetsize} for advice on -achieving the correct scaling for the page. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxdc} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{Printing framework overview}{printingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrinterDC::wxPrinterDC} - -\func{}{wxPrinterDC}{\param{const wxPrintData\& }{printData}} - -Pass a \helpref{wxPrintData}{wxprintdata} object with information -necessary for setting up a suitable printer device context. This -is the recommended way to construct a wxPrinterDC. - -\func{}{wxPrinterDC}{\param{const wxString\& }{driver}, \param{const wxString\& }{device}, \param{const wxString\& }{output}, - \param{const bool }{interactive = TRUE}, \param{int }{orientation = wxPORTRAIT}} - -Constructor. With empty strings for the first three arguments, the default printer dialog is -displayed. {\it device} indicates the type of printer and {\it output} -is an optional file for printing to. The {\it driver} parameter is -currently unused. Use the {\it Ok} member to test whether the -constructor was successful in creating a useable device context. - -This constructor is deprecated and retained only for backward compatibility. - -\section{\class{wxPrintout}}\label{wxprintout} - -This class encapsulates the functionality of printing out an -application document. A new class must be derived and members -overridden to respond to calls such as OnPrintPage and HasPage. -Instances of this class are passed to wxPrinter::Print or a -wxPrintPreview object to initiate printing or previewing. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, \helpref{wxPrinterDC}{wxprinterdc}, \helpref{wxPrintDialog}{wxprintdialog},\rtfsp -\helpref{wxPrinter}{wxprinter}, \helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrintout::wxPrintout} - -\func{}{wxPrintout}{\param{const wxString\& }{title = "Printout"}} - -Constructor. Pass an optional title argument (currently unused). - -\membersection{wxPrintout::\destruct{wxPrintout}} - -\func{}{\destruct{wxPrintout}}{\void} - -Destructor. - -\membersection{wxPrintout::GetDC}\label{wxprintoutgetdc} - -\func{wxDC *}{GetDC}{\void} - -Returns the device context associated with the printout (given to the printout at start of -printing or previewing). This will be a wxPrinterDC if printing under Windows, -a wxPostScriptDC if printing on other platforms, and a wxMemoryDC if previewing. - -\membersection{wxPrintout::GetPageInfo}\label{wxprintoutgetpageinfo} - -\func{void}{GetPageInfo}{\param{int *}{minPage}, \param{int *}{maxPage}, \param{int *}{pageFrom}, \param{int *}{pageTo}} - -Called by the framework to obtain information from the application about minimum and maximum page values that -the user can select, and the required page range to be printed. By default this -returns 1, 32000 for the page minimum and maximum values, and 1, 1 for the required page range. - -If {\it minPage} is zero, the page number controls in the print dialog will be disabled. - -\pythonnote{When this method is implemented in a derived Python class, -it should be designed to take no parameters (other than the self -reference) and to return a tuple of four integers. -} - -\membersection{wxPrintout::GetPageSizeMM}\label{wxprintoutgetpagesizemm} - -\func{void}{GetPageSizeMM}{\param{int *}{w}, \param{int *}{h}} - -Returns the size of the printer page in millimetres. - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\membersection{wxPrintout::GetPageSizePixels}\label{wxprintoutgetpagesizepixels} - -\func{void}{GetPageSizePixels}{\param{int *}{w}, \param{int *}{h}} - -Returns the size of the printer page in pixels. These may not be the -same as the values returned from \helpref{wxDC::GetSize}{wxdcgetsize} if -the printout is being used for previewing, since in this case, a -memory device context is used, using a bitmap size reflecting the current -preview zoom. The application must take this discrepancy into account if -previewing is to be supported. - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\membersection{wxPrintout::GetPPIPrinter}\label{wxprintoutgetppiprinter} - -\func{void}{GetPPIPrinter}{\param{int *}{w}, \param{int *}{h}} - -Returns the number of pixels per logical inch of the printer device context. -Dividing the printer PPI by the screen PPI can give a suitable scaling -factor for drawing text onto the printer. Remember to multiply -this by a scaling factor to take the preview DC size into account. - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\membersection{wxPrintout::GetPPIScreen}\label{wxprintoutgetppiscreen} - -\func{void}{GetPPIScreen}{\param{int *}{w}, \param{int *}{h}} - -Returns the number of pixels per logical inch of the screen device context. -Dividing the printer PPI by the screen PPI can give a suitable scaling -factor for drawing text onto the printer. Remember to multiply -this by a scaling factor to take the preview DC size into account. - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\membersection{wxPrintout::HasPage}\label{wxprintouthaspage} - -\func{bool}{HasPage}{\param{int}{ pageNum}} - -Should be overriden to return TRUE if the document has this page, or FALSE -if not. Returning FALSE signifies the end of the document. By default, -HasPage behaves as if the document has only one page. - -\membersection{wxPrintout::IsPreview}\label{wxprintoutispreview} - -\func{bool}{IsPreview}{\void} - -Returns TRUE if the printout is currently being used for previewing. - -\membersection{wxPrintout::OnBeginDocument}\label{wxprintoutonbegindocument} - -\func{bool}{OnBeginDocument}{\param{int}{ startPage}, \param{int}{ endPage}} - -Called by the framework at the start of document printing. Return FALSE from -this function cancels the print job. OnBeginDocument is called once for every -copy printed. - -The base wxPrintout::OnBeginDocument {\it must} be called (and the return value -checked) from within the overriden function, since it calls wxDC::StartDoc. - -\pythonnote{If this method is overriden in a Python class then the -base class version can be called by using the method -\tt{base_OnBeginDocument(startPage, endPage)}. } - -\membersection{wxPrintout::OnEndDocument}\label{wxprintoutonenddocument} - -\func{void}{OnEndDocument}{\void} - -Called by the framework at the end of document printing. OnEndDocument -is called once for every copy printed. - -The base wxPrintout::OnEndDocument {\it must} be called -from within the overriden function, since it calls wxDC::EndDoc. - -\membersection{wxPrintout::OnBeginPrinting}\label{wxprintoutonbeginprinting} - -\func{void}{OnBeginPrinting}{\void} - -Called by the framework at the start of printing. OnBeginPrinting is called once for every -print job (regardless of how many copies are being printed). - -\membersection{wxPrintout::OnEndPrinting}\label{wxprintoutonendprinting} - -\func{void}{OnEndPrinting}{\void} - -Called by the framework at the end of printing. OnEndPrinting -is called once for every print job (regardless of how many copies are being printed). - -\membersection{wxPrintout::OnPreparePrinting}\label{wxprintoutonprepareprinting} - -\func{void}{OnPreparePrinting}{\void} - -Called once by the framework before any other demands are made of the -wxPrintout object. This gives the object an opportunity to calculate the -number of pages in the document, for example. - -\membersection{wxPrintout::OnPrintPage}\label{wxprintoutonprintpage} - -\func{bool}{OnPrintPage}{\param{int}{ pageNum}} - -Called by the framework when a page should be printed. Returning FALSE cancels -the print job. The application can use wxPrintout::GetDC to obtain a device -context to draw on. - -\section{\class{wxPrintPreview}}\label{wxprintpreview} - -\overview{Printing framework overview}{printingoverview} - -Objects of this class manage the print preview process. The object is passed -a wxPrintout object, and the wxPrintPreview object itself is passed to -a wxPreviewFrame object. Previewing is started by initializing and showing -the preview frame. Unlike wxPrinter::Print, flow of control returns to the application -immediately after the frame is shown. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\overview{Printing framework overview}{printingoverview}, \helpref{wxPrinterDC}{wxprinterdc}, \helpref{wxPrintDialog}{wxprintdialog},\rtfsp -\helpref{wxPrintout}{wxprintout}, \helpref{wxPrinter}{wxprinter},\rtfsp -\helpref{wxPreviewCanvas}{wxpreviewcanvas}, \helpref{wxPreviewControlBar}{wxpreviewcontrolbar},\rtfsp -\helpref{wxPreviewFrame}{wxpreviewframe}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrintPreview::wxPrintPreview} - -\func{}{wxPrintPreview}{\param{wxPrintout* }{printout}, \param{wxPrintout* }{printoutForPrinting}, -\param{wxPrintData* }{data=NULL}} - -Constructor. Pass a printout object, an optional printout object to be -used for actual printing, and the address of an optional -block of printer data, which will be copied to the print preview object's -print data. - -If {\it printoutForPrinting} is non-NULL, a {\bf Print...} button will be placed on the -preview frame so that the user can print directly from the preview interface. - -Do not explicitly delete the printout objects once this destructor has been -called, since they will be deleted in the wxPrintPreview constructor. -The same does not apply to the {\it data} argument. - -Test the Ok member to check whether the wxPrintPreview object was created correctly. -Ok could return FALSE if there was a problem initializing the printer device context -(current printer not set, for example). - -\membersection{wxPrintPreview::\destruct{wxPrintPreview}} - -\func{}{\destruct{wxPrinter}}{\void} - -Destructor. Deletes both print preview objects, so do not destroy these objects -in your application. - -\membersection{wxPrintPreview::DrawBlankPage}\label{wxprintpreviewdrawblankpage} - -\func{bool}{DrawBlankPage}{\param{wxWindow* }{window}} - -Draws a representation of the blank page into the preview window. Used -internally. - -\membersection{wxPrintPreview::GetCanvas}\label{wxprintpreviewgetcanvas} - -\func{wxWindow* }{GetCanvas}{\void} - -Gets the preview window used for displaying the print preview image. - -\membersection{wxPrintPreview::GetCurrentPage}\label{wxprintpreviewgetcurrentpage} - -\func{int}{GetCurrentPage}{\void} - -Gets the page currently being previewed. - -\membersection{wxPrintPreview::GetFrame}\label{wxprintpreviewgetframe} - -\func{wxFrame *}{GetFrame}{\void} - -Gets the frame used for displaying the print preview canvas -and control bar. - -\membersection{wxPrintPreview::GetMaxPage}\label{wxprintpreviewgetmaxpage} - -\func{int}{GetMaxPage}{\void} - -Returns the maximum page number. - -\membersection{wxPrintPreview::GetMinPage}\label{wxprintpreviewgetminpage} - -\func{int}{GetMinPage}{\void} - -Returns the minimum page number. - -\membersection{wxPrintPreview::GetPrintData}\label{wxprintpreviewgetprintdata} - -\func{wxPrintData\&}{GetPrintData}{\void} - -Returns a reference to the internal print data. - -\membersection{wxPrintPreview::GetPrintout}\label{wxprintpreviewgetprintout} - -\func{wxPrintout *}{GetPrintout}{\void} - -Gets the preview printout object associated with the wxPrintPreview object. - -\membersection{wxPrintPreview::GetPrintoutForPrinting}\label{wxprintpreviewgetprintoutforprinting} - -\func{wxPrintout *}{GetPrintoutForPrinting}{\void} - -Gets the printout object to be used for printing from within the preview interface, -or NULL if none exists. - -\membersection{wxPrintPreview::Ok}\label{wxprintpreviewok} - -\func{bool}{Ok}{\void} - -Returns TRUE if the wxPrintPreview is valid, FALSE otherwise. It could return FALSE if there was a -problem initializing the printer device context (current printer not set, for example). - -\membersection{wxPrintPreview::PaintPage}\label{wxprintpreviewpaintpage} - -\func{bool}{PaintPage}{\param{wxWindow* }{window}} - -This refreshes the preview window with the preview image. -It must be called from the preview window's OnPaint member. - -The implementation simply blits the preview bitmap onto -the canvas, creating a new preview bitmap if none exists. - -\membersection{wxPrintPreview::Print}\label{wxprintpreviewprint} - -\func{bool}{Print}{\param{bool }{prompt}} - -Invokes the print process using the second wxPrintout object -supplied in the wxPrintPreview constructor. -Will normally be called by the {\bf Print...} panel item on the -preview frame's control bar. - -\membersection{wxPrintPreview::RenderPage}\label{wxprintpreviewrenderpage} - -\func{bool}{RenderPage}{\param{int }{pageNum}} - -Renders a page into a wxMemoryDC. Used internally by wxPrintPreview. - -\membersection{wxPrintPreview::SetCanvas}\label{wxprintpreviewsetcanvas} - -\func{void}{SetCanvas}{\param{wxWindow* }{window}} - -Sets the window to be used for displaying the print preview image. - -\membersection{wxPrintPreview::SetCurrentPage}\label{wxprintpreviewsetcurrentpage} - -\func{void}{SetCurrentPage}{\param{int}{ pageNum}} - -Sets the current page to be previewed. - -\membersection{wxPrintPreview::SetFrame}\label{wxprintpreviewsetframe} - -\func{void}{SetFrame}{\param{wxFrame *}{frame}} - -Sets the frame to be used for displaying the print preview canvas -and control bar. - -\membersection{wxPrintPreview::SetPrintout}\label{wxprintpreviewsetprintout} - -\func{void}{SetPrintout}{\param{wxPrintout *}{printout}} - -Associates a printout object with the wxPrintPreview object. - -\membersection{wxPrintPreview::SetZoom}\label{wxprintpreviewsetzoom} - -\func{void}{SetZoom}{\param{int}{ percent}} - -Sets the percentage preview zoom, and refreshes the preview canvas -accordingly. - diff --git a/docs/latex/wx/process.tex b/docs/latex/wx/process.tex deleted file mode 100644 index 97d8a40446..0000000000 --- a/docs/latex/wx/process.tex +++ /dev/null @@ -1,75 +0,0 @@ -\section{\class{wxProcess}}\label{wxprocess} - -The objects of this class are used in conjunction with -\helpref{wxExecute}{wxexecute} function. When a wxProcess object is passed to -wxExecute(), its \helpref{OnTerminate()}{wxprocessonterminate} virtual method -is called when the process terminates. This allows the program to be -(asynchronously) notified about the process termination and also retrieve its -exit status which is unavailable from wxExecute() in the case of -asynchronous execution. - -Please note that if the process termination notification is processed by the -parent, it is responsible for deleting the wxProcess object which sent it. -However, if it is not processed, the object will delete itself and so the -library users should only delete those objects whose notifications have been -processed (and call \helpref{Detach()}{wxprocessdetach} for others). - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxProcess::wxProcess}\label{wxprocessconstr} - -\func{}{wxProcess}{\param{wxEvtHandler *}{ parent = NULL}, \param{int}{ id = -1}} - -Constructs a process object. {\it id} is only used in the case you want to -use wxWindows events. It identifies this object, or another window that will -receive the event. - -If the {\it parent} parameter is different from NULL, it will receive -a wxEVT\_END\_PROCESS notification event (you should insert EVT\_END\_PROCESS -macro in the event table of the parent to handle it) with the given {\it id}. - -\wxheading{Parameters} - -\docparam{parent}{The event handler parent.} - -\docparam{id}{id of an event.} - -\membersection{wxProcess::\destruct{wxProcess}} - -\func{}{\destruct{wxProcess}}{\void} - -Destroys the wxProcess object. - -\membersection{wxProcess::Detach}\label{wxprocessdetach} - -\func{void}{Detach}{\void} - -Normally, a wxProcess object is deleted by its parent when it receives the -notification about the process termination. However, it might happen that the -parent object is destroyed before the external process is terminated (e.g. a -window from which this external process was launched is closed by the user) -and in this case it {\bf should not delete} the wxProcess object, but -{\bf should call Detach()} instead. After the wxProcess object is detached -from its parent, no notification events will be sent to the parent and the -object will delete itself upon reception of the process termination -notification. - -\membersection{wxProcess::OnTerminate}\label{wxprocessonterminate} - -\constfunc{void}{OnTerminate}{\param{int}{ pid}, \param{int}{ status}} - -It is called when the process with the pid {\it pid} finishes. -It raises a wxWindows event when it isn't overriden. - -\docparam{pid}{The pid of the process which has just terminated.} - -\docparam{status}{The exit code of the process.} - diff --git a/docs/latex/wx/procevt.tex b/docs/latex/wx/procevt.tex deleted file mode 100644 index 897b5b961c..0000000000 --- a/docs/latex/wx/procevt.tex +++ /dev/null @@ -1,56 +0,0 @@ -\section{\class{wxProcessEvent}}\label{wxprocessevent} - -A process event is sent when a process is terminated. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a wxProcessEvent, use these event handler macros to direct input to a member -function that takes a wxProcessEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_END\_PROCESS(id, func)}}{Process a wxEVT\_END\_PROCESS event. -{\it id} is the identifier of the process object (the id passed to the wxProcess constructor) -or a window to receive the event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxProcess}{wxprocess},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxProcessEvent::wxProcessEvent} - -\func{}{wxProcessEvent}{\param{int }{id = 0}, \param{int }{pid = 0}} - -Constructor. Takes a wxProcessObject or window id, and a process id. - -\membersection{wxProcessEvent::m\_pid} - -\member{int}{m\_pid} - -Contains the process id. - -\membersection{wxProcessEvent::GetPid}\label{wxprocesseventgetpid} - -\constfunc{int}{GetPid}{\void} - -Returns the process id. - -\membersection{wxProcessEvent::SetPid}\label{wxprocesseventsetpid} - -\func{void}{SetPid}{\param{int}{ pid}} - -Sets the process id. - diff --git a/docs/latex/wx/progdlg.tex b/docs/latex/wx/progdlg.tex deleted file mode 100644 index fed190051d..0000000000 --- a/docs/latex/wx/progdlg.tex +++ /dev/null @@ -1,98 +0,0 @@ -\section{\class{wxProgressDialog}}\label{wxprogressdialog} - -This class represents a dialog that shows a short message and a -progress bar. Optionally, it can display an ABORT button. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxProgressDialog::wxProgressDialog}\label{wxprogressdialogconstr} - -\func{}{wxProgressDialog} -{\param{const wxString\& }{title}, - \param{const wxString\& }{message},\rtfsp - \param{int }{maximum = 100}, - \param{wxWindow * }{parent = NULL},\rtfsp - \param{int }{style = wxPD\_AUTO\_HIDE | wxPD\_APP\_MODAL} - } - -Constructor. Creates the dialog, displays it and disables user input -for other windows, or, if wxPD\_APP\_MODAL flag is not given, for its parent -window only. - -\wxheading{Parameters} - -\docparam{title}{Dialog title to show in titlebar.} - -\docparam{message}{Message displayed above the progress bar.} - -\docparam{maximum}{Maximum value for the progress bar.} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{style}{The dialog style. This is the combination of the following - bitmask constants defined in wx/defs.h: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxPD\_APP\_MODAL}{Make the progress dialog modal. If this flag is - not given, it is only "locally" modal - that is the input to the parent - window is disabled, but not to the other ones.} -\twocolitem{wxPD\_AUTO\_HIDE}{By default, the progress dialog will disappear - from screen as soon as the maximum value of the progress meter has been - reached. This flag prevents it from doing it - instead the dialog will wait - until the user closes it.} -\twocolitem{wxPD\_CAN\_ABORT}{This flag tells the dialog that it should have a - "Cancel" button which the user may press. If this happens, the next call to - \helpref{Update()}{wxprogressdialogupdate} will return FALSE.} -\twocolitem{wxPD\_ELAPSED\_TIME}{This flag tells the dialog that it should show elapsed time (since creating the dialog).} -\twocolitem{wxPD\_ESTIMATED\_TIME}{This flag tells the dialog that it should show estimated time.} -\twocolitem{wxPD\_REMAINING\_TIME}{This flag tells the dialog that it should show remaining time.} -\end{twocollist}% -} - -\membersection{wxProgressDialog::\destruct{wxProgressDialog}} - -\func{}{\destruct{wxMessageDialog}}{\void} -Destructor. -Deletes the dialog and enables all top level windows. - -\membersection{wxProgressDialog::Update}\label{wxprogressdialogupdate} - -\func{bool}{Update}{ - \param{int }{value = -1},\rtfsp - \param{const char * }{newmsg = NULL}, } - -Updates the dialog, setting the progress bar to the new value and, if -given changes the message above it. Returns TRUE if the ABORT button -has \emph{not} been pressed. - -If FALSE is returned, the application can either immediately destroy the dialog -or ask the user for the confirmation and if the abort is not confirmed the -dialog may be resumed with \helpref{Resume}{wxprogressdialogresume} function. - -\docparam{value}{The new value of the progress meter. It must be strictly less - than the maximum value given to the constructor (i.e., as usual in C, the - index runs from $0$ to $maximum-1$).} -\docparam{newmsg}{The new messages for the progress dialog text, if none is - given the message is not changed.} - -\membersection{wxProgressDialog::Resume}\label{wxprogressdialogresume} - -\func{void}{Resume}{\void} - -Can be used to continue with the dialog, after the user had chosen -ABORT. - diff --git a/docs/latex/wx/protocol.tex b/docs/latex/wx/protocol.tex deleted file mode 100644 index 0043092d7f..0000000000 --- a/docs/latex/wx/protocol.tex +++ /dev/null @@ -1,106 +0,0 @@ -\section{\class{wxProtocol}}\label{wxprotocol} - -\wxheading{Derived from} - -\helpref{wxSocketClient}{wxsocketclient} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxURL}{wxurl} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\membersection{Members}}} - -\membersection{wxProtocol::Reconnect}\label{wxprotoreconnect} - -\func{bool}{Reconnect}{\void} - -Tries to reestablish a previous opened connection (close and renegotiate connection). - -\wxheading{Return value} - -TRUE, if the connection is established, else FALSE. - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::GetInputStream}\label{wxprotogetinput} - -\func{wxInputStream *}{GetInputStream}{\param{const wxString\&}{ path}} - -Creates a new input stream on the the specified path. You can use all but seek -functionnality of wxStream. Seek isn't available on all stream. For example, -http or ftp streams doesn't deal with it. Other functions like StreamSize and -Tell aren't available for the moment for this sort of stream. -You will be notified when the EOF is reached by an error. - -\wxheading{Return value} - -Returns the initialized stream. You will have to delete it yourself once you -don't use it anymore. The destructor closes the network connection. - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream} - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::Abort}\label{wxprotoabort} - -\func{bool}{Abort}{\void} - -Abort the current stream. - -\wxheading{Warning} - -It is advised to destroy the input stream instead of aborting the stream this way. - -\wxheading{Return value} - -Returns TRUE, if successful, else FALSE. - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::GetError} - -\func{wxProtocolError}{GetError}{\void} - -Returns the last occured error. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxPROTO\_NOERR}}{No error.} -\twocolitem{{\bf wxPROTO\_NETERR}}{A generic network error occured.} -\twocolitem{{\bf wxPROTO\_PROTERR}}{An error occured during negotiation.} -\twocolitem{{\bf wxPROTO\_CONNERR}}{The client failed to connect the server.} -\twocolitem{{\bf wxPROTO\_INVVAL}}{Invalid value.} -\twocolitem{{\bf wxPROTO\_NOHNDLR}}{.} -\twocolitem{{\bf wxPROTO\_NOFILE}}{The remote file doesn't exist.} -\twocolitem{{\bf wxPROTO\_ABRT}}{Last action aborted.} -\twocolitem{{\bf wxPROTO\_RCNCT}}{An error occured during reconnection.} -\twocolitem{{\bf wxPROTO\_STREAM}}{Someone tried to send a command during a transfer.} -\end{twocollist} - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::GetContentType} - -\func{wxString}{GetContentType}{\void} - -Returns the type of the content of the last opened stream. It is a mime-type. - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::SetUser} - -\func{void }{SetUser}{\param{const wxString\&}{ user}} - -Sets the authentication user. It is mainly useful when FTP is used. - -\membersection{wxProtocol::SetPassword} - -\func{void}{SetPassword}{\param{const wxString\&}{ user}} - -Sets the authentication password. It is mainly useful when FTP is used. - diff --git a/docs/latex/wx/prvdatob.tex b/docs/latex/wx/prvdatob.tex deleted file mode 100644 index 9b4542f50e..0000000000 --- a/docs/latex/wx/prvdatob.tex +++ /dev/null @@ -1,79 +0,0 @@ -\section{\class{wxPrivateDataObject}}\label{wxprivatedataobject} - -wxPrivateDataObject is a specialization of wxDataObject for application-specific or standard -format data. The format of the data contained in an instance of this class must be identified -with a string literal corresponding to the mime-type of the data. Typically this would be -"image/png" or "text/html" or "application/word". - -\wxheading{Derived from} - -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrivateDataObject::wxPrivateDataObject}\label{wxprivatedataobjectwxprivatedataobject} - -\func{}{wxPrivateDataObject}{\void} - -\membersection{wxPrivateDataObject::\destruct{wxPrivateDataObject}}\label{wxprivatedataobjectdtor} - -\func{}{\destruct{wxPrivateDataObject}}{\void} - -\membersection{wxPrivateDataObject::SetId}\label{wxprivatedataobjectsetid} - -\func{virtual void}{SetId}{\param{const wxString\& }{id}} - -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/word". - -\membersection{wxPrivateDataObject::GetId}\label{wxprivatedataobjectgetid} - -\constfunc{virtual wxString}{GetId}{\void} - -Returns the ID of the clipboard or DnD data format. - -\membersection{wxPrivateDataObject::SetData}\label{wxprivatedataobjectsetdata} - -\func{virtual void}{SetData}{\param{const char }{*data}, \param{size\_t }{size}} - -Set the data. The data object will make an internal copy. - -\membersection{wxPrivateDataObject::GetSize}\label{wxprivatedataobjectgetsize} - -\constfunc{virtual size\_t}{GetDataSize}{\void} - -Returns the data size. - -\membersection{wxPrivateDataObject::GetData}\label{wxprivatedataobjectgetdata} - -\func{virtual char*}{GetData}{\void} - -Returns a pointer to the data. - -\membersection{wxPrivateDataObject::WriteData}\label{wxprivatedataobjectwritedata} - -\constfunc{virtual void}{WriteData}{\param{void}{*dest} } - -Write the data owned by this class to {\it dest}. By default, this -calls \helpref{WriteData}{wxprivatedataobjectwritedata2} with data -set using \helpref{SetData}{wxprivatedataobjectsetdata}. -This can be overridden to provide data on-demand; in this case -\helpref{WriteData(data,dest)}{wxprivatedataobjectwritedata2} (see below) must be called from -within the overriding WriteData() method. - -\membersection{wxPrivateDataObject::WriteData}\label{wxprivatedataobjectwritedata2} - -\constfunc{void}{WriteData}{\param{const char* }{data}, \param{void}{*dest} } - -Writes the data {\it data} to {\it dest}. This method must be called -from \helpref{WriteData}{wxprivatedataobjectwritedata}. - diff --git a/docs/latex/wx/prvtdrpt.tex b/docs/latex/wx/prvtdrpt.tex deleted file mode 100644 index adeedd7715..0000000000 --- a/docs/latex/wx/prvtdrpt.tex +++ /dev/null @@ -1,35 +0,0 @@ -\section{\class{wxPrivateDropTarget}}\label{wxprivatedroptarget} - -wxPrivateDropTarget is for... - -\wxheading{Derived from} - -\helpref{wxDropTarget}{wxdroptarget} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDropTarget}{wxdroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPrivateDropTarget::wxPrivateDropTarget}\label{wxprivatedroptargetwxprivatedroptarget} - -\func{}{wxPrivateDropTarget}{\void} - -\membersection{wxPrivateDropTarget::SetId}\label{wxprivatedroptargetsetid} - -\func{void}{SetId}{\param{const wxString\& }{id}} - -Yu have to override OnDrop to get at the data. -The string ID identifies the format of clipboard or DnD data. A word -rocessor would e.g. add a wxTextDataObject and a wxPrivateDataObject -to the clipboard - the latter with the Id "WXWORD\_FORMAT". - -\membersection{wxPrivateDropTarget::GetId}\label{wxprivatedroptargetgetid} - -\constfunc{virtual wxString}{GetId}{\void} - diff --git a/docs/latex/wx/psbox.tex b/docs/latex/wx/psbox.tex deleted file mode 100644 index b7438f4f29..0000000000 --- a/docs/latex/wx/psbox.tex +++ /dev/null @@ -1,520 +0,0 @@ -% -% %%%%%%% %%%%% %%%%%% %%%%% % % -% % % % % % % % % % -% % % % % % % % % % -% %%%%%%% %%%%% %%%%%% % % % -% % % % % % % % % -% % % % % % % % % -% % %%%%%% %%%%%% %%%%% % % -% -% By Jean Orloff -% Comments & suggestions by e-mail: ORLOFF@surya11.cern.ch -% No modification of this file allowed if not e-sent to me. -% -% A simple way to measure the size of encapsulated postscript figures -% from inside TeX, and to use it for automatically formatting texts -% with inserted figures. Works both under Plain TeX-based macros -% (Phyzzx, Harvmac, Psizzl, ...) and LaTeX environment. -% Provides exactly the same result on any PostScript printer provided -% the single instruction \psfor... is changed to fit the needs of the -% particular dvi->ps translator used. -% History: -% 1.31: adds \psforDVIALW(?) -% 1.30: adds \splitfile & \joinfiles for multi-file management -% 1.24: fix error handling & add \psonlyboxes -% 1.23: adds \putsp@ce for OzTeX fix -% 1.22: makes \drawingBox \global for use in Phyzzx -% 1.21: accepts %%BoundingBox: (atend) -% 1.20: tries to add \psfordvitps for the TeXPS package. -% 1.10: adds \psforoztex, error handling... -%2345678 1 2345678 2 2345678 3 2345678 4 2345678 5 2345678 6 2345678 7 23456789 -% -\def\temp{1.31} -\let\tempp=\relax -\expandafter\ifx\csname psboxversion\endcsname\relax - \message{version: \temp} -\else - \ifdim\temp cm>\psboxversion cm - \message{version: \temp} - \else - \message{psbox(\psboxversion) is already loaded: I won't load - psbox(\temp)!} - \let\temp=\psboxversion - \let\tempp=\endinput - \fi -\fi -\tempp -\let\psboxversion=\temp -\catcode`\@=11 -% Every macro likes a little privacy... -% -% Some common defs -% -\def\execute#1{#1}% NOT stupid: cs in #1 are then identified BEFORE execution -\def\psm@keother#1{\catcode`#112\relax}% borrowed from latex -\def\executeinspecs#1{% -\execute{\begingroup\let\do\psm@keother\dospecials\catcode`\^^M=9#1\endgroup}} -% -%Trying to tame the variety of \special commands for Postscript: the -% universal internal command \PSspeci@l##1##2 takes ##1 to be the -% filename and ##2 to be the integer scale factor*1000 (as for usual -% TeX \scale commands) -% -\def\psfortextures{% For TeXtures on the Macintosh -%----------------- -\def\PSspeci@l##1##2{% -\special{illustration ##1\space scaled ##2}% -}} -% -\def\psfordvitops{% For the DVItoPS converter on IBM mainframes -%---------------- -\def\PSspeci@l##1##2{% -\special{dvitops: import ##1\space \the\drawingwd \the\drawinght}% -}} -% -\def\psfordvips{% For DVIPS converter on VAX, UNIX and PC's -%-------------- -\def\PSspeci@l##1##2{% -% \special{/@scaleunit 1000 def}% never read dox without trying! -\d@my=0.1bp \d@mx=\drawingwd \divide\d@mx by\d@my% -\special{PSfile=##1\space llx=\psllx\space lly=\pslly\space% -urx=\psurx\space ury=\psury\space rwi=\number\d@mx}% -}} -% -\def\psforoztex{% For the OzTeX shareware on the Macintosh -%-------------- -\def\PSspeci@l##1##2{% -\special{##1 \space - ##2 1000 div dup scale - \putsp@ce{\number-\psllx} \putsp@ce{\number-\pslly} translate -}% -}} -\def\putsp@ce#1{#1 } -% -\def\psfordvitps{% From the UNIX TeXPS package, vers.>3.12 -%--------------- -% Convert a dimension into the number \psn@sp (in scaled points) -\def\psdimt@n@sp##1{\d@mx=##1\relax\edef\psn@sp{\number\d@mx}} -\def\PSspeci@l##1##2{% -% psfig.psr contains the def of "startTexFig": if you can locate it -% and include the correct pathname, it should work -\special{dvitps: Include0 "psfig.psr"}% contains def of "startTexFig" -\psdimt@n@sp{\drawingwd} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\drawinght} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\psllx bp} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\pslly bp} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\psurx bp} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\psury bp} -\special{dvitps: Literal "\psn@sp\space startTexFig\space"} -\special{dvitps: Include1 "##1"} -\special{dvitps: Literal "endTexFig\space"} -}} -\def\psforDVIALW{% Try for dvialw, a UNIX public domain -%--------------- -\def\PSspeci@l##1##2{ -\special{language "PS" -literal "##2 1000 div dup scale" -include "##1"}}} -\def\psonlyboxes{% Draft-like behaviour if none of the others works -%--------------- -\def\PSspeci@l##1##2{% -\at(0cm;0cm){\boxit{\vbox to\drawinght - {\vss - \hbox to\drawingwd{\at(0cm;0cm){\hbox{(##1)}}\hss} - }}} -}% -} -% -\def\psloc@lerr#1{% -\let\savedPSspeci@l=\PSspeci@l% -\def\PSspeci@l##1##2{% -\at(0cm;0cm){\boxit{\vbox to\drawinght - {\vss - \hbox to\drawingwd{\at(0cm;0cm){\hbox{(##1) #1}}\hss} - }}} -\let\PSspeci@l=\savedPSspeci@l% restore normal output for other figs! -}% -} -% -%\def\psfor... add your own! -% -% \ReadPSize{PSfilename} reads the dimensions of a PostScript drawing -% and stores it in \drawinght(wd) -\newread\pst@mpin -\newdimen\drawinght\newdimen\drawingwd -\newdimen\psxoffset\newdimen\psyoffset -\newbox\drawingBox -\newif\ifNotB@undingBox -\newhelp\PShelp{Proceed: you'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/docs/latex/wx/query.tex b/docs/latex/wx/query.tex deleted file mode 100644 index 923ed46348..0000000000 --- a/docs/latex/wx/query.tex +++ /dev/null @@ -1,210 +0,0 @@ -\section{\class{wxQueryCol}}\label{wxquerycol} - -Every ODBC data column is represented by an instance of this class. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\overview{wxQueryCol overview}{wxquerycoloverview}, \overview{wxDatabase overview}{wxdatabaseoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxQueryCol::wxQueryCol} - -\func{void}{wxQueryCol}{\void} - -Constructor. Sets the attributes of the column to default values. - -\membersection{wxQueryCol::\destruct{wxQueryCol}} - -\func{void}{\destruct{wxQueryCol}}{\void} - -Destructor. Deletes the wxQueryField list. - -\membersection{wxQueryCol::BindVar} - -\func{void *}{BindVar}{\param{void *}{v}, \param{long}{ sz}} - -Binds a user-defined variable to a column. Whenever a column is bound to a -variable, it will automatically copy the data of the current field into this -buffer (to a maximum of {\it sz} bytes). - -\membersection{wxQueryCol::FillVar} - -\func{void}{FillVar}{\param{int}{ recnum}} - -Fills the bound variable with the data of the field recnum. When no variable -is bound to the column nothing will happen. - -\membersection{wxQueryCol::GetData} - -\func{void *}{GetData}{\param{int}{ field}} - -Returns a pointer to the data of the field. - -\membersection{wxQueryCol::GetName} - -\func{wxString}{GetName}{\void} - -Returns the name of a column. - -\membersection{wxQueryCol::GetType} - -\func{short}{GetType}{\void} - -Returns the data type of a column. - -\membersection{wxQueryCol::GetSize} - -\func{long}{GetSize}{\param{int}{ field}} - -Return the size of the data of the field field. - -\membersection{wxQueryCol::IsRowDirty} - -\func{bool}{IsRowDirty}{\param{int}{ field}} - -Returns TRUE if the given field has been changed, but not saved. - -\membersection{wxQueryCol::IsNullable} - -\func{bool}{IsNullable}{\void} - -Returns TRUE if a column may contain no data. - -\membersection{wxQueryCol::AppendField} - -\func{void}{AppendField}{\param{void *}{buf}, \param{long}{ len}} - -Appends a wxQueryField instance to the field list of the column. {\it len} bytes from\rtfsp -{\it buf} will be copied into the field's buffer. - -\membersection{wxQueryCol::SetData} - -\func{bool}{SetData}{\param{int}{ field}, \param{void *}{buf}, \param{long}{ len}} - -Sets the data of a field. This function finds the wxQueryField corresponding to\rtfsp -{\it field} and calls wxQueryField::SetData with {\it buf} and {\it len} arguments. - -\membersection{wxQueryCol::SetName} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the name of a column. Only useful when creating new tables or -appending columns. - -\membersection{wxQueryCol::SetNullable} - -\func{void}{SetNullable}{\param{bool}{ nullable}} - -Determines whether a column may contain no data. Only useful when creating new tables or -appending columns. - -\membersection{wxQueryCol::SetFieldDirty} - -\func{void}{SetFieldDirty}{\param{int}{ field}, \param{bool }{dirty = TRUE}} - -Sets the dirty tag of a given field. - -\membersection{wxQueryCol::SetType} - -\func{void}{SetType}{\param{short}{ type}} - -Sets the data type of a column. Only useful when creating new tables or -appending columns. - -\section{\class{wxQueryField}}\label{wxqueryfield} - -Represents the data item for one or several columns. - -\wxheading{Derivation} - -\helpref{wxObject}{wxobject} - -\wxheading{See also} - -\overview{wxQueryField overview}{wxqueryfieldoverview}, \overview{wxDatabase overview}{wxdatabaseoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxQueryField::wxQueryField} - -\func{}{wxQueryField}{\void} - -Constructor. Sets type and size of the field to default values. - -\membersection{wxQueryField::\destruct{wxQueryField}} - -\func{}{\destruct{wxQueryField}}{\void} - -Destructor. Frees the associated memory depending on the field type. - -\membersection{wxQueryField::AllocData} - -\func{bool}{AllocData}{\void} - -Allocates memory depending on the size and type of the field. - -\membersection{wxQueryField::ClearData} - -\func{void}{ClearData}{\void} - -Deletes the contents of the field buffer without deallocating the memory. - -\membersection{wxQueryField::GetData} - -\func{void *}{GetData}{\void} - -Returns a pointer to the field buffer. - -\membersection{wxQueryField::GetSize} - -\func{long}{GetSize}{\void} - -Returns the size of the field buffer. - -\membersection{wxQueryField::GetType} - -\func{short}{GetType}{\void} - -Returns the type of the field (currently SQL\_CHAR, SQL\_VARCHAR or SQL\_INTEGER). - -\membersection{wxQueryField::IsDirty} - -\func{bool}{IsDirty}{\void} - -Returns TRUE if the data of a field has been changed, but not saved. - -\membersection{wxQueryField::SetData} - -\func{bool}{SetData}{\param{void *}{data}, \param{long}{ sz}} - -Allocates memory of the size {\it sz} and copies the contents of {\it d} into the -field buffer. - -\membersection{wxQueryField::SetDirty} - -\func{void}{SetDirty}{\param{bool}{ dirty = TRUE}} - -Sets the dirty tag of a field. - -\membersection{wxQueryField::SetSize} - -\func{void}{SetSize}{\param{long}{ size}} - -Resizes the field buffer. Stored data will be lost. - -\membersection{wxQueryField::SetType} - -\func{void}{SetType}{\param{short }{type}} - -Sets the type of the field. Currently the types SQL\_CHAR, SQL\_VARCHAR and -SQL\_INTEGER are supported. - diff --git a/docs/latex/wx/qylayevt.tex b/docs/latex/wx/qylayevt.tex deleted file mode 100644 index 638317eea5..0000000000 --- a/docs/latex/wx/qylayevt.tex +++ /dev/null @@ -1,122 +0,0 @@ -\section{\class{wxQueryLayoutInfoEvent}}\label{wxquerylayoutinfoevent} - -This event is sent when \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} wishes to get -the size, orientation and alignment of a window. More precisely, the event is sent -by the OnCalculateLayout handler which is itself invoked by wxLayoutAlgorithm. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event, -to get size, orientation and alignment from a window.} -\end{twocollist} - -\wxheading{Data structures} - -{\small -\begin{verbatim} -enum wxLayoutOrientation { - wxLAYOUT_HORIZONTAL, - wxLAYOUT_VERTICAL -}; - -enum wxLayoutAlignment { - wxLAYOUT_NONE, - wxLAYOUT_TOP, - wxLAYOUT_LEFT, - wxLAYOUT_RIGHT, - wxLAYOUT_BOTTOM, -}; -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp -\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp -\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxQueryLayoutInfoEvent::wxQueryLayoutInfoEvent} - -\func{}{wxQueryLayoutInfoEvent}{\param{wxWindowID }{id = 0}} - -Constructor. - -\membersection{wxQueryLayoutInfoEvent::GetAlignment}\label{wxquerylayoutinfoeventgetalignment} - -\constfunc{void}{GetAlignment}{\void} - -Specifies the alignment of the window (which side of the remaining parent client area -the window sticks to). One of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxQueryLayoutInfoEvent::GetFlags}\label{wxquerylayoutinfoeventgetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns the flags associated with this event. Not currently used. - -\membersection{wxQueryLayoutInfoEvent::GetOrientation}\label{wxquerylayoutinfoeventgetorientation} - -\constfunc{wxLayoutOrientation}{GetOrientation}{\void} - -Returns the orientation that the event handler specified to the event object. May be one of wxLAYOUT\_HORIZONTAL, -wxLAYOUT\_VERTICAL. - -\membersection{wxQueryLayoutInfoEvent::GetRequestedLength}\label{wxquerylayoutinfoeventgetrequestedlength} - -\constfunc{int}{GetRequestedLength}{\void} - -Returns the requested length of the window in the direction of the window orientation. This information -is not yet used. - -\membersection{wxQueryLayoutInfoEvent::GetSize}\label{wxquerylayoutinfoeventgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Returns the size that the event handler specified to the event object as being the requested size of the window. - -\membersection{wxQueryLayoutInfoEvent::SetAlignment}\label{wxquerylayoutinfoeventsetalignment} - -\func{void}{SetAlignment}{\param{wxLayoutAlignment }{alignment}} - -Call this to specify the alignment of the window (which side of the remaining parent client area -the window sticks to). May be one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxQueryLayoutInfoEvent::SetFlags}\label{wxquerylayoutinfoeventsetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets the flags associated with this event. Not currently used. - -\membersection{wxQueryLayoutInfoEvent::SetOrientation}\label{wxquerylayoutinfoeventsetorientation} - -\func{void}{SetOrientation}{\param{wxLayoutOrientation }{orientation}} - -Call this to specify the orientation of the window. May be one of wxLAYOUT\_HORIZONTAL, -wxLAYOUT\_VERTICAL. - -\membersection{wxQueryLayoutInfoEvent::SetRequestedLength}\label{wxquerylayoutinfoeventsetrequestedlength} - -\func{void}{SetRequestedLength}{\param{int}{ length}} - -Sets the requested length of the window in the direction of the window orientation. This information -is not yet used. - -\membersection{wxQueryLayoutInfoEvent::SetSize}\label{wxquerylayoutinfoeventsetsize} - -\func{void}{SetSize}{\param{const wxSize\& }{size}} - -Call this to let the calling code know what the size of the window is. - diff --git a/docs/latex/wx/radiobox.tex b/docs/latex/wx/radiobox.tex deleted file mode 100644 index 9b1d9be5a2..0000000000 --- a/docs/latex/wx/radiobox.tex +++ /dev/null @@ -1,274 +0,0 @@ -\section{\class{wxRadioBox}}\label{wxradiobox} - -A radio box item is used to select one of number of mutually exclusive -choices. It is displayed as a vertical column or horizontal row of -labelled buttons. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRA\_SPECIFY\_ROWS}}{The major dimension parameter refers to the -maximum number of rows.} -\twocolitem{\windowstyle{wxRA\_SPECIFY\_COLS}}{The major dimension parameter refers to the -maximum number of columns.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_RADIOBOX(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event, -when a radiobutton is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioButton}{wxradiobutton},\rtfsp -\helpref{wxCheckBox}{wxcheckbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRadioBox::wxRadioBox}\label{wxradioboxconstr} - -\func{}{wxRadioBox}{\void} - -Default constructor. - -\func{}{wxRadioBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString}{ choices[] = NULL},\rtfsp -\param{int}{ majorDimension = 0}, \param{long}{ style = wxRA\_SPECIFY\_COLS},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioBox"}} - -Constructor, creating and showing a radiobox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{label}{Label for the static box surrounding the radio buttons.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{n}{Number of choices with which to initialize the radiobox.} - -\docparam{choices}{An array of choices with which to initialize the radiobox.} - -\docparam{majorDimension}{Specifies the maximum number of rows (if style contains wxRA\_SPECIFY\_ROWS) or columns (if style contains wxRA\_SPECIFY\_COLS) for a two-dimensional -radiobox.} - -\docparam{style}{Window style. See \helpref{wxRadioBox}{wxradiobox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxRadioBox::Create}{wxradioboxcreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxRadioBox constructor in wxPython reduces the \tt{n} -and \tt{choices} arguments are to a single argument, which is -a list of strings.} - - -\membersection{wxRadioBox::\destruct{wxRadioBox}} - -\func{}{\destruct{wxRadioBox}}{\void} - -Destructor, destroying the radiobox item. - -\membersection{wxRadioBox::Create}\label{wxradioboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString}{ choices[] = NULL},\rtfsp -\param{int}{ majorDimension = 0}, \param{long}{ style = wxRA\_SPECIFY\_COLS},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioBox"}} - -Creates the radiobox for two-step construction. See \helpref{wxRadioBox::wxRadioBox}{wxradioboxconstr}\rtfsp -for further details. - -\membersection{wxRadioBox::Enable}\label{wxradioboxenable} - -\func{void}{Enable}{\param{const bool}{ enable}} - -Enables or disables the entire radiobox. - -\func{void}{Enable}{\param{int}{ n}, \param{const bool}{ enable}} - -Enables or disables an individual button in the radiobox. - -\wxheading{Parameters} - -\docparam{enable}{TRUE to enable, FALSE to disable.} - -\docparam{n}{The zero-based button to enable or disable.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{Enable(flag)}}{Enables or disables the entire radiobox.} -\twocolitem{\bf{EnableItem(n, flag)}}{Enables or disables an -individual button in the radiobox.} -\end{twocollist}} -} - - -\membersection{wxRadioBox::FindString}\label{wxradioboxfindstring} - -\constfunc{int}{FindString}{\param{const wxString\& }{string}} - -Finds a button matching the given string, returning the position if found, or --1 if not found. - -\wxheading{Parameters} - -\docparam{string}{The string to find.} - -\membersection{wxRadioBox::GetLabel}\label{wxradioboxgetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the radiobox label. - -\constfunc{wxString}{GetLabel}{\param{int }{n}} - -Returns the label for the given button. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button index.} - -\wxheading{See also} - -\helpref{wxRadioBox::SetLabel}{wxradioboxsetlabel} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetLabel()}}{Returns the radiobox label.} -\twocolitem{\bf{GetItemLabel(n)}}{Returns the label for the given button.} -\end{twocollist}} -} - - -\membersection{wxRadioBox::GetSelection}\label{wxradioboxgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the zero-based position of the selected button. - -\membersection{wxRadioBox::GetStringSelection}\label{wxradioboxgetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Returns the selected string. - -\membersection{wxRadioBox::Number}\label{wxradioboxnumber} - -\constfunc{int}{Number}{\void} - -Returns the number of buttons in the radiobox. - -\membersection{wxRadioBox::SetLabel}\label{wxradioboxsetlabel} - -\func{void}{SetLabel}{\param{const wxString\&}{ label}} - -Sets the radiobox label. - -\func{void}{SetLabel}{\param{int }{n}, \param{const wxString\&}{ label}} - -Sets a label for a radio button. - -\wxheading{Parameters} - -\docparam{label}{The label to set.} - -\docparam{n}{The zero-based button index.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetLabel(string)}}{Sets the radiobox label.} -\twocolitem{\bf{SetItemLabel(n, string)}}{Sets a label for a radio button.} -\end{twocollist}} -} - -\membersection{wxRadioBox::SetSelection}\label{wxradioboxsetselection} - -\func{void}{SetSelection}{\param{int}{ n}} - -Sets a button by passing the desired string position. This does not cause -a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button position.} - -\membersection{wxRadioBox::SetStringSelection}\label{wxradioboxsetstringselection} - -\func{void}{SetStringSelection}{\param{const wxString\& }{string}} - -Sets the selection to a button by passing the desired string. This does not cause -a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{string}{The label of the button to select.} - -\membersection{wxRadioBox::Show}\label{wxradioboxshow} - -\func{void}{Show}{\param{const bool}{ show}} - -Shows or hides the entire radiobox. - -\func{void}{Show}{\param{int }{item}, \param{const bool}{ show}} - -Shows or hides individual buttons. - -\wxheading{Parameters} - -\docparam{show}{TRUE to show, FALSE to hide.} - -\docparam{item}{The zero-based position of the button to show or hide.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{Show(flag)}}{Shows or hides the entire radiobox.} -\twocolitem{\bf{ShowItem(n, flag)}}{Shows or hides individual buttons.} -\end{twocollist}} -} - -\membersection{wxRadioBox::GetString}\label{wxradioboxgetstring} - -\constfunc{wxString}{GetString}{\param{int}{ n}} - -Returns the label for the button at the given position. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button position.} - - diff --git a/docs/latex/wx/radiobut.tex b/docs/latex/wx/radiobut.tex deleted file mode 100644 index 9146afe3c0..0000000000 --- a/docs/latex/wx/radiobut.tex +++ /dev/null @@ -1,111 +0,0 @@ -\section{\class{wxRadioButton}}\label{wxradiobutton} - -A radio button item is a button which usually denotes one of several mutually -exclusive options. It has a text label next to a (usually) round button. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRB\_GROUP}}{Marks the beginning of a new group of radio buttons.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_RADIOBUTTON(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED event, -when the radiobutton is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioBox}{wxradiobox},\rtfsp -\helpref{wxCheckBox}{wxcheckbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRadioButton::wxRadioButton}\label{wxradiobuttonconstr} - -\func{}{wxRadioButton}{\void} - -Default constructor. - -\func{}{wxRadioButton}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioButton"}} - -Constructor, creating and showing a radio button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{label}{Label for the radio button.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxRadioButton}{wxradiobutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxRadioButton::Create}{wxradiobuttoncreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxRadioButton::\destruct{wxRadioButton}} - -\func{void}{\destruct{wxRadioButton}}{\void} - -Destructor, destroying the radio button item. - -\membersection{wxRadioButton::Create}\label{wxradiobuttoncreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioButton"}} - -Creates the choice for two-step construction. See \helpref{wxRadioButton::wxRadioButton}{wxradiobuttonconstr} for -further details. - -\membersection{wxRadioButton::GetValue}\label{wxradiobuttongetvalue} - -\constfunc{bool}{GetValue}{\void} - -Returns TRUE if the radio button is depressed, FALSE otherwise. - -\membersection{wxRadioButton::SetValue}\label{wxradiobuttonsetvalue} - -\func{void}{SetValue}{\param{const bool}{ value}} - -Sets the radio button to selected or deselected status. This does not cause a -wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{value}{TRUE to select, FALSE to deselect.} - - diff --git a/docs/latex/wx/realpoin.tex b/docs/latex/wx/realpoin.tex deleted file mode 100644 index b9ddad00f4..0000000000 --- a/docs/latex/wx/realpoin.tex +++ /dev/null @@ -1,35 +0,0 @@ -\section{\class{wxRealPoint}}\label{wxrealpoint} - -A {\bf wxRealPoint} is a useful data structure for graphics operations. -It contains floating point point {\it x} and {\it y} members. -See also \helpref{wxPoint}{wxpoint} for an integer version. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRealPoint::wxRealPoint} - -\func{}{wxRealPoint}{\void} - -\func{}{wxRealPoint}{\param{double}{ x}, \param{double}{ y}} - -Create a point. - -\member{double}{ x} - -\member{double}{ y} - -Members of the {\bf wxRealPoint} object. - - diff --git a/docs/latex/wx/recrdset.tex b/docs/latex/wx/recrdset.tex deleted file mode 100644 index 568fd85a24..0000000000 --- a/docs/latex/wx/recrdset.tex +++ /dev/null @@ -1,603 +0,0 @@ -\section{\class{wxRecordSet}}\label{wxrecordset} - -Each wxRecordSet represents an ODBC database query. You can make multiple queries -at a time by using multiple wxRecordSets with a wxDatabase or you can make -your queries in sequential order using the same wxRecordSet. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxRecordSet overview}{wxrecordsetoverview}, \helpref{wxDatabase overview}{wxdatabaseoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRecordSet::wxRecordSet} - -\func{}{wxRecordSet}{\param{wxDatabase *}{db}, \param{int}{ type = wxOPEN\_TYPE\_DYNASET}, - \param{int}{ opt = wxOPTION\_DEFAULT}} - -Constructor. {\it db} is a pointer to the wxDatabase instance you wish to use the -wxRecordSet with. Currently there are two possible values of {\it type}: - -\begin{itemize}\itemsep=0pt -\item wxOPEN\_TYPE\_DYNASET: Loads only one record at a time into memory. The other -data of the result set will be loaded dynamically when -moving the cursor. This is the default type. -\item wxOPEN\_TYPE\_SNAPSHOT: Loads all records of a result set at once. This will -need much more memory, but will result in -faster access to the ODBC data. -\end{itemize} - -The {\it option} parameter is not used yet. - -The constructor appends the wxRecordSet object to the parent database's list of -wxRecordSet objects, for later destruction when the wxDatabase is destroyed. - -\membersection{wxRecordSet::\destruct{wxRecordSet}} - -\func{}{\destruct{wxRecordSet}}{\void} - -Destructor. All data except that stored in user-defined variables will be lost. -It also unlinks the wxRecordSet object from the parent database's list of -wxRecordSet objects. - -\membersection{wxRecordSet::AddNew} - -\func{void}{AddNew}{\void} - -Not implemented. - -\membersection{wxRecordSet::BeginQuery} - -\func{bool}{BeginQuery}{\param{int}{ openType}, \param{const wxString\& }{sql = NULL}, \param{int}{ options = wxOPTION\_DEFAULT}} - -Not implemented. - -\membersection{wxRecordSet::BindVar} - -\func{void *}{BindVar}{\param{int}{ col}, \param{void *}{buf}, \param{long}{ size}} - -Binds a user-defined variable to the column col. Whenever the current field's -data changes, it will be copied into buf (maximum {\it size} bytes). - -\func{void *}{BindVar}{\param{const wxString\& }{col}, \param{void *}{buf}, \param{long}{ size}} - -The same as above, but uses the column name as the identifier. - -\membersection{wxRecordSet::CanAppend} - -\func{bool}{CanAppend}{\void} - -Not implemented. - -\membersection{wxRecordSet::Cancel} - -\func{void}{Cancel}{\void} - -Not implemented. - -\membersection{wxRecordSet::CanRestart} - -\func{bool}{CanRestart}{\void} - -Not implemented. - -\membersection{wxRecordSet::CanScroll} - -\func{bool}{CanScroll}{\void} - -Not implemented. - -\membersection{wxRecordSet::CanTransact} - -\func{bool}{CanTransact}{\void} - -Not implemented. - -\membersection{wxRecordSet::CanUpdate} - -\func{bool}{CanUpdate}{\void} - -Not implemented. - -\membersection{wxRecordSet::ConstructDefaultSQL} - -\func{bool}{ConstructDefaultSQL}{\void} - -Not implemented. - -\membersection{wxRecordSet::Delete} - -\func{bool}{Delete}{\void} - -Deletes the current record. Not implemented. - -\membersection{wxRecordSet::Edit} - -\func{void}{Edit}{\void} - -Not implemented. - -\membersection{wxRecordSet::EndQuery} - -\func{bool}{EndQuery}{\void} - -Not implemented. - -\membersection{wxRecordSet::ExecuteSQL}\label{wxrecordsetexecutesql} - -\func{bool}{ExecuteSQL}{\param{const wxString\& }{sql}} - -Directly executes a SQL statement. The data will be presented as a normal -result set. Note that the recordset must have been created as a snapshot, not -dynaset. Dynasets will be implemented in the near future. - -Examples of common SQL statements are given in \helpref{A selection of SQL commands}{sqlcommands}. - -\membersection{wxRecordSet::FillVars} - -\func{void}{FillVars}{\param{int}{ recnum}} - -Fills in the user-defined variables of the columns. You can set these -variables with wxQueryCol::BindVar. This function will be automatically -called after every successful database operation. - -\membersection{wxRecordSet::GetColName} - -\func{wxString}{GetColName}{\param{int}{ col}} - -Returns the name of the column at position {\it col}. Returns NULL if {\it col} does not -exist. - -\membersection{wxRecordSet::GetColType} - -\func{short}{GetColType}{\param{int}{ col}} - -Returns the data type of the column at position {\it col}. Returns SQL\_TYPE\_NULL -if {\it col} does not exist. - -\func{short}{GetColType}{\param{const wxString\& }{ name}} - -The same as above, but uses the column name as the identifier. - -See \helpref{ODBC SQL data types}{sqltypes} for a list -of possible data types. - -\membersection{wxRecordSet::GetColumns} - -\func{bool}{GetColumns}{\param{const wxString\& }{table = NULL}} - -Returns the columns of the table with the specified name. If no name is -given the class member {\it tablename} will be used. If both names are NULL -nothing will happen. The data will be presented as a normal result set, organized -as follows: - -\begin{twocollist}\itemsep=0pt -\twocolitem{0 (VARCHAR)}{TABLE\_QUALIFIER} -\twocolitem{1 (VARCHAR)}{TABLE\_OWNER} -\twocolitem{2 (VARCHAR)}{TABLE\_NAME} -\twocolitem{3 (VARCHAR)}{COLUMN\_NAME} -\twocolitem{4 (SMALLINT)}{DATA\_TYPE} -\twocolitem{5 (VARCHAR)}{TYPE\_NAME} -\twocolitem{6 (INTEGER)}{PRECISION} -\twocolitem{7 (INTEGER)}{LENGTH} -\twocolitem{8 (SMALLINT)}{SCALE} -\twocolitem{9 (SMALLINT)}{RADIX} -\twocolitem{10 (SMALLINT)}{NULLABLE} -\twocolitem{11 (VARCHAR)}{REMARKS} -\end{twocollist} - -\membersection{wxRecordSet::GetCurrentRecord} - -\func{long}{GetCurrentRecord}{\void} - -Not implemented. - -\membersection{wxRecordSet::GetDatabase} - -\func{wxDatabase *}{GetDatabase}{\void} - -Returns the wxDatabase object bound to a wxRecordSet. - -\membersection{wxRecordSet::GetDataSources}\label{wxrecordsetgetdatasources} - -\func{bool}{GetDataSources}{\void} - -Gets the currently-defined data sources via the ODBC manager. The data will be presented -as a normal result set. See the documentation for the ODBC function SQLDataSources for how the data -is organized. - -Example: - -\begin{verbatim} - wxDatabase Database; - - wxRecordSet *Record = new wxRecordSet(&Database); - - if (!Record->GetDataSources()) { - char buf[300]; - sprintf(buf, "%s %s\n", Database.GetErrorClass(), Database.GetErrorMessage()); - frame->output->SetValue(buf); - } - else { - do { - frame->DataSource->Append((char*)Record->GetFieldDataPtr(0, SQL_CHAR)); - } while (Record->MoveNext()); - } -\end{verbatim} - -\membersection{wxRecordSet::GetDefaultConnect} - -\func{wxString}{GetDefaultConnect}{\void} - -Not implemented. - -\membersection{wxRecordSet::GetDefaultSQL} - -\func{wxString}{GetDefaultSQL}{\void} - -Not implemented. - -\membersection{wxRecordSet::GetErrorCode} - -\func{wxRETCODE}{GetErrorCode}{\void} - -Returns the error code of the last ODBC action. This will be one of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{SQL\_ERROR}{General error.} -\twocolitem{SQL\_INVALID\_HANDLE}{An invalid handle was passed to an ODBC function.} -\twocolitem{SQL\_NEED\_DATA}{ODBC expected some data.} -\twocolitem{SQL\_NO\_DATA\_FOUND}{No data was found by this ODBC call.} -\twocolitem{SQL\_SUCCESS}{The call was successful.} -\twocolitem{SQL\_SUCCESS\_WITH\_INFO}{The call was successful, but further information can be -obtained from the ODBC manager.} -\end{twocollist} - -\membersection{wxRecordSet::GetFieldData}\label{wxrecordsetgetfielddata} - -\func{bool}{GetFieldData}{\param{int}{ col}, \param{int}{ dataType}, \param{void *}{dataPtr}} - -Copies the current data of the column at position {\it col} into the buffer -\rtfsp{\it dataPtr}. To be sure to get the right type of data, the user has to pass the -correct data type. The function returns FALSE if {\it col} does not -exist or the wrong data type was given. - -\func{bool}{GetFieldData}{\param{const wxString\& }{name}, \param{int}{ dataType}, \param{void *}{dataPtr}} - -The same as above, but uses the column name as the identifier. - -See \helpref{ODBC SQL data types}{sqltypes} for a list -of possible data types. - -\membersection{wxRecordSet::GetFieldDataPtr}\label{wxrecordsetgetfielddataptr} - -\func{void *}{GetFieldDataPtr}{\param{int}{ col}, \param{int}{ dataType}} - -Returns the current data pointer of the column at position {\it col}. -To be sure to get the right type of data, the user has to pass the -data type. Returns NULL if {\it col} does not exist or if {\it dataType} is -incorrect. - -\func{void *}{GetFieldDataPtr}{\param{const wxString\& }{name}, \param{int}{ dataType}} - -The same as above, but uses the column name as the identifier. - -See \helpref{ODBC SQL data types}{sqltypes} for a list -of possible data types. - -\membersection{wxRecordSet::GetFilter} - -\func{wxString}{GetFilter}{\void} - -Returns the current filter. - -\membersection{wxRecordSet::GetForeignKeys} - -\func{bool}{GetPrimaryKeys}{\param{const wxString\& }{ptable = NULL}, \param{const wxString\& }{ftable -= NULL}} - -Returns a list of foreign keys in the specified table (columns in the -specified table that refer to primary keys in other tables), or -a list of foreign keys in other tables that refer to the primary key in -the specified table. - -If {\it ptable} contains a table name, this function returns a result -set containing the primary key of the specified table. - -If {\it ftable} contains a table name, this functions returns a result set -of containing all of the foreign keys in the specified table and the -primary keys (in other tables) to which they refer. - -If both {\it ptable} and {\it ftable} contain table names, this -function returns the foreign keys in the table specified in {\it -ftable} that refer to the primary key of the table specified in {\it -ptable}. This should be one key at most. - -GetForeignKeys returns results as a standard result set. If the foreign -keys associated with a primary key are requested, the result set is -ordered by FKTABLE\_QUALIFIER, FKTABLE\_OWNER, FKTABLE\_NAME, and KEY\_SEQ. -If the primary keys associated with a foreign key are requested, the -result set is ordered by PKTABLE\_QUALIFIER, PKTABLE\_OWNER, PKTABLE\_NAME, -and KEY\_SEQ. The following table lists the columns in the result set. - -\begin{twocollist}\itemsep=0pt -\twocolitem{0 (VARCHAR)}{PKTABLE\_QUALIFIER} -\twocolitem{1 (VARCHAR)}{PKTABLE\_OWNER} -\twocolitem{2 (VARCHAR)}{PKTABLE\_NAME} -\twocolitem{3 (VARCHAR)}{PKCOLUMN\_NAME} -\twocolitem{4 (VARCHAR)}{FKTABLE\_QUALIFIER} -\twocolitem{5 (VARCHAR)}{FKTABLE\_OWNER} -\twocolitem{6 (VARCHAR)}{FKTABLE\_NAME} -\twocolitem{7 (VARCHAR)}{FKCOLUMN\_NAME} -\twocolitem{8 (SMALLINT)}{KEY\_SEQ} -\twocolitem{9 (SMALLINT)}{UPDATE\_RULE} -\twocolitem{10 (SMALLINT)}{DELETE\_RULE} -\twocolitem{11 (VARCHAR)}{FK\_NAME} -\twocolitem{12 (VARCHAR)}{PK\_NAME} -\end{twocollist} - -\membersection{wxRecordSet::GetNumberCols} - -\func{long}{GetNumberCols}{\void} - -Returns the number of columns in the result set. - -\membersection{wxRecordSet::GetNumberFields} - -\func{int}{GetNumberFields}{\void} - -Not implemented. - -\membersection{wxRecordSet::GetNumberParams} - -\func{int}{GetNumberParams}{\void} - -Not implemented. - -\membersection{wxRecordSet::GetNumberRecords} - -\func{long}{GetNumberRecords}{\void} - -Returns the number of records in the result set. - -\membersection{wxRecordSet::GetPrimaryKeys} - -\func{bool}{GetPrimaryKeys}{\param{const wxString\& }{table = NULL}} - -Returns the column names that comprise the primary key of the table with the specified name. If no name is -given the class member {\it tablename} will be used. If both names are NULL -nothing will happen. The data will be presented as a normal result set, organized -as follows: - -\begin{twocollist}\itemsep=0pt -\twocolitem{0 (VARCHAR)}{TABLE\_QUALIFIER} -\twocolitem{1 (VARCHAR)}{TABLE\_OWNER} -\twocolitem{2 (VARCHAR)}{TABLE\_NAME} -\twocolitem{3 (VARCHAR)}{COLUMN\_NAME} -\twocolitem{4 (SMALLINT)}{KEY\_SEQ} -\twocolitem{5 (VARCHAR)}{PK\_NAME} -\end{twocollist} - -\membersection{wxRecordSet::GetOptions} - -\func{int}{GetOptions}{\void} - -Returns the options of the wxRecordSet. Options are not supported yet. - -\membersection{wxRecordSet::GetResultSet} - -\func{bool}{GetResultSet}{\void} - -Copies the data presented by ODBC into wxRecordSet. Depending on the -wxRecordSet type all or only one record(s) will be copied. -Usually this function will be called automatically after each successful -database operation. - -\membersection{wxRecordSet::GetSortString} - -\func{wxString}{GetSortString}{\void} - -Not implemented. - -\membersection{wxRecordSet::GetSQL} - -\func{wxString}{GetSQL}{\void} - -Not implemented. - -\membersection{wxRecordSet::GetTableName} - -\func{wxString}{GetTableName}{\void} - -Returns the name of the current table. - -\membersection{wxRecordSet::GetTables} - -\func{bool}{GetTables}{\void} - -Gets the tables of a database. The data will be presented as a normal result -set, organized as follows: - -\begin{twocollist}\itemsep=0pt -\twocolitem{0 (VARCHAR)}{TABLE\_QUALIFIER} -\twocolitem{1 (VARCHAR)}{TABLE\_OWNER} -\twocolitem{2 (VARCHAR)}{TABLE\_NAME} -\twocolitem{3 (VARCHAR)}{TABLE\_TYPE (TABLE, VIEW, SYSTEM TABLE, GLOBAL TEMPORARY, LOCAL TEMPORARY, -ALIAS, SYNONYM, or database-specific type)} -\twocolitem{4 (VARCHAR)}{REMARKS} -\end{twocollist} - -\membersection{wxRecordSet::GetType} - -\func{int}{GetType}{\void} - -Returns the type of the wxRecordSet: wxOPEN\_TYPE\_DYNASET or -wxOPEN\_TYPE\_SNAPSHOT. See the wxRecordSet description for details. - -\membersection{wxRecordSet::GoTo} - -\func{bool}{GoTo}{\param{long}{ n}} - -Moves the cursor to the record with the number n, where the first record -has the number 0. - -\membersection{wxRecordSet::IsBOF} - -\func{bool}{IsBOF}{\void} - -Returns TRUE if the user tried to move the cursor before the first record -in the set. - -\membersection{wxRecordSet::IsFieldDirty} - -\func{bool}{IsFieldDirty}{\param{int}{ field}} - -Returns TRUE if the given field has been changed but not saved yet. - -\func{bool}{IsFieldDirty}{\param{const wxString\& }{name}} - -Same as above, but uses the column name as the identifier. - -\membersection{wxRecordSet::IsFieldNull} - -\func{bool}{IsFieldNull}{\param{int}{ field}} - -Returns TRUE if the given field has no data. - -\func{bool}{IsFieldNull}{\param{const wxString\& }{ name}} - -Same as above, but uses the column name as the identifier. - -\membersection{wxRecordSet::IsColNullable} - -\func{bool}{IsColNullable}{\param{int}{ col}} - -Returns TRUE if the given column may contain no data. - -\func{bool}{IsColNullable}{\param{const wxString\& }{name}} - -Same as above, but uses the column name as the identifier. - -\membersection{wxRecordSet::IsEOF} - -\func{bool}{IsEOF}{\void} - -Returns TRUE if the user tried to move the cursor behind the last record -in the set. - -\membersection{wxRecordSet::IsDeleted} - -\func{bool}{IsDeleted}{\void} - -Not implemented. - -\membersection{wxRecordSet::IsOpen} - -\func{bool}{IsOpen}{\void} - -Returns TRUE if the parent database is open. - -\membersection{wxRecordSet::Move} - -\func{bool}{Move}{\param{long}{ rows}} - -Moves the cursor a given number of rows. Negative values are allowed. - -\membersection{wxRecordSet::MoveFirst} - -\func{bool}{MoveFirst}{\void} - -Moves the cursor to the first record. - -\membersection{wxRecordSet::MoveLast} - -\func{bool}{MoveLast}{\void} - -Moves the cursor to the last record. - -\membersection{wxRecordSet::MoveNext}\label{wxrecordsetmovenext} - -\func{bool}{MoveNext}{\void} - -Moves the cursor to the next record. - -\membersection{wxRecordSet::MovePrev}\label{wxrecordsetmoveprev} - -\func{bool}{MovePrev}{\void} - -Moves the cursor to the previous record. - -\membersection{wxRecordSet::Query} - -\func{bool}{Query}{\param{const wxString\& }{columns}, \param{const wxString\& }{table}, \param{const wxString\& }{filter = NULL}} - -Start a query. An SQL string of the following type will automatically be -generated and executed: ``SELECT columns FROM table WHERE filter". - -\membersection{wxRecordSet::RecordCountFinal} - -\func{bool}{RecordCountFinal}{\void} - -Not implemented. - -\membersection{wxRecordSet::Requery} - -\func{bool}{Requery}{\void} - -Re-executes the last query. Not implemented. - -\membersection{wxRecordSet::SetFieldDirty} - -\func{void}{SetFieldDirty}{\param{int}{ field}, \param{bool}{ dirty = TRUE}} - -Sets the dirty tag of the field field. Not implemented. - -\func{void}{SetFieldDirty}{\param{const wxString\& }{name}, \param{bool}{ dirty = TRUE}} - -Same as above, but uses the column name as the identifier. - -\membersection{wxRecordSet::SetDefaultSQL} - -\func{void}{SetDefaultSQL}{\param{const wxString\& }{s}} - -Not implemented. - -\membersection{wxRecordSet::SetFieldNull} - -\func{void}{SetFieldNull}{\param{void *}{p}, \param{bool }{isNull = TRUE}} - -Not implemented. - -\membersection{wxRecordSet::SetOptions} - -\func{void}{SetOptions}{\param{int}{ opt}} - -Sets the options of the wxRecordSet. Not implemented. - -\membersection{wxRecordSet::SetTableName} - -\func{void}{SetTableName}{\param{const wxString\& }{tablename}} - -Specify the name of the table you want to use. - -\membersection{wxRecordSet::SetType} - -\func{void}{SetType}{\param{int}{ type}} - -Sets the type of the wxRecordSet. See the wxRecordSet class description for details. - -\membersection{wxRecordSet::Update} - -\func{bool}{Update}{\void} - -Writes back the current record. Not implemented. - - diff --git a/docs/latex/wx/rect.tex b/docs/latex/wx/rect.tex deleted file mode 100644 index 28e610f021..0000000000 --- a/docs/latex/wx/rect.tex +++ /dev/null @@ -1,163 +0,0 @@ -\section{\class{wxRect}}\label{wxrect} - -A class for manipulating rectangles. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint}, \helpref{wxSize}{wxsize} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRect::wxRect} - -\func{}{wxRect}{\void} - -Default constructor. - -\func{}{wxRect}{\param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height}} - -Creates a wxRect object from x, y, width and height values. - -\func{}{wxRect}{\param{const wxPoint\&}{ topLeft}, \param{const wxPoint\&}{ bottomRight}} - -Creates a wxRect object from top-left and bottom-right points. - -\func{}{wxRect}{\param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size}} - -Creates a wxRect object from position and size values. - -\membersection{wxRect::x} - -\member{int}{x} - -x member. - -\membersection{wxRect::y} - -\member{int}{y} - -y member. - -\membersection{wxRect::width} - -\member{int}{width} - -Width member. - -\membersection{wxRect::height} - -\member{int}{height} - -Height member. - -\membersection{wxRect::GetBottom}\label{wxrectgetbottom} - -\constfunc{int}{GetBottom}{\void} - -Gets the bottom point of the rectangle. - -\membersection{wxRect::GetHeight}\label{wxrectgetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height member. - -\membersection{wxRect::GetLeft}\label{wxrectgetleft} - -\constfunc{int}{GetLeft}{\void} - -Gets the left point of the rectangle (the same as \helpref{wxRect::GetX}{wxrectgetx}). - -\membersection{wxRect::GetPosition}\label{wxrectgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Gets the position. - -\membersection{wxRect::GetRight}\label{wxrectgetright} - -\constfunc{int}{GetRight}{\void} - -Gets the right point of the rectangle. - -\membersection{wxRect::GetSize}\label{wxrectgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Gets the size. - -\membersection{wxRect::GetTop}\label{wxrectgettop} - -\constfunc{int}{GetTop}{\void} - -Gets the top point of the rectangle (the same as \helpref{wxRect::GetY}{wxrectgety}). - -\membersection{wxRect::GetWidth}\label{wxrectgetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width member. - -\membersection{wxRect::GetX}\label{wxrectgetx} - -\constfunc{int}{GetX}{\void} - -Gets the x member. - -\membersection{wxRect::GetY}\label{wxrectgety} - -\constfunc{int}{GetY}{\void} - -Gets the y member. - -\membersection{wxRect::SetHeight}\label{wxrectsetheight} - -\func{void}{SetHeight}{\param{int}{ height}} - -Sets the height. - -\membersection{wxRect::SetWidth}\label{wxrectsetwidth} - -\func{void}{SetWidth}{\param{int}{ width}} - -Sets the width. - -\membersection{wxRect::SetX}\label{wxrectsetx} - -\func{void}{SetX}{\param{int}{ x}} - -Sets the x position. - -\membersection{wxRect::SetY}\label{wxrectsety} - -\func{void}{SetY}{\param{int}{ y}} - -Sets the y position. - -\membersection{wxRect::operator $=$} - -\func{void}{operator $=$}{\param{const wxRect\& }{rect}} - -Assignment operator. - -\membersection{wxRect::operator $==$} - -\func{bool}{operator $==$}{\param{const wxRect\& }{rect}} - -Equality operator. - -\membersection{wxRect::operator $!=$} - -\func{bool}{operator $!=$}{\param{const wxRect\& }{rect}} - -Inequality operator. - - diff --git a/docs/latex/wx/referenc.tex b/docs/latex/wx/referenc.tex deleted file mode 100644 index 03981d1306..0000000000 --- a/docs/latex/wx/referenc.tex +++ /dev/null @@ -1,82 +0,0 @@ -\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{thesis} -%KB: -\addtolength{\textwidth}{1in} -\addtolength{\oddsidemargin}{-0.5in} -\addtolength{\topmargin}{-0.5in} -\addtolength{\textheight}{1in} -\sloppy -%end of my changes -%\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} -\newcommand{\indexit}[1]{#1\index{#1}} -\newcommand{\pipe}[0]{$\|$\ }% -\input psbox.tex - -% Remove this for processing with dvi2ps instead of dvips -%\special{!/@scaleunit 1 def} - -\parskip=10pt -\parindent=0pt -\title{Reference Manual for wxWindows 2.0: a portable C++ GUI toolkit} -\author{Julian Smart} -\date{November 4th 1998} - -\makeindex -\begin{document} -\maketitle - -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage} -\pagenumbering{roman} -\tableofcontents - - -\chapter*{Copyright notice} -\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -\begin{center} -Copyright (c) 1998 Julian Smart, Markus Holzem, Robert Roebling and other -members of the wxWindows team\\ -Portions (c) 1996 Artificial Intelligence Applications Institute\\ -\end{center} - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose is hereby granted without fee, provided that the -above copyright notice, author statement and this permission notice appear in -all copies of this software and related documentation. - -THE SOFTWARE IS PROVIDED ``AS-IS'' AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, -IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF -MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - -IN NO EVENT SHALL THE ARTIFICIAL INTELLIGENCE APPLICATIONS INSTITUTE OR THE -UNIVERSITY OF EDINBURGH OR ANY MEMBERS OF THE WXWINDOWS TEAM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR -CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF -DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -\chapter{This manual} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -wxWindows is a class library for C++ providing GUI (Graphical User -Interface) and other facilities on more than one platform. This document -gives detailed information about the classes and functions that make up -the wxWindows API (Application Programming Interface). Please refer to the -wxWindows user manual for a more general description of wxWindows. - -\input{classes.tex} -\input{category.tex} -\input{topics.tex} - -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -\printindex - -\end{document} - diff --git a/docs/latex/wx/refs.bib b/docs/latex/wx/refs.bib deleted file mode 100644 index 836814c312..0000000000 --- a/docs/latex/wx/refs.bib +++ /dev/null @@ -1,59 +0,0 @@ -@techreport{robins87, -author = {Robins, Gabriel}, -title = {The {ISI} grapher: a portable tool for displaying graphs pictorially (ISI/RS-87-196)}, -institution = {University of South California}, -year = {1987}, -month = {September} -} -@book{helpbook, -author = {Boggan, Scott and Fakas, David and Welinske, Joe} -, title = {Developing on-line help for {W}indows} -, publisher = {Sams Publishing} -, address = {11711 North College, Carmel, Indiana 46032, USA} -, year = {1993} -} -@book{wong93, -author = {Wong, William} -, title = {Plug and play programming} -, publisher = {M and T Books} -, address = {115 West 18th Street, New York, New York 10011} -, year = {1993} -} -@book{pree94, -author = {Pree, Wolfgang} -, title = {Design patterns for object-oriented software development} -, publisher = {Addison-Wesley} -, address = {Reading, MA} -, year = {1994} -} -@book{gamma95, -author = {Gamma, Erich and Helm, Richard and Johnson, Ralph and Vlissides, John} -, title = {Design patterns: elements of reusable object-oriented software} -, publisher = {Addison-Wesley} -, address = {Reading, MA} -, year = {1994} -} -@book{kopka, -author = {Kopka, Helmut and Daly, Patrick W.} -, title = {A Guide to LaTeX} -, publisher = {Addison-Wesley} -, year = {1993} -} -@manual{smart95a, -author = {Smart, Julian} -, title = {wxCLIPS User Manual} -, publisher = {Artificial Intelligence Applications Institute} -, organization = {University of Edinburgh} -, address = {80 South Bridge, Edinburgh, EH1 1HN} -, year = {1995} -} - -@manual{smart95b, -author = {Smart, Julian} -, title = {Tex2RTF User Manual} -, publisher = {Artificial Intelligence Applications Institute} -, organization = {University of Edinburgh} -, address = {80 South Bridge, Edinburgh, EH1 1HN} -, year = {1995} -} - diff --git a/docs/latex/wx/region.tex b/docs/latex/wx/region.tex deleted file mode 100644 index 6e9af5db8c..0000000000 --- a/docs/latex/wx/region.tex +++ /dev/null @@ -1,297 +0,0 @@ -\section{\class{wxRegion}}\label{wxregion} - -A wxRegion represents a simple or complex region on a device context or window. It uses -reference counting, so copying and assignment operations are fast. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxRegionIterator}{wxregioniterator} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRegion::wxRegion}\label{wxregionconstr} - -\func{}{wxRegion}{\void} - -Default constructor. - -\func{}{wxRegion}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}} - -Constructs a rectangular region with the given position and size. - -\func{}{wxRegion}{\param{const wxPoint\&}{ topLeft}, \param{const wxPoint\&}{ bottomRight}} - -Constructs a rectangular region from the top left point and the bottom right point. - -\func{}{wxRegion}{\param{const wxRect\&}{ rect}} - -Constructs a rectangular region a wxRect object. - -\func{}{wxRegion}{\param{const wxRegion\&}{ region}} - -Constructs a region by copying another region. - -\membersection{wxRegion::\destruct{wxRegion}} - -\func{}{\destruct{wxRegion}}{\void} - -Destructor. - -\membersection{wxRegion::Clear}\label{wxregionclear} - -\func{void}{Clear}{\void} - -Clears the current region. - -\membersection{wxRegion::Contains}\label{wxregioncontains} - -\constfunc{wxRegionContain}{Contains}{\param{long\& }{x}, \param{long\& }{y}} - -Returns a value indicating whether the given point is contained within the region. - -\constfunc{wxRegionContain}{Contains}{\param{const wxPoint\&}{ pt}} - -Returns a value indicating whether the given point is contained within the region. - -\constfunc{wxRegionContain}{Contains}{\param{long\& }{x}, \param{long\& }{y}, \param{long\& }{width}, \param{long\& }{height}} - -Returns a value indicating whether the given rectangle is contained within the region. - -\constfunc{wxRegionContain}{Contains}{\param{const wxRect\& }{rect}} - -Returns a value indicating whether the given rectangle is contained within the region. - -\wxheading{Return value} - -The return value is one of wxOutRegion, wxPartRegion and wxInRegion. - -On Windows, only wxOutRegion and wxInRegion are returned; a value wxInRegion then indicates that -all or some part of the region is contained in this region. - -\membersection{wxRegion::GetBox}\label{wxregiongetbox} - -\constfunc{void}{GetBox}{\param{long\& }{x}, \param{long\& }{y}, \param{long\& }{width}, \param{long\& }{height}} - -Returns the outer bounds of the region. - -\constfunc{wxRect}{GetBox}{\void} - -Returns the outer bounds of the region. - -\membersection{wxRegion::Intersect}\label{wxregionintersect} - -\func{bool}{Intersect}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}} - -Finds the intersection of this region and another, rectangular region, specified using position and size. - -\func{bool}{Intersect}{\param{const wxRect\&}{ rect}} - -Finds the intersection of this region and another, rectangular region. - -\func{bool}{Intersect}{\param{const wxRegion\&}{ region}} - -Finds the intersection of this region and another region. - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\wxheading{Remarks} - -Creates the intersection of the two regions, that is, the parts which are in both regions. The result -is stored in this region. - -\membersection{wxRegion::IsEmpty}\label{wxregionisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns TRUE if the region is empty, FALSE otherwise. - -\membersection{wxRegion::Subtract}\label{wxregionsubstract} - -\func{bool}{Subtract}{\param{const wxRect\&}{ rect}} - -Subtracts a rectangular region from this region. - -\func{bool}{Subtract}{\param{const wxRegion\&}{ region}} - -Subtracts a region from this region. - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\wxheading{Remarks} - -This operation combines the parts of 'this' region that are not part of the second region. -The result is stored in this region. - -\membersection{wxRegion::Union}\label{wxregionunion} - -\func{bool}{Union}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}} - -Finds the union of this region and another, rectangular region, specified using position and size. - -\func{bool}{Union}{\param{const wxRect\&}{ rect}} - -Finds the union of this region and another, rectangular region. - -\func{bool}{Union}{\param{const wxRegion\&}{ region}} - -Finds the union of this region and another region. - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\wxheading{Remarks} - -This operation creates a region that combines all of this region and the second region. -The result is stored in this region. - -\membersection{wxRegion::Xor}\label{wxregionxor} - -\func{bool}{Xor}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}} - -Finds the Xor of this region and another, rectangular region, specified using position and size. - -\func{bool}{Xor}{\param{const wxRect\&}{ rect}} - -Finds the Xor of this region and another, rectangular region. - -\func{bool}{Xor}{\param{const wxRegion\&}{ region}} - -Finds the Xor of this region and another region. - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\wxheading{Remarks} - -This operation creates a region that combines all of this region and the second region, except -for any overlapping areas. The result is stored in this region. - -\membersection{wxRegion::operator $=$}\label{wxregionassign} - -\func{void}{operator $=$}{\param{const wxRegion\&}{ region}} - -Copies {\it region} by reference counting. - -\section{\class{wxRegionIterator}}\label{wxregioniterator} - -This class is used to iterate through the rectangles in a region, -typically when examining the damaged regions of a window within an OnPaint call. - -To use it, construct an iterator object on the stack and loop through the -regions, testing the object and incrementing the iterator at the end of the loop. - -See \helpref{wxWindow::OnPaint}{wxwindowonpaint} for an example of use. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxWindow::OnPaint}{wxwindowonpaint} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRegionIterator::wxRegionIterator} - -\func{}{wxRegionIterator}{\void} - -Default constructor. - -\func{}{wxRegionIterator}{\param{const wxRegion\&}{ region}} - -Creates an iterator object given a region. - -\membersection{wxRegionIterator::GetX} - -\constfunc{long}{GetX}{\void} - -Returns the x value for the current region. - -\membersection{wxRegionIterator::GetY} - -\constfunc{long}{GetY}{\void} - -Returns the y value for the current region. - -\membersection{wxRegionIterator::GetW} - -\constfunc{long}{GetW}{\void} - -An alias for GetWidth. - -\membersection{wxRegionIterator::GetWidth} - -\constfunc{long}{GetWidth}{\void} - -Returns the width value for the current region. - -\membersection{wxRegionIterator::GetH} - -\constfunc{long}{GetH}{\void} - -An alias for GetHeight. - -\membersection{wxRegionIterator::GetHeight} - -\constfunc{long}{GetWidth}{\void} - -Returns the width value for the current region. - -\membersection{wxRegionIterator::GetRect} - -\constfunc{wxRect}{GetRect}{\void} - -Returns the current rectangle. - -\membersection{wxRegionIterator::HaveRects} - -\constfunc{bool}{HaveRects}{\void} - -Returns TRUE if there are still some rectangles; otherwise returns FALSE. - -\membersection{wxRegionIterator::Reset} - -\func{void}{Reset}{\void} - -Resets the iterator to the beginning of the rectangles. - -\func{void}{Reset}{\param{const wxRegion\&}{ region}} - -Resets the iterator to the given region. - -\membersection{wxRegionIterator::operator $++$} - -\func{void}{operator $++$}{\void} - -Increment operator. Increments the iterator to the next region. - -\pythonnote{A wxPython alias for this operator is called \tt{Next}.} - -\membersection{wxRegionIterator::operator bool} - -\constfunc{}{operator bool}{\void} - -Returns TRUE if there are still some rectangles; otherwise returns FALSE. - -You can use this to test the iterator object as if it were of type bool. - diff --git a/docs/latex/wx/sashevt.tex b/docs/latex/wx/sashevt.tex deleted file mode 100644 index 35b7d8559e..0000000000 --- a/docs/latex/wx/sashevt.tex +++ /dev/null @@ -1,89 +0,0 @@ -\section{\class{wxSashEvent}}\label{wxsashevent} - -A sash event is sent when the sash of a \helpref{wxSashWindow}{wxsashwindow} has been -dragged by the user. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process an activate event, use these event handler macros to direct input to a member -function that takes a wxSashEvent argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event, -when the user has finished dragging a sash.} -\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event, -when the user has finished dragging a sash. The event handler is called when windows with ids in the -given range have their sashes dragged.} -\end{twocollist} - -\wxheading{Data structures} - -{\small -\begin{verbatim} -enum wxSashDragStatus -{ - wxSASH_STATUS_OK, - wxSASH_STATUS_OUT_OF_RANGE -}; -\end{verbatim} -} - -\wxheading{Remarks} - -When a sash belonging to a sash window is dragged by the user, and then released, -this event is sent to the window, where it may be processed by an event table -entry in a derived class, a plug-in event handler or an ancestor class. - -Note that the wxSashWindow doesn't change the window's size itself. It relies on the application's -event handler to do that. This is because the application may have to handle other consequences -of the resize, or it may wish to veto it altogether. The event handler should -look at the drag rectangle: see \helpref{wxSashEvent::GetDragRect}{wxsasheventgetdragrect} to see -what the new size of the window would be if the resize were to be applied. It should -also call \helpref{wxSashEvent::GetDragStatus}{wxsasheventgetdragstatus} to see whether the -drag was OK or out of the current allowed range. - -\wxheading{See also} - -\helpref{wxSashWindow}{wxsashwindow},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSashEvent::wxSashEvent} - -\func{}{wxSashEvent}{\param{int }{id = 0}, \param{wxSashEdgePosition}{ edge = wxSASH\_NONE}} - -Constructor. - -\membersection{wxSashEvent::GetEdge}\label{wxsasheventgetedge} - -\constfunc{wxSashEdgePosition}{GetEdge}{\void} - -Returns the dragged edge. The return value is one of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT. - -\membersection{wxSashEvent::GetDragRect}\label{wxsasheventgetdragrect} - -\constfunc{wxRect}{GetDragRect}{\void} - -Returns the rectangle representing the new size the window would be if the resize was applied. It is -up to the application to set the window size if required. - -\membersection{wxSashEvent::GetDragStatus}\label{wxsasheventgetdragstatus} - -\constfunc{wxSashDragStatus}{GetDragStatus}{\void} - -Returns the status of the sash: one of wxSASH\_STATUS\_OK, wxSASH\_STATUS\_OUT\_OF\_RANGE. -If the drag caused the notional bounding box of the window to flip over, for example, the drag will be out of rage. - - diff --git a/docs/latex/wx/sashlayw.tex b/docs/latex/wx/sashlayw.tex deleted file mode 100644 index ae906e2207..0000000000 --- a/docs/latex/wx/sashlayw.tex +++ /dev/null @@ -1,132 +0,0 @@ -\section{\class{wxSashLayoutWindow}}\label{wxsashlayoutwindow} - -wxSashLayoutWindow responds to OnCalculateLayout events generated -by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. It allows the -application to use simple accessors to specify how the window should be -laid out, rather than having to respond to events. The fact that -the class derives from wxSashWindow allows sashes to be used if required, -to allow the windows to be user-resizable. - -The documentation for \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} explains -the purpose of this class in more detail. - -\wxheading{Derived from} - -\helpref{wxSashWindow}{wxsashwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -See \helpref{wxSashWindow}{wxsashwindow}. - -\wxheading{Event handling} - -This class handles the EVT\_QUERY\_LAYOUT\_INFO and EVT\_CALCULATE\_LAYOUT events -for you. However, if you use sashes, see \helpref{wxSashWindow}{wxsashwindow} for -relevant event information. - -See also \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} for information -about the layout events. - -\wxheading{See also} - -\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}, \helpref{wxSashWindow}{wxsashwindow}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSashLayoutWindow::wxSashLayoutWindow} - -\func{}{wxSashLayoutWindow}{\void} - -Default constructor. - -\func{}{wxSashLayoutWindow}{\param{wxSashLayoutWindow*}{ parent}, \param{wxSashLayoutWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D}, - \param{const wxString\& }{name = "layoutWindow"}} - -Constructs a sash layout window, which can be a child of a frame, dialog or any other non-control window. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashLayoutWindows -should generate a default position for the window. If using the wxSashLayoutWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows -should generate a default size for the window.} - -\docparam{style}{Window style. For window styles, please see \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}.} - -\docparam{name}{Window name.} - -\membersection{wxSashLayoutWindow::\destruct{wxSashLayoutWindow}} - -\func{}{\destruct{wxSashLayoutWindow}}{\void} - -Destructor. - -\membersection{wxSashLayoutWindow::GetAlignment}\label{wxsashlayoutwindowgetalignment} - -\constfunc{wxLayoutAlignment}{GetAlignment}{\void} - -Returns the alignment of the window: one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxSashLayoutWindow::GetOrientation}\label{wxsashlayoutwindowgetorientation} - -\constfunc{wxLayoutOrientation}{GetOrientation}{\void} - -Returns the orientation of the window: one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL. - -\membersection{wxSashLayoutWindow::OnCalculateLayout}\label{wxsashlayoutwindowoncalculatelayout} - -\func{void}{OnCalculateLayout}{\param{wxCalculateLayoutEvent\&}{ event}} - -The default handler for the event that is generated by wxLayoutAlgorithm. The implementation -of this function calls wxCalculateLayoutEvent::SetRect to shrink the provided size according to -how much space this window takes up. For further details, -see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}. - -\membersection{wxSashLayoutWindow::OnQueryLayoutInfo}\label{wxsashlayoutwindowonquerylayoutinfo} - -\func{void}{OnQueryLayoutInfo}{\param{wxQueryLayoutInfoEvent\&}{ event}} - -The default handler for the event that is generated by OnCalculateLayout to get -size, alignment and orientation information for the window. The implementation -of this function uses member variables as set by accessors called by the application. -For further details, see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}. - -\membersection{wxSashLayoutWindow::SetAlignment}\label{wxsashlayoutwindowsetalignment} - -\func{void}{SetAlignment}{\param{wxLayoutAlignment}{ alignment}} - -Sets the alignment of the window (which edge of the available parent client area the window -is attached to). {\it alignment} is one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxSashLayoutWindow::SetDefaultSize}\label{wxsashlayoutwindowsetdefaultsize} - -\func{void}{SetDefaultSize}{\param{const wxSize\& }{size}} - -Sets the default dimensions of the window. The dimension other than the orientation will be fixed to this -value, and the orientation dimension will be ignored and the window stretched to fit the available space. - -\membersection{wxSashLayoutWindow::SetOrientation}\label{wxsashlayoutwindowsetorientation} - -\func{void}{SetOrientation}{\param{wxLayoutOrientation}{ orientation}} - -Sets the orientation of the window (the direction the window will stretch in, to fill the available -parent client area). {\it orientation} is one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL. - - - diff --git a/docs/latex/wx/sashwin.tex b/docs/latex/wx/sashwin.tex deleted file mode 100644 index 219d8e1944..0000000000 --- a/docs/latex/wx/sashwin.tex +++ /dev/null @@ -1,204 +0,0 @@ -\section{\class{wxSashWindow}}\label{wxsashwindow} - -wxSashWindow allows any of its edges to have a sash which can be dragged -to resize the window. The actual content window will be created by the application -as a child of wxSashWindow. The window (or an ancestor) will be notified of a drag -via a \helpref{wxSashEvent}{wxsashevent} notification. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -The following styles apply in addition to the normal wxWindow styles. - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSW\_3D}}{Draws the sashes in 3D.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event, -when the user has finished dragging a sash.} -\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event, -when the user has finished dragging a sash. The event handler is called when windows with ids in the -given range have their sashes dragged.} -\end{twocollist} - -\wxheading{Data types} - -{\small -\begin{verbatim} -enum wxSashEdgePosition { - wxSASH_TOP = 0, - wxSASH_RIGHT, - wxSASH_BOTTOM, - wxSASH_LEFT, - wxSASH_NONE = 100 -}; -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSashWindow::wxSashWindow} - -\func{}{wxSashWindow}{\void} - -Default constructor. - -\func{}{wxSashWindow}{\param{wxSashWindow*}{ parent}, \param{wxSashWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D}, - \param{const wxString\& }{name = "sashWindow"}} - -Constructs a sash window, which can be a child of a frame, dialog or any other non-control window. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashWindows -should generate a default position for the window. If using the wxSashWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashWindows -should generate a default size for the window.} - -\docparam{style}{Window style. For window styles, please see \helpref{wxSashWindow}{wxsashwindow}.} - -\docparam{name}{Window name.} - -\membersection{wxSashWindow::\destruct{wxSashWindow}} - -\func{}{\destruct{wxSashWindow}}{\void} - -Destructor. - -\membersection{wxSashWindow::GetSashVisible}\label{wxsashwindowgetsashvisible} - -\constfunc{bool}{GetSashVisible}{\param{wxSashEdgePosition }{edge}} - -Returns TRUE if a sash is visible on the given edge, FALSE otherwise. - -\wxheading{Parameters} - -\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\wxheading{See also} - -\helpref{wxSashWindow::SetSashVisible}{wxsashwindowsetsashvisible} - -\membersection{wxSashWindow::GetMaximumSizeX}\label{wxsashwindowgetmaximumsizex} - -\constfunc{int}{GetMaximumSizeX}{\void} - -Gets the maximum window size in the x direction. - -\membersection{wxSashWindow::GetMaximumSizeY}\label{wxsashwindowgetmaximumsizey} - -\constfunc{int}{GetMaximumSizeY}{\void} - -Gets the maximum window size in the y direction. - -\membersection{wxSashWindow::GetMinimumSizeX}\label{wxsashwindowgetminimumsizex} - -\func{int}{GetMinimumSizeX}{\void} - -Gets the minimum window size in the x direction. - -\membersection{wxSashWindow::GetMinimumSizeY}\label{wxsashwindowgetminimumsizey} - -\constfunc{int}{GetMinimumSizeY}{\param{int}{ min}} - -Gets the minimum window size in the y direction. - -\membersection{wxSashWindow::HasBorder}\label{wxsashwindowhasborder} - -\constfunc{bool}{HasBorder}{\param{wxSashEdgePosition }{edge}} - -Returns TRUE if the sash has a border, FALSE otherwise. - -\wxheading{Parameters} - -\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\wxheading{See also} - -\helpref{wxSashWindow::SetSashBorder}{wxsashwindowsetsashborder} - -\membersection{wxSashWindow::SetMaximumSizeX}\label{wxsashwindowsetmaximumsizex} - -\func{void}{SetMaximumSizeX}{\param{int}{ min}} - -Sets the maximum window size in the x direction. - -\membersection{wxSashWindow::SetMaximumSizeY}\label{wxsashwindowsetmaximumsizey} - -\func{void}{SetMaximumSizeY}{\param{int}{ min}} - -Sets the maximum window size in the y direction. - -\membersection{wxSashWindow::SetMinimumSizeX}\label{wxsashwindowsetminimumsizex} - -\func{void}{SetMinimumSizeX}{\param{int}{ min}} - -Sets the minimum window size in the x direction. - -\membersection{wxSashWindow::SetMinimumSizeY}\label{wxsashwindowsetminimumsizey} - -\func{void}{SetMinimumSizeY}{\param{int}{ min}} - -Sets the minimum window size in the y direction. - -\membersection{wxSashWindow::SetSashVisible}\label{wxsashwindowsetsashvisible} - -\func{void}{SetSashVisible}{\param{wxSashEdgePosition }{edge}, \param{bool}{ visible}} - -Call this function to make a sash visible or invisible on a particular edge. - -\wxheading{Parameters} - -\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\docparam{visible}{TRUE to make the sash visible, FALSE to make it invisible.} - -\wxheading{See also} - -\helpref{wxSashWindow::GetSashVisible}{wxsashwindowgetsashvisible} - -\membersection{wxSashWindow::SetSashBorder}\label{wxsashwindowsetsashborder} - -\func{void}{SetSashBorder}{\param{wxSashEdgePosition }{edge}, \param{bool}{ hasBorder}} - -Call this function to give the sash a border, or remove the border. - -\wxheading{Parameters} - -\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\docparam{hasBorder}{TRUE to give the sash a border visible, FALSE to remove it.} - -\wxheading{See also} - -\helpref{wxSashWindow::HashBorder}{wxsashwindowhasborder} - diff --git a/docs/latex/wx/sbsizer.tex b/docs/latex/wx/sbsizer.tex deleted file mode 100644 index 74fe3a5861..0000000000 --- a/docs/latex/wx/sbsizer.tex +++ /dev/null @@ -1,41 +0,0 @@ -% -% automatically generated by HelpGen from -% include\wx\sizer.h at 13/Aug/99 22:27:59 -% - - -\section{\class{wxStaticBoxSizer}}\label{wxstaticboxsizer} - - - -wxStaticBoxSizer - - -\wxheading{Derived from} - -\helpref{wxBoxSizer}{wxboxsizer} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStaticBoxSizer::wxStaticBoxSizer}\label{wxstaticboxsizerwxstaticboxsizer} - -\func{}{wxStaticBoxSizer}{\param{wxStaticBox* }{box}, \param{int }{orient}} - - -\membersection{wxStaticBoxSizer::RecalcSizes}\label{wxstaticboxsizerrecalcsizes} - -\func{void}{RecalcSizes}{\void} - - -\membersection{wxStaticBoxSizer::CalcMin}\label{wxstaticboxsizercalcmin} - -\func{wxSize}{CalcMin}{\void} - - -\membersection{wxStaticBoxSizer::GetStaticBox}\label{wxstaticboxsizergetstaticbox} - -\func{wxStaticBox*}{GetStaticBox}{\void} - diff --git a/docs/latex/wx/sckaddr.tex b/docs/latex/wx/sckaddr.tex deleted file mode 100644 index f356aecb76..0000000000 --- a/docs/latex/wx/sckaddr.tex +++ /dev/null @@ -1,80 +0,0 @@ -% ---------------------------------------------------------------------------- -% CLASS: wxSockAddress -% ---------------------------------------------------------------------------- -\section{\class{wxSockAddress}}\label{wxsockaddress} - -You are unlikely to need to use this class: only wxSocketBase uses it. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase} -%\helpref{wxIPV4address}{wxipv4address}\\ -%\helpref{wxIPV6address}{wxipv6address}\\ -%\helpref{wxunixaddress}{wxunixaddress} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - -% -% ctor/dtor -% - -\membersection{wxSockAddress::wxSockAddress} - -\func{}{wxSockAddress}{\void} - -Default constructor. - -\membersection{wxSockAddress::\destruct{wxSockAddress}} - -\func{}{\destruct{wxSockAddress}}{\void} - -Default destructor. - -% -% Clear -% -\membersection{wxSockAddress::Clear} -\func{void}{Clear}{\void} - -Delete all informations about the address. - -% -% Build -% -\membersection{wxSockAddress::Build} - -\func{void}{Build}{\param{struct sockaddr *\&}{ addr}, \param{size\_t\&}{ len}} - -Build a coded socket address. - -% -% Disassemble -% -\membersection{wxSockAddress::Disassemble} - -\func{void}{Disassemble}{\param{struct sockaddr *}{addr}, \param{size\_t}{ len}} - -Decode a socket address. {\bf Actually, you don't have to use this -function: only wxSocketBase use it.} - -% -% SockAddrLen -% -\membersection{wxSockAddress::SockAddrLen} - -\func{int}{SockAddrLen}{\void}; - -Returns the length of the socket address. - diff --git a/docs/latex/wx/screendc.tex b/docs/latex/wx/screendc.tex deleted file mode 100644 index ab31f205bb..0000000000 --- a/docs/latex/wx/screendc.tex +++ /dev/null @@ -1,59 +0,0 @@ -\section{\class{wxScreenDC}}\label{wxscreendc} - -A wxScreenDC can be used to paint on the screen. -This should normally be constructed as a temporary stack object; don't store -a wxScreenDC object. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxClientDC}{wxclientdc}, \helpref{wxWindowDC}{wxwindowdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScreenDC::wxScreenDC} - -\func{}{wxScreenDC}{\void} - -Constructor. - -\membersection{wxScreenDC::StartDrawingOnTop}\label{wxscreendcstartdrawingontop} - -\func{bool}{StartDrawingOnTop}{\param{wxWindow*}{ window}} - -\func{bool}{StartDrawingOnTop}{\param{wxRect*}{ rect = NULL}} - -Use this in conjunction with \helpref{EndDrawingOnTop}{wxscreendcenddrawingontop} to -ensure that drawing to the screen occurs on top of existing windows. Without this, -some window systems (such as X) only allow drawing to take place underneath -other windows. - -By using the first form of this function, an application is specifying that -the area that will be drawn on coincides with the given window. - -By using the second form, an application can specify an area of the screen -which is to be drawn on. If NULL is passed, the whole screen is available. - -It is recommended that an area of the screen is specified because with large regions, -flickering effects are noticeable when destroying the temporary transparent window used -to implement this feature. - -You might use this pair of functions when implementing a drag feature, for example -as in the \helpref{wxSplitterWindow}{wxsplitterwindow} implementation. - -\membersection{wxScreenDC::EndDrawingOnTop}\label{wxscreendcenddrawingontop} - -\func{bool}{EndDrawingOnTop}{\void} - -Use this in conjunction with \helpref{StartDrawingOnTop}{wxscreendcstartdrawingontop}. - -This function destroys the temporary window created to implement on-top drawing (X only). - diff --git a/docs/latex/wx/scrlwevt.tex b/docs/latex/wx/scrlwevt.tex deleted file mode 100644 index fbcbb98967..0000000000 --- a/docs/latex/wx/scrlwevt.tex +++ /dev/null @@ -1,67 +0,0 @@ -\section{\class{wxScrollWinEvent}}\label{wxscrollwinevent} - -A scroll event holds information about events sent from scrolling windows. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a scroll event, use these event handler macros to direct input to member -functions that take a wxScrollEvent argument. You can use EVT\_COMMAND\_SCROLLWIN... macros -with window IDs for when intercepting scroll events from controls, or EVT\_SCROLLWIN... macros -without window IDs for intercepting scroll events from the receiving window. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SCROLLWIN(func)}}{Process all scroll events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_TOP(func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-top events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_BOTTOM(func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-bottom events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_LINEUP(func)}}{Process wxEVT\_SCROLL\_LINEUP line up events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_LINEDOWN(func)}}{Process wxEVT\_SCROLL\_LINEDOWN line down events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_PAGEUP(func)}}{Process wxEVT\_SCROLL\_PAGEUP page up events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_PAGEDOWN(func)}}{Process wxEVT\_SCROLL\_PAGEDOWN page down events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_THUMBTRACK(func)}}{Process wxEVT\_SCROLL\_THUMBTRACK thumbtrack events (frequent events -sent as the user drags the thumtrack).} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN(id, func)}}{Process all scroll events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN\_TOP(id, func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-top events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN\_BOTTOM(id, func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-bottom events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN\_LINEUP(id, func)}}{Process wxEVT\_SCROLL\_LINEUP line up events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN\_LINEDOWN(id, func)}}{Process wxEVT\_SCROLL\_LINEDOWN line down events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN\_PAGEUP(id, func)}}{Process wxEVT\_SCROLL\_PAGEUP page up events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN\_PAGEDOWN(id, func)}}{Process wxEVT\_SCROLL\_PAGEDOWN page down events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLLWIN\_THUMBTRACK(id, func)}}{Process wxEVT\_SCROLL\_THUMBTRACK thumbtrack events (frequent events -sent as the user drags the thumtrack).} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnScroll}{wxwindowonscroll}, \helpref{wxScrollEvent}{wxscrollevent}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScrollWinEvent::wxScrollWinEvent} - -\func{}{wxScrollWinEvent}{\param{WXTYPE }{commandType = 0}, \param{int }{id = 0}, \param{int}{ pos = 0}, -\rtfsp\param{int}{ orientation = 0}} - -Constructor. - -\membersection{wxScrollWinEvent::GetOrientation}\label{wxscrollwineventgetorientation} - -\constfunc{int}{GetOrientation}{\void} - -Returns wxHORIZONTAL or wxVERTICAL, depending on the orientation of the scrollbar. - -\membersection{wxScrollWinEvent::GetPosition}\label{wxscrollwineventgetposition} - -\constfunc{int}{GetPosition}{\void} - -Returns the position of the scrollbar. - diff --git a/docs/latex/wx/scrolbar.tex b/docs/latex/wx/scrolbar.tex deleted file mode 100644 index 31891f3a1f..0000000000 --- a/docs/latex/wx/scrolbar.tex +++ /dev/null @@ -1,299 +0,0 @@ -\section{\class{wxScrollBar}}\label{wxscrollbar} - -A wxScrollBar is a control that represents a horizontal or -vertical scrollbar. It is distinct from the two scrollbars that some windows -provide automatically, but the two types of scrollbar share the way -events are received. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Remarks} - -A scrollbar has the following main attributes: {\it range}, {\it thumb size}, {\it page size}, and {\it position}. - -The range is the total number of units associated with the view represented by the scrollbar. -For a table with 15 columns, the range would be 15. - -The thumb size is the number of units that are currently visible. For the table example, the window -might be sized so that only 5 columns are currently visible, in which case the application would -set the thumb size to 5. When the thumb size becomes the same as or greater than the range, -the scrollbar will be automatically hidden on most platforms. - -The page size is the number of units that the scrollbar should scroll by, when `paging' through -the data. This value is normally the same as the thumb size length, because -it is natural to assume that the visible window size defines a page. - -The scrollbar position is the current thumb position. - -Most applications will find it convenient to provide a function called {\bf AdjustScrollbars} which can -be called initially, from an {\bf OnSize} event handler, and whenever the application data -changes in size. It will adjust the view, object and page size according -to the size of the window and the size of the data. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSB\_HORIZONTAL}}{Specifies a horizontal scrollbar.} -\twocolitem{\windowstyle{wxSB\_VERTICAL}}{Specifies a vertical scrollbar.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -To process input from a scrollbar, use one of these event handler macros to direct input to member -functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.} -\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.} -\twocolitem{{\bf EVT\_COMMAND\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.} -\twocolitem{{\bf EVT\_COMMAND\_LINEUP(id, func)}}{Catch a line up command.} -\twocolitem{{\bf EVT\_COMMAND\_LINEDOWN(id, func)}}{Catch a line down command.} -\twocolitem{{\bf EVT\_COMMAND\_PAGEUP(id, func)}}{Catch a page up command.} -\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.} -\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Scrolling overview}{scrollingoverview},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxScrolledWindow}{wxscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScrollBar::wxScrollBar}\label{wxscrollbarconstr} - -\func{}{wxScrollBar}{\void} - -Default constructor. - -\func{}{wxScrollBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSB\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``scrollBar"}} - -Constructor, creating and showing a scrollbar. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxScrollBar}{wxscrollbar}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxScrollBar::Create}{wxscrollbarcreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxScrollBar::\destruct{wxScrollBar}} - -\func{void}{\destruct{wxScrollBar}}{\void} - -Destructor, destroying the scrollbar. - -\membersection{wxScrollBar::Create}\label{wxscrollbarcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSB\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``scrollBar"}} - -Scrollbar creation function called by the scrollbar constructor. -See \helpref{wxScrollBar::wxScrollBar}{wxscrollbarconstr} for details. - -\membersection{wxScrollBar::GetRange}\label{wxscrollbargetrange} - -\constfunc{int}{GetRange}{\void} - -Returns the length of the scrollbar. - -\wxheading{See also} - -\helpref{wxScrollBar::SetScrollbar}{wxscrollbarsetscrollbar} - -\membersection{wxScrollBar::GetPageSize}\label{wxscrollbargetpagesize} - -\constfunc{int}{GetPageSize}{\void} - -Returns the page size of the scrollbar. This is the number of scroll units -that will be scrolled when the user pages up or down. Often it is the -same as the thumb size. - -\wxheading{See also} - -\helpref{wxScrollBar::SetScrollbar}{wxscrollbarsetscrollbar} - -\membersection{wxScrollBar::GetThumbPosition}\label{wxscrollbargetthumbposition} - -\constfunc{int}{GetThumbPosition}{\void} - -Returns the current position of the scrollbar thumb. - -\wxheading{See also} - -\helpref{wxScrollBar::SetThumbPosition}{wxscrollbarsetthumbposition} - -\membersection{wxScrollBar::GetThumbLength}\label{wxscrollbargetthumblength} - -\constfunc{int}{GetThumbLength}{\void} - -Returns the thumb or `view' size. - -\wxheading{See also} - -\helpref{wxScrollBar::SetScrollbar}{wxscrollbarsetscrollbar} - -\begin{comment} -\membersection{wxScrollBar::SetObjectLength}\label{wxscrollbarsetobjectlength} - -\func{void}{SetObjectLength}{\param{int}{ objectLength}} - -Sets the object length for the scrollbar. This is the total object size (virtual size). You must -call \helpref{SetViewLength}{wxscrollbarsetviewlength} {\it before} calling SetObjectLength. - -\wxheading{Parameters} - -\docparam{objectLength}{The object length of the scrollbar.} - -\wxheading{Remarks} - -Example: you are implementing scrollbars on a text window, where text lines have a maximum width -of 100 characters. Your text window has a current width of 60 characters. So the view length is 60, -and the object length is 100. The scrollbar will then enable you to scroll to see the other 40 characters. - -You will need to call {\bf SetViewLength} and {\bf SetObjectLength} whenever there -is a change in the size of the window (the view size) or the size of the -contents (the object length). - -\wxheading{See also} - -\helpref{wxScrollBar::GetObjectLength}{wxscrollbargetobjectlength} - -\membersection{wxScrollBar::SetPageSize}\label{wxscrollbarsetpagesize} - -\func{void}{SetPageSize}{\param{int}{ pageSize}} - -Sets the page size for the scrollbar. This is the number of scroll units which are scrolled when the -user pages down (clicks on the scrollbar outside the thumbtrack area). - -\wxheading{Parameters} - -\docparam{pageSize}{The page size in scroll units.} - -\wxheading{Remarks} - -At present, this needs to be called {\it before} other set functions. - -\wxheading{See also} - -\helpref{wxScrollBar::GetPageSize}{wxscrollbargetpagesize} -\end{comment} - -\membersection{wxScrollBar::SetThumbPosition}\label{wxscrollbarsetthumbposition} - -\func{void}{SetThumbPosition}{\param{int}{ viewStart}} - -Sets the position of the scrollbar. - -\wxheading{Parameters} - -\docparam{viewStart}{The position of the scrollbar thumb.} - -\wxheading{See also} - -\helpref{wxScrollBar::GetThumbPosition}{wxscrollbargetthumbposition} - -\membersection{wxScrollBar::SetScrollbar}\label{wxscrollbarsetscrollbar} - -\func{virtual void}{SetScrollbar}{\param{int }{position},\rtfsp -\param{int }{thumbSize}, \param{int }{range},\rtfsp -\param{int }{pageSize},\rtfsp -\param{const bool }{refresh = TRUE}} - -Sets the scrollbar properties. - -\wxheading{Parameters} - -\docparam{position}{The position of the scrollbar in scroll units.} - -\docparam{thumbSize}{The size of the thumb, or visible portion of the scrollbar, in scroll units.} - -\docparam{range}{The maximum position of the scrollbar.} - -\docparam{pageSize}{The size of the page size in scroll units. This is the number of units -the scrollbar will scroll when it is paged up or down. Often it is the same as -the thumb size.} - -\docparam{refresh}{TRUE to redraw the scrollbar, FALSE otherwise.} - -\wxheading{Remarks} - -Let's say you wish to display 50 lines of text, using the same font. -The window is sized so that you can only see 16 lines at a time. - -You would use: - -{\small% -\begin{verbatim} - scrollbar->SetScrollbar(0, 16, 50, 15); -\end{verbatim} -} - -The page size is 1 less than the thumb size so that the last line of the previous -page will be visible on the next page, to help orient the user. - -Note that with the window at this size, the thumb position can never go -above 50 minus 16, or 34. - -You can determine how many lines are currently visible by dividing the current view -size by the character height in pixels. - -When defining your own scrollbar behaviour, you will always need to recalculate -the scrollbar settings when the window size changes. You could therefore put your -scrollbar calculations and SetScrollbar -call into a function named AdjustScrollbars, which can be called initially and also -from a \helpref{wxWindow::OnSize}{wxwindowonsize} event handler function. - -\wxheading{See also} - -\helpref{Scrolling overview}{scrollingoverview},\rtfsp -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} - -\begin{comment} -\membersection{wxScrollBar::SetViewLength}\label{wxscrollbarsetviewlength} - -\func{void}{SetViewLength}{\param{int}{ viewLength}} - -Sets the view length for the scrollbar. - -\wxheading{Parameters} - -\docparam{viewLength}{View length.} - -\wxheading{See also} - -\helpref{wxScrollBar::GetViewLength}{wxscrollbargetviewlength} -\end{comment} - diff --git a/docs/latex/wx/scrolevt.tex b/docs/latex/wx/scrolevt.tex deleted file mode 100644 index 3b5f782119..0000000000 --- a/docs/latex/wx/scrolevt.tex +++ /dev/null @@ -1,78 +0,0 @@ -\section{\class{wxScrollEvent}}\label{wxscrollevent} - -A scroll event holds information about events sent from stand-alone scrollbars, -spin-buttons and sliders - starting from wxWindows 2.1, scrolled windows send the -\helpref{wxScrollWinEvent}{wxscrollwinevent} which does not derive from -wxCommandEvent, but from wxEvent directly. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a scroll event, use these event handler macros to direct input to member -functions that take a wxScrollEvent argument. You can use EVT\_COMMAND\_SCROLL... macros -with window IDs for when intercepting scroll events from controls, or EVT\_SCROLL... macros -without window IDs for intercepting scroll events from the receiving window. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SCROLL(func)}}{Process all scroll events.} -\twocolitem{{\bf EVT\_SCROLL\_TOP(func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-top events.} -\twocolitem{{\bf EVT\_SCROLL\_BOTTOM(func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-bottom events.} -\twocolitem{{\bf EVT\_SCROLL\_LINEUP(func)}}{Process wxEVT\_SCROLL\_LINEUP line up events.} -\twocolitem{{\bf EVT\_SCROLL\_LINEDOWN(func)}}{Process wxEVT\_SCROLL\_LINEDOWN line down events.} -\twocolitem{{\bf EVT\_SCROLL\_PAGEUP(func)}}{Process wxEVT\_SCROLL\_PAGEUP page up events.} -\twocolitem{{\bf EVT\_SCROLL\_PAGEDOWN(func)}}{Process wxEVT\_SCROLL\_PAGEDOWN page down events.} -\twocolitem{{\bf EVT\_SCROLL\_THUMBTRACK(func)}}{Process wxEVT\_SCROLL\_THUMBTRACK thumbtrack events (frequent events -sent as the user drags the thumtrack).} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Process all scroll events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_TOP(id, func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-top events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_BOTTOM(id, func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-bottom events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEUP(id, func)}}{Process wxEVT\_SCROLL\_LINEUP line up events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEDOWN(id, func)}}{Process wxEVT\_SCROLL\_LINEDOWN line down events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEUP(id, func)}}{Process wxEVT\_SCROLL\_PAGEUP page up events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEDOWN(id, func)}}{Process wxEVT\_SCROLL\_PAGEDOWN page down events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_THUMBTRACK(id, func)}}{Process wxEVT\_SCROLL\_THUMBTRACK thumbtrack events (frequent events -sent as the user drags the thumtrack).} -\end{twocollist}% - -\wxheading{Remarks} - -Note that unless specifying a scroll control identifier, you will need to test for scrollbar -orientation with \helpref{wxScrollEvent::GetOrientation}{wxscrolleventgetorientation}, since -horizontal and vertical scroll events are processed using the same event handler. - -\wxheading{See also} - -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxSlider}{wxslider}, \helpref{wxSpinButton}{wxspinbutton}, \\ -\helpref{wxScrollWinEvent}{wxscrollwinevent}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScrollEvent::wxScrollEvent} - -\func{}{wxScrollEvent}{\param{WXTYPE }{commandType = 0}, \param{int }{id = 0}, \param{int}{ pos = 0}, -\rtfsp\param{int}{ orientation = 0}} - -Constructor. - -\membersection{wxScrollEvent::GetOrientation}\label{wxscrolleventgetorientation} - -\constfunc{int}{GetOrientation}{\void} - -Returns wxHORIZONTAL or wxVERTICAL, depending on the orientation of the scrollbar. - -\membersection{wxScrollEvent::GetPosition}\label{wxscrolleventgetposition} - -\constfunc{int}{GetPosition}{\void} - -Returns the position of the scrollbar. - diff --git a/docs/latex/wx/scrolwin.tex b/docs/latex/wx/scrolwin.tex deleted file mode 100644 index bdc315b480..0000000000 --- a/docs/latex/wx/scrolwin.tex +++ /dev/null @@ -1,342 +0,0 @@ -\section{\class{wxScrolledWindow}}\label{wxscrolledwindow} - -The wxScrolledWindow class manages scrolling for its client area, transforming -the coordinates according to the scrollbar positions, and setting the -scroll positions, thumb sizes and ranges according to the area in view. - -As with all windows, an application can draw onto a wxScrolledWindow using a \helpref{device context}{dcoverview}. - -You have the option of handling the OnPaint handler -or overriding the \helpref{OnDraw}{wxscrolledwindowondraw} function, which is passed -a pre-scrolled device context (prepared by \helpref{PrepareDC}{wxscrolledwindowpreparedc}). - -If you don't wish to calculate your own scrolling, you must call PrepareDC when not drawing from -within OnDraw, to set the device origin for the device context according to the current -scroll position. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRETAINED}}{Uses a backing pixmap to speed refreshes. Motif only.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -Use wxScrolledWindow for applications where the user scrolls by a fixed amount, and -where a `page' can be interpreted to be the current visible portion of the window. For -more sophisticated applications, use the wxScrolledWindow implementation as a guide -to build your own scroll behaviour. - -\wxheading{See also} - -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScrolledWindow::wxScrolledWindow}\label{wxscrolledwindowconstr} - -\func{}{wxScrolledWindow}{\void} - -Default constructor. - -\func{}{wxScrolledWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id = -1},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}} - -Constructor. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If a position of (-1, -1) is specified then a default position -is chosen.} - -\docparam{size}{Window size. If a size of (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxScrolledWindow}{wxscrolledwindow}.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -The window is initially created without visible scrollbars. -Call \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars} to -specify how big the virtual window size should be. - -\membersection{wxScrolledWindow::\destruct{wxScrolledWindow}} - -\func{}{\destruct{wxScrolledWindow}}{\void} - -Destructor. - -\membersection{wxScrolledWindow::CalcScrolledPosition}\label{wxscrolledwindowcalcscrolledposition} - -\constfunc{void}{CalcScrolledPosition}{ - \param{int }{x}, - \param{int }{y}, - \param{int *}{xx} - \param{int *}{yy}} - -Translates the logical coordinates to the device ones. For example, if a window is -scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) -(as always), but the logical coordinates are (0, 10) and so the call to -CalcScrolledPosition(0, 0, \&xx, \&yy) will return 10 in yy. - -\wxheading{See also} - -\helpref{CalcUnscrolledPosition}{wxscrolledwindowcalcunscrolledposition} - -\membersection{wxScrolledWindow::CalcUnscrolledPosition}\label{wxscrolledwindowcalcunscrolledposition} - -\constfunc{void}{CalcUnscrolledPosition}{ - \param{int }{x}, - \param{int }{y}, - \param{int *}{xx} - \param{int *}{yy}} - -Translates the device coordinates to the logical ones. For example, if a window is -scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) -(as always), but the logical coordinates are (0, 10) and so the call to -CalcUnscrolledPosition(0, 10, \&xx, \&yy) will return 0 in yy. - -\wxheading{See also} - -\helpref{CalcScrolledPosition}{wxscrolledwindowcalcscrolledposition} - -\membersection{wxScrolledWindow::Create}\label{wxscrolledwindowcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id = -1},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}} - -Creates the window for two-step construction. Derived classes -should call or replace this function. See \helpref{wxScrolledWindow::wxScrolledWindow}{wxscrolledwindowconstr}\rtfsp -for details. - -\membersection{wxScrolledWindow::EnableScrolling}\label{wxscrolledwindowenablescrolling} - -\func{void}{EnableScrolling}{\param{const bool}{ xScrolling}, \param{const bool}{ yScrolling}} - -Enable or disable physical scrolling in the given direction. Physical -scrolling is the physical transfer of bits up or down the -screen when a scroll event occurs. If the application scrolls by a -variable amount (e.g. if there are different font sizes) then physical -scrolling will not work, and you should switch it off. - -\wxheading{Parameters} - -\docparam{xScrolling}{If TRUE, enables physical scrolling in the x direction.} - -\docparam{yScrolling}{If TRUE, enables physical scrolling in the y direction.} - -\wxheading{Remarks} - -Physical scrolling may not be available on all platforms. Where it is available, it is enabled -by default. - -\membersection{wxScrolledWindow::GetScrollPixelsPerUnit}\label{wxscrolledwindowgetscrollpixelsperunit} - -\constfunc{void}{GetScrollPixelsPerUnit}{\param{int* }{xUnit}, \param{int* }{yUnit}} - -Get the number of pixels per scroll unit (line), in each direction, as set -by \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars}. A value of zero indicates no -scrolling in that direction. - -\wxheading{Parameters} - -\docparam{xUnit}{Receives the number of pixels per horizontal unit.} - -\docparam{yUnit}{Receives the number of pixels per vertical unit.} - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp -\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize} - -\membersection{wxScrolledWindow::GetVirtualSize}\label{wxscrolledwindowgetvirtualsize} - -\constfunc{void}{GetVirtualSize}{\param{int* }{x}, \param{int* }{y}} - -Gets the size in device units of the scrollable window area (as -opposed to the client size, which is the area of the window currently -visible). - -\wxheading{Parameters} - -\docparam{x}{Receives the length of the scrollable window, in pixels.} - -\docparam{y}{Receives the height of the scrollable window, in pixels.} - -\wxheading{Remarks} - -Use \helpref{wxDC::DeviceToLogicalX}{wxdcdevicetologicalx} and \helpref{wxDC::DeviceToLogicalY}{wxdcdevicetologicaly}\rtfsp -to translate these units to logical units. - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp -\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit} - -\membersection{wxScrolledWindow::IsRetained}\label{wxscrolledwindowisretained} - -\constfunc{bool}{IsRetained}{\void} - -Motif only: TRUE if the window has a backing bitmap. - -\membersection{wxScrolledWindow::PrepareDC}\label{wxscrolledwindowpreparedc} - -\func{void}{PrepareDC}{\param{wxDC\& }{dc}} - -Call this function to prepare the device context for drawing a scrolled image. It -sets the device origin according to the current scroll position. - -PrepareDC is called automatically within the default wxScrolledWindow::OnPaint event -handler, so your \helpref{wxScrolledWindow::OnDraw}{wxscrolledwindowondraw} override -will be passed a 'pre-scrolled' device context. However, if you wish to draw from -outside of OnDraw (via OnPaint), or you wish to implement OnPaint yourself, you must -call this function yourself. For example: - -\begin{verbatim} -void MyWindow::OnEvent(wxMouseEvent& event) -{ - wxClientDC dc(this); - PrepareDC(dc); - - dc.SetPen(*wxBLACK_PEN); - float x, y; - event.Position(&x, &y); - if (xpos > -1 && ypos > -1 && event.Dragging()) - { - dc.DrawLine(xpos, ypos, x, y); - } - xpos = x; - ypos = y; -} -\end{verbatim} - -\membersection{wxScrolledWindow::OnDraw}\label{wxscrolledwindowondraw} - -\func{virtual void}{OnDraw}{\param{wxDC\& }{dc}} - -Called by the default paint event handler to allow the application to define -painting behaviour without having to worry about calling -\helpref{wxScrolledWindow::PrepareDC}{wxscrolledwindowpreparedc}. - -Instead of overriding this function you may also just process the paint event -in the derived class as usual, but then you will have to call PrepareDC() -yourself. - -\membersection{wxScrolledWindow::Scroll}\label{wxscrolledwindowscroll} - -\func{void}{Scroll}{\param{int}{ x}, \param{int}{ y}} - -Scrolls a window so the view start is at the given point. - -\wxheading{Parameters} - -\docparam{x}{The x position to scroll to, in scroll units.} - -\docparam{y}{The y position to scroll to, in scroll units.} - -\wxheading{Remarks} - -The positions are in scroll units, not pixels, so to convert to pixels you -will have to multiply by the number of pixels per scroll increment. -If either parameter is -1, that position will be ignored (no change in -that direction). - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp -\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit} - -\membersection{wxScrolledWindow::SetScrollbars}\label{wxscrolledwindowsetscrollbars} - -\func{void}{SetScrollbars}{\param{int}{ pixelsPerUnitX}, \param{int}{ pixelsPerUnitY},\rtfsp -\param{int}{ noUnitsX}, \param{int}{ noUnitsY},\rtfsp -\param{int }{xPos = 0}, \param{int}{ yPos = 0}} - -Sets up vertical and/or horizontal scrollbars. - -\wxheading{Parameters} - -\docparam{pixelsPerUnitX}{Pixels per scroll unit in the horizontal direction.} - -\docparam{pixelsPerUnitY}{Pixels per scroll unit in the vertical direction.} - -\docparam{noUnitsX}{Number of units in the horizontal direction.} - -\docparam{noUnitsY}{Number of units in the vertical direction.} - -\docparam{xPos}{Position to initialize the scrollbars in the horizontal direction, in scroll units.} - -\docparam{yPos}{Position to initialize the scrollbars in the vertical direction, in scroll units.} - -\wxheading{Remarks} - -The first pair of parameters give the number of pixels per `scroll step', i.e. amount -moved when the up or down scroll arrows are pressed. -The second pair gives the length of scrollbar in scroll steps, which sets the size of the virtual -window. - -{\it xPos} and {\it yPos} optionally specify a position to scroll to immediately. - -For example, the following gives a window horizontal and vertical -scrollbars with 20 pixels per scroll step, and a size of 50 steps (1000 -pixels) in each direction. - -\begin{verbatim} - window->SetScrollbars(20, 20, 50, 50); -\end{verbatim} - -wxScrolledWindow manages the page size itself, -using the current client window size as the page size. - -Note that for more sophisticated scrolling applications, for example where -scroll steps may be variable according to the position in the document, it will be -necessary to derive a new class from wxWindow, overriding {\bf OnSize} and -adjusting the scrollbars appropriately. - -\membersection{wxScrolledWindow::ViewStart}\label{wxscrolledwindowviewstart} - -\constfunc{void}{ViewStart}{\param{int* }{x}, \param{int* }{ y}} - -Get the position at which the visible portion of the window starts. - -\wxheading{Parameters} - -\docparam{x}{Receives the first visible x position in scroll units.} - -\docparam{y}{Receives the first visible y position in scroll units.} - -\wxheading{Remarks} - -If either of the scrollbars is not at the home position, {\it x} and/or -\rtfsp{\it y} will be greater than zero. Combined with \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize}, -the application can use this function to efficiently redraw only the -visible portion of the window. The positions are in logical scroll -units, not pixels, so to convert to pixels you will have to multiply -by the number of pixels per scroll increment. - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars} - diff --git a/docs/latex/wx/settings.tex b/docs/latex/wx/settings.tex deleted file mode 100644 index 2882173e62..0000000000 --- a/docs/latex/wx/settings.tex +++ /dev/null @@ -1,154 +0,0 @@ -\section{\class{wxSystemSettings}}\label{wxsystemsettings} - -wxSystemSettings allows the application to ask for details about -the system. This can include settings such as standard colours, fonts, -and user interface element sizes. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxFont}{wxfont}, \helpref{wxColour}{wxcolour} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSystemSettings::wxSystemSettings} - -\func{}{wxSystemSettings}{\void} - -Default constructor. You don't need to create an instance of wxSystemSettings -since all of its functions are static. - -\membersection{wxSystemSettings::GetSystemColour}\label{wxsystemsettingsgetsystemcolour} - -\func{static wxColour}{GetSystemColour}{\param{int}{ index}} - -Returns a system colour. - -{\it index} can be one of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSYS\_COLOUR\_SCROLLBAR}}{The scrollbar grey area.} -\twocolitem{{\bf wxSYS\_COLOUR\_BACKGROUND}}{The desktop colour.} -\twocolitem{{\bf wxSYS\_COLOUR\_ACTIVECAPTION}}{Active window caption.} -\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTION}}{Inactive window caption.} -\twocolitem{{\bf wxSYS\_COLOUR\_MENU}}{Menu background.} -\twocolitem{{\bf wxSYS\_COLOUR\_WINDOW}}{Window background.} -\twocolitem{{\bf wxSYS\_COLOUR\_WINDOWFRAME}}{Window frame.} -\twocolitem{{\bf wxSYS\_COLOUR\_MENUTEXT}}{Menu text.} -\twocolitem{{\bf wxSYS\_COLOUR\_WINDOWTEXT}}{Text in windows.} -\twocolitem{{\bf wxSYS\_COLOUR\_CAPTIONTEXT}}{Text in caption, size box and scrollbar arrow box.} -\twocolitem{{\bf wxSYS\_COLOUR\_ACTIVEBORDER}}{Active window border.} -\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVEBORDER}}{Inactive window border.} -\twocolitem{{\bf wxSYS\_COLOUR\_APPWORKSPACE}}{Background colour MDI applications.} -\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHT}}{Item(s) selected in a control.} -\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHTTEXT}}{Text of item(s) selected in a control.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNFACE}}{Face shading on push buttons.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNSHADOW}}{Edge shading on push buttons.} -\twocolitem{{\bf wxSYS\_COLOUR\_GRAYTEXT}}{Greyed (disabled) text.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNTEXT}}{Text on push buttons.} -\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTIONTEXT}}{Colour of text in active captions.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNHIGHLIGHT}}{Highlight colour for buttons (same as wxSYS\_COLOUR\_3DHILIGHT).} -\twocolitem{{\bf wxSYS\_COLOUR\_3DDKSHADOW}}{Dark shadow for three-dimensional dispaly elements.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DLIGHT}}{Light colour for three-dimensional display elements.} -\twocolitem{{\bf wxSYS\_COLOUR\_INFOTEXT}}{Text colour for tooltip controls.} -\twocolitem{{\bf wxSYS\_COLOUR\_INFOBK}}{Background colour for tooltip controls.} -\twocolitem{{\bf wxSYS\_COLOUR\_DESKTOP}}{Same as wxSYS\_COLOUR\_BACKGROUND.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DFACE}}{Same as wxSYS\_COLOUR\_BTNFACE.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DSHADOW}}{Same as wxSYS\_COLOUR\_BTNSHADOW.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DHIGHLIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DHILIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNHILIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.} -\end{twocollist} - -\pythonnote{This static method is implemented in Python as a -standalone function named \tt{wxSystemSettings_GetSystemColour}} - -\membersection{wxSystemSettings::GetSystemFont}\label{wxsystemsettingsgetsystemfont} - -\func{static wxFont}{GetSystemFont}{\param{int}{ index}} - -Returns a system font. - -{\it index} can be one of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSYS\_OEM\_FIXED\_FONT}}{Original equipment manufacturer dependent fixed-pitch font.} -\twocolitem{{\bf wxSYS\_ANSI\_FIXED\_FONT}}{Windows fixed-pitch font.} -\twocolitem{{\bf wxSYS\_ANSI\_VAR\_FONT}}{Windows variable-pitch (proportional) font.} -\twocolitem{{\bf wxSYS\_SYSTEM\_FONT}}{System font.} -\twocolitem{{\bf wxSYS\_DEVICE\_DEFAULT\_FONT}}{Device-dependent font (Windows NT only).} -\twocolitem{{\bf wxSYS\_DEFAULT\_GUI\_FONT}}{Default font for user interface objects such as menus and dialog boxes. -Not available in versions of Windows earlier than Windows 95 or Windows NT 4.0.} -\end{twocollist} - -\pythonnote{This static method is implemented in Python as a -standalone function named \tt{wxSystemSettings_GetSystemFont}} - -\membersection{wxSystemSettings::GetSystemMetric}\label{wxsystemsettingsgetsystemmetric} - -\func{static int}{GetSystemMetric}{\param{int}{ index}} - -Returns a system metric. - -{\it index} can be one of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSYS\_MOUSE\_BUTTONS}}{Number of buttons on mouse, or zero if no mouse was installed.} -\twocolitem{{\bf wxSYS\_BORDER\_X}}{Width of single border.} -\twocolitem{{\bf wxSYS\_BORDER\_Y}}{Height of single border.} -\twocolitem{{\bf wxSYS\_CURSOR\_X}}{Width of cursor.} -\twocolitem{{\bf wxSYS\_CURSOR\_Y}}{Height of cursor.} -\twocolitem{{\bf wxSYS\_DCLICK\_X}}{Width in pixels of rectangle within which two successive mouse -clicks must fall to generate a double-click.} -\twocolitem{{\bf wxSYS\_DCLICK\_Y}}{Height in pixels of rectangle within which two successive mouse -clicks must fall to generate a double-click.} -\twocolitem{{\bf wxSYS\_DRAG\_X}}{Width in pixels of a rectangle centered on a drag point -to allow for limited movement of the mouse pointer before a drag operation begins.} -\twocolitem{{\bf wxSYS\_DRAG\_Y}}{Height in pixels of a rectangle centered on a drag point -to allow for limited movement of the mouse pointer before a drag operation begins.} -\twocolitem{{\bf wxSYS\_EDGE\_X}}{Width of a 3D border, in pixels. } -\twocolitem{{\bf wxSYS\_EDGE\_Y}}{Height of a 3D border, in pixels. } -\twocolitem{{\bf wxSYS\_HSCROLL\_ARROW\_X}}{Width of arrow bitmap on horizontal scrollbar.} -\twocolitem{{\bf wxSYS\_HSCROLL\_ARROW\_Y}}{Height of arrow bitmap on horizontal scrollbar.} -\twocolitem{{\bf wxSYS\_HTHUMB\_X}}{Width of horizontal scrollbar thumb.} -\twocolitem{{\bf wxSYS\_ICON\_X}}{The default width of an icon.} -\twocolitem{{\bf wxSYS\_ICON\_Y}}{The default height of an icon.} -\twocolitem{{\bf wxSYS\_ICONSPACING\_X}}{Width of a grid cell for items in large icon view, -in pixels. Each item fits into a rectangle of this size when arranged.} -\twocolitem{{\bf wxSYS\_ICONSPACING\_Y}}{Height of a grid cell for items in large icon view, -in pixels. Each item fits into a rectangle of this size when arranged.} -\twocolitem{{\bf wxSYS\_WINDOWMIN\_X}}{Minimum width of a window.} -\twocolitem{{\bf wxSYS\_WINDOWMIN\_Y}}{Minimum height of a window.} -\twocolitem{{\bf wxSYS\_SCREEN\_X}}{Width of the screen in pixels.} -\twocolitem{{\bf wxSYS\_SCREEN\_Y}}{Height of the screen in pixels.} -\twocolitem{{\bf wxSYS\_FRAMESIZE\_X}}{Width of the window frame for a wxTHICK\_FRAME window.} -\twocolitem{{\bf wxSYS\_FRAMESIZE\_Y}}{Height of the window frame for a wxTHICK\_FRAME window.} -\twocolitem{{\bf wxSYS\_SMALLICON\_X}}{Recommended width of a small icon (in window captions, and small icon view).} -\twocolitem{{\bf wxSYS\_SMALLICON\_Y}}{Recommended height of a small icon (in window captions, and small icon view).} -\twocolitem{{\bf wxSYS\_HSCROLL\_Y}}{Height of horizontal scrollbar in pixels.} -\twocolitem{{\bf wxSYS\_VSCROLL\_X}}{Width of vertical scrollbar in pixels.} -\twocolitem{{\bf wxSYS\_VSCROLL\_ARROW\_X}}{Width of arrow bitmap on a vertical scrollbar.} -\twocolitem{{\bf wxSYS\_VSCROLL\_ARROW\_Y}}{Height of arrow bitmap on a vertical scrollbar.} -\twocolitem{{\bf wxSYS\_VTHUMB\_Y}}{Height of vertical scrollbar thumb.} -\twocolitem{{\bf wxSYS\_CAPTION\_Y}}{Height of normal caption area.} -\twocolitem{{\bf wxSYS\_MENU\_Y}}{Height of single-line menu bar.} -\twocolitem{{\bf wxSYS\_NETWORK\_PRESENT}}{1 if there is a network present, 0 otherwise.} -\twocolitem{{\bf wxSYS\_PENWINDOWS\_PRESENT}}{1 if PenWindows is installed, 0 otherwise.} -\twocolitem{{\bf wxSYS\_SHOW\_SOUNDS}}{Non-zero if the user requires an application to present information visually in situations -where it would otherwise present the information only in audible form; zero otherwise.} -\twocolitem{{\bf wxSYS\_SWAP\_BUTTONS}}{Non-zero if the meanings of the left and right mouse buttons are swapped; zero otherwise.} -\end{twocollist} - -\pythonnote{This static method is implemented in Python as a -standalone function named \tt{wxSystemSettings_GetSystemMetric}} - diff --git a/docs/latex/wx/shelves.bmp b/docs/latex/wx/shelves.bmp deleted file mode 100644 index 2e9a62cc5c..0000000000 Binary files a/docs/latex/wx/shelves.bmp and /dev/null differ diff --git a/docs/latex/wx/size.tex b/docs/latex/wx/size.tex deleted file mode 100644 index fdf4493367..0000000000 --- a/docs/latex/wx/size.tex +++ /dev/null @@ -1,73 +0,0 @@ -\section{\class{wxSize}}\label{wxsize} - -A {\bf wxSize} is a useful data structure for graphics operations. -It simply contains integer {\it width} and {\it height} members. - -wxSize is used throughout wxWindows as well as wxPoint which, although almost -equivalent to wxSize, has a different meaning: wxPoint represents a position -while wxSize - the size. - -\pythonnote{wxPython defines aliases for the \tt{x} and \tt{y} members -named \tt{width} and \tt{height} since it makes much more sense for -sizes. -} - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint}, \helpref{wxRealPoint}{wxrealpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSize::wxSize} - -\func{}{wxSize}{\void} - -\func{}{wxSize}{\param{int}{ width}, \param{int}{ height}} - -Creates a size object. - -\membersection{wxSize::GetWidth}\label{wxsizegetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width member. - -\membersection{wxSize::GetHeight}\label{wxsizegetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height member. - -\membersection{wxSize::Set}\label{wxsizeset} - -\func{void}{Set}{\param{int}{ width}, \param{int}{ height}} - -Sets the width and height members. - -\membersection{wxSize::SetHeight}\label{wxsizesetheight} - -\func{void}{SetHeight}{\param{int}{ height}} - -Sets the height. - -\membersection{wxSize::SetWidth}\label{wxsizesetwidth} - -\func{void}{SetWidth}{\param{int}{ width}} - -Sets the width. - -\membersection{wxSize::operator $=$} - -\func{void}{operator $=$}{\param{const wxSize\& }{sz}} - -Assignment operator. - - diff --git a/docs/latex/wx/sizeevt.tex b/docs/latex/wx/sizeevt.tex deleted file mode 100644 index 64256e167e..0000000000 --- a/docs/latex/wx/sizeevt.tex +++ /dev/null @@ -1,41 +0,0 @@ -\section{\class{wxSizeEvent}}\label{wxsizeevent} - -A size event holds information about size change events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a size event, use this event handler macro to direct input to a member -function that takes a wxSizeEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SIZE(func)}}{Process a wxEVT\_SIZE event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::OnSize}{wxwindowonsize}, \helpref{wxSize}{wxsize}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSizeEvent::wxSizeEvent} - -\func{}{wxSizeEvent}{\param{const wxSize\& }{sz}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxSizeEvent::GetSize}\label{wxsizeeventgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Returns the entire size of the window generating the size change event. - diff --git a/docs/latex/wx/sizer.tex b/docs/latex/wx/sizer.tex deleted file mode 100644 index 7139afe37f..0000000000 --- a/docs/latex/wx/sizer.tex +++ /dev/null @@ -1,103 +0,0 @@ -\section{\class{wxSizer}}\label{wxsizer} - -wxSizer is the abstract base class used for layouting subwindows in a window. You -cannot use wxSizer directly; instead, you'll have to use \helpref{wxBoxSizer}{wxboxsizer} -or \helpref{wxStaticBoxSizer}{wxstaticboxsizer}. - -The layouting algorithm used by sizers in wxWindows closely related to layouting -in other GUI toolkits, such as Java's AWT, the GTK toolkit or the Qt toolkit. It is -based upon the idea of the individual subwindows reporting their minimal required -size and their ability to get stretched if the size of the parent window has changed. -This will most often mean, that the programmer does not set the original size of -the dialog in the beginning, rather the top-most sizer will get queried and it will -then query its children. Its children can be normal windows or other sizers, so that -a hierachy of sizer can be constructed. Note that sizer are not derived from wxWindows -and thus do not interfere with tab ordering and require very little resources compared -to a real window on screen. - -What makes sizers so well fitted for use in wxWindows, is the fact that every control -reports its own minimal size and the algorithm can handle differences in font sizes -or different window (dialog item) sizes on different platforms without problems. If e.g. -the standard font as well as the overall design of Motif widgets requires more space than -on Windows, the intial dialog size will automatically be bigger on Motif than on Windows. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSizer::wxSizer}\label{wxsizerwxsizer} - -\func{}{wxSizer}{\void} - - -\membersection{wxSizer::\destruct{wxSizer}}\label{wxsizerdtor} - -\func{}{\destruct{wxSizer}}{\void} - - -\membersection{wxSizer::Add}\label{wxsizeradd} - -\func{void}{Add}{\param{wxWindow* }{window}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}} - - -\membersection{wxSizer::Add}\label{wxsizeradd} - -\func{void}{Add}{\param{wxSizer* }{sizer}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}} - - -\membersection{wxSizer::Add}\label{wxsizeradd} - -\func{void}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}} - - -\membersection{wxSizer::SetDimension}\label{wxsizersetdimension} - -\func{void}{SetDimension}{\param{int }{x}, \param{int }{y}, \param{int }{width}, \param{int }{height}} - - -\membersection{wxSizer::GetSize}\label{wxsizergetsize} - -\func{wxSize}{GetSize}{\void} - - -\membersection{wxSizer::GetPosition}\label{wxsizergetposition} - -\func{wxPoint}{GetPosition}{\void} - - -\membersection{wxSizer::GetMinSize}\label{wxsizergetminsize} - -\func{wxSize}{GetMinSize}{\void} - - -\membersection{wxSizer::RecalcSizes}\label{wxsizerrecalcsizes} - -\func{void}{RecalcSizes}{\void} - - -\membersection{wxSizer::CalcMin}\label{wxsizercalcmin} - -\func{wxSize}{CalcMin}{\void} - - -\membersection{wxSizer::Layout}\label{wxsizerlayout} - -\func{void}{Layout}{\void} - - -\membersection{wxSizer::Fit}\label{wxsizerfit} - -\func{void}{Fit}{\param{wxWindow* }{window}} - - -\membersection{wxSizer::SetSizeHints}\label{wxsizersetsizehints} - -\func{void}{SetSizeHints}{\param{wxWindow* }{window}} - - -\membersection{wxSizer::GetMinWindowSize}\label{wxsizergetminwindowsize} - -\func{wxSize}{GetMinWindowSize}{\param{wxWindow* }{window} \ No newline at end of file diff --git a/docs/latex/wx/sizeritem.tex b/docs/latex/wx/sizeritem.tex deleted file mode 100644 index 2d89744a71..0000000000 --- a/docs/latex/wx/sizeritem.tex +++ /dev/null @@ -1,100 +0,0 @@ -% -% automatically generated by HelpGen from -% include\wx\sizer.h at 13/Aug/99 22:27:59 -% - - -\section{\class{wxSizerItem}}\label{wxsizeritem} - - - -classes - - -wxSizerItem - - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSizerItem::wxSizerItem}\label{wxsizeritemwxsizeritem} - -\func{}{wxSizerItem}{\param{int }{width}, \param{int }{height}, \param{int }{option}, \param{int }{flag}, \param{int }{border}} - -spacer - - -\membersection{wxSizerItem::wxSizerItem}\label{wxsizeritemwxsizeritem} - -\func{}{wxSizerItem}{\param{wxWindow* }{window}, \param{int }{option}, \param{int }{flag}, \param{int }{border}} - -window - - -\membersection{wxSizerItem::wxSizerItem}\label{wxsizeritemwxsizeritem} - -\func{}{wxSizerItem}{\param{wxSizer* }{sizer}, \param{int }{option}, \param{int }{flag}, \param{int }{border}} - -subsizer - - -\membersection{wxSizerItem::GetSize}\label{wxsizeritemgetsize} - -\func{wxSize}{GetSize}{\void} - - -\membersection{wxSizerItem::CalcMin}\label{wxsizeritemcalcmin} - -\func{wxSize}{CalcMin}{\void} - - -\membersection{wxSizerItem::SetDimension}\label{wxsizeritemsetdimension} - -\func{void}{SetDimension}{\param{wxPoint }{pos}, \param{wxSize }{size}} - - -\membersection{wxSizerItem::IsWindow}\label{wxsizeritemiswindow} - -\func{bool}{IsWindow}{\void} - - -\membersection{wxSizerItem::IsSizer}\label{wxsizeritemissizer} - -\func{bool}{IsSizer}{\void} - - -\membersection{wxSizerItem::IsSpacer}\label{wxsizeritemisspacer} - -\func{bool}{IsSpacer}{\void} - - -\membersection{wxSizerItem::GetWindow}\label{wxsizeritemgetwindow} - -\constfunc{wxWindow*}{GetWindow}{\void} - - -\membersection{wxSizerItem::GetSizer}\label{wxsizeritemgetsizer} - -\constfunc{wxSizer*}{GetSizer}{\void} - - -\membersection{wxSizerItem::GetOption}\label{wxsizeritemgetoption} - -\constfunc{int}{GetOption}{\void} - - -\membersection{wxSizerItem::GetFlag}\label{wxsizeritemgetflag} - -\constfunc{int}{GetFlag}{\void} - - -\membersection{wxSizerItem::GetBorder}\label{wxsizeritemgetborder} - -\constfunc{int}{GetBorder}{\void} - diff --git a/docs/latex/wx/slider.tex b/docs/latex/wx/slider.tex deleted file mode 100644 index 8697a032dd..0000000000 --- a/docs/latex/wx/slider.tex +++ /dev/null @@ -1,375 +0,0 @@ -\section{\class{wxSlider}}\label{wxslider} - -A slider is a control with a handle which can be pulled -back and forth to change the value. - -In Windows versions below Windows 95, a scrollbar is used to simulate the slider. In Windows 95, -the track bar control is used. - -Slider events are handled in the same way as a scrollbar. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSL\_HORIZONTAL}}{Displays the slider horizontally.} -\twocolitem{\windowstyle{wxSL\_VERTICAL}}{Displays the slider vertically.} -\twocolitem{\windowstyle{wxSL\_AUTOTICKS}}{Displays tick marks.} -\twocolitem{\windowstyle{wxSL\_LABELS}}{Displays minimum, maximum and value labels.} -\twocolitem{\windowstyle{wxSL\_LEFT}}{Displays ticks on the left, if a vertical slider.} -\twocolitem{\windowstyle{wxSL\_RIGHT}}{Displays ticks on the right, if a vertical slider.} -\twocolitem{\windowstyle{wxSL\_TOP}}{Displays ticks on the top, if a horizontal slider.} -\twocolitem{\windowstyle{wxSL\_SELRANGE}}{Allows the user to select a range on the slider. Windows 95 only.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -To process input from a slider, use one of these event handler macros to direct input to member -functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.} -\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.} -\twocolitem{{\bf EVT\_COMMAND\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.} -\twocolitem{{\bf EVT\_COMMAND\_LINEUP(id, func)}}{Catch a line up command.} -\twocolitem{{\bf EVT\_COMMAND\_LINEDOWN(id, func)}}{Catch a line down command.} -\twocolitem{{\bf EVT\_COMMAND\_PAGEUP(id, func)}}{Catch a page up command.} -\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.} -\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).} -\twocolitem{{\bf EVT\_SLIDER(id, func)}}{Process a wxEVT\_COMMAND\_SLIDER\_UPDATED event, -when the slider is moved. Though provided for backward compatibility, this is obsolete.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxScrollBar}{wxscrollbar} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSlider::wxSlider}\label{wxsliderconstr} - -\func{}{wxSlider}{\void} - -Default slider. - -\func{}{wxSlider}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{int }{value },\rtfsp -\param{int}{ minValue}, \param{int}{ maxValue},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSL\_HORIZONTAL},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``slider"}} - -Constructor, creating and showing a slider. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{value}{Initial position for the slider.} - -\docparam{minValue}{Minimum slider position.} - -\docparam{maxValue}{Maximum slider position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxSlider}{wxslider}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxSlider::Create}{wxslidercreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxSlider::\destruct{wxSlider}} - -\func{void}{\destruct{wxSlider}}{\void} - -Destructor, destroying the slider. - -\membersection{wxSlider::ClearSel}\label{wxsliderclearsel} - -\func{void}{ClearSel}{\void} - -Clears the selection, for a slider with the {\bf wxSL\_SELRANGE} style. - -\wxheading{Remarks} - -Windows 95 only. - -\membersection{wxSlider::ClearTicks}\label{wxsliderclearticks} - -\func{void}{ClearTicks}{\void} - -Clears the ticks. - -\wxheading{Remarks} - -Windows 95 only. - -\membersection{wxSlider::Create}\label{wxslidercreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{int }{value },\rtfsp -\param{int}{ minValue}, \param{int}{ maxValue},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSL\_HORIZONTAL},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``slider"}} - -Used for two-step slider construction. See \helpref{wxSlider::wxSlider}{wxsliderconstr}\rtfsp -for further details. - -\membersection{wxSlider::GetLineSize}\label{wxslidergetlinesize} - -\constfunc{int}{GetLineSize}{\void} - -Returns the line size. - -\wxheading{See also} - -\helpref{wxSlider::SetLineSize}{wxslidersetlinesize} - -\membersection{wxSlider::GetMax}\label{wxslidergetmax} - -\constfunc{int}{GetMax}{\void} - -Gets the maximum slider value. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::SetRange}{wxslidersetrange} - -\membersection{wxSlider::GetMin}\label{wxslidergetmin} - -\constfunc{int}{GetMin}{\void} - -Gets the minimum slider value. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::SetRange}{wxslidersetrange} - -\membersection{wxSlider::GetPageSize}\label{wxslidergetpagesize} - -\constfunc{int}{GetPageSize}{\void} - -Returns the page size. - -\wxheading{See also} - -\helpref{wxSlider::SetPageSize}{wxslidersetpagesize} - -\membersection{wxSlider::GetSelEnd}\label{wxslidergetselend} - -\constfunc{int}{GetSelEnd}{\void} - -Returns the selection end point. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetSelStart}{wxslidergetselstart}, \helpref{wxSlider::SetSelection}{wxslidersetselection} - -\membersection{wxSlider::GetSelStart}\label{wxslidergetselstart} - -\constfunc{int}{GetSelStart}{\void} - -Returns the selection start point. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetSelEnd}{wxslidergetselend}, \helpref{wxSlider::SetSelection}{wxslidersetselection} - -\membersection{wxSlider::GetThumbLength}\label{wxslidergetthumblength} - -\constfunc{int}{GetThumbLength}{\void} - -Returns the thumb length. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::SetThumbLength}{wxslidersetthumblength} - -\membersection{wxSlider::GetTickFreq}\label{wxslidergettickfreq} - -\constfunc{int}{GetTickFreq}{\void} - -Returns the tick frequency. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::SetTickFreq}{wxslidersettickfreq} - -\membersection{wxSlider::GetValue}\label{wxslidergetvalue} - -\constfunc{int}{GetValue}{\void} - -Gets the current slider value. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::GetMax}{wxslidergetmax},\rtfsp -\helpref{wxSlider::SetValue}{wxslidersetvalue} - -\membersection{wxSlider::SetRange}\label{wxslidersetrange} - -\func{void}{SetRange}{\param{int}{ minValue}, \param{int}{ maxValue}} - -Sets the minimum and maximum slider values. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::GetMax}{wxslidergetmax} - -\membersection{wxSlider::SetTickFreq}\label{wxslidersettickfreq} - -\func{void}{SetTickFreq}{\param{int }{n}, \param{int }{pos}} - -Sets the tick mark frequency and position. - -\wxheading{Parameters} - -\docparam{n}{Frequency. For example, if the frequency is set to two, a tick mark is displayed for -every other increment in the slider's range.} - -\docparam{pos}{Position. Must be greater than zero. TODO: what is this for?} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetTickFreq}{wxslidergettickfreq} - -\membersection{wxSlider::SetLineSize}\label{wxslidersetlinesize} - -\func{void}{SetLineSize}{\param{int }{lineSize}} - -Sets the line size for the slider. - -\wxheading{Parameters} - -\docparam{lineSize}{The number of steps the slider moves when the user moves it up or down a line.} - -\wxheading{See also} - -\helpref{wxSlider::GetLineSize}{wxslidergetlinesize} - -\membersection{wxSlider::SetPageSize}\label{wxslidersetpagesize} - -\func{void}{SetPageSize}{\param{int }{pageSize}} - -Sets the page size for the slider. - -\wxheading{Parameters} - -\docparam{pageSize}{The number of steps the slider moves when the user pages up or down.} - -\wxheading{See also} - -\helpref{wxSlider::GetPageSize}{wxslidergetpagesize} - -\membersection{wxSlider::SetSelection}\label{wxslidersetselection} - -\func{void}{SetSelection}{\param{int }{startPos}, \param{int }{endPos}} - -Sets the selection. - -\wxheading{Parameters} - -\docparam{startPos}{The selection start position.} - -\docparam{endPos}{The selection end position.} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetSelStart}{wxslidergetselstart}, \helpref{wxSlider::GetSelEnd}{wxslidergetselend} - -\membersection{wxSlider::SetThumbLength}\label{wxslidersetthumblength} - -\func{void}{SetThumbLength}{\param{int }{len}} - -Sets the slider thumb length. - -\wxheading{Parameters} - -\docparam{len}{The thumb length.} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetThumbLength}{wxslidergetthumblength} - -\membersection{wxSlider::SetTick}\label{wxslidersettick} - -\func{void}{SetTick}{\param{int}{ tickPos}} - -Sets a tick position. - -\wxheading{Parameters} - -\docparam{tickPos}{The tick position.} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::SetTickFreq}{wxslidersettickfreq} - -\membersection{wxSlider::SetValue}\label{wxslidersetvalue} - -\func{void}{SetValue}{\param{int}{ value}} - -Sets the slider position. - -\wxheading{Parameters} - -\docparam{value}{The slider position.} - -\wxheading{See also} - -\helpref{wxSlider::GetValue}{wxslidergetvalue} - diff --git a/docs/latex/wx/sngchdlg.tex b/docs/latex/wx/sngchdlg.tex deleted file mode 100644 index 3ca1e4a513..0000000000 --- a/docs/latex/wx/sngchdlg.tex +++ /dev/null @@ -1,98 +0,0 @@ -\section{\class{wxSingleChoiceDialog}}\label{wxsinglechoicedialog} - -This class represents a dialog that shows a list of strings, and allows -the user to select one. Double-clicking on a list item is equivalent to single-clicking -and then pressing OK. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxSingleChoiceDialog overview}{wxsinglechoicedialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSingleChoiceDialog::wxSingleChoiceDialog}\label{wxsinglechoicedialogconstr} - -\func{}{wxSingleChoiceDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption}, \param{int }{n}, \param{const wxString* }{choices},\rtfsp -\param{char**}{ clientData = NULL}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor, taking an array of wxString choices and optional client data. - -\func{}{wxSingleChoiceDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption}, \param{const wxStringList\& }{choices},\rtfsp -\param{char**}{ clientData = NULL}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor, taking a string list and optional client data. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{caption}{The dialog caption.} - -\docparam{n}{The number of choices.} - -\docparam{choices}{An array of strings, or a string list, containing the choices.} - -\docparam{style}{A dialog style (bitlist) containing flags chosen from the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxOK}}{Show an OK button.} -\twocolitem{{\bf wxCANCEL}}{Show a Cancel button.} -\twocolitem{{\bf wxCENTRE}}{Centre the message. Not Windows.} -\end{twocollist} -} - -\docparam{pos}{Dialog position. Not Windows.} - -\wxheading{Remarks} - -Use \helpref{wxSingleChoiceDialog::ShowModal}{wxsinglechoicedialogshowmodal} to show the dialog. - - -\membersection{wxSingleChoiceDialog::\destruct{wxSingleChoiceDialog}} - -\func{}{\destruct{wxSingleChoiceDialog}}{\void} - -Destructor. - -\membersection{wxSingleChoiceDialog::GetSelection} - -\constfunc{int}{GetSelection}{\void} - -Returns the index of selected item. - -\membersection{wxSingleChoiceDialog::GetSelectionClientData} - -\constfunc{char*}{GetSelectionClientData}{\void} - -Returns the client data associated with the selection. - -\membersection{wxSingleChoiceDialog::GetStringSelection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Returns the selected string. - -\membersection{wxSingleChoiceDialog::ShowModal}\label{wxsinglechoicedialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning either wxID\_OK or wxID\_CANCEL. - diff --git a/docs/latex/wx/socket.tex b/docs/latex/wx/socket.tex deleted file mode 100644 index 95e44e5587..0000000000 --- a/docs/latex/wx/socket.tex +++ /dev/null @@ -1,695 +0,0 @@ -\section{\class{wxSocketBase}}\label{wxsocketbase} - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler} - -\wxheading{Include files} - - - -\wxheading{See also} - -GSocket for wxWindows - -% --------------------------------------------------------------------------- -% Event handling -% --------------------------------------------------------------------------- -\wxheading{Event handling} - -To process events from a socket, use the following event handler macro to direct - input to member -functions that take a \helpref{wxSocketEvent}{wxsocketevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SOCKET(id, func)}}{A socket event occured.} -\end{twocollist}% - -% --------------------------------------------------------------------------- -% See also ... -% --------------------------------------------------------------------------- -\wxheading{See also} - -\helpref{wxSocketEvent}{wxsocketevent}\\ -\helpref{wxSocketClient}{wxsocketclient}\\ -\helpref{wxSocketServer}{wxsocketserver} - -% --------------------------------------------------------------------------- -% Members -% --------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSocketBase::wxSocketBase} - -\func{}{wxSocketBase}{\void} - -Default constructor but don't use it, you must use \helpref{wxSocketClient}{wxsocketclient} -or \helpref{wxSocketServer}{wxsocketserver}. - -\membersection{wxSocketBase::\destruct{wxSocketBase}} - -\func{}{\destruct{wxSocketBase}}{\void} - -Destroys the wxSocketBase object. - -% --------------------------------------------------------------------------- -% State functions -% --------------------------------------------------------------------------- - -% -% SetFlags -% - -\membersection{wxSocketBase::SetFlags}\label{wxsocketbasesetflags} - -\func{void}{SetFlags}{\param{wxSocketBase::wxSockFlags}{ flags}} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSocketBase::NONE}}{Normal functionnalities.} -\twocolitem{{\bf wxSocketBase::NOWAIT}}{Get the available data in the input queue and exit immediately.} -\twocolitem{{\bf wxSocketBase::WAITALL}}{Wait for all required data unless an error occured.} -\twocolitem{{\bf wxSocketBase::SPEED}}{Disable the asynchronous IO functionnality.} -\end{twocollist} - -% -% SetNotify -% -\membersection{wxSocketBase::SetNotify}\label{wxsocketbasesetnotify} - -\func{void}{SetNotify}{\param{GSocketEventFlags}{ event_flags}} - -SetNotify setups which socket events are to be sent to the event handler. -For more information on socket events see GSocket events. - -% -% Notify -% -\membersection{wxSocketBase::Notify}\label{wxsocketbasenotify} - -\func{void}{Notify}{\param{bool}{ notify}} - -Notify will enable (notify is TRUE) or disable (notify is FALSE) the propagation -of socket events. - -% -% Ok -% - -\membersection{wxSocketBase::Ok}\label{wxsocketbaseok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if the socket is initialized and ready and FALSE in other -cases. - -\membersection{wxSocketBase::Error}\label{wxsocketbaseerror} - -\constfunc{bool}{Error}{\void} - -Returns TRUE if an error occured. - -\membersection{wxSocketBase::IsConnected}\label{wxsocketbaseconnected} - -\constfunc{bool}{IsConnected}{\void} - -Returns TRUE if the socket is connected. - -\membersection{wxSocketBase::IsData}\label{wxsocketbaseisdata} - -\constfunc{bool}{IsData}{\void} - -Returns TRUE if some data is arrived on the socket. - -\membersection{wxSocketBase::IsDisconnected}\label{wxsocketbasedisconnected} - -\constfunc{bool}{IsDisconnected}{\void} - -Returns TRUE if the socket is disconnected. - -\membersection{wxSocketBase::IsNoWait}\label{wxsocketbasenowait} - -\constfunc{bool}{IsNoWait}{\void} - -Returns TRUE if the socket mustn't wait. - -\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount} - -\constfunc{size\_t}{LastCount}{\void} - -Returns the number of bytes read or written by the last IO call. - -\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror} - -\constfunc{GSocketError}{LastError}{\void} - -Returns an error in the GSocket format. See GSocket errors. - -% --------------------------------------------------------------------------- -% IO calls -% --------------------------------------------------------------------------- -% -% Peek -% -\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek} - -\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}} - -This function peeks a buffer of {\it nbytes} bytes from the socket. Peeking a buffer -doesn't delete it from the system socket in-queue. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to put peeked data.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}\\ -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}\\ -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror} - -% -% Read -% -\membersection{wxSocketBase::Read}\label{wxsocketbaseread} - -\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}} - -This function reads a buffer of {\it nbytes} bytes from the socket. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to put read data.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{Remark/Warning} - -By default, Read uses an internal asynchronous manager: it will send data when -the socket requests them. It is particularly interesting when you enter a long -data transfer (e.g. a big file, an image, ...). But it is also buggy when you -simply discuss with the peer using user data. In this case, wxSocket prepares -itself to send data (Write wait for them to be sent) and during a GUI refresh -the user enters new data, which involves a new Read call though the previous -isn't finished. Well, in most cases it can work but it might fail too. -So I advise you to use the SPEED flag, which disables the asynchronous manager, -when you just want to discuss with the peer. - -This remark is also valid for all IO call. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, - \helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, - \helpref{wxSocketBase::LastError}{wxsocketbaselasterror} - -% -% Write -% -\membersection{wxSocketBase::Write}\label{wxsocketbasewrite} - -\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}} - -This function writes a buffer of {\it nbytes} bytes from the socket. - -\wxheading{Remark/Warning} - -By default, Write uses an internal asynchronous manager: it will send data when -the socket requests them. It is particularly interesting when you enter a long -data transfer (e.g. a big file, an image, ...). But it is also buggy when you -simply discuss with the peer using user data. In this case, wxSocket prepares -itself to send data (Write wait for them to be sent) and during a GUI refresh -the user enters new data, which involves a new Write call though the previous -isn't finished. Well, in most cases it can work but it might fail too. -So I advise you to use the SPEED flag, which disables the asynchronous manager, -when you just want to discuss with the peer. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to get the data to write.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}\\ -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}\\ -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror} - -% -% WriteMsg -% -\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg} - -\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}} - -This function writes a buffer of {\it nbytes} bytes from the socket. But it -writes a short header before so that ReadMsg can alloc the right size for -the buffer. So a buffer sent with WriteMsg {\bf must} be read with ReadMsg. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to put data peeked.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}\\ -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}\\ -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}\\ -\helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg} - -% -% ReadMsg -% -\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg} - -\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}} - -This function reads a buffer sent by WriteMsg on a socket. If the buffer passed -to the function isn't big enough, the function filled it and then discard the -bytes left. This function always wait for the buffer to be entirely filled. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to put read data.} - -\docparam{nbytes}{Number of bytes allocated for the buffer.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}\\ -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}\\ -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}\\ -\helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg} - -% -% Unread -% -\membersection{wxSocketBase::UnRead}\label{wxsocketbaseunread} - -\func{wxSocketBase\&}{UnRead}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}} - -This function unreads a buffer. It means that the buffer is put in the top -of the incoming queue. But, it is put also at the end of all unread buffers. -It is useful for sockets because we can't seek it. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer to be unread.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}\\ -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}\\ -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror} - -% -% Discard -% -\membersection{wxSocketBase::Discard}\label{wxsocketbasediscard} - -\func{wxSocketBase\&}{Discard}{\void} - -This function simply deletes all bytes in the incoming queue. This function -doesn't wait. - -% --------------------------------------------------------------------------- -% Wait functions -% --------------------------------------------------------------------------- -\membersection{wxSocketBase::Wait}\label{wxsocketbasewait} - -\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} - -This function waits for an event: it could be an incoming byte, the possibility -for the client to write, a lost connection, an incoming connection, an -established connection. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} - -\docparam{microsecond}{Number of microseconds to wait.} - -\wxheading{Return value} - -Returns TRUE if an event occured, FALSE if the timeout was reached. - -\wxheading{See also} - -\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}\\ -\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}\\ -\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} - -% -% WaitForRead -% -\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread} - -\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} - -This function waits for a read event. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} - -\docparam{microsecond}{Number of microseconds to wait.} - -\wxheading{Return value} - -Returns TRUE if a byte arrived, FALSE if the timeout was reached. - -\wxheading{See also} - -\helpref{wxSocketBase::Wait}{wxsocketbasewait}\\ -\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}\\ -\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} - -% -% WaitForWrite -% -\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite} - -\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} - -This function waits for a write event. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} - -\docparam{microsecond}{Number of microseconds to wait.} - -\wxheading{Return value} - -Returns TRUE if a write event occured, FALSE if the timeout was reached. - -\wxheading{See also} - -\helpref{wxSocketBase::Wait}{wxsocketbasewait}\\ -\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}\\ -\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} - -% -% WaitForLost -% -\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost} - -\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} - -This function waits for a "lost" event. For instance, the peer may have closed -the connection, or the connection may have been broken. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} - -\docparam{microsecond}{Number of microseconds to wait.} - -\wxheading{Return value} - -Returns TRUE if a "lost" event occured, FALSE if the timeout was reached. - -\wxheading{See also} - -\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}\\ -\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}\\ -\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} - -% -% RestoreState -% -\membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate} - -\func{void}{RestoreState}{\void} - -This function restores a previously saved state. - -\wxheading{See also} - -\helpref{wxSocketBase::SaveState}{wxsocketbasesavestate} - -% --------------------------------------------------------------------------- -% Socket state -% --------------------------------------------------------------------------- -% -% SaveState -% -\membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate} - -\func{void}{SaveState}{\void} - -This function saves the current state of the socket object in a stack: -actually it saves all flags and the state of the asynchronous callbacks. - -\wxheading{See also} - -\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate} - -% --------------------------------------------------------------------------- -% Socket callbacks -% --------------------------------------------------------------------------- -\membersection{wxSocketBase::SetEventHandler}\label{wxsocketbaseseteventhandler} - -\func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ evt\_hdlr}, \param{int}{ id = -1}} - -Sets an event handler to be called when a socket event occured. - -\wxheading{Parameters} - -\docparam{evt\_hdlr}{Specifies the event handler you want to use.} - -\docparam{id}{The id of socket event.} - -\wxheading{See also} - -\helpref{wxSocketEvent}{wxsocketevent} - -% --------------------------------------------------------------------------- -% CLASS wxSocketClient -% --------------------------------------------------------------------------- -\section{\class{wxSocketClient}}\label{wxsocketclient} - -\wxheading{Derived from} - -\helpref{wxSocketBase}{wxsocketbase} - -\wxheading{Include files} - - - -% --------------------------------------------------------------------------- -% Members -% --------------------------------------------------------------------------- -% -% wxSocketClient -% -\membersection{wxSocketClient::wxSocketClient} - -\func{}{wxSocketClient}{\param{wxSockFlags}{ flags = wxSocketBase::NONE}} - -Constructs a new wxSocketClient. - -\wxheading{Parameters} - -\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})} - -% -% ~wxSocketClient -% -\membersection{wxSocketClient::\destruct{wxSocketClient}} - -\func{}{\destruct{wxSocketClient}}{\void} - -Destroys a wxSocketClient object. - -% -% Connect -% -\membersection{wxSocketClient::Connect}\label{wxsocketclientconnect} - -\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = TRUE}} - -Connects to a server using the specified address. If {\it wait} is TRUE, Connect -will wait for the socket ready to send or receive data. - -\wxheading{Parameters} - -\docparam{address}{Address of the server.} - -\docparam{wait}{If true, waits for the connection to be ready.} - -\wxheading{Return value} - -Returns TRUE if the connection is established and no error occurs. - -\wxheading{See also} - -\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect} - -% -% WaitOnConnect -% -\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect} - -\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ microseconds = 0}} - -Wait for a "connect" event. - -\wxheading{See also} - -\helpref{wxSocketBase::Wait}{wxsocketbasewait} for a detailed description. - -% --------------------------------------------------------------------------- -% CLASS: wxSocketEvent -% --------------------------------------------------------------------------- -\section{\class{wxSocketEvent}}\label{wxsocketevent} - -This event class contains information about socket events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a socket event, use these event handler macros to direct input to member -functions that take a wxSocketEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a socket event, supplying the member function.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase},\rtfsp -\helpref{wxSocketClient}{wxsocketclient},\rtfsp -\helpref{wxSocketServer}{wxsocketserver} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSocketEvent::wxSocketEvent} - -\func{}{wxSocketEvent}{\param{int}{ id = 0}} - -Constructor. - -\membersection{wxSocketEvent::SocketEvent}\label{wxsocketeventsocketevent} - -\constfunc{GSocketEvent}{SocketEvent}{\void} - -Returns the socket event type. - -% --------------------------------------------------------------------------- -% CLASS: wxSocketServer -% --------------------------------------------------------------------------- -\section{\class{wxSocketServer}}\label{wxsocketserver} - -\wxheading{Derived from} - -\helpref{wxSocketBase}{wxsocketbase} - -\wxheading{Include files} - - - -% --------------------------------------------------------------------------- -% Members -% --------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% -% wxSocketServer -% -\membersection{wxSocketServer::wxSocketServer}\label{wxsocketserverconstr} - -\func{}{wxSocketServer}{\param{wxSockAddress\&}{ address}, \param{wxSockFlags}{ flags = wxSocketBase::NONE}} - -Constructs a new wxSocketServer. - -\wxheading{Parameters} - -\docparam{address}{Specifies the local address for the server (e.g. port number).} - -\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})} - -% -% ~wxSocketServer -% -\membersection{wxSocketServer::\destruct{wxSocketServer}} - -\func{}{\destruct{wxSocketServer}}{\void} - -Destroys a wxSocketServer object (it doesn't close the accepted connection). - -% -% Accept -% -\membersection{wxSocketServer::Accept} - -\func{wxSocketBase *}{Accept}{\void} - -Creates a new object wxSocketBase and accepts an incoming connection. {\bf Warning !} This function will block the GUI. - -\wxheading{Return value} - -Returns an opened socket connection. - -\wxheading{See also} - -\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith} - -% -% AcceptWith -% -\membersection{wxSocketServer::AcceptWith}\label{wxsocketserveracceptwith} - -\func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}} - -Accept an incoming connection using the specified socket object. -This is useful when someone wants to inherit wxSocketBase. - -\wxheading{Parameters} - -\docparam{socket}{Socket to be initialized} - -\wxheading{Return value} - -Returns TRUE if no error occurs, else FALSE. - diff --git a/docs/latex/wx/spinbutt.tex b/docs/latex/wx/spinbutt.tex deleted file mode 100644 index cbd1263151..0000000000 --- a/docs/latex/wx/spinbutt.tex +++ /dev/null @@ -1,164 +0,0 @@ -\section{\class{wxSpinButton}}\label{wxspinbutton} - -A wxSpinButton has two small up and down (or left and right) arrow buttons. It is often -used next to a text control for increment and decrementing a value. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSP\_HORIZONTAL}}{Specifies a horizontal spin button.} -\twocolitem{\windowstyle{wxSP\_VERTICAL}}{Specifies a vertical spin button.} -\twocolitem{\windowstyle{wxSP\_ARROW\_KEYS}}{The user can use arrow keys.} -\twocolitem{\windowstyle{wxSP\_WRAP}}{The value wraps at the minimum and maximum.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -To process input from a spin button, use one of these event handler macros to direct input to member -functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_SPIN(id, func)}}{Catch all scroll commands.} -\twocolitem{{\bf EVT\_SPIN\_UP(id, func)}}{Catch up (or left) commands. Win32 only. } -\twocolitem{{\bf EVT\_SPIN\_DOWN(id, func)}}{Catch down (or right) commands. Win32 only. } -\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.} -\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.} -\twocolitem{{\bf EVT\_COMMAND\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.} -\twocolitem{{\bf EVT\_COMMAND\_LINEUP(id, func)}}{Catch a line up command.} -\twocolitem{{\bf EVT\_COMMAND\_LINEDOWN(id, func)}}{Catch a line down command.} -\twocolitem{{\bf EVT\_COMMAND\_PAGEUP(id, func)}}{Catch a page up command.} -\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.} -\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSpinButton::wxSpinButton}\label{wxspinbuttonconstr} - -\func{}{wxSpinButton}{\void} - -Default constructor. - -\func{}{wxSpinButton}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSP\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``spinButton"}} - -Constructor, creating and showing a spin button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxSpinButton}{wxspinbutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxSpinButton::Create}{wxspinbuttoncreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxSpinButton::\destruct{wxSpinButton}} - -\func{void}{\destruct{wxSpinButton}}{\void} - -Destructor, destroying the spin button. - -\membersection{wxSpinButton::Create}\label{wxspinbuttoncreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSP\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``spinButton"}} - -Scrollbar creation function called by the spin button constructor. -See \helpref{wxSpinButton::wxSpinButton}{wxspinbuttonconstr} for details. - -\membersection{wxSpinButton::GetMax}\label{wxspinbuttongetmax} - -\constfunc{int}{GetMax}{\void} - -Returns the maximum permissable value. - -\wxheading{See also} - -\helpref{wxSpinButton::SetRange}{wxspinbuttonsetrange} - -\membersection{wxSpinButton::GetMin}\label{wxspinbuttongetmin} - -\constfunc{int}{GetMin}{\void} - -Returns the minimum permissable value. - -\wxheading{See also} - -\helpref{wxSpinButton::SetRange}{wxspinbuttonsetrange} - -\membersection{wxSpinButton::GetValue}\label{wxspinbuttongetvalue} - -\constfunc{int}{GetValue}{\void} - -Returns the current spin button value. - -\wxheading{See also} - -\helpref{wxSpinButton::SetValue}{wxspinbuttonsetvalue} - -\membersection{wxSpinButton::SetRange}\label{wxspinbuttonsetrange} - -\func{void}{SetRange}{\param{int}{ min}, \param{int}{ max}} - -Sets the range of the spin button. - -\wxheading{Parameters} - -\docparam{min}{The minimum value for the spin button.} - -\docparam{max}{The maximum value for the spin button.} - -\wxheading{See also} - -\helpref{wxSpinButton::GetMin}{wxspinbuttongetmin}, \helpref{wxSpinButton::GetMax}{wxspinbuttongetmax} - -\membersection{wxSpinButton::SetValue}\label{wxspinbuttonsetvalue} - -\func{void}{SetValue}{\param{int}{ value}} - -Sets the value of the spin button. - -\wxheading{Parameters} - -\docparam{value}{The value for the spin button.} - -\wxheading{See also} - -\helpref{wxSpinButton::GetValue}{wxspinbuttongetvalue} - diff --git a/docs/latex/wx/splitevt.tex b/docs/latex/wx/splitevt.tex deleted file mode 100644 index c2af34411c..0000000000 --- a/docs/latex/wx/splitevt.tex +++ /dev/null @@ -1,120 +0,0 @@ -\section{\class{wxSplitterEvent}}\label{wxsplitterevent} - -This class represents the events generated by a splitter control. Also there is -only one event class, the data associated to the different events is not the -same and so not all accessor functions may be called for each event. The -documentation mentions the kind of event(s) for which the given acessor -function makes sense: calling it for other types of events will result -in assert failure (in debug mode) and will return meaningless results. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a splitter event, use these event handler macros to direct input to member -functions that take a wxSplitterEvent argument. - -\twocolwidtha{10cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGING(id, func)}}{The sash -position is in the process of being changed. May be used to modify the -position of the tracking bar to properly reflect the position that -would be set if the drag were to be completed at this point. Processes -a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING event.} -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGED(id, func)}}{The sash -position was changed. May be used to modify the sash position before -it is set, or to prevent the change from taking place. -Processes a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED event.} -\twocolitem{{\bf EVT\_SPLITTER\_UNSPLIT(id, func)}}{The splitter has been just -unsplit. Processes a wxEVT\_COMMAND\_SPLITTER\_UNSPLIT event.} -\twocolitem{{\bf EVT\_SPLITTER\_DOUBLECLICKED(id, func)}}{The sash was double -clicked. The default behaviour is to unsplit the window when this happens -(unless the minimum pane size has been set to a value greater than zero). -Processes a wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxSplitterWindow}{wxsplitterwindow},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSplitterEvent::wxSplitterEvent}\label{wxsplittereventconstr} - -\func{}{wxSplitterEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL}, - \param{wxSplitterWindow *}{ splitter = NULL}} - -Constructor. Used internally by wxWindows only. - - -\membersection{wxSplitterEvent::GetSashPosition}\label{wxsplittereventgetsashposition} - -\constfunc{int}{GetSashPosition}{\void} - -Returns the new sash position. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING and -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED events. - - -\membersection{wxSplitterEvent::GetX}\label{wxsplittereventgetx} - -\constfunc{int}{GetX}{\void} - -Returns the x coordinate of the double-click point. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED events. - - -\membersection{wxSplitterEvent::GetY}\label{wxsplittereventgety} - -\constfunc{int}{GetY}{\void} - -Returns the y coordinate of the double-click point. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED events. - -\membersection{wxSplitterEvent::GetWindowBeingRemoved}\label{wxsplittereventgetwindowbeingremoved} - -\constfunc{wxWindow*}{GetWindowBeingRemoved}{\void} - -Returns a pointer to the window being removed when a splitter window -is unsplit. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_UNSPLIT events. - - -\membersection{wxSplitterEvent::SetSashPosition}\label{wxsplittereventsetsashposition} - -\func{void}{SetSashPosition}{\param{int}{pos}} - -In the case of wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED events, -sets the the new sash position. In the case of -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING events, sets the new -tracking bar position so visual feedback during dragging will -represent that change that will actually take place. Set to -1 from -the event handler code to prevent repositioning. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING and -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED events. - -\wxheading{Paramters} - -\docparam{pos}{New sash position.} - diff --git a/docs/latex/wx/splitter.bmp b/docs/latex/wx/splitter.bmp deleted file mode 100644 index f52c2ff463..0000000000 Binary files a/docs/latex/wx/splitter.bmp and /dev/null differ diff --git a/docs/latex/wx/splitter.eps b/docs/latex/wx/splitter.eps deleted file mode 100644 index 43c72b63ba..0000000000 --- a/docs/latex/wx/splitter.eps +++ /dev/null @@ -1,301 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 400 282 -%%Creator: JASC, Inc. -%%Title: D:\wx2\docs\latex\wx\splitter.eps -%%CreationDate: 0 -%%EndComments -/width 400 def -/height 282 def -/pixwidth 400 def -/pixheight 282 def -/picstr width string def -/psppic { -gsave width height 8 -[width 0 0 height 0 height neg] -{currentfile picstr readhexstring pop} -false 3 colorimage grestore } def -0 height neg translate pixwidth pixheight scale -psppic -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000000000000000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000000000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000000000000000000000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000000000000000000000000000000000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00000000000000000000000000000000000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000000000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000000000000000000000000000FF0000000000000000FF0000FF0000000000000000000000000000000000FF0000FF0000FF0000FF0000000000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00000000FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00000000000000000000000000FFFF00000000000000FFFF00FFFF00000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFC0C0C0C0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000000000C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000000808080808080000000808000808000808000808000808000808000000000008000008000000000808080000000000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00008000008000008000808080FFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00008000008000008000808080FFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000FFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000000080000080FFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080808000808000808000808000808000808000000000008000008000808080FFFFFF808080000080000080000080FFFFFF000080000080000080FFFFFF000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFF000080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000808080000000000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000800000FF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000800000FF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000000808080808080000000808080808080808080808080808080808080808080808080808080000000000080000000000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080800000FF0000FF0000800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080800000FF0000FF0000800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080800000FF0000FF0000800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000000800000800000000000808080808080808080808080808080808080808080808080808080808080808080000000000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000 -C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000 -%%Trailer diff --git a/docs/latex/wx/splitter.gif b/docs/latex/wx/splitter.gif deleted file mode 100644 index 04bfd9fe48..0000000000 Binary files a/docs/latex/wx/splitter.gif and /dev/null differ diff --git a/docs/latex/wx/splitter.tex b/docs/latex/wx/splitter.tex deleted file mode 100644 index 879dc12714..0000000000 --- a/docs/latex/wx/splitter.tex +++ /dev/null @@ -1,420 +0,0 @@ -\section{\class{wxSplitterWindow}}\label{wxsplitterwindow} - -\overview{wxSplitterWindow overview}{wxsplitterwindowoverview} - -This class manages up to two subwindows. The current view can be -split into two programmatically (perhaps from a menu command), and unsplit -either programmatically or via the wxSplitterWindow user interface. - -Appropriate 3D shading for the Windows 95 user interface is an option. -This is also recommended for GTK. - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSP\_3D}}{Draws a 3D effect border and sash.} -\twocolitem{\windowstyle{wxSP\_BORDER}}{Draws a thin black border around the window, and a black sash.} -\twocolitem{\windowstyle{wxSP\_NOBORDER}}{No border, and a black sash.} -\twocolitem{\windowstyle{wxSP\_PERMIT\_UNSPLIT}}{Always allow to -unsplit, even with the minimum pane size other than zero.} -\twocolitem{\windowstyle{wxSP\_LIVE\_UPDATE}}{Don't draw XOR line but resize the child windows immediately.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event handling} - -To process input from a splitter control, use the following event handler -macros to direct input to member functions that take a -\helpref{wxSplitterEvent}{wxsplitterevent} argument. - -\twocolwidtha{10cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGING(id, func)}}{The sash -position is in the process of being changed. May be used to modify the -position of the tracking bar to properly reflect the position that -would be set if the drag were to be completed at this point. Processes -a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING event.} -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGED(id, func)}}{The sash -position was changed. May be used to modify the sash position before -it is set, or to prevent the change from taking place. -Processes a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED event.} -\twocolitem{{\bf EVT\_SPLITTER\_UNSPLIT(id, func)}}{The splitter has been just -unsplit. Processes a wxEVT\_COMMAND\_SPLITTER\_UNSPLIT event.} -\twocolitem{{\bf EVT\_SPLITTER\_DOUBLECLICKED(id, func)}}{The sash was double -clicked. The default behaviour is to unsplit the window when this happens -(unless the minimum pane size has been set to a value greater than zero). -Processes a wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxSplitterEvent}{wxsplitterevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSplitterWindow::wxSplitterWindow}\label{wxsplitterwindowconstr} - -\func{}{wxSplitterWindow}{\void} - -Default constructor. - -\func{}{wxSplitterWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}} - -Constructor for creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The parent of the splitter window.} - -\docparam{id}{The window identifier.} - -\docparam{pos}{The window position.} - -\docparam{size}{The window size.} - -\docparam{style}{The window style. See \helpref{wxSplitterWindow}{wxsplitterwindow}.} - -\docparam{name}{The window name.} - -\wxheading{Remarks} - -After using this constructor, you must create either one or two subwindows -with the splitter window as parent, and then call one of \helpref{wxSplitterWindow::Initialize}{wxsplitterwindowinitialize},\rtfsp -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically} and \helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally} in -order to set the pane(s). - -You can create two windows, with one hidden when not being shown; or you can -create and delete the second pane on demand. - -\wxheading{See also} - -\helpref{wxSplitterWindow::Initialize}{wxsplitterwindowinitialize}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally},\rtfsp -\helpref{wxSplitterWindow::Create}{wxsplitterwindowcreate} - -\membersection{wxSplitterWindow::\destruct{wxSplitterWindow}} - -\func{}{\destruct{wxSplitterWindow}}{\void} - -Destroys the wxSplitterWindow and its children. - -\membersection{wxSplitterWindow::Create}\label{wxsplitterwindowcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{int }{x},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}} - -Creation function, for two-step construction. See \helpref{wxSplitterWindow::wxSplitterWindow}{wxsplitterwindowconstr} for -details. - -\membersection{wxSplitterWindow::GetMinimumPaneSize}\label{wxsplitterwindowgetminimumpanesize} - -\constfunc{int}{GetMinimumPaneSize}{\void} - -Returns the current minimum pane size (defaults to zero). - -\wxheading{See also} - -\helpref{wxSplitterWindow::SetMinimumPaneSize}{wxsplitterwindowsetminimumpanesize} - -\membersection{wxSplitterWindow::GetSashPosition}\label{wxsplitterwindowgetsashposition} - -\func{int}{GetSashPosition}{\void} - -Returns the current sash position. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SetSashPosition}{wxsplitterwindowsetsashposition} - -\membersection{wxSplitterWindow::GetSplitMode}\label{wxsplitterwindowgetsplitmode} - -\constfunc{int}{GetSplitMode}{\void} - -Gets the split mode. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SetSplitMode}{wxsplitterwindowsetsplitmode}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}. - -\membersection{wxSplitterWindow::GetWindow1}\label{wxsplitterwindowgetwindow1} - -\constfunc{wxWindow*}{GetWindow1}{\void} - -Returns the left/top or only pane. - -\membersection{wxSplitterWindow::GetWindow2}\label{wxsplitterwindowgetwindow2} - -\constfunc{wxWindow*}{GetWindow2}{\void} - -Returns the right/bottom pane. - -\membersection{wxSplitterWindow::Initialize}\label{wxsplitterwindowinitialize} - -\func{void}{Initialize}{\param{wxWindow* }{window}} - -Initializes the splitter window to have one pane. - -\wxheading{Parameters} - -\docparam{window}{The pane for the unsplit window.} - -\wxheading{Remarks} - -This should be called if you wish to initially view only a single pane in the splitter window. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally} - -\membersection{wxSplitterWindow::IsSplit}\label{wxsplitterwindowissplit} - -\constfunc{bool}{IsSplit}{\void} - -Returns TRUE if the window is split, FALSE otherwise. - -\membersection{wxSplitterWindow::OnDoubleClickSash}\label{wxsplitterwindowondoubleclicksash} - -\func{virtual void}{OnDoubleClickSash}{\param{int }{x}, \param{int }{y}} - -Application-overridable function called when the sash is double-clicked with -the left mouse button. - -\wxheading{Parameters} - -\docparam{x}{The x position of the mouse cursor.} - -\docparam{y}{The y position of the mouse cursor.} - -\wxheading{Remarks} - -The default implementation of this function calls \helpref{Unsplit}{wxsplitterwindowunsplit} if -the minimum pane size is zero. - -\wxheading{See also} - -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit} - -\membersection{wxSplitterWindow::OnUnsplit}\label{wxsplitterwindowonunsplit} - -\func{virtual void}{OnUnsplit}{\param{wxWindow* }{removed}} - -Application-overridable function called when the window is unsplit, either -programmatically or using the wxSplitterWindow user interface. - -\wxheading{Parameters} - -\docparam{removed}{The window being removed.} - -\wxheading{Remarks} - -The default implementation of this function simply hides {\it removed}. You -may wish to delete the window. - -\membersection{wxSplitterWindow::OnSashPositionChange}\label{wxsplitterwindowonsashpositionchange} - -\func{virtual bool}{OnSashPositionChange}{\param{int }{newSashPosition}} - -Application-overridable function called when the sash position is changed by -user. It may return FALSE to prevent the change or TRUE to allow it. - -\wxheading{Parameters} - -\docparam{newSashPosition}{The new sash position (always positive or zero)} - -\wxheading{Remarks} - -The default implementation of this function verifies that the sizes of both -panes of the splitter are greater than minimum pane size. - -\membersection{wxSplitterWindow::ReplaceWindow}\label{wxsplitterwindowreplacewindow} - -\func{bool}{ReplaceWindow}{\param{wxWindow * }{winOld}, \param{wxWindow * }{winNew}} - -This function replaces one of the windows managed by the wxSplitterWindow with -another one. It is in general better to use it instead of calling Unsplit() -and then resplitting the window back because it will provoke much less flicker -(if any). It is valid to call this function whether the splitter has two -windows or only one. - -Both parameters should be non NULL and {\it winOld} must specify one of the -windows managed by the splitter. If the parameters are incorrect or the window -couldn't be replaced, FALSE is returned. Otherwise the function will return -TRUE, but please notice that it will not delete the replaced window and you -may wish to do it yourself. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize} - -\wxheading{See also} - -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}\\ -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}\\ -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally} - -\membersection{wxSplitterWindow::SetSashPosition}\label{wxsplitterwindowsetsashposition} - -\func{void}{SetSashPosition}{\param{int }{position}, \param{const bool}{ redraw = TRUE}} - -Sets the sash position. - -\wxheading{Parameters} - -\docparam{position}{The sash position in pixels.} - -\docparam{redraw}{If TRUE, resizes the panes and redraws the sash and border.} - -\wxheading{Remarks} - -Does not currently check for an out-of-range value. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetSashPosition}{wxsplitterwindowgetsashposition} - -\membersection{wxSplitterWindow::SetMinimumPaneSize}\label{wxsplitterwindowsetminimumpanesize} - -\func{void}{SetMinimumPaneSize}{\param{int }{paneSize}} - -Sets the minimum pane size. - -\wxheading{Parameters} - -\docparam{paneSize}{Minimum pane size in pixels.} - -\wxheading{Remarks} - -The default minimum pane size is zero, which means that either pane can be reduced to zero by dragging -the sash, thus removing one of the panes. To prevent this behaviour (and veto out-of-range sash dragging), -set a minimum size, for example 20 pixels. If the wxSP\_PERMIT\_UNSPLIT style -is used when a splitter window is created, the window may be unsplit even -if minimum size is non-zero. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize} - -\membersection{wxSplitterWindow::SetSplitMode}\label{wxsplitterwindowsetsplitmode} - -\func{void}{SetSplitMode}{\param{int }{mode}} - -Sets the split mode. - -\wxheading{Parameters} - -\docparam{mode}{Can be wxSPLIT\_VERTICAL or wxSPLIT\_HORIZONTAL.} - -\wxheading{Remarks} - -Only sets the internal variable; does not update the display. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetSplitMode}{wxsplitterwindowgetsplitmode}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}. - -\membersection{wxSplitterWindow::SplitHorizontally}\label{wxsplitterwindowsplithorizontally} - -\func{bool}{SplitHorizontally}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2}, - \param{int}{ sashPosition = 0}} - -Initializes the top and bottom panes of the splitter window. - -\wxheading{Parameters} - -\docparam{window1}{The top pane.} - -\docparam{window2}{The bottom pane.} - -\docparam{sashPosition}{The initial position of the sash. If this value is -positive, it specifies the size of the upper pane. If it's negative, it's -absolute value gives the size of the lower pane. Finally, specify 0 (default) -to choose the default position (half of the total window height).} - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise (the window was already split). - -\wxheading{Remarks} - -This should be called if you wish to initially view two panes. It can also be -called at any subsequent time, but the application should check that the -window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit} - -\membersection{wxSplitterWindow::SplitVertically}\label{wxsplitterwindowsplitvertically} - -\func{bool}{SplitVertically}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2}, - \param{int}{ sashPosition = 0}} - -Initializes the left and right panes of the splitter window. - -\wxheading{Parameters} - -\docparam{window1}{The left pane.} - -\docparam{window2}{The right pane.} - -\docparam{sashPosition}{The initial position of the sash. If this value is -positive, it specifies the size of the left pane. If it's negative, it's -absolute value gives the size of the right pane. Finally, specify 0 (default) -to choose the default position (half of the total window width).} - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise (the window was already split). - -\wxheading{Remarks} - -This should be called if you wish to initially view two panes. It can also be called at any subsequent time, -but the application should check that the window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}. - -\membersection{wxSplitterWindow::Unsplit}\label{wxsplitterwindowunsplit} - -\func{bool}{Unsplit}{\param{wxWindow* }{toRemove = NULL}} - -Unsplits the window. - -\wxheading{Parameters} - -\docparam{toRemove}{The pane to remove, or NULL to remove the right or bottom pane.} - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise (the window was not split). - -\wxheading{Remarks} - -This call will not actually delete the pane being removed; it calls \helpref{OnUnsplit}{wxsplitterwindowonunsplit}\rtfsp -which can be overridden for the desired behaviour. By default, the pane being removed is hidden. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit}, \helpref{wxSplitterWindow::OnUnsplit}{wxsplitterwindowonunsplit} - diff --git a/docs/latex/wx/statbmp.tex b/docs/latex/wx/statbmp.tex deleted file mode 100644 index 47cbbe5094..0000000000 --- a/docs/latex/wx/statbmp.tex +++ /dev/null @@ -1,96 +0,0 @@ -\section{\class{wxStaticBitmap}}\label{wxstaticbitmap} - -A static bitmap control displays a bitmap. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no special styles for this control. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxStaticBitmap}{wxstaticbitmap}, \helpref{wxStaticBox}{wxstaticbox} - -\wxheading{Remarks} - -The bitmap to be displayed should have a small number of colours, such as 16, to avoid -palette problems. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStaticBitmap::wxStaticBitmap}\label{wxstaticbitmapconstr} - -\func{}{wxStaticBitmap}{\void} - -Default constructor. - -\func{}{wxStaticBitmap}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxBitmap\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}} - -Constructor, creating and showing a text control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Should not be NULL.} - -\docparam{id}{Control identifier. A value of -1 denotes a default value.} - -\docparam{label}{Bitmap label.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size.} - -\docparam{style}{Window style. See \helpref{wxStaticBitmap}{wxstaticbitmap}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticBitmap::Create}{wxstaticbitmapcreate} - -\membersection{wxStaticBitmap::Create}\label{wxstaticbitmapcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxBitmap\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}} - -Creation function, for two-step construction. For details see \helpref{wxStaticBitmap::wxStaticBitmap}{wxstaticbitmapconstr}. - -\membersection{wxStaticBitmap::GetBitmap}\label{wxstaticbitmapgetbitmap} - -\constfunc{wxBitmap\&}{GetBitmap}{\void} - -Returns a reference to the label bitmap. - -\wxheading{See also} - -\helpref{wxStaticBitmap::SetBitmap}{wxstaticbitmapsetbitmap} - -\membersection{wxStaticBitmap::SetBitmap}\label{wxstaticbitmapsetbitmap} - -\func{virtual void}{SetBitmap}{\param{const wxBitmap\& }{ label}} - -Sets the bitmap label. - -\wxheading{Parameters} - -\docparam{label}{The new bitmap.} - -\wxheading{See also} - -\docparam{wxStaticBitmap::GetBitmap}{wxstaticbitmapgetbitmap} - diff --git a/docs/latex/wx/statbox.tex b/docs/latex/wx/statbox.tex deleted file mode 100644 index e4c38bbe8a..0000000000 --- a/docs/latex/wx/statbox.tex +++ /dev/null @@ -1,76 +0,0 @@ -\section{\class{wxStaticBox}}\label{wxstaticbox} - -A static box is a rectangle drawn around other panel items to denote -a logical grouping of items. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no special styles for this control. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxStaticText}{wxstatictext} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStaticBox::wxStaticBox}\label{wxstaticboxconstr} - -\func{}{wxStaticBox}{\void} - -Default constructor. - -\func{}{wxStaticBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBox"}} - -Constructor, creating and showing a static box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{label}{Text to be displayed in the static box, the empty string for no label.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Checkbox size. If the size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxStaticBox}{wxstaticbox}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticBox::Create}{wxstaticboxcreate} - -\membersection{wxStaticBox::\destruct{wxStaticBox}} - -\func{void}{\destruct{wxStaticBox}}{\void} - -Destructor, destroying the group box. - -\membersection{wxStaticBox::Create}\label{wxstaticboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBox"}} - -Creates the static box for two-step construction. See \helpref{wxStaticBox::wxStaticBox}{wxstaticboxconstr}\rtfsp -for further details. - - diff --git a/docs/latex/wx/statline.tex b/docs/latex/wx/statline.tex deleted file mode 100644 index 3c506f9e72..0000000000 --- a/docs/latex/wx/statline.tex +++ /dev/null @@ -1,84 +0,0 @@ -\section{\class{wxStaticLine}}\label{wxstaticline} - -A static line is just a line which may be used in a dialog to separate the -groups of controls. The line may be only vertical or horizontal. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxLI\_HORIZONTAL}}{Creates a horizontal line.} -\twocolitem{\windowstyle{wxLI\_VERTICAL}}{Creates a vertical line.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxStaticBox}{wxstaticbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStaticLine::wxStaticLine}\label{wxstaticlinector} - -\func{}{wxStaticLine}{\void} - -Default constructor. - -\func{}{wxStaticLine}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxLI\_HORIZONTAL}, \param{const wxString\& }{name = ``staticLine"}} - -Constructor, creating and showing a static line. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Size. Note that either the height or the width (depending on -whether the line if horizontal or vertical) is ignored.} - -\docparam{style}{Window style (either wxLI\_HORIZONTAL or wxLI\_VERTICAL).} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticLine::Create}{wxstaticlinecreate} - -\membersection{wxStaticLine::Create}\label{wxstaticlinecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticLine"}} - -Creates the static line for two-step construction. See \helpref{wxStaticLine::wxStaticLine}{wxstaticlinector}\rtfsp -for further details. - -\membersection{wxStaticLine::IsVertical}\label{wxstaticlineisvertical} - -\constfunc{bool}{IsVertical}{\void} - -Returns TRUE if the line is vertical, FALSE if horizontal. - -\membersection{wxStaticLine::GetDefaultSize}\label{wxstaticlinegetdefaultsize} - -\func{int}{GetDefaultSize}{\void} - -This static function returns the size which will be given to the "lesser" -dimension of the static line, i.e. its height for a horizontal line or its -width for a vertical one. - diff --git a/docs/latex/wx/stattext.tex b/docs/latex/wx/stattext.tex deleted file mode 100644 index 81d1505b58..0000000000 --- a/docs/latex/wx/stattext.tex +++ /dev/null @@ -1,84 +0,0 @@ -\section{\class{wxStaticText}}\label{wxstatictext} - -A static text control displays one or more lines of read-only text. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -There are no special styles for this control. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxStaticBitmap}{wxstaticbitmap}, \helpref{wxStaticBox}{wxstaticbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStaticText::wxStaticText}\label{wxstatictextconstr} - -\func{}{wxStaticText}{\void} - -Default constructor. - -\func{}{wxStaticText}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}} - -Constructor, creating and showing a text control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Should not be NULL.} - -\docparam{id}{Control identifier. A value of -1 denotes a default value.} - -\docparam{label}{Text label.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size.} - -\docparam{style}{Window style. See \helpref{wxStaticText}{wxstatictext}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticText::Create}{wxstatictextcreate} - -\membersection{wxStaticText::Create}\label{wxstatictextcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}} - -Creation function, for two-step construction. For details see \helpref{wxStaticText::wxStaticText}{wxstatictextconstr}. - -\membersection{wxStaticText::GetLabel}\label{wxstatictextgetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the contents of the control. - -\membersection{wxStaticText::SetLabel}\label{wxstatictextsetlabel} - -\func{virtual void}{SetLabel}{\param{const wxString\& }{ label}} - -Sets the static text label. - -\wxheading{Parameters} - -\docparam{label}{The new label to set. It may contain newline characters.} - - diff --git a/docs/latex/wx/statusbr.tex b/docs/latex/wx/statusbr.tex deleted file mode 100644 index 13160da737..0000000000 --- a/docs/latex/wx/statusbr.tex +++ /dev/null @@ -1,255 +0,0 @@ -\section{\class{wxStatusBar}}\label{wxstatusbar} - -A status bar is a narrow window that can be placed along the bottom of a frame to give -small amounts of status information. It can contain one or more fields, one or more of which can -be variable length according to the size of the window. - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSB\_SIZEGRIP}}{On Windows 95, displays a gripper at right-hand side of -the status bar.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -It is possible to create controls and other windows on the status bar. Position these windows -from an {\bf OnSize} event handler. - -\wxheading{See also} - -\helpref{wxFrame}{wxframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStatusBar::wxStatusBar}\label{wxstatusbarconstr} - -\func{}{wxStatusBar}{\void} - -Default constructor. - -\func{}{wxStatusBar}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxString\& }{name = ``statusBar"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent, usually a frame.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxStatusBar}{wxstatusbar}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{See also} - -\helpref{wxStatusBar::Create}{wxstatusbarcreate} - -\membersection{wxStatusBar::\destruct{wxStatusBar}} - -\func{void}{\destruct{wxStatusBar}}{\void} - -Destructor. - -\membersection{wxStatusBar::Create}\label{wxstatusbarcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxString\& }{name = ``statusBar"}} - -Creates the window, for two-step construction. - -See \helpref{wxStatusBar::wxStatusBar}{wxstatusbarconstr} for details. - -\membersection{wxStatusBar::GetFieldRect}\label{wxstatusbargetfieldrect} - -\constfunc{virtual bool}{GetFieldRect}{\param{int}{ i}, \param{wxRect\&}{ rect}} - -Returns the size and position of a fields internal bounding rectangle. - -\wxheading{Parameters} - -\docparam{i}{The field in question.} - -\docparam{rect}{The rectangle values are placed in this variable.} - -\wxheading{Return value} - -TRUE if the field index is valid, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxRect}{wxrect} - -\membersection{wxStatusBar::GetFieldsCount}\label{wxstatusbargetfieldscount} - -\constfunc{int}{GetFieldsCount}{\void} - -Returns the number of fields in the status bar. - -\membersection{wxStatusBar::GetStatusText}\label{wxstatusbargetstatustext} - -\constfunc{virtual wxString}{GetStatusText}{\param{int}{ ir = 0}} - -Returns the string associated with a status bar field. - -\wxheading{Parameters} - -\docparam{i}{The number of the status field to retrieve, starting from zero.} - -\wxheading{Return value} - -The status field string if the field is valid, otherwise the empty string. - -\wxheading{See also} - -\helpref{wxStatusBar::SetStatusText}{wxstatusbarsetstatustext} - -\membersection{wxStatusBar::DrawField}\label{wxstatusbardrawfield} - -\func{virtual void}{DrawField}{\param{wxDC\& }{dc}, \param{int }{i}} - -Draws a field, including shaded borders and text. - -\wxheading{Parameters} - -\docparam{dc}{The device context to draw onto.} - -\docparam{i}{The field to be drawn.} - -\wxheading{See also} - -\helpref{wxStatusBar::DrawFieldText}{wxstatusbardrawfieldtext} - -\membersection{wxStatusBar::DrawFieldText}\label{wxstatusbardrawfieldtext} - -\func{virtual void}{DrawFieldText}{\param{wxDC\& }{dc}, \param{int }{i}} - -Draws a field's text. - -\wxheading{Parameters} - -\docparam{dc}{The device context to draw onto.} - -\docparam{i}{The field whose text is to be drawn.} - -\wxheading{See also} - -\helpref{wxStatusBar::DrawField}{wxstatusbardrawfield} - -\membersection{wxStatusBar::InitColours}\label{wxstatusbarinitcolours} - -\func{virtual void}{InitColours}{\void} - -Sets up the background colour and shading pens using suitable system colours (Windows) or tasteful shades -of grey (other platforms). - -\wxheading{Remarks} - -This function is called when the window is created, and also -from \helpref{wxStatusBar::OnSysColourChanged}{wxstatusbaronsyscolourchanged} on Windows. - -\wxheading{See also} - -\helpref{wxStatusBar::OnSysColourChanged}{wxstatusbaronsyscolourchanged} - -\membersection{wxStatusBar::OnSysColourChanged}\label{wxstatusbaronsyscolourchanged} - -\func{void}{OnSysColourChanged}{\param{wxSysColourChangedEvent\& }{event}} - -Handles a system colour change by calling \helpref{wxStatusBar::InitColours}{wxstatusbarinitcolours}, -and refreshes the window. - -\wxheading{Parameters} - -\docparam{event}{The colour change event.} - -\wxheading{See also} - -\helpref{wxStatusBar::InitColours}{wxstatusbarinitcolours} - -\membersection{wxStatusBar::SetFieldsCount}\label{wxstatusbarsetfieldscount} - -\func{virtual void}{SetFieldsCount}{\param{int}{ number = 1}, \param{int* }{widths = NULL}} - -Sets the number of fields, and optionally the field widths. - -\wxheading{Parameters} - -\docparam{number}{The number of fields.} - -\docparam{widths}{An array of {\it n} integers, each of which is a status field width -in pixels. A value of -1 indicates that the field is variable width; at least one -field must be -1.} - -\membersection{wxStatusBar::SetStatusText}\label{wxstatusbarsetstatustext} - -\func{virtual void}{SetStatusText}{\param{const wxString\& }{text}, \param{int}{ i = 0}} - -Sets the text for one field. - -\wxheading{Parameters} - -\docparam{text}{The text to be set. Use an empty string (``") to clear the field.} - -\docparam{i}{The field to set, starting from zero.} - -\wxheading{See also} - -\helpref{wxStatusBar::GetStatusText}{wxstatusbargetstatustext}, \helpref{wxFrame::SetStatusText}{wxframesetstatustext} - -\membersection{wxStatusBar::SetStatusWidths}\label{wxstatusbarsetstatuswidths} - -\func{virtual void}{SetStatusWidths}{\param{int}{ n}, \param{int *}{widths}} - -Sets the widths of the fields in the status line. - -\wxheading{Parameters} - -\docparam{n}{The number of fields in the status bar.} - -\docparam{widths}{Must contain an array of {\it n} integers, each of which is a status field width -in pixels. A value of -1 indicates that the field is variable width; at least one -field must be -1. You should delete this array after calling {\bf SetStatusWidths}.} - -\wxheading{Remarks} - -The widths of the variable fields are calculated from the total width of all fields, -minus the sum of widths of the non-variable fields, divided by the number of -variable fields. - -\wxheading{See also} - -\helpref{wxStatusBar::SetFieldsCount}{wxstatusbarsetfieldscount}, \helpref{wxFrame::SetStatusWidths}{wxframesetstatuswidths} - - diff --git a/docs/latex/wx/stream.tex b/docs/latex/wx/stream.tex deleted file mode 100644 index 981e244af3..0000000000 --- a/docs/latex/wx/stream.tex +++ /dev/null @@ -1,332 +0,0 @@ -\section{\class{wxStreamBuffer}}\label{wxstreambuffer} - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBase}{wxstreambase} - -% --------------------------------------------------------------------------- -% Members -% --------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxStreamBuffer::wxStreamBuffer}\label{wxstreambufconst} - -\func{}{wxStreamBuffer}{\param{wxStreamBase\&}{ stream}, \param{BufMode}{ mode}} - -Constructor, creates a new stream buffer using \it{stream} as a parent stream -and \it{mode} as the IO mode. \it{mode} can be: wxStreamBuffer::read, -wxStreamBuffer::write, wxStreamBuffer::read\_write. -One stream can have many stream buffers but only one is used internally to -pass IO call (e.g. wxInputStream::Read() -> wxStreamBuffer::Read()). But you -can call directly wxStreamBuffer::Read without any problems. - -\wxheading{Warning} - -All errors and messages linked to the stream are stored in the stream object. -\begin{verbatim} - streambuffer.Read(...); - streambuffer2.Read(...); /* This one erases previous error messages set by - ``streambuffer'' */ -\end{verbatim} - -\func{}{wxStreamBuffer}{\param{BufMode}{ mode}} - -Constructor, creates a new empty stream buffer which won't flush any data -to a stream. \it{mode} specifies the type of the buffer (read, write, read\_write). This stream buffer has the advantage to be stream independent and to -work only on memory buffers but it is still compatible with the rest of the -wxStream classes. You can write, read to this special stream and it will -grow (if it is allowed by the user) its internal buffer. Briefly, it has all -functionality of a ``normal'' stream. - -\wxheading{Warning} - -The "read\_write" mode may not work: it isn't completely finished. -You can create "memory" streams by this way: - -\begin{verbatim} - wxStreamBuffer *sb = new wxStreamBuffer(wxStreamBuffer::read) - wxInputStream *input = new wxInputStream(sb); - - sb->Fixed(FALSE); // It can change the size of the buffer. - - // input is now a read-only memory stream. -\end{verbatim} - -But you should take care when destroying the stream buffer yourself. - -\func{}{wxStreamBuffer}{\param{const wxStreamBuffer\&}{buffer}} - -Constructor. It initializes the stream buffer with the data of the specified -stream buffer. The new stream buffer is nearly exactly the same as the -original: it has the same attributes, the same size, the same position, shares -the same internal buffer. The interresting point is that they can differ -in the future but the root is the same. - -\wxheading{Warning} - -The fact that the two stream buffers shared the same buffer could generate -segmentation violation if the parent is destroyed and the children continues -operating. It is advised to use this feature only in very local area of the -program. - -\wxheading{See also} - -\helpref{wxStreamBuffer:SetBufferIO}{wxstreambuffersetbufferio} - -\membersection{wxStreamBuffer::\destruct{wxStreamBuffer}} - -\func{}{wxStreamBuffer}{\destruct{wxStreamBuffer}} - -Destructor. It finalizes all IO calls and frees all internal buffers if -necessary. In the case of a children stream buffer, the internal buffer isn't -freed, this is the job of the parent. -The "Write-Back" buffer is freed. - -% ----------- -% Filtered IO -% ----------- -\membersection{wxStreamBuffer::Read}\label{wxstreambufferread} - -\func{size\_t}{Read}{\param{void *}{buffer}, \param{size\_t }{size}} - -Reads a block of the specified \it{size} and stores datas in \it{buffer}. -This function uses also the "Write-Back" buffer: in the case there are datas -waiting in this buffer, they are used before anything else. After that, if there -are still datas to be read, the stream is read and the stream buffer position -is incremented. - -\wxheading{Return value} - -It returns the real read size. If returned size is different of the specified -\it{size}, an error occured and should be tested using -\helpref{LastError}{wxstreambaselasterror}. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Write}{wxstreambufferwrite} - -\func{size\_t}{Read}{\param{wxStreamBuffer *}{buffer}} - -Reads a \it{buffer}. The function returns when \it{buffer} is full or -when there aren't datas anymore in the current buffer. - -\membersection{wxStreamBuffer::Write}\label{wxstreambufferwrite} - -\func{size\_t}{Write}{\param{const void *}{buffer}, \param{size\_t }{size}} - -Writes a block of the specified \it{size} using datas of \it{buffer}. The datas -are cached in a buffer before being sent in one block to the stream. - -\func{size\_t}{Write}{\param{wxStreamBuffer *}{buffer}} - -See \helpref{Read}{wxstreambufferread}. - -\membersection{wxStreamBuffer::GetChar} - -\func{char}{GetChar}{\void} - -Gets a single char from the stream buffer. It acts like the Read call. - -\wxheading{Problem} - -You aren't directly notified if an error occured during the IO call. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Read}{wxstreambufferread} - -\membersection{wxStreamBuffer::PutChar} - -\func{void}{PutChar}{\param{char }{c}} - -Puts a single char to the stream buffer. - -\wxheading{Problem} - -You aren't directly notified if an error occured during the IO call. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Read}{wxstreambufferwrite} - -\membersection{wxStreamBuffer::Tell} - -\constfunc{off\_t}{Tell}{\void} - -Gets the current position in the stream. This position is calculated from -the \it{real} position in the stream and from the internal buffer position: so -it gives you the position in the \it{real} stream counted from the start of -the stream. - -\wxheading{Return value} - -Returns the current position in the stream if possible, wxInvalidOffset in the -other case. - -\membersection{wxStreamBuffer::Seek}\label{wxstreambufferseek} - -\func{off\_t}{Seek}{\param{off\_t }{pos}, \param{wxSeekMode }{mode}} - -Changes the current position. - -\it{mode} may be one of the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxFromStart}}{The position is counted from the start of the stream.} -\twocolitem{{\bf wxFromCurrent}}{The position is counted from the current position of the stream.} -\twocolitem{{\bf wxFromEnd}}{The position is counted from the end of the stream.} -\end{twocollist} - -\wxheading{Return value} - -Upon successful completion, it returns the new offset as measured in bytes from -the beginning of the stream. Otherwise, it returns wxInvalidOffset. - -% -------------- -% Buffer control -% -------------- -\membersection{wxStreamBuffer::ResetBuffer} - -\func{void}{ResetBuffer}{\void} - -Resets to the initial state variables concerning the buffer. - -\membersection{wxStreamBuffer::SetBufferIO}\label{wxstreambuffersetbufferio} - -\func{void}{SetBufferIO}{\param{char*}{ buffer\_start}, \param{char*}{ buffer\_end}} - -Specifies which pointers to use for stream buffering. You need to pass a pointer on the -start of the buffer end and another on the end. The object will use this buffer -to cache stream data. It may be used also as a source/destination buffer when -you create an empty stream buffer (See \helpref{wxStreamBuffer::wxStreamBuffer}{wxstreambufconst}). - -\wxheading{Remarks} - -When you use this function, you'll have to destroy the IO buffers yourself -after the stream buffer is destroyed or don't use it anymore. -In the case you use it with an empty buffer, the stream buffer will not grow -it when it is full. - -\wxheading{See also} - -\helpref{wxStreamBuffer constructor}{wxstreambufconst}\\ -\helpref{wxStreamBuffer::Fixed}{wxstreambufferfixed}\\ -\helpref{wxStreamBuffer::Flushable}{wxstreambufferflushable} - -\func{void}{SetBufferIO}{\param{size\_t}{ bufsize}} - -Destroys or invalidates the previous IO buffer and allocates a new one of the -specified size. - -\wxheading{Warning} - -All previous pointers aren't valid anymore. - -\wxheading{Remark} - -The created IO buffer is growable by the object. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Fixed}{wxstreambufferfixed}\\ -\helpref{wxStreamBuffer::Flushable}{wxstreambufferflushable} - -\membersection{wxStreamBuffer::GetBufferStart} - -\constfunc{char *}{GetBufferStart}{\void} - -Returns a pointer on the start of the stream buffer. - -\membersection{wxStreamBuffer::GetBufferEnd} - -\constfunc{char *}{GetBufferEnd}{\void} - -Returns a pointer on the end of the stream buffer. - -\membersection{wxStreamBuffer::GetBufferPos} - -\constfunc{char *}{GetBufferPos}{\void} - -Returns a pointer on the current position of the stream buffer. - -\membersection{wxStreamBuffer::GetIntPosition} - -\constfunc{off\_t}{GetIntPosition}{\void} - -Returns the current position (counted in bytes) in the stream buffer. - -\membersection{wxStreamBuffer::SetIntPosition} - -\func{void}{SetIntPosition}{\void} - -Sets the current position (in bytes) in the stream buffer. - -\wxheading{Warning} - -Since it is a very low-level function, there is no check on the position: -specify an invalid position can induce unexpected results. - -\membersection{wxStreamBuffer::GetLastAccess} - -\constfunc{size\_t}{GetLastAccess}{\void} - -Returns the amount of bytes read during the last IO call to the parent stream. - -\membersection{wxStreamBuffer::Fixed}\label{wxstreambufferfixed} - -\func{void}{Fixed}{\param{bool}{ fixed}} - -Toggles the fixed flag. Usually this flag is toggled at the same time as -\it{flushable}. This flag allows (when it has the FALSE value) or forbids -(when it has the TRUE value) the stream buffer to resize dynamically the IO buffer. - -\wxheading{See also} - -\helpref{wxStreamBuffer::SetBufferIO}{wxstreambuffersetbufferio} - -\membersection{wxStreamBuffer::Flushable}\label{wxstreambufferflushable} - -\func{void}{Flushable}{\param{bool}{ flushable}} - -Toggles the flushable flag. If \it{flushable} is disabled, no datas are sent -to the parent stream. - -\membersection{wxStreamBuffer::FlushBuffer} - -\func{bool}{FlushBuffer}{\void} - -Flushes the IO buffer. - -\membersection{wxStreamBuffer::FillBuffer} - -\func{bool}{FillBuffer}{\void} - -Fill the IO buffer. - -\membersection{wxStreamBuffer::GetDataLeft} - -\func{size\_t}{GetDataLeft}{\void} - -Returns the amount of available datas in the buffer. - -% -------------- -% Administration -% -------------- -\membersection{wxStreamBuffer::Stream} - -\func{wxStreamBase*}{Stream}{\void} - -Returns the parent stream of the stream buffer. - diff --git a/docs/latex/wx/strlist.tex b/docs/latex/wx/strlist.tex deleted file mode 100644 index 79b0a3880c..0000000000 --- a/docs/latex/wx/strlist.tex +++ /dev/null @@ -1,78 +0,0 @@ -\section{\class{wxStringList}}\label{wxstringlist} - -A string list is a list which is assumed to contain strings. -Memory is allocated when strings are added to -the list, and deallocated by the destructor or by the {\bf Delete}\rtfsp -member. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxString}{wxstring}, \helpref{wxList}{wxlist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStringList::wxStringList} - -\func{}{wxStringList}{\void} - -Constructor. - -\func{void}{wxStringList}{\param{char* }{first}, ...} - -Constructor, taking NULL-terminated string argument list. wxStringList -allocates memory for the strings. - -\membersection{wxStringList::\destruct{wxStringList}} - -\func{}{\destruct{wxStringList}}{\void} - -Deletes string list, deallocating strings. - -\membersection{wxStringList::Add} - -\func{wxNode *}{Add}{\param{const wxString\& }{s}} - -Adds string to list, allocating memory. - -\membersection{wxStringList::Clear} - -\func{void}{Clear}{\void} - -Clears all strings from the list. - -\membersection{wxStringList::Delete} - -\func{void}{Delete}{\param{const wxString\& }{s}} - -Searches for string and deletes from list, deallocating memory. - -\membersection{wxStringList::ListToArray} - -\func{char*}{ListToArray}{\param{bool}{ new\_copies = FALSE}} - -Converts the list to an array of strings, only allocating new memory if -\rtfsp{\bf new\_copies} is TRUE. - -\membersection{wxStringList::Member} - -\func{bool}{Member}{\param{const wxString\& }{s}} - -Returns TRUE if {\bf s} is a member of the list (tested using {\bf strcmp}). - -\membersection{wxStringList::Sort} - -\func{void}{Sort}{\void} - -Sorts the strings in ascending alphabetical order. Note that all nodes -(but not strings) get deallocated and new ones allocated. - - diff --git a/docs/latex/wx/strmbase.tex b/docs/latex/wx/strmbase.tex deleted file mode 100644 index 5cc9320525..0000000000 --- a/docs/latex/wx/strmbase.tex +++ /dev/null @@ -1,94 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxStreamBase -% ----------------------------------------------------------------------------- -\section{\class{wxStreamBase}}\label{wxstreambase} - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer} - -% ----------------------------------------------------------------------------- -% Members -% ----------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- - -\membersection{wxStreamBase::wxStreamBase} - -\func{}{wxStreamBase}{\void} - -Creates a dummy stream object. It doesn't do anything. - -\membersection{wxStreamBase::\destruct{wxStreamBase}} - -\func{}{\destruct{wxStreamBase}}{\void} - -Destructor. - -\membersection{wxStreamBase::LastError}\label{wxstreambaselasterror} - -\constfunc{wxStreamError}{LastError}{\void} - -This function returns the last error. -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxStream\_NOERROR}}{No error occured.} -\twocolitem{{\bf wxStream\_EOF}}{An End-Of-File occured.} -\twocolitem{{\bf wxStream\_WRITE\_ERR}}{A generic error occured on the last write call.} -\twocolitem{{\bf wxStream\_READ\_ERR}}{A generic error occured on the last read call.} -\end{twocollist} - -\membersection{wxStreamBase::OnSysRead}\label{wxstreambaseonsysread} - -\func{size\_t}{OnSysRead}{\param{void*}{ buffer}, \param{size\_t}{ bufsize}} - -Internal function. It is called when the stream buffer needs a buffer of the -specified size. It should return the size that was actually read. - -\membersection{wxStreamBase::OnSysSeek} - -\func{off\_t}{OnSysSeek}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode}} - -Internal function. It is called when the stream buffer needs to change the -current position in the stream. See \helpref{wxStreamBuffer::Seek}{wxstreambufferseek} - -\membersection{wxStreamBase::OnSysTell} - -\constfunc{off\_t}{OnSysTell}{\void} - -Internal function. Is is called when the stream buffer needs to know the -real position in the stream. - -\membersection{wxStreamBase::OnSysWrite} - -\func{size\_t}{OnSysWrite}{\param{void *}{buffer}, \param{size\_t}{ bufsize}} - -See \helpref{OnSysRead}{wxstreambaseonsysread}. - -\membersection{wxStreamBase::GetSize}\label{wxstreambasegetsize} - -\constfunc{size\_t}{GetSize}{\void} - -This function returns the size of the stream. For example, for a file it is the size of -the file). - -\wxheading{Warning} - -There are streams which do not have size by definition, such as socket streams. -In that cases, GetSize returns an invalid size represented by - -\begin{verbatim} -~(size_t)0 -\end{verbatim} - diff --git a/docs/latex/wx/strmbfrd.tex b/docs/latex/wx/strmbfrd.tex deleted file mode 100644 index fdbc3fa938..0000000000 --- a/docs/latex/wx/strmbfrd.tex +++ /dev/null @@ -1,47 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxBufferedInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxBufferedInputStream}}\label{wxbufferedinputstream} - -\wxheading{Derived from} - -\helpref{wxFilterInputStream}{wxfilterinputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxInputStream}{wxinputstream} - -\wxheading{Short description} - -This stream acts as a cache. It caches the bytes read from the specified -input stream (See \helpref{wxFilterInputStream}{wxfilterinputstream}). -It uses wxStreamBuffer and sets the default in-buffer size to 1024 bytes. - -% ----------------------------------------------------------------------------- -% wxBufferedOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxBufferedOutputStream}}\label{wxbufferedoutputstream} - -\wxheading{Derived from} - -\helpref{wxFilterOutputStream}{wxfilteroutputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxOutputStream}{wxoutputstream} - -\wxheading{Short description} - -This stream acts as a cache. It caches the bytes to be written to the specified -output stream (See \helpref{wxFilterOutputStream}{wxfilteroutputstream}). The -datas are only written when the cache is full or when the buffered stream is -destroyed. - diff --git a/docs/latex/wx/strmfile.tex b/docs/latex/wx/strmfile.tex deleted file mode 100644 index fdbf8bae08..0000000000 --- a/docs/latex/wx/strmfile.tex +++ /dev/null @@ -1,123 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFileInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFileInputStream}}\label{wxfileinputstream} - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileInputStream::wxFileInputStream} - -\func{}{wxFileInputStream}{\param{const wxString\&}{ ifileName}} - -Opens the specified file using its \it{ifilename} name in read-only mode. - -\func{}{wxFileInputStream}{\param{wxFile\&}{ file}} - -Initializes a file stream in read-only mode using the file I/O object \it{file}. - -\func{}{wxFileInputStream}{\param{int}{ fd}} - -Initializes a file stream in read-only mode using the specified file descriptor. - -\membersection{wxFileInputStream::\destruct{wxFileInputStream}} - -\func{}{\destruct{wxFileInputStream}}{\void} - -Destructor. - -\membersection{wxFileInputStream::Ok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if the stream is initialized and ready. - -% ----------------------------------------------------------------------------- -% wxFileOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFileOutputStream}}\label{wxfileoutputstream} - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileOutputStream::wxFileOutputStream} - -\func{}{wxFileOutputStream}{\param{const wxString\&}{ ofileName}} - -Creates a new file with \it{ofilename} name and initializes the stream in -write-only mode. - -\func{}{wxFileOutputStream}{\param{wxFile\&}{ file}} - -Initializes a file stream in write-only mode using the file I/O object \it{file}. - -\func{}{wxFileOutputStream}{\param{int}{ fd}} - -Initializes a file stream in write-only mode using the file descriptor \it{fd}. - -\membersection{wxFileOutputStream::\destruct{wxFileOutputStream}} - -\func{}{\destruct{wxFileOutputStream}}{\void} - -Destructor. - -\membersection{wxFileOutputStream::Ok} - -\constfunc{bool}{Ok}{\void} - -Returns TRUE if the stream is initialized and ready. - -% ----------------------------------------------------------------------------- -% wxFileStream -% ----------------------------------------------------------------------------- -\section{\class{wxFileStream}} - -\wxheading{Derived from} - -\helpref{wxFileOutputStream}{wxFileOutputStream}, \helpref{wxFileInputStream}{wxfileinputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileStream::wxFileStream} - -\func{}{wxFileStream}{\param{const wxString\&}{ iofileName}} - -Initializes a new file stream in read-write mode using the specified -\it{iofilename} name. - diff --git a/docs/latex/wx/strmmem.tex b/docs/latex/wx/strmmem.tex deleted file mode 100644 index 3892bf665d..0000000000 --- a/docs/latex/wx/strmmem.tex +++ /dev/null @@ -1,88 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxMemoryInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxMemoryInputStream}}\label{wxmeminputstream} - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMemoryInputStream::wxMemoryInputStream} - -\func{}{wxMemoryInputStream}{\param{const char *}{ data}, \param{size\_t}{ len}} - -Initializes a new read-only memory stream which will use the specified buffer -\it{data} of length \it{len}. - -\membersection{wxMemoryInputStream::\destruct{wxMemoryInputStream}} - -\func{}{\destruct{wxFileInputStream}}{\void} - -Destructor. - -% ----------------------------------------------------------------------------- -% wxMemoryOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxMemoryOutputStream}}\label{wxmemoutputstream} - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMemoryOutputStream::wxMemoryOutputStream} - -\func{}{wxMemoryOutputStream}{\param{char *}{ data = NULL}, \param{size\_t}{ length = 0}} - -If \it{data} is NULL, then it will initialize a new empty buffer which will -grow when it needs. - -\wxheading{Warning} - -If the buffer is created, it will be destroyed at the destruction of the -stream. - -\membersection{wxMemoryOutputStream::\destruct{wxMemoryOutputStream}} - -\func{}{\destruct{wxMemoryOutputStream}}{\void} - -Destructor. - -\membersection{wxMemoryOutputStream::CopyTo} - -\constfunc{size\_t}{CopyTo}{\param{char *}{buffer}, \param{size\_t }{len}} - -CopyTo allowed you to transfer data from the internal buffer of -wxMemoryOutputStream to an external buffer. \it{len} specifies the size of -the buffer. - -\wxheading{Returned value} - -CopyTo returns the number of bytes copied to the buffer. Generally it is either -len or the size of the stream buffer. - diff --git a/docs/latex/wx/strmsock.tex b/docs/latex/wx/strmsock.tex deleted file mode 100644 index b482964b18..0000000000 --- a/docs/latex/wx/strmsock.tex +++ /dev/null @@ -1,52 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxSocketInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxSocketInputStream}}\label{wxsocketinputstream} - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputStream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxSocketBase}{wxsocketbase} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSocketInputStream::wxSocketInputStream} - -\func{}{wxSocketInputStream}{\param{wxSocketBase\&}{ s}} - -Initializes a new read-only socket stream using the specified initialized -socket connection. - -% ----------------------------------------------------------------------------- -% wxSocketOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxSocketOutputStream}}\label{wxsocketoutputstream} - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputStream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxSocketBase}{wxsocketbase} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSocketOutputStream::wxSocketOutputStream} - -\func{}{wxSocketInputStream}{\param{wxSocketBase\&}{ s}} - -Initializes a new write-only socket stream using the specified initialized -socket connection. - diff --git a/docs/latex/wx/strmzlib.tex b/docs/latex/wx/strmzlib.tex deleted file mode 100644 index 30997ea0cc..0000000000 --- a/docs/latex/wx/strmzlib.tex +++ /dev/null @@ -1,44 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxZlibInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxZlibInputStream}}\label{wxzlibinputstream} - -\wxheading{Derived from} - -\helpref{wxFilterInputStream}{wxfilterinputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxInputStream}{wxinputstream} - -\wxheading{Short description} - -This stream uncompresses all data read from it. It uses the "filtered" -stream to get new compressed data. - -% ----------------------------------------------------------------------------- -% wxZlibOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxZlibOutputStream}}\label{wxzliboutputstream} - -\wxheading{Derived from} - -\helpref{wxFilterOutputStream}{wxfilteroutputstream} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxOutputStream}{wxoutputstream} - -\wxheading{Short description} - -This stream compresses all data written to it, and passes the compressed data -to the ``filtered'' stream. - diff --git a/docs/latex/wx/sysclevt.tex b/docs/latex/wx/sysclevt.tex deleted file mode 100644 index e0ff1959f7..0000000000 --- a/docs/latex/wx/sysclevt.tex +++ /dev/null @@ -1,44 +0,0 @@ -\section{\class{wxSysColourChangedEvent}}\label{wxsyscolourchangedevent} - -This class is used for system colour change events, which are generated -when the user changes the colour settings using the control panel. -This is only appropriate under Windows. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a system colour changed event, use this event handler macro to direct input to a member -function that takes a wxSysColourChanged argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SYS\_COLOUR\_CHANGED(func)}}{Process a wxEVT\_SYS\_COLOUR\_CHANGED event.} -\end{twocollist}% - -\wxheading{Remarks} - -The default event handler for this event propagates the event to child windows, since -Windows only sends the events to top-level windows. If -intercepting this event for a top-level window, remember to call the base class handler, -or to pass the event on to the window's children explicitly. - -\wxheading{See also} - -\helpref{wxWindow::OnSysColourChanged}{wxwindowonsyscolourchanged}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSysColourChangedEvent::wxSysColourChanged} - -\func{}{wxSysColourChanged}{\void} - -Constructor. - diff --git a/docs/latex/wx/tab.tex b/docs/latex/wx/tab.tex deleted file mode 100644 index 3c29182dca..0000000000 --- a/docs/latex/wx/tab.tex +++ /dev/null @@ -1,584 +0,0 @@ -\section{\class{wxTabbedDialog}}\label{wxtabbeddialog} - -A dialog suitable for handling tabs. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Tab classes overview}{wxtaboverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabbedDialog::wxTabbedDialog} - -\func{}{wxTabbedDialog}{\param{wxWindow *}{parent}, \param{wxWindowID }{id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size}, - \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{const wxString\& }{name="dialogBox"}} - -Constructor. - -\membersection{wxTabbedDialog::\destruct{wxTabbedDialog}} - -\func{}{\destruct{wxTabbedDialog}}{\void} - -Destructor. This destructor deletes the tab view associated with the dialog box. -If you do not wish this to happen, set the tab view to NULL before destruction (for example, -in the OnCloseWindow event handler). - -\membersection{wxTabbedDialog::SetTabView} - -\func{void}{SetTabView}{\param{wxTabView *}{view}} - -Sets the tab view associated with the dialog box. - -\membersection{wxTabbedDialog::GetTabView} - -\func{wxTabView *}{GetTabView}{\void} - -Returns the tab view associated with the dialog box. - -\section{\class{wxTabbedPanel}}\label{wxtabbedpanel} - -A panel suitable for handling tabs. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Tab classes overview}{wxtaboverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabbedPanel::wxTabbedPanel} - -\func{}{wxTabbedPanel}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id}, - \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size}, - \param{long}{ style=0}, \param{const wxString\& }{name="panel"}} - -Constructor. - -\membersection{wxTabbedPanel::SetTabView} - -\func{void}{SetTabView}{\param{wxTabView *}{view}} - -Sets the tab view associated with the panel. - -\membersection{wxTabbedPanel::GetTabView} - -\func{wxTabView *}{GetTabView}{\void} - -Returns the tab view associated with the panel. - -\section{\class{wxTabControl}}\label{wxtabcontrol} - -You will rarely need to use this class directly. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\overview{Tab classes overview}{wxtaboverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabControl::wxTabControl} - -\func{void}{wxTabControl}{\param{wxTabView *}{view = NULL}} - -Constructor. - -\membersection{wxTabControl::GetColPosition} - -\func{int}{GetColPosition}{\void} - -Returns the position of the tab in the tab column. - -\membersection{wxTabControl::GetFont} - -\func{wxFont *}{GetFont}{\void} - -Returns the font to be used for this tab. - -\membersection{wxTabControl::GetHeight} - -\func{int}{GetHeight}{\void} - -Returns the tab height. - -\membersection{wxTabControl::GetId} - -\func{int}{GetId}{\void} - -Returns the tab identifier. - -\membersection{wxTabControl::GetLabel} - -\func{wxString}{GetLabel}{\void} - -Returns the tab label. - -\membersection{wxTabControl::GetRowPosition} - -\func{int}{GetRowPosition}{\void} - -Returns the position of the tab in the layer or row. - -\membersection{wxTabControl::GetSelected} - -\func{bool}{GetSelected}{\void} - -Returns the selected flag. - -\membersection{wxTabControl::GetWidth} - -\func{int}{GetWidth}{\void} - -Returns the tab width. - -\membersection{wxTabControl::GetX} - -\func{int}{GetX}{\void} - -Returns the x offset from the top-left of the view area. - -\membersection{wxTabControl::GetY} - -\func{int}{GetY}{\void} - -Returns the y offset from the top-left of the view area. - -\membersection{wxTabControl::HitTest} - -\func{bool}{HitTest}{\param{int}{ x}, \param{int}{ y}} - -Returns TRUE if the point x, y is within the tab area. - -\membersection{wxTabControl::OnDraw} - -\func{void}{OnDraw}{\param{wxDC\& }{dc}, \param{bool}{ lastInRow}} - -Draws the tab control on the given device context. - -\membersection{wxTabControl::SetColPosition} - -\func{void}{SetColPosition}{\param{int}{ pos}} - -Sets the position in the column. - -\membersection{wxTabControl::SetFont} - -\func{void}{SetFont}{\param{wxFont *}{font}} - -Sets the font to be used for this tab. - -\membersection{wxTabControl::SetId} - -\func{void}{SetId}{\param{int}{ id}} - -Sets the tab identifier. - -\membersection{wxTabControl::SetLabel} - -\func{void}{SetLabel}{\param{const wxString\& }{str}} - -Sets the label for the tab. - -\membersection{wxTabControl::SetPosition} - -\func{void}{SetPosition}{\param{int}{ x}, \param{int}{ y}} - -Sets the x and y offsets for this tab, measured from the top-left of the view area. - -\membersection{wxTabControl::SetRowPosition} - -\func{void}{SetRowPosition}{\param{int}{ pos}} - -Sets the position on the layer (row). - -\membersection{wxTabControl::SetSelected} - -\func{void}{SetSelected}{\param{bool }{selected}} - -Sets the selection flag for this tab (does not set the current tab for the view; -use wxTabView::SetSelectedTab for that). - -\membersection{wxTabControl::SetSize} - -\func{void}{SetSize}{\param{int}{ width}, \param{int}{ height}} - -Sets the width and height for this tab. - -\section{\class{wxTabView}}\label{wxtabview} - -Responsible for drawing tabs onto a window, and dealing with input. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTabView overview}{wxtabviewoverview}, \helpref{wxPanelTabView}{wxpaneltabview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabView::wxTabView} - -\func{}{wxTabView}{\param{long }{style = wxTAB\_STYLE\_DRAW\_BOX \pipe wxTAB\_STYLE\_COLOUR\_INTERIOR}} - -Constructor. - -{\it style} may be a bit list of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTAB\_STYLE\_DRAW\_BOX}{Draw a box around the view area. Most commonly used for dialogs.} -\twocolitem{wxTAB\_STYLE\_COLOUR\_INTERIOR}{Draw tab backgrounds in the specified colour. Omitting this style -will ensure that the tab background matches the dialog background.} -\end{twocollist} - -\membersection{wxTabView::AddTab}\label{wxtabviewaddtab} - -\func{wxTabControl *}{AddTab}{\param{int}{ id}, \param{const wxString\& }{label}, \param{wxTabControl *}{existingTab=NULL}} - -Adds a tab to the view. - -{\it id} is the application-chosen identifier for the tab, which will be used in subsequent tab operations. - -{\it label} is the label to give the tab. - -{\it existingTab} maybe NULL to specify a new tab, or non-NULL to indicate that an existing tab should be used. - -A new layer (row) is started when the current layer has been filled up with tabs. - -\membersection{wxTabView::CalculateTabWidth}\label{wxtabviewcalculatetabwidth} - -\func{int}{CalculateTabWidth}{\param{int}{ noTabs}, \param{bool}{ adjustView = FALSE}} - -The application can specify the tab width using this function, in terms -of the number of tabs per layer (row) which will fit the view area, which -should have been set previously with SetViewRect. - -{\it noTabs} is the number of tabs which should take up the full width -of the view area. - -{\it adjustView} can be set to TRUE in order to readjust the view width -to exactly fit the given number of tabs. - -The new tab width is returned. - -\membersection{wxTabView::ClearTabs} - -\func{void}{ClearTabs}{\param{bool }{deleteTabs=TRUE}} - -Clears the tabs, deleting them if {\it deleteTabs} is TRUE. - -\membersection{wxTabView::Draw} - -\func{void}{Draw}{\param{wxDC\& }{dc}} - -Draws the tabs and (optionally) a box around the view area. - -\membersection{wxTabView::FindTabControlForId} - -\func{wxTabControl *}{FindTabControlForId}{\param{int}{ id}} - -Finds the wxTabControl corresponding to {\it id}. - -\membersection{wxTabView::FindTabControlForPosition} - -\func{wxTabControl *}{FindTabControlForPosition}{\param{int}{ layer}, \param{int}{ position}} - -Finds the wxTabControl at layer {\it layer}, position in layer {\it position}, both starting from -zero. Note that tabs change layer as they are selected or deselected. - -\membersection{wxTabView::GetBackgroundBrush} - -\func{wxBrush *}{GetBackgroundBrush}{\void} - -Returns the brush used to draw in the background colour. It is set when -SetBackgroundColour is called. - -\membersection{wxTabView::GetBackgroundColour} - -\func{wxColour}{GetBackgroundColour}{\void} - -Returns the colour used for each tab background. By default, this is -light grey. To ensure a match with the dialog or panel background, omit -the wxTAB\_STYLE\_COLOUR\_INTERIOR flag from the wxTabView constructor. - -\membersection{wxTabView::GetBackgroundPen} - -\func{wxPen *}{GetBackgroundPen}{\void} - -Returns the pen used to draw in the background colour. It is set when -SetBackgroundColour is called. - -\membersection{wxTabView::GetHighlightColour} - -\func{wxColour}{GetHighlightColour}{\void} - -Returns the colour used for bright highlights on the left side of `3D' surfaces. By default, this is white. - -\membersection{wxTabView::GetHighlightPen} - -\func{wxPen *}{GetHighlightPen}{\void} - -Returns the pen used to draw 3D effect highlights. This is set when -SetHighlightColour is called. - -\membersection{wxTabView::GetHorizontalTabOffset} - -\func{int}{GetHorizontalTabOffset}{\void} - -Returns the horizontal spacing by which each tab layer is offset from the one below. - -\membersection{wxTabView::GetNumberOfLayers} - -\func{int}{GetNumberOfLayers}{\void} - -Returns the number of layers (rows of tabs). - -\membersection{wxTabView::GetSelectedTabFont} - -\func{wxFont *}{GetSelectedTabFont}{\void} - -Returns the font to be used for the selected tab label. - -\membersection{wxTabView::GetShadowColour} - -\func{wxColour}{GetShadowColour}{\void} - -Returns the colour used for shadows on the right-hand side of `3D' surfaces. By default, this is dark grey. - -\membersection{wxTabView::GetTabHeight} - -\func{int}{GetTabHeight}{\void} - -Returns the tab default height. - -\membersection{wxTabView::GetTabFont} - -\func{wxFont *}{GetTabFont}{\void} - -Returns the tab label font. - -\membersection{wxTabView::GetTabSelectionHeight} - -\func{int}{GetTabSelectionHeight}{\void} - -Returns the height to be used for the currently selected tab; normally a few pixels -higher than the other tabs. - -\membersection{wxTabView::GetTabStyle} - -\func{long}{GetTabStyle}{\void} - -Returns the tab style. See constructor documentation for details of valid styles. - -\membersection{wxTabView::GetTabWidth} - -\func{int}{GetTabWidth}{\void} - -Returns the tab default width. - -\membersection{wxTabView::GetTextColour} - -\func{wxColour}{GetTextColour}{\void} - -Returns the colour used to draw label text. By default, this is -black. - -\membersection{wxTabView::GetTopMargin} - -\func{int}{GetTopMargin}{\void} - -Returns the height between the top of the view area and the bottom of the first -row of tabs. - -\membersection{wxTabView::GetShadowPen} - -\func{wxPen *}{GetShadowPen}{\void} - -Returns the pen used to draw 3D effect shadows. This is set when -SetShadowColour is called. - -\membersection{wxTabView::GetViewRect} - -\func{wxRectangle}{GetViewRect}{\void} - -Returns the rectangle specifying the view area (above which tabs are -placed). - -\membersection{wxTabView::GetVerticalTabTextSpacing} - -\func{int}{GetVerticalTabTextSpacing}{\void} - -Returns the vertical spacing between the top of an unselected tab, and the tab label. - -\membersection{wxTabView::GetWindow} - -\func{wwxWindow *}{GetWindow}{\void} - -Returns the window for the view. - -\membersection{wxTabView::OnCreateTabControl} - -\func{wxTabControl *}{OnCreateTabControl}{\void} - -Creates a new tab control. By default, this returns a wxTabControl object, but the application may wish -to define a derived class, in which case the tab view should be subclassed and this function overridden. - -\membersection{wxTabView::Layout} - -\func{void}{Layout}{\void} - -Recalculates the positions of the tabs, and adjusts the layer of the selected tab if necessary. - -You may want to call this function if the view width has changed (for example, from an OnSize handler). - -\membersection{wxTabView::OnEvent} - -\func{bool}{OnEvent}{\param{wxMouseEvent\& }{event}} - -Processes mouse events sent from the panel or dialog. Returns TRUE if the event was processed, -FALSE otherwise. - -\membersection{wxTabView::OnTabActivate} - -\func{void}{OnTabActivate}{\param{int}{ activateId}, \param{int}{ deactivateId}} - -Called when a tab is activated, with the new active tab id, and the former active tab id. - -\membersection{wxTabView::OnTabPreActivate} - -\func{bool}{OnTabPreActivate}{\param{int}{ activateId}, \param{int}{ deactivateId}} - -Called just before a tab is activated, with the new active tab id, and the former active tab id. - -If the function returns FALSE, the tab is not activated. - -\membersection{wxTabView::SetBackgroundColour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used for each tab background. By default, this is -light grey. To ensure a match with the dialog or panel background, omit -the wxTAB\_STYLE\_COLOUR\_INTERIOR flag from the wxTabView constructor. - -\membersection{wxTabView::SetHighlightColour} - -\func{void}{SetHighlightColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used for bright highlights on the left side of `3D' surfaces. By default, this is white. - -\membersection{wxTabView::SetHorizontalTabOffset} - -\func{void}{SetHorizontalTabOffset}{\param{int}{ offset}} - -Sets the horizontal spacing by which each tab layer is offset from the one below. - -\membersection{wxTabView::SetSelectedTabFont} - -\func{void}{SetSelectedTabFont}{\param{wxFont *}{font}} - -Sets the font to be used for the selected tab label. - -\membersection{wxTabView::SetShadowColour} - -\func{void}{SetShadowColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used for shadows on the right-hand side of `3D' surfaces. By default, this is dark grey. - -\membersection{wxTabView::SetTabFont} - -\func{void}{SetTabFont}{\param{wxFont *}{font}} - -Sets the tab label font. - -\membersection{wxTabView::SetTabStyle} - -\func{void}{SetTabStyle}{\param{long}{ tabStyle}} - -Sets the tab style. See constructor documentation for details of valid styles. - -\membersection{wxTabView::SetTabSize} - -\func{void}{SetTabSize}{\param{int}{ width}, \param{int}{ height}} - -Sets the tab default width and height. - -\membersection{wxTabView::SetTabSelectionHeight} - -\func{void}{SetTabSelectionHeight}{\param{int}{ height}} - -Sets the height to be used for the currently selected tab; normally a few pixels -higher than the other tabs. - -\membersection{wxTabView::SetTabSelection} - -\func{void}{SetTabSelection}{\param{int}{ sel}, \param{bool}{ activateTool=TRUE}} - -Sets the selected tab, calling the application's OnTabActivate function. - -If {\it activateTool} is FALSE, OnTabActivate will not be called. - -\membersection{wxTabView::SetTextColour} - -\func{void}{SetTextColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used to draw label text. By default, this is -black. - -\membersection{wxTabView::SetTopMargin} - -\func{void}{SetTopMargin}{\param{int}{ margin}} - -Sets the height between the top of the view area and the bottom of the first -row of tabs. - -\membersection{wxTabView::SetVerticalTabTextSpacing} - -\func{void}{SetVerticalTabTextSpacing}{\param{int}{ spacing}} - -Sets the vertical spacing between the top of an unselected tab, and the tab label. - -\membersection{wxTabView::SetViewRect}\label{wxtabviewsetviewrect} - -\func{void}{SetViewRect}{\param{const wxRectangle\& }{rect}} - -Sets the rectangle specifying the view area (above which tabs are -placed). This must be set by the application. - -\membersection{wxTabView::SetWindow} - -\func{void}{SetWindow}{\param{wxWindow *}{window}} - -Set the window that the tab view will use for drawing onto. - diff --git a/docs/latex/wx/tabctrl.tex b/docs/latex/wx/tabctrl.tex deleted file mode 100644 index cf23b6a41e..0000000000 --- a/docs/latex/wx/tabctrl.tex +++ /dev/null @@ -1,237 +0,0 @@ -\section{\class{wxTabCtrl}}\label{wxtabctrl} - -This class represents a tab control, which manages multiple tabs. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTabEvent}{wxtabevent}, \helpref{wxImageList}{wximagelist},\rtfsp -\helpref{wxNotebook}{wxnotebook} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabCtrl::wxTabCtrl}\label{wxtabctrlconstr} - -\func{}{wxTabCtrl}{\void} - -Default constructor. - -\func{}{wxTabCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "tabCtrl"}} - -Constructs a tab control. - -\wxheading{Parameters} - -\docparam{parent}{The parent window. Must be non-NULL.} - -\docparam{id}{The window identifier.} - -\docparam{pos}{The window position.} - -\docparam{size}{The window size.} - -\docparam{style}{The window style. Its value is a bit list of zero or more of {\bf wxTC\_MULTILINE}, - {\bf wxTC\_RIGHTJUSTIFY}, {\bf wxTC\_FIXEDWIDTH} and {\bf wxTC\_OWNERDRAW}.} - -\membersection{wxTabCtrl::\destruct{wxTabCtrl}} - -\func{}{\destruct{wxTabCtrl}}{\void} - -Destroys the wxTabCtrl object. - -\membersection{wxTabCtrl::Create}\label{wxtabctrlcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "tabCtrl"}} - -Creates a tab control. See \helpref{wxTabCtrl::wxTabCtrl}{wxtabctrlconstr} for a description -of the parameters. - -\membersection{wxTabCtrl::DeleteAllItems}\label{wxtabctrldeleteallitems} - -\func{bool}{DeleteAllItems}{\void} - -Deletes all tab items. - -\membersection{wxTabCtrl::DeleteItem}\label{wxtabctrldeleteitem} - -\func{bool}{DeleteItem}{\param{int}{ item}} - -Deletes the specified tab item. - -\membersection{wxTabCtrl::GetCurFocus}\label{wxtabctrlgetcurfocus} - -\constfunc{int}{GetCurFocus}{\void} - -Returns the index for the tab with the focus, or -1 if none has the focus. - -\membersection{wxTabCtrl::GetImageList}\label{wxtabctrlgetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\void} - -Returns the associated image list. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist}, \helpref{wxTabCtrl::SetImageList}{wxtabctrlsetimagelist} - -\membersection{wxTabCtrl::GetItemCount}\label{wxtabctrlgetitemcount} - -\constfunc{int}{GetItemCount}{\void} - -Returns the number of tabs in the tab control. - -\membersection{wxTabCtrl::GetItemData}\label{wxtabctrlgetitemdata} - -\constfunc{void*}{GetItemData}{\void} - -Returns the client data for the given tab. - -\membersection{wxTabCtrl::GetItemImage}\label{wxtabctrlgetitemimage} - -\constfunc{int}{GetItemImage}{\void} - -Returns the image index for the given tab. - -\membersection{wxTabCtrl::GetItemRect}\label{wxtabctrlgetitemrect} - -\constfunc{bool}{GetItemRect}{\param{int }{item}, \param{wxRect\&}{ rect}} - -Returns the rectangle bounding the given tab. - -\wxheading{See also} - -\helpref{wxRect}{wxrect} - -\membersection{wxTabCtrl::GetItemText}\label{wxtabctrlgetitemtext} - -\constfunc{wxString}{GetItemText}{\void} - -Returns the string for the given tab. - -\membersection{wxTabCtrl::GetRowCount}\label{wxtabctrlgetrowcount} - -\constfunc{int}{GetRowCount}{\void} - -Returns the number of rows in the tab control. - -\membersection{wxTabCtrl::GetSelection}\label{wxtabctrlgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the index for the currently selected tab. - -\wxheading{See also} - -\helpref{wxTabCtrl::SetSelection}{wxtabctrlsetselection} - -\membersection{wxTabCtrl::HitTest}\label{wxtabctrlhittest} - -\func{int}{HitTest}{\param{const wxPoint\&}{ pt}, \param{long\&}{ flags}} - -Tests whether a tab is at the specified position. - -\wxheading{Parameters} - -\docparam{pt}{Specifies the point for the hit test.} - -\docparam{flags}{Return value for detailed information. One of the following values: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTAB\_HITTEST\_NOWHERE}}{There was no tab under this point.} -\twocolitem{{\bf wxTAB\_HITTEST\_ONICON}}{The point was over an icon.} -\twocolitem{{\bf wxTAB\_HITTEST\_ONLABEL}}{The point was over a label.} -\twocolitem{{\bf wxTAB\_HITTEST\_ONITEM}}{The point was over an item, but not on the label or icon.} -\end{twocollist} -} - -\wxheading{Return value} - -Returns the zero-based tab index or -1 if no tab is at the specified position. - -\membersection{wxTabCtrl::InsertItem}\label{wxtabctrlinsertitem} - -\func{void}{InsertItem}{\param{int}{ item}, \param{const wxString\&}{ text}, \param{int }{imageId = -1}, - \param{void*}{ clientData = NULL}} - -Inserts a new tab. - -\wxheading{Parameters} - -\docparam{item}{Specifies the index for the new item.} - -\docparam{text}{Specifies the text for the new item.} - -\docparam{imageId}{Specifies the optional image index for the new item.} - -\docparam{clientData}{Specifies the optional client data for the new item.} - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\membersection{wxTabCtrl::SetItemData}\label{wxtabctrlsetitemdata} - -\func{bool}{SetItemData}{\param{int}{ item}, \param{void*}{ data}} - -Sets the client data for a tab. - -\membersection{wxTabCtrl::SetItemImage}\label{wxtabctrlsetitemimage} - -\func{bool}{SetItemImage}{\param{int}{ item}, \param{int }{image}} - -Sets the image index for the given tab. {\it image} is an index into -the image list which was set with \helpref{wxTabCtrl::SetImageList}{wxtabctrlsetimagelist}. - -\membersection{wxTabCtrl::SetImageList}\label{wxtabctrlsetimagelist} - -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}} - -Sets the image list for the tab control. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist} - -\membersection{wxTabCtrl::SetItemSize}\label{wxtabctrlsetitemsize} - -\func{void}{SetItemSize}{\param{const wxSize\&}{ size}} - -Sets the width and height of the tabs. - -\membersection{wxTabCtrl::SetItemText}\label{wxtabctrlsetitemtext} - -\func{bool}{SetItemText}{\param{int}{ item}, \param{const wxString\& }{text}} - -Sets the text for the given tab. - -\membersection{wxTabCtrl::SetPadding}\label{wxtabctrlsetpadding} - -\func{void}{SetPadding}{\param{const wxSize\&}{ padding}} - -Sets the amount of space around each tab's icon and label. - -\membersection{wxTabCtrl::SetSelection}\label{wxtabctrlsetselection} - -\func{int}{SetSelection}{\param{int}{ item}} - -Sets the selection for the given tab, returning the index of the previously -selected tab. Returns -1 if the call was unsuccessful. - -\wxheading{See also} - -\helpref{wxTabCtrl::GetSelection}{wxtabctrlgetselection} - - diff --git a/docs/latex/wx/tabevent.tex b/docs/latex/wx/tabevent.tex deleted file mode 100644 index c578812222..0000000000 --- a/docs/latex/wx/tabevent.tex +++ /dev/null @@ -1,41 +0,0 @@ -\section{\class{wxTabEvent}}\label{wxtabevent} - -This class represents the events generated by a tab control. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process a tab event, use these event handler macros to direct input to member -functions that take a wxTabEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TAB\_SEL\_CHANGED(id, func)}}{Process a wxEVT\_TAB\_SEL\_CHANGED event, indicating that -the tab selection has changed.} -\twocolitem{{\bf EVT\_TAB\_SEL\_CHANGING(id, func)}}{Process a wxEVT\_TAB\_SEL\_CHANGING event, indicating that -the tab selection is changing.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxTabCtrl}{wxtabctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabEvent::wxTabEvent}\label{wxtabeventconstr} - -\func{}{wxTabEvent}{\param{WXTYPE}{ commandType = 0}, \param{int}{ id = 0}} - -Constructor. - - diff --git a/docs/latex/wx/tapp.tex b/docs/latex/wx/tapp.tex deleted file mode 100644 index a53601eb98..0000000000 --- a/docs/latex/wx/tapp.tex +++ /dev/null @@ -1,56 +0,0 @@ -\section{wxApp overview}\label{wxappoverview} - -Classes: \helpref{wxApp}{wxapp} - -A wxWindows application does not have a {\it main} procedure; the equivalent is the -\rtfsp\helpref{OnInit}{wxapponinit} member defined for a class derived from wxApp.\rtfsp -\rtfsp{\it OnInit} will usually create a top window as a bare minimum. - -Unlike in earlier versions of wxWindows, OnInit does not return a frame. Instead it -returns a boolean value which indicates whether processing should continue (TRUE) or not (FALSE). -You call \helpref{wxApp::SetTopWindow}{wxappsettopwindow} to let wxWindows know -about the top window. - -Note that the program's command line arguments, represented by {\it -argc} and {\it argv}, are available from within wxApp member functions. - -An application closes by destroying all windows. Because all frames must -be destroyed for the application to exit, it is advisable to use parent -frames wherever possible when creating new frames, so that deleting the -top level frame will automatically delete child frames. The alternative -is to explicitly delete child frames in the top-level frame's \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow}\rtfsp -handler. - -In emergencies the \helpref{wxExit}{wxexit} function can be called to kill the -application. - -An example of defining an application follows: - -\begin{verbatim} -class DerivedApp : public wxApp -{ -public: - virtual bool OnInit(); -}; - -IMPLEMENT_APP(DerivedApp) - -bool DerivedApp::OnInit() -{ - wxFrame *the_frame = new wxFrame(NULL, argv[0]); - ... - SetTopWindow(the_frame); - - return TRUE; -} -\end{verbatim} - -Note the use of IMPLEMENT\_APP(appClass), which allows wxWindows to dynamically create an instance of the application object -at the appropriate point in wxWindows initialization. Previous versions of wxWindows used -to rely on the creation of a global application object, but this is no longer recommended, -because required global initialization may not have been performed at application object -construction time. - -You can also use DECLARE\_APP(appClass) in a header file to declare the wxGetApp function which returns -a reference to the application object. - diff --git a/docs/latex/wx/taskbar.tex b/docs/latex/wx/taskbar.tex deleted file mode 100644 index f5d9fa9ace..0000000000 --- a/docs/latex/wx/taskbar.tex +++ /dev/null @@ -1,94 +0,0 @@ -\section{\class{wxTaskBarIcon}}\label{wxtaskbaricon} - -This class represents a Windows 95 taskbar icon, appearing in the `system tray' and responding to -mouse clicks. An icon has an optional tooltip. This class is only supported for Windows 95/NT. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTaskBarIcon::wxTaskBarIcon}\label{wxtaskbariconconstr} - -\func{}{wxTaskBarIcon}{\void} - -Default constructor. - -\membersection{wxTaskBarIcon::\destruct{wxTaskBarIcon}} - -\func{}{\destruct{wxTaskBarIcon}}{\void} - -Destroys the wxTaskBarIcon object, removing the icon if not already removed. - -\membersection{wxTaskBarIcon::IsIconInstalled}\label{wxtaskbariconisiconinstalled} - -\func{bool}{IsIconInstalled}{\void} - -Returns TRUE if \helpref{SetIcon}{wxtaskbariconseticon} was called with no subsequent \helpref{RemoveIcon}{wxtaskbariconremoveicon}. - -\membersection{wxTaskBarIcon::IsOK}\label{wxtaskbariconisok} - -\func{bool}{IsOK}{\void} - -Returns TRUE if the object initialized successfully. - -\membersection{wxTaskBarIcon::OnLButtonDown}\label{wxtaskbaricononlbuttondown} - -\func{virtual void}{OnLButtonDown}{\void} - -Override this function to intercept left mouse button down events. - -\membersection{wxTaskBarIcon::OnLButtonDClick}\label{wxtaskbaricononlbuttondclick} - -\func{virtual void}{OnLButtonDClick}{\void} - -Override this function to intercept left mouse button double-click events. - -\membersection{wxTaskBarIcon::OnLButtonUp}\label{wxtaskbaricononlbuttonup} - -\func{virtual void}{OnLButtonUp}{\void} - -Override this function to intercept left mouse button up events. - -\membersection{wxTaskBarIcon::OnRButtonDown}\label{wxtaskbaricononrbuttondown} - -\func{virtual void}{OnRButtonDown}{\void} - -Override this function to intercept right mouse button down events. - -\membersection{wxTaskBarIcon::OnRButtonDClick}\label{wxtaskbaricononrbuttondclick} - -\func{virtual void}{OnRButtonDClick}{\void} - -Override this function to intercept right mouse button double-click events. - -\membersection{wxTaskBarIcon::OnRButtonUp}\label{wxtaskbaricononrbuttonup} - -\func{virtual void}{OnRButtonUp}{\void} - -Override this function to intercept right mouse button up events. - -\membersection{wxTaskBarIcon::OnMouseMove}\label{wxtaskbaricononmousemove} - -\func{virtual void}{OnMouseMove}{\void} - -Override this function to intercept mouse move events. - -\membersection{wxTaskBarIcon::RemoveIcon}\label{wxtaskbariconremoveicon} - -\func{bool}{RemoveIcon}{\void} - -Removes the icon previously set with \helpref{SetIcon}{wxtaskbariconseticon}. - -\membersection{wxTaskBarIcon::SetIcon}\label{wxtaskbariconseticon} - -\func{bool}{SetIcon}{\param{const wxIcon\&}{ icon}, \param{const wxString\& }{tooltip}} - -Sets the icon, and optional tooltip text. - - diff --git a/docs/latex/wx/tbitmap.tex b/docs/latex/wx/tbitmap.tex deleted file mode 100644 index bb9fa8717e..0000000000 --- a/docs/latex/wx/tbitmap.tex +++ /dev/null @@ -1,166 +0,0 @@ -\section{Bitmaps and icons overview}\label{wxbitmapoverview} - -Classes: \helpref{wxBitmap}{wxbitmap}, \helpref{wxBitmapHandler}{wxbitmaphandler}, \helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor}. - -The wxBitmap class encapsulates the concept of a platform-dependent bitmap, -either monochrome or colour. Platform-specific methods for creating a -wxBitmap object from an existing file are catered for, and -this is an occasion where conditional compilation will sometimes be -required. - -A bitmap created dynamically or loaded from a file can be selected -into a memory device context (instance of \helpref{wxMemoryDC}{wxmemorydc}). This -enables the bitmap to be copied to a window or memory device context -using \helpref{wxDC::Blit}{wxdcblit}, or to be used as a drawing surface. The {\bf -wxToolBarSimple} class is implemented using bitmaps, and the toolbar demo -shows one of the toolbar bitmaps being used for drawing a miniature -version of the graphic which appears on the main window. - -See \helpref{wxMemoryDC}{wxmemorydc} for an example of drawing onto a bitmap. - -The following shows the conditional compilation required to load a -bitmap under Unix and in Windows. The alternative is to use the string -version of the bitmap constructor, which loads a file under Unix and a -resource or file under Windows, but has the disadvantage of requiring the -XPM icon file to be available at run-time. - -\begin{verbatim} -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#endif -\end{verbatim} - -A macro, wxICON, is available which creates an icon using an XPM -on the appropriate platform, or an icon resource on Windows. - -\begin{verbatim} -wxIcon icon(wxICON(mondrian)); - -// Equivalent to: - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -wxIcon icon(mondrian_xpm); -#endif - -#if defined(__WXMSW__) -wxIcon icon("mondrian"); -#endif -\end{verbatim} - -\subsection{Supported bitmap file formats}\label{supportedbitmapformats} - -The following lists the formats handled on different platforms. Note -that missing or partially-implemented formats can be supplemented -by using \helpref{wxImage}{wximage} to load the data, and then converting -it to wxBitmap form. - -\wxheading{wxBitmap} - -Under Windows, wxBitmap may load the following formats: - -\begin{itemize}\itemsep=0pt -\item Windows bitmap resource (wxBITMAP\_TYPE\_BMP\_RESOURCE) -\item Windows bitmap file (wxBITMAP\_TYPE\_BMP) -\item PNG file (wxBITMAP\_TYPE\_PNG). Currently 4-bit (16-colour) PNG files do not load properly. -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\end{itemize} - -Under wxGTK, wxBitmap may load the following formats: - -\begin{itemize}\itemsep=0pt -\item Windows bitmap file (wxBITMAP\_TYPE\_BMP) -\item PNG (wxBITMAP\_TYPE\_PNG). -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\end{itemize} - -Under wxMotif, wxBitmap may load the following formats: - -\begin{itemize}\itemsep=0pt -%\item Windows bitmap file (wxBITMAP\_TYPE\_BMP) -%\item PNG (wxBITMAP\_TYPE\_PNG). -\item XBM data and file (wxBITMAP\_TYPE\_XBM) -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\end{itemize} - -\wxheading{wxIcon} - -Under Windows, wxIcon may load the following formats: - -\begin{itemize}\itemsep=0pt -\item Windows icon resource (wxBITMAP\_TYPE\_ICO\_RESOURCE) -\item Windows icon file (wxBITMAP\_TYPE\_ICO) -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\end{itemize} - -Under wxGTK, wxIcon may load the following formats: - -\begin{itemize}\itemsep=0pt -\item PNG (wxBITMAP\_TYPE\_PNG). -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\end{itemize} - -Under wxMotif, wxIcon may load the following formats: - -\begin{itemize}\itemsep=0pt -%\item Windows bitmap file (wxBITMAP\_TYPE\_BMP) -%\item PNG (wxBITMAP\_TYPE\_PNG). -\item XBM data and file (wxBITMAP\_TYPE\_XBM) -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\end{itemize} - -\wxheading{wxCursor} - -Under Windows, wxCursor may load the following formats: - -\begin{itemize}\itemsep=0pt -\item Windows cursor resource (wxBITMAP\_TYPE\_CUR\_RESOURCE) -\item Windows cursor file (wxBITMAP\_TYPE\_CUR) -\item Windows icon file (wxBITMAP\_TYPE\_ICO) -\item Windows bitmap file (wxBITMAP\_TYPE\_BMP) -\end{itemize} - -Under wxGTK, wxCursor may load the following formats (in additional -to stock cursors): - -\begin{itemize}\itemsep=0pt -\item None (stock cursors only). -\end{itemize} - -Under wxMotif, wxCursor may load the following formats: - -\begin{itemize}\itemsep=0pt -\item XBM data and file (wxBITMAP\_TYPE\_XBM) -\end{itemize} - -\subsection{Bitmap format handlers}\label{bitmaphandlers} - -To provide extensibility, the functionality for loading and saving bitmap formats -is not implemented in the wxBitmap class, but in a number of handler classes, -derived from wxBitmapHandler. There is a static list of handlers which wxBitmap -examines when a file load/save operation is requested. Some handlers are provided as standard, but if you -have special requirements, you may wish to initialise the wxBitmap class with -some extra handlers which you write yourself or receive from a third party. - -To add a handler object to wxBitmap, your application needs to include the header which implements it, and -then call the static function \helpref{wxBitmap::AddHandler}{wxbitmapaddhandler}. For example: - -{\small -\begin{verbatim} - #include - #include - ... - // Initialisation - wxBitmap::AddHandler(new wxPNGFileHandler); - wxBitmap::AddHandler(new wxXPMFileHandler); - wxBitmap::AddHandler(new wxXPMDataHandler); - ... -\end{verbatim} -} - -Assuming the handlers have been written correctly, you should now be able to load and save PNG files -and XPM files using the usual wxBitmap API. - -{\bf Note:} bitmap handlers are not implemented on all platforms. Currently, the above is only necessary on -Windows, to save the extra overhead of formats that may not be necessary (if you don't use them, they -are not linked into the executable). Unix platforms have PNG and XPM capability built-in (where supported). - diff --git a/docs/latex/wx/tcommdlg.tex b/docs/latex/wx/tcommdlg.tex deleted file mode 100644 index be0e6febb6..0000000000 --- a/docs/latex/wx/tcommdlg.tex +++ /dev/null @@ -1,213 +0,0 @@ -\section{Common dialogs overview}\label{commondialogsoverview} - -Classes: \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxFontDialog}{wxfontdialog}, -\rtfsp\helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxFileDialog}{wxfiledialog},\rtfsp -\helpref{wxDirDialog}{wxdirdialog}, \helpref{wxTextEntryDialog}{wxtextentrydialog},\rtfsp -\helpref{wxMessageDialog}{wxmessagedialog}, \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog},\rtfsp -\helpref{wxMultipleChoiceDialog}{wxmultiplechoicedialog} - -Common dialog classes and functions encapsulate commonly-needed dialog box requirements. -They are all `modal', grabbing the flow of control until the user dismisses the dialog, -to make them easy to use within an application. - -Some dialogs have both platform-dependent and platform-independent implementations, -so that if underlying windowing systems that do not provide the required functionality, -the generic classes and functions can stand in. For example, under MS Windows, wxColourDialog -uses the standard colour selector. There is also an equivalent called wxGenericColourDialog -for other platforms, and a macro defines wxColourDialog to be the same as wxGenericColourDialog -on non-MS Windows platforms. However, under MS Windows, the generic dialog can also be -used, for testing or other purposes. - -\subsection{wxColourDialog overview}\label{wxcolourdialogoverview} - -Classes: \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxColourData}{wxcolourdata} - -The wxColourDialog presents a colour selector to the user, and returns -with colour information. - -{\bf The MS Windows colour selector} - -Under Windows, the native colour selector common dialog is used. This -presents a dialog box with three main regions: at the top left, a -palette of 48 commonly-used colours is shown. Under this, there is a -palette of 16 `custom colours' which can be set by the application if -desired. Additionally, the user may open up the dialog box to show -a right-hand panel containing controls to select a precise colour, and add -it to the custom colour palette. - -{\bf The generic colour selector} - -Under non-MS Windows platforms, the colour selector is a simulation of -most of the features of the MS Windows selector. Two palettes of 48 -standard and 16 custom colours are presented, with the right-hand area -containing three sliders for the user to select a colour from red, -green and blue components. This colour may be added to the custom colour -palette, and will replace either the currently selected custom colour, -or the first one in the palette if none is selected. The RGB colour sliders -are not optional in the generic colour selector. The generic colour -selector is also available under MS Windows; use the name -wxGenericColourDialog. - -{\bf Example} - -In the samples/dialogs directory, there is an example of using -the wxColourDialog class. Here is an excerpt, which -sets various parameters of a wxColourData object, including -a grey scale for the custom colours. If the user did not cancel -the dialog, the application retrieves the selected colour and -uses it to set the background of a window. - -\begin{verbatim} - wxColourData data; - data.SetChooseFull(TRUE); - for (int i = 0; i < 16; i++) - { - wxColour colour(i*16, i*16, i*16); - data.SetCustomColour(i, colour); - } - - wxColourDialog dialog(this, &data); - if (dialog.ShowModal() == wxID_OK) - { - wxColourData retData = dialog.GetColourData(); - wxColour col = retData.GetColour(); - wxBrush brush(col, wxSOLID); - myWindow->SetBackground(brush); - myWindow->Clear(); - myWindow->Refresh(); - } -\end{verbatim} - - -\subsection{wxFontDialog overview}\label{wxfontdialogoverview} - -Classes: \helpref{wxFontDialog}{wxfontdialog}, \helpref{wxFontData}{wxfontdata} - -The wxFontDialog presents a font selector to the user, and returns -with font and colour information. - -{\bf The MS Windows font selector} - -Under Windows, the native font selector common dialog is used. This -presents a dialog box with controls for font name, point size, style, weight, -underlining, strikeout and text foreground colour. A sample of the -font is shown on a white area of the dialog box. Note that -in the translation from full MS Windows fonts to wxWindows font -conventions, strikeout is ignored and a font family (such as -Swiss or Modern) is deduced from the actual font name (such as Arial -or Courier). The full range of Windows fonts cannot be used in wxWindows -at present. - -{\bf The generic font selector} - -Under non-MS Windows platforms, the font selector is simpler. -Controls for font family, point size, style, weight, -underlining and text foreground colour are provided, and -a sample is shown upon a white background. The generic font selector -is also available under MS Windows; use the name wxGenericFontDialog. - -In both cases, the application is responsible for deleting the -new font returned from calling wxFontDialog::Show (if any). -This returned font is guaranteed to be a new object and not -one currently in use in the application. - -{\bf Example} - -In the samples/dialogs directory, there is an example of using -the wxFontDialog class. The application uses the returned font -and colour for drawing text on a canvas. Here is an excerpt: - -\begin{verbatim} - wxFontData data; - data.SetInitialFont(canvasFont); - data.SetColour(canvasTextColour); - - wxFontDialog dialog(this, &data); - if (dialog.ShowModal() == wxID_OK) - { - wxFontData retData = dialog.GetFontData(); - canvasFont = retData.GetChosenFont(); - canvasTextColour = retData.GetColour(); - myWindow->Refresh(); - } -\end{verbatim} - -\subsection{wxPrintDialog overview}\label{wxprintdialogoverview} - -Classes: \helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxPrintData}{wxprintdata} - -This class represents the print and print setup common dialogs. -You may obtain a \helpref{wxPrinterDC}{wxprinterdc} device context from -a successfully dismissed print dialog. - -The samples/printing example shows how to use it: see \helpref{Printing overview}{printingoverview} for -an excerpt from this example. - -\subsection{wxFileDialog overview}\label{wxfiledialogoverview} - -Classes: \helpref{wxFileDialog}{wxfiledialog} - -Pops up a file selector box. In Windows, this is the common file selector -dialog. In X, this is a file selector box with somewhat less functionality. -The path and filename are distinct elements of a full file pathname. -If path is ``", the current directory will be used. If filename is ``", -no default filename will be supplied. The wildcard determines what files -are displayed in the file selector, and file extension supplies a type -extension for the required filename. Flags may be a combination of wxOPEN, -wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0. They are only significant -at present in Windows. - -Both the X and Windows versions implement a wildcard filter. Typing a -filename containing wildcards (*, ?) in the filename text item, and -clicking on Ok, will result in only those files matching the pattern being -displayed. In the X version, supplying no default name will result in the -wildcard filter being inserted in the filename text item; the filter is -ignored if a default name is supplied. - -Under Windows (only), the wildcard may be a specification for multiple -types of file with a description for each, such as: - -\begin{verbatim} - "BMP files (*.bmp) | *.bmp | GIF files (*.gif) | *.gif" -\end{verbatim} - -\subsection{wxDirDialog overview}\label{wxdirdialogoverview} - -Classes: \helpref{wxDirDialog}{wxdirdialog} - -This dialog shows a directory selector dialog, allowing the user to select a single -directory. - -\subsection{wxTextEntryDialog overview}\label{wxtextentrydialogoverview} - -Classes: \helpref{wxTextEntryDialog}{wxtextentrydialog} - -This is a dialog with a text entry field. The value that the user -entered is obtained using \helpref{wxTextEntryDialog::GetValue}{wxtextentrydialoggetvalue}. - -\subsection{wxMessageDialog overview}\label{wxmessagedialogoverview} - -Classes: \helpref{wxMessageDialog}{wxmessagedialog} - -This dialog shows a message, plus buttons that can be chosen from OK, Cancel, Yes, and No. -Under Windows, an optional icon can be shown, such as an exclamation mark or question mark. - -The return value of \helpref{wxMessageDialog::ShowModal}{wxmessagedialogshowmodal} indicates -which button the user pressed. - -\subsection{wxSingleChoiceDialog overview}\label{wxsinglechoicedialogoverview} - -Classes: \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog} - -This dialog shows a list of choices, plus OK and (optionally) Cancel. The user can -select one of them. The selection can be obtained from the dialog as an index, -a string or client data. - -\subsection{wxMultipleChoiceDialog overview}\label{wxmultiplechoicedialogoverview} - -Classes: \helpref{wxMultipleChoiceDialog}{wxmultiplechoicedialog} - -This dialog shows a list of choices, plus OK and (optionally) Cancel. The user can -select one or more of them. - - diff --git a/docs/latex/wx/tconfig.tex b/docs/latex/wx/tconfig.tex deleted file mode 100644 index 6baf8c59a5..0000000000 --- a/docs/latex/wx/tconfig.tex +++ /dev/null @@ -1,51 +0,0 @@ -\section{Config classes overview}\label{wxconfigoverview} - -Classes: \helpref{wxConfig}{wxconfigbase} - -This overview briefly describes what the config classes are and what they are -for. All the details about how to use them may be found in the description of -the \helpref{wxConfigBase}{wxconfigbase} class and the documentation of the -file, registry and INI file based implementations mentions all the -features/limitations specific to each one of these versions. - -The config classes provide a way to store some application configuration -information. They were especially designed for this usage and, although may -probably be used for many other things as well, should be limited to it. It -means that this information should be: - -\begin{enumerate} -\item Typed, i.e. strings or numbers for the moment. You can not store -binary data, for example. -\item Small. For instance, it is not recommended to use the Windows -registry for amounts of data more than a couple of kilobytes. -\item Not performance critical, neither from speed nor from a memory -consumption point of view. -\end{enumerate} - -On the other hand, the features provided make them very useful for storing all -kinds of small to medium volumes of hierarchically-organized, heterogenous -data. In short, this is a place where you can conveniently stuff all your data -(numbers and strings) organizing it in a tree where you use the -filesystem-like paths to specify the location of a piece of data. In -particular, these classes were designed to be as easy to use as possible. - -From another point of view, they provide an interface which hides the -differences between the Windows registry and the standard Unix text format -configuration files. Other (future) implementations of wxConfigBase might also -understand GTK resource files or their analogues on the KDE side. - -In any case, each implementation of wxConfigBase does its best to -make the data look the same way everywhere. Due -to the limitations of the underlying physical storage as in the case of -wxIniConfig, it may not implement 100\% of the base class functionality. - -There are groups of entries and the entries themselves. Each entry contains either a string or a number -(or a boolean value; support for other types of data such as dates or -timestamps is planned) and is identified by the full path to it: something -like /MyApp/UserPreferences/Colors/Foreground. The previous elements in the -path are the group names, and each name may contain an arbitrary number of entries -and subgroups. The path components are {\bf always} separated with a slash, -even though some implementations use the backslash internally. Further -details (including how to read/write these entries) may be found in -the documentation for \helpref{wxConfigBase}{wxconfigbase}. - diff --git a/docs/latex/wx/tconstr.tex b/docs/latex/wx/tconstr.tex deleted file mode 100644 index 4d14c3dff0..0000000000 --- a/docs/latex/wx/tconstr.tex +++ /dev/null @@ -1,174 +0,0 @@ -\section{Constraints overview}\label{constraintsoverview} - -Classes: \helpref{wxLayoutConstraints}{wxlayoutconstraints}, \helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}. - -Objects of class wxLayoutConstraint can be associated with a window to define the -way its subwindows are laid out, with respect to their siblings or parent. - -The class consists of the following eight constraints of class wxIndividualLayoutConstraint, -some or all of which should be accessed directly to set the appropriate -constraints. - -\begin{itemize}\itemsep=0pt -\item {\bf left:} represents the left hand edge of the window -\item {\bf right:} represents the right hand edge of the window -\item {\bf top:} represents the top edge of the window -\item {\bf bottom:} represents the bottom edge of the window -\item {\bf width:} represents the width of the window -\item {\bf height:} represents the height of the window -\item {\bf centreX:} represents the horizontal centre point of the window -\item {\bf centreY:} represents the vertical centre point of the window -\end{itemize} - -The constraints are initially set to have the relationship wxUnconstrained, -which means that their values should be calculated by looking at known constraints. -To calculate the position and size of the control, the layout algorithm needs to -know exactly 4 constraints (as it has 4 numbers to calculate from them), so you -should always set exactly 4 of the constraints from the above table. - -If you want the controls height or width to have the default value, you may use -a special value for the constraint: wxAsIs. If the constraint is wxAsIs, the -dimension will not be changed which is useful for the dialog controls which -often have the default size (e.g. the buttons whose size is determined by their -label). - -The constrains calculation is done in \helpref{wxWindow::Layout}{wxwindowlayout} -function which evaluates constraints. To call it you can either call -wxWindow::SetAutoLayout to tell default OnSize handlers to call Layout -automatically whenever the window size changes, or override OnSize and call Layout -yourself. - -\subsection{Constraint layout: more detail} - -By default, windows do not have a wxLayoutConstraints object. In this case, much layout -must be done explicitly, by performing calculations in OnSize members, except -for the case of frames that have exactly one subwindow (not counting toolbar and -statusbar which are also positioned by the frame automatically), where wxFrame::OnSize -takes care of resizing the child to always fill the frame. - -To avoid the need for these rather awkward calculations, the user can create -a wxLayoutConstraints object and associate it with a window with wxWindow::SetConstraints. -This object contains a constraint for each of the window edges, two for the centre point, -and two for the window size. By setting some or all of these constraints appropriately, -the user can achieve quite complex layout by defining relationships between windows. - -In wxWindows, each window can be constrained relative to either its {\it -siblings} on the same window, or the {\it parent}. The layout algorithm -therefore operates in a top-down manner, finding the correct layout for -the children of a window, then the layout for the grandchildren, and so -on. Note that this differs markedly from native Motif layout, where -constraints can ripple upwards and can eventually change the frame -window or dialog box size. We assume in wxWindows that the {\it user} is -always `boss' and specifies the size of the outer window, to which -subwindows must conform. Obviously, this might be a limitation in some -circumstances, but it suffices for most situations, and the -simplification avoids some of the nightmarish problems associated with -programming Motif. - -When the user sets constraints, many of the constraints for windows -edges and dimensions remain unconstrained. For a given window, -the wxWindow::Layout algorithm first resets all constraints -in all children to have unknown edge or dimension values, and then iterates through the constraints, -evaulating them. For unconstrained edges and dimensions, it -tries to find the value using known relationships that always hold. For example, -an unconstrained {\it width} may be calculated from the {\it left} and {\it right edges}, if -both are currently known. For edges and dimensions with user-supplied constraints, these -constraints are evaulated if the inputs of the constraint are known. - -The algorithm stops when all child edges and dimension are known (success), or there -there are unknown edges or dimensions but there has been no change in this cycle (failure). - -It then sets all the window positions and sizes according to the values it has found. - -Because the algorithm is iterative, the order in which constraints are considered is -irrelevant, however you may reduce the number of iterations (and thus speed up -the layout calculations) by creating the controls in such order that as many -constraints as possible can be calculated during the first iteration. For example, if -you have 2 buttons which you'd like to position in the lower right corner, it is -slighty more efficient to first create the second button and specify that its -right border IsSameAs(parent, wxRight) and then create the first one by -specifying that it should be LeftOf() the second one than to do in a more -natural left-to-right order. - -\subsection{Window layout examples}\label{layoutexamples} - -\subsubsection{Example 1: subwindow layout} - -This example specifies a panel and a window side by side, -with a text subwindow below it. - -\begin{verbatim} - frame->panel = new wxPanel(frame, -1, wxPoint(0, 0), wxSize(1000, 500), 0); - frame->scrollWindow = new MyScrolledWindow(frame, -1, wxPoint(0, 0), wxSize(400, 400), wxRETAINED); - frame->text_window = new MyTextWindow(frame, -1, wxPoint(0, 250), wxSize(400, 250)); - - // Set constraints for panel subwindow - wxLayoutConstraints *c1 = new wxLayoutConstraints; - - c1->left.SameAs (frame, wxLeft); - c1->top.SameAs (frame, wxTop); - c1->right.PercentOf (frame, wxWidth, 50); - c1->height.PercentOf (frame, wxHeight, 50); - - frame->panel->SetConstraints(c1); - - // Set constraints for scrollWindow subwindow - wxLayoutConstraints *c2 = new wxLayoutConstraints; - - c2->left.SameAs (frame->panel, wxRight); - c2->top.SameAs (frame, wxTop); - c2->right.SameAs (frame, wxRight); - c2->height.PercentOf (frame, wxHeight, 50); - - frame->scrollWindow->SetConstraints(c2); - - // Set constraints for text subwindow - wxLayoutConstraints *c3 = new wxLayoutConstraints; - c3->left.SameAs (frame, wxLeft); - c3->top.Below (frame->panel); - c3->right.SameAs (frame, wxRight); - c3->bottom.SameAs (frame, wxBottom); - - frame->text_window->SetConstraints(c3); -\end{verbatim} - -\subsubsection{Example 2: panel item layout} - -This example sizes a button width to 80 percent of the panel width, and centres -it horizontally. A listbox and multitext item are placed below it. The listbox -takes up 40 percent of the panel width, and the multitext item takes up -the remainder of the width. Margins of 5 pixels are used. - -\begin{verbatim} - // Create some panel items - wxButton *btn1 = new wxButton(frame->panel, -1, "A button") ; - - wxLayoutConstraints *b1 = new wxLayoutConstraints; - b1->centreX.SameAs (frame->panel, wxCentreX); - b1->top.SameAs (frame->panel, wxTop, 5); - b1->width.PercentOf (frame->panel, wxWidth, 80); - b1->height.PercentOf (frame->panel, wxHeight, 10); - btn1->SetConstraints(b1); - - wxListBox *list = new wxListBox(frame->panel, -1, "A list", - wxPoint(-1, -1), wxSize(200, 100)); - - wxLayoutConstraints *b2 = new wxLayoutConstraints; - b2->top.Below (btn1, 5); - b2->left.SameAs (frame->panel, wxLeft, 5); - b2->width.PercentOf (frame->panel, wxWidth, 40); - b2->bottom.SameAs (frame->panel, wxBottom, 5); - list->SetConstraints(b2); - - wxTextCtrl *mtext = new wxTextCtrl(frame->panel, -1, "Multiline text", "Some text", - wxPoint(-1, -1), wxSize(150, 100), wxTE_MULTILINE); - - wxLayoutConstraints *b3 = new wxLayoutConstraints; - b3->top.Below (btn1, 5); - b3->left.RightOf (list, 5); - b3->right.SameAs (frame->panel, wxRight, 5); - b3->bottom.SameAs (frame->panel, wxBottom, 5); - mtext->SetConstraints(b3); -\end{verbatim} - - diff --git a/docs/latex/wx/tcontain.tex b/docs/latex/wx/tcontain.tex deleted file mode 100644 index c2e7364f36..0000000000 --- a/docs/latex/wx/tcontain.tex +++ /dev/null @@ -1,59 +0,0 @@ -\section{Container classes overview}\label{wxcontaineroverview} - -Classes: \helpref{wxList}{wxlist}, \helpref{wxArray}{wxarray} - -wxWindows uses itself several container classes including doubly-linked lists -and dynamic arrays (i.e. arrays which expand automatically when they become -full). For both historical and portability reasons wxWindows does not -use STL which provides the standard implementation of many container classes in -C++. First of all, wxWindows has existed since well before STL was written, and -secondly we don't believe that today compilers can deal really well with all of -STL classes (this is especially true for some less common platforms). Of -course, the compilers are evolving quite rapidly and hopefully their progress -will allow to base future versions of wxWindows on STL - but this is not yet -the case. - -wxWindows container classes don't pretend to be as powerful or full as STL -ones, but they are quite useful and may be compiled with absolutely any C++ -compiler. They're used internally by wxWindows, but may, of course, be used in -your programs as well if you wish. - -The list classes in wxWindows are doubly-linked lists which may either own the -objects they contain (meaning that the list deletes the object when it is -removed from the list or the list itself is destroyed) or just store the -pointers depending on whether you called or not -\helpref{wxList::DeleteContents}{wxlistdeletecontents} method. - -Dynamic arrays resemble C arrays but with two important differences: they -provide run-time range checking in debug builds and they expand automatically -the allocated memory when there is no more space for new items. They come in -two sorts: the "plain" arrays which store either built-in types such as "char", -"int" or "bool" or the pointers to arbitrary objects, or "object arrays" which -own the object pointers to which they store. - -For the same portability reasons, the container classes implementation in wxWindows -does not use templates, but is rather based on C preprocessor i.e. is done with -the macros: {\it WX\_DECLARE\_LIST} and {\it WX\_DEFINE\_LIST} for the linked -lists and {\it WX\_DECLARE\_ARRAY}, {\it WX\_DECLARE\_OBJARRAY} and {\it WX\_DEFINE\_OBJARRAY} for -the dynamic arrays. The "DECLARE" macro declares a -new container class containing the elements of given type and is needed for all -three types of container classes: lists, arrays and objarrays. The "DEFINE" -classes must be inserted in your program in a place where the {\bf full -declaration of container element class is in scope} (i.e. not just forward -declaration), otherwise destructors of the container elements will not be -called! As array classes never delete the items they contain anyhow, there is -no WX\_DEFINE\_ARRAY macro for them. - -Examples of usage of these macros may be found in \helpref{wxList}{wxlist} and -\helpref{wxArray}{wxarray} documentation. - -Finally, wxWindows predefines several commonly used container classes. wxList -is defined for compatibility with previous versions as a list containing -wxObjects and wxStringList as a list of C-style strings (char *), both of these -classes are deprecated and should not be used in new programs. The following -array classes are defined: wxArrayInt, wxArrayLong, wxArrayPtrVoid and -wxArrayString. The first three store elements of corresponding types, but -wxArrayString is somewhat special: it is an optimized version of wxArray which -uses its knowledge about \helpref{wxString}{wxstring} reference counting -schema. - diff --git a/docs/latex/wx/tcpclint.tex b/docs/latex/wx/tcpclint.tex deleted file mode 100644 index 40ae1dc631..0000000000 --- a/docs/latex/wx/tcpclint.tex +++ /dev/null @@ -1,68 +0,0 @@ -\section{\class{wxTCPClient}}\label{wxtcpclient} - -A wxTCPClient object represents the client part of a client-server conversation. -It emulates a DDE-style protocol, but uses TCP/IP which is available on most platforms. - -A DDE-based implementation for Windows is available using \helpref{wxDDEClient}{wxddeclient}. - -To create a client which can communicate with a suitable server, -you need to derive a class from wxTCPConnection and another from wxTCPClient. -The custom wxTCPConnection class will intercept communications in -a `conversation' with a server, and the custom wxTCPServer is required -so that a user-overriden \helpref{wxTCPClient::OnMakeConnection}{wxtcpclientonmakeconnection} member can return -a wxTCPConnection of the required class, when a connection is made. - -\wxheading{Derived from} - -wxClientBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTCPServer}{wxtcpserver}, \helpref{wxTCPConnection}{wxtcpconnection}, -\helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTCPClient::wxTCPClient} - -\func{}{wxTCPClient}{\void} - -Constructs a client object. - -\membersection{wxTCPClient::MakeConnection}\label{wxtcpclientmakeconnection} - -\func{wxConnectionBase *}{MakeConnection}{\param{const wxString\& }{host}, \param{const wxString\& }{service}, \param{const wxString\& }{topic}} - -Tries to make a connection with a server specified by the host -(a machine name under Unix), service name (must -contain an integer port number under Unix), and a topic string. If the -server allows a connection, a wxTCPConnection object will be returned. -The type of wxTCPConnection returned can be altered by overriding -the \helpref{wxTCPClient::OnMakeConnection}{wxtcpclientonmakeconnection} member to return your own -derived connection object. - -\membersection{wxTCPClient::OnMakeConnection}\label{wxtcpclientonmakeconnection} - -\func{wxConnectionBase *}{OnMakeConnection}{\void} - -The type of \helpref{wxTCPConnection}{wxtcpconnection} returned from a \helpref{wxTCPClient::MakeConnection}{wxtcpclientmakeconnection} call can -be altered by deriving the {\bf OnMakeConnection} member to return your -own derived connection object. By default, a wxTCPConnection -object is returned. - -The advantage of deriving your own connection class is that it will -enable you to intercept messages initiated by the server, such -as \helpref{wxTCPConnection::OnAdvise}{wxtcpconnectiononadvise}. You may also want to -store application-specific data in instances of the new class. - -\membersection{wxTCPClient::ValidHost} - -\func{bool}{ValidHost}{\param{const wxString\& }{host}} - -Returns TRUE if this is a valid host name, FALSE otherwise. - diff --git a/docs/latex/wx/tcpconn.tex b/docs/latex/wx/tcpconn.tex deleted file mode 100644 index a0aff6b751..0000000000 --- a/docs/latex/wx/tcpconn.tex +++ /dev/null @@ -1,200 +0,0 @@ -\section{\class{wxTCPConnection}}\label{wxtcpconnection} - -A wxTCPClient object represents the connection between a client and a server. -It emulates a DDE-style protocol, but uses TCP/IP which is available on most platforms. - -A DDE-based implementation for Windows is available using \helpref{wxDDEConnection}{wxddeconnection}. - -A wxTCPConnection object can be created by making a connection using a\rtfsp -\helpref{wxTCPClient}{wxtcpclient} object, or by the acceptance of a connection by a\rtfsp -\helpref{wxTCPServer}{wxtcpserver} object. The bulk of a conversation is controlled by -calling members in a {\bf wxTCPConnection} object or by overriding its -members. - -An application should normally derive a new connection class from -wxTCPConnection, in order to override the communication event handlers -to do something interesting. - -\wxheading{Derived from} - -wxConnectionBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Types} - -\index{wxIPCFormat}wxIPCFormat is defined as follows: - -\begin{verbatim} -enum wxIPCFormat -{ - wxIPC_INVALID = 0, - wxIPC_TEXT = 1, /* CF_TEXT */ - wxIPC_BITMAP = 2, /* CF_BITMAP */ - wxIPC_METAFILE = 3, /* CF_METAFILEPICT */ - wxIPC_SYLK = 4, - wxIPC_DIF = 5, - wxIPC_TIFF = 6, - wxIPC_OEMTEXT = 7, /* CF_OEMTEXT */ - wxIPC_DIB = 8, /* CF_DIB */ - wxIPC_PALETTE = 9, - wxIPC_PENDATA = 10, - wxIPC_RIFF = 11, - wxIPC_WAVE = 12, - wxIPC_UNICODETEXT = 13, - wxIPC_ENHMETAFILE = 14, - wxIPC_FILENAME = 15, /* CF_HDROP */ - wxIPC_LOCALE = 16, - wxIPC_PRIVATE = 20 -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxTCPClient}{wxtcpclient}, \helpref{wxTCPServer}{wxtcpserver}, \helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTCPConnection::wxTCPConnection} - -\func{}{wxTCPConnection}{\void} - -\func{}{wxTCPConnection}{\param{char* }{buffer}, \param{int}{ size}} - -Constructs a connection object. If no user-defined connection object is -to be derived from wxTCPConnection, then the constructor should not be -called directly, since the default connection object will be provided on -requesting (or accepting) a connection. However, if the user defines his -or her own derived connection object, the \helpref{wxTCPServer::OnAcceptConnection}{wxtcpserveronacceptconnection}\rtfsp -and/or \helpref{wxTCPClient::OnMakeConnection}{wxtcpclientonmakeconnection} members should be replaced by -functions which construct the new connection object. If the arguments of -the wxTCPConnection constructor are void, then a default buffer is -associated with the connection. Otherwise, the programmer must provide a -a buffer and size of the buffer for the connection object to use in -transactions. - -\membersection{wxTCPConnection::Advise} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size = -1}, \param{wxIPCFormat}{ format = wxCF\_TEXT}} - -Called by the server application to advise the client of a change in -the data associated with the given item. Causes the client -connection's \helpref{wxTCPConnection::OnAdvise}{wxtcpconnectiononadvise} -member to be called. Returns TRUE if successful. - -\membersection{wxTCPConnection::Execute} - -\func{bool}{Execute}{\param{char* }{data}, \param{int}{ size = -1}, \param{wxIPCFormat}{ format = wxCF\_TEXT}} - -Called by the client application to execute a command on the server. Can -also be used to transfer arbitrary data to the server (similar -to \helpref{wxTCPConnection::Poke}{wxtcpconnectionpoke} in that respect). Causes the -server connection's \helpref{wxTCPConnection::OnExecute}{wxtcpconnectiononexecute} member to be -called. Returns TRUE if successful. - -\membersection{wxTCPConnection::Disconnect} - -\func{bool}{Disconnect}{\void} - -Called by the client or server application to disconnect from the other -program; it causes the \helpref{wxTCPConnection::OnDisconnect}{wxtcpconnectionondisconnect} message -to be sent to the corresponding connection object in the other -program. The default behaviour of {\bf OnDisconnect} is to delete the -connection, but the calling application must explicitly delete its -side of the connection having called {\bf Disconnect}. Returns TRUE if -successful. - -\membersection{wxTCPConnection::OnAdvise}\label{wxtcpconnectiononadvise} - -\func{virtual bool}{OnAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size}, \param{wxIPCFormat}{ format}} - -Message sent to the client application when the server notifies it of a -change in the data associated with the given item. - -\membersection{wxTCPConnection::OnDisconnect}\label{wxtcpconnectionondisconnect} - -\func{virtual bool}{OnDisconnect}{\void} - -Message sent to the client or server application when the other -application notifies it to delete the connection. Default behaviour is -to delete the connection object. - -\membersection{wxTCPConnection::OnExecute}\label{wxtcpconnectiononexecute} - -\func{virtual bool}{OnExecute}{\param{const wxString\& }{topic}, \param{char* }{data}, \param{int}{ size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client notifies it to -execute the given data. Note that there is no item associated with -this message. - -\membersection{wxTCPConnection::OnPoke}\label{wxtcpconnectiononpoke} - -\func{virtual bool}{OnPoke}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client notifies it to -accept the given data. - -\membersection{wxTCPConnection::OnRequest}\label{wxtcpconnectiononrequest} - -\func{virtual char*}{OnRequest}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{int *}{size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client -calls \helpref{wxTCPConnection::Request}{wxtcpconnectionrequest}. The server -should respond by returning a character string from {\bf OnRequest}, -or NULL to indicate no data. - -\membersection{wxTCPConnection::OnStartAdvise}\label{wxtcpconnectiononstartadvise} - -\func{virtual bool}{OnStartAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to start an `advise loop' for the given topic and item. The -server can refuse to participate by returning FALSE. - -\membersection{wxTCPConnection::OnStopAdvise}\label{wxtcpconnectiononstopadvise} - -\func{virtual bool}{OnStopAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to stop an `advise loop' for the given topic and item. The -server can refuse to stop the advise loop by returning FALSE, although -this doesn't have much meaning in practice. - -\membersection{wxTCPConnection::Poke}\label{wxtcpconnectionpoke} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{char* }{data}, \param{int}{ size = -1}, \param{wxIPCFormat}{ format = wxCF\_TEXT}} - -Called by the client application to poke data into the server. Can be -used to transfer arbitrary data to the server. Causes the server -connection's \helpref{wxTCPConnection::OnPoke}{wxtcpconnectiononpoke} member -to be called. Returns TRUE if successful. - -\membersection{wxTCPConnection::Request}\label{wxtcpconnectionrequest} - -\func{char*}{Request}{\param{const wxString\& }{item}, \param{int *}{size}, \param{wxIPCFormat}{ format = wxIPC\_TEXT}} - -Called by the client application to request data from the server. Causes -the server connection's \helpref{wxTCPConnection::OnRequest}{wxtcpconnectiononrequest} member to be called. Returns a -character string (actually a pointer to the connection's buffer) if -successful, NULL otherwise. - -\membersection{wxTCPConnection::StartAdvise}\label{wxtcpconnectionstartadvise} - -\func{bool}{StartAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be started -with the server. Causes the server connection's \helpref{wxTCPConnection::OnStartAdvise}{wxtcpconnectiononstartadvise}\rtfsp -member to be called. Returns TRUE if the server okays it, FALSE -otherwise. - -\membersection{wxTCPConnection::StopAdvise}\label{wxtcpconnectionstopadvise} - -\func{bool}{StopAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be -stopped. Causes the server connection's \helpref{wxTCPConnection::OnStopAdvise}{wxtcpconnectiononstopadvise} member -to be called. Returns TRUE if the server okays it, FALSE otherwise. - diff --git a/docs/latex/wx/tcpservr.tex b/docs/latex/wx/tcpservr.tex deleted file mode 100644 index c25930389a..0000000000 --- a/docs/latex/wx/tcpservr.tex +++ /dev/null @@ -1,49 +0,0 @@ -\section{\class{wxTCPServer}}\label{wxtcpserver} - -A wxTCPServer object represents the server part of a client-server conversation. -It emulates a DDE-style protocol, but uses TCP/IP which is available on most platforms. - -A DDE-based implementation for Windows is available using \helpref{wxDDEServer}{wxddeserver}. - -\wxheading{Derived from} - -wxServerBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTCPClient}{wxtcpclient}, \helpref{wxTCPConnection}{wxtcpconnection}, \helpref{IPC overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTCPServer::wxTCPServer} - -\func{}{wxTCPServer}{\void} - -Constructs a server object. - -\membersection{wxTCPServer::Create} - -\func{bool}{Create}{\param{const wxString\& }{service}} - -Registers the server using the given service name. Under Unix, the -string must contain an integer id which is used as an Internet port -number. FALSE is returned if the call failed (for example, the port -number is already in use). - -\membersection{wxTCPServer::OnAcceptConnection}\label{wxtcpserveronacceptconnection} - -\func{virtual wxConnectionBase *}{OnAcceptConnection}{\param{const wxString\& }{topic}} - -When a client calls {\bf MakeConnection}, the server receives the -message and this member is called. The application should derive a -member to intercept this message and return a connection object of -either the standard wxTCPConnection type, or of a user-derived type. If the -topic is ``STDIO'', the application may wish to refuse the connection. -Under Unix, when a server is created the OnAcceptConnection message is -always sent for standard input and output. - diff --git a/docs/latex/wx/tdb.tex b/docs/latex/wx/tdb.tex deleted file mode 100644 index 2682a6647d..0000000000 --- a/docs/latex/wx/tdb.tex +++ /dev/null @@ -1,238 +0,0 @@ -\section{Database classes overview}\label{odbcoverview} - -Classes: \helpref{wxDatabase}{wxdatabase}, \helpref{wxRecordSet}{wxrecordset}, \helpref{wxQueryCol}{wxquerycol}, -\rtfsp\helpref{wxQueryField}{wxqueryfield} - -\normalboxd{Note that more sophisticated ODBC classes are provided by the Remstar -database classes: please see the separate HTML and Word documentation.} - -wxWindows provides a set of classes for accessing a subset of Microsoft's ODBC (Open Database Connectivity) -product. Currently, this wrapper is available under MS Windows only, although -ODBC may appear on other platforms, and a generic or product-specific SQL emulator for the ODBC -classes may be provided in wxWindows at a later date. - -ODBC presents a unified API (Application Programmer's Interface) to a -wide variety of databases, by interfacing indirectly to each database or -file via an ODBC driver. The language for most of the database -operations is SQL, so you need to learn a small amount of SQL as well as -the wxWindows ODBC wrapper API. Even though the databases may not be -SQL-based, the ODBC drivers translate SQL into appropriate operations -for the database or file: even text files have rudimentry ODBC support, -along with dBASE, Access, Excel and other file formats. - -The run-time files for ODBC are bundled with many existing database -packages, including MS Office. The required header files, sql.h and -sqlext.h, are bundled with several compilers including MS VC++ and -Watcom C++. The only other way to obtain these header files is from the -ODBC SDK, which is only available with the MS Developer Network CD-ROMs --- at great expense. If you have odbc.dll, you can make the required -import library odbc.lib using the tool `implib'. You need to have odbc.lib -in your compiler library path. - -The minimum you need to distribute with your application is odbc.dll, which must -go in the Windows system directory. For the application to function correctly, -ODBC drivers must be installed on the user's machine. If you do not use the database -classes, odbc.dll will be loaded but not called (so ODBC does not need to be -setup fully if no ODBC calls will be made). - -A sample is distributed with wxWindows in {\tt samples/odbc}. You will need to install -the sample dbf file as a data source using the ODBC setup utility, available from -the control panel if ODBC has been fully installed. - -\subsection{Procedures for writing an ODBC application} - -You first need to create a wxDatabase object. If you want to get information -from the ODBC manager instead of from a particular database (for example -using \helpref{wxRecordSet::GetDataSources}{wxrecordsetgetdatasources}), then you -do not need to call \helpref{wxDatabase::Open}{wxdatabaseopen}. -If you do wish to connect to a datasource, then call wxDatabase::Open. -You can reuse your wxDatabase object, calling wxDatabase::Close and wxDatabase::Open -multiple times. - -Then, create a wxRecordSet object for retrieving or sending information. -For ODBC manager information retrieval, you can create it as a dynaset (retrieve the -information as needed) or a snapshot (get all the data at once). -If you are going to call \helpref{wxRecordSet::ExecuteSQL}{wxrecordsetexecutesql}, you need to create it as a snapshot. -Dynaset mode is not yet implemented for user data. - -Having called a function such as wxRecordSet::ExecuteSQL or -wxRecordSet::GetDataSources, you may have a number of records -associated with the recordset, if appropriate to the operation. You can -now retrieve information such as the number of records retrieved and the -actual data itself. Use \helpref{wxRecordSet::GetFieldData}{wxrecordsetgetfielddata} or -\helpref{wxRecordSet::GetFieldDataPtr}{wxrecordsetgetfielddataptr} to get the data or a pointer to it, passing -a column index or name. The data returned will be for the current -record. To move around the records, use \helpref{wxRecordSet::MoveNext}{wxrecordsetmovenext}, -\rtfsp\helpref{wxRecordSet::MovePrev}{wxrecordsetmoveprev} and associated functions. - -You can use the same recordset for multiple operations, or delete -the recordset and create a new one. - -Note that when you delete a wxDatabase, any associated recordsets -also get deleted, so beware of holding onto invalid pointers. - -\subsection{wxDatabase overview}\label{wxdatabaseoverview} - -\overview{Database classes overview}{odbcoverview} - -Class: \helpref{wxDatabase}{wxdatabase} - -Every database object represents an ODBC connection. To do anything useful -with a database object you need to bind a wxRecordSet object to it. All you -can do with wxDatabase is opening/closing connections and getting some info -about it (users, passwords, and so on). - -\subsection{wxQueryCol overview}\label{wxquerycoloverview} - -\overview{Database classes overview}{odbcoverview} - -Class: \helpref{wxQueryCol}{wxquerycol} - -Every data column is represented by an instance of this class. -It contains the name and type of a column and a list of wxQueryFields where -the real data is stored. The links to user-defined variables are stored -here, as well. - -\subsection{wxQueryField overview}\label{wxqueryfieldoverview} - -\overview{Database classes overview}{odbcoverview} - -Class: \helpref{wxQueryField}{wxqueryfield} - -As every data column is represented by an instance of the class wxQueryCol, -every data item of a specific column is represented by an instance of -wxQueryField. Each column contains a list of wxQueryFields. If wxRecordSet is -of the type wxOPEN\_TYPE\_DYNASET, there will be only one field for each column, -which will be updated every time you call functions like wxRecordSet::Move -or wxRecordSet::GoTo. If wxRecordSet is of the type wxOPEN\_TYPE\_SNAPSHOT, -all data returned by an ODBC function will be loaded at once and the number -of wxQueryField instances for each column will depend on the number of records. - -\subsection{wxRecordSet overview}\label{wxrecordsetoverview} - -\overview{Database classes overview}{odbcoverview} - -Class: \helpref{wxRecordSet}{wxrecordset} - -Each wxRecordSet represents a database query. You can make multiple queries -at a time by using multiple wxRecordSets with a wxDatabase or you can make -your queries in sequential order using the same wxRecordSet. - -\subsection{ODBC SQL data types}\label{sqltypes} - -\overview{Database classes overview}{odbcoverview} - -These are the data types supported in ODBC SQL. Note that there are other, extended level conformance -types, not currently supported in wxWindows. - -\begin{twocollist}\itemsep=0pt -\twocolitem{CHAR(n)}{A character string of fixed length {\it n}.} -\twocolitem{VARCHAR(n)}{A varying length character string of maximum length {\it n}.} -\twocolitem{LONG VARCHAR(n)}{A varying length character string: equivalent to VARCHAR for the purposes -of ODBC.} -\twocolitem{DECIMAL(p, s)}{An exact numeric of precision {\it p} and scale {\it s}.} -\twocolitem{NUMERIC(p, s)}{Same as DECIMAL.} -\twocolitem{SMALLINT}{A 2 byte integer.} -\twocolitem{INTEGER}{A 4 byte integer.} -\twocolitem{REAL}{A 4 byte floating point number.} -\twocolitem{FLOAT}{An 8 byte floating point number.} -\twocolitem{DOUBLE PRECISION}{Same as FLOAT.} -\end{twocollist} - -These data types correspond to the following ODBC identifiers: - -\begin{twocollist}\itemsep=0pt -\twocolitem{SQL\_CHAR}{A character string of fixed length.} -\twocolitem{SQL\_VARCHAR}{A varying length character string.} -\twocolitem{SQL\_DECIMAL}{An exact numeric.} -\twocolitem{SQL\_NUMERIC}{Same as SQL\_DECIMAL.} -\twocolitem{SQL\_SMALLINT}{A 2 byte integer.} -\twocolitem{SQL\_INTEGER}{A 4 byte integer.} -\twocolitem{SQL\_REAL}{A 4 byte floating point number.} -\twocolitem{SQL\_FLOAT}{An 8 byte floating point number.} -\twocolitem{SQL\_DOUBLE}{Same as SQL\_FLOAT.} -\end{twocollist} - -\subsection{A selection of SQL commands}\label{sqlcommands} - -\overview{Database classes overview}{odbcoverview} - -The following is a very brief description of some common SQL commands, with -examples. - -\subsubsection{Create} - -Creates a table. - -Example: - -\begin{verbatim} -CREATE TABLE Book - (BookNumber INTEGER PRIMARY KEY - , CategoryCode CHAR(2) DEFAULT 'RO' NOT NULL - , Title VARCHAR(100) UNIQUE - , NumberOfPages SMALLINT - , RetailPriceAmount NUMERIC(5,2) - ) -\end{verbatim} - -\subsubsection{Insert} - -Inserts records into a table. - -Example: - -\begin{verbatim} -INSERT INTO Book - (BookNumber, CategoryCode, Title) - VALUES(5, 'HR', 'The Lark Ascending') -\end{verbatim} - -\subsubsection{Select} - -The Select operation retrieves rows and columns from a table. The criteria -for selection and the columns returned may be specified. - -Examples: - -\verb$SELECT * FROM Book$ - -Selects all rows and columns from table Book. - -\verb$SELECT Title, RetailPriceAmount FROM Book WHERE RetailPriceAmount > 20.0$ - -Selects columns Title and RetailPriceAmount from table Book, returning only -the rows that match the WHERE clause. - -\verb$SELECT * FROM Book WHERE CatCode = 'LL' OR CatCode = 'RR'$ - -Selects all columns from table Book, returning only -the rows that match the WHERE clause. - -\verb$SELECT * FROM Book WHERE CatCode IS NULL$ - -Selects all columns from table Book, returning only rows where the CatCode column -is NULL. - -\verb$SELECT * FROM Book ORDER BY Title$ - -Selects all columns from table Book, ordering by Title, in ascending order. To specify -descending order, add DESC after the ORDER BY Title clause. - -\verb$SELECT Title FROM Book WHERE RetailPriceAmount >= 20.0 AND RetailPriceAmount <= 35.0$ - -Selects records where RetailPriceAmount conforms to the WHERE expression. - -\subsubsection{Update} - -Updates records in a table. - -Example: - -\verb$UPDATE Incident SET X = 123 WHERE ASSET = 'BD34'$ - -This example sets a field in column `X' to the number 123, for the record -where the column ASSET has the value `BD34'. - - - diff --git a/docs/latex/wx/tdc.tex b/docs/latex/wx/tdc.tex deleted file mode 100644 index d38d11d6e7..0000000000 --- a/docs/latex/wx/tdc.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{Device context overview}\label{dcoverview} - -Classes: \helpref{wxDC}{wxdc}, \helpref{wxPostScriptDC}{wxpostscriptdc},\rtfsp -\rtfsp\helpref{wxMetafileDC}{wxmetafiledc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPrinterDC}{wxprinterdc},\rtfsp -\helpref{wxScreenDC}{wxscreendc}, \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxWindowDC}{wxwindowdc}. - -A wxDC is a {\it device context} onto which graphics and text can be drawn. -The device context is intended to represent a number of output devices in a generic way, -with the same API being used throughout. - -Some device contexts are created temporarily in order to draw on a window. -This is true of \helpref{wxScreenDC}{wxscreendc}, \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc}, -and \helpref{wxWindowDC}{wxwindowdc}. The following describes the differences between -these device contexts and when you should use them. - -\begin{itemize}\itemsep=0pt -\item {\bf wxScreenDC.} Use this to paint on the screen, as opposed to an individual window. -\item {\bf wxClientDC.} Use this to paint on the client area of window (the part without -borders and other decorations), but do not use it from within an \helpref{wxWindow::OnPaint}{wxwindowonpaint} event. -\item {\bf wxPaintDC.} Use this to paint on the client area of a window, but {\it only} from -within an \helpref{wxWindow::OnPaint}{wxwindowonpaint} event. -\item {\bf wxWindowDC.} Use this to paint on the whole area of a window, including decorations. -This may not be available on non-Windows platforms. -\end{itemize} - -To use a client, paint or window device context, create an object on the stack with -the window as argument, for example: - -\begin{verbatim} - void MyWindow::OnMyCmd(wxCommandEvent& event) - { - wxClientDC dc(window); - DrawMyPicture(dc); - } -\end{verbatim} - -Try to write code so it is parameterised by wxDC - if you do this, the same piece of code may -write to a number of different devices, by passing a different device context. This doesn't -work for everything (for example not all device contexts support bitmap drawing) but -will work most of the time. - diff --git a/docs/latex/wx/tdebug.tex b/docs/latex/wx/tdebug.tex deleted file mode 100644 index 76ab37d3db..0000000000 --- a/docs/latex/wx/tdebug.tex +++ /dev/null @@ -1,122 +0,0 @@ -\section{Debugging overview}\label{debuggingoverview} - -Classes, functions and macros: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxObject}{wxobject}, \helpref{wxLog}{wxlog}, -\rtfsp\helpref{Log functions}{logfunctions}, \helpref{Debug macros}{debugmacros} - -Various classes, functions and macros are provided in wxWindows to help you debug -your application. Most of these are only available if you compile both wxWindows, -your application and {\it all} libraries that use wxWindows with the \_\_WXDEBUG\_\_ symbol -defined. You can also test the \_\_WXDEBUG\_\_ symbol in your own applications to execute -code that should be active only in debug mode. - -\wxheading{wxDebugContext} - -\helpref{wxDebugContext}{wxdebugcontext} is a class that never gets instantiated, but ties together -various static functions and variables. It allows you to dump all objects to that stream, write statistics about object allocation, and -check memory for errors. - -It is good practice to define a \helpref{wxObject::Dump}{wxobjectdump} member function for each class you derive -from a wxWindows class, so that \helpref{wxDebugContext::Dump}{wxdebugcontextdump} can call it and -give valuable information about the state of the application. - -If you have difficulty tracking down a memory leak, recompile -in debugging mode and call \helpref{wxDebugContext::Dump}{wxdebugcontextdump} and \helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} at -appropriate places. They will tell you what objects have not yet been -deleted, and what kinds of object they are. In fact, in debug mode wxWindows will automatically -detect memory leaks when your application is about to exit, and if there are any leaks, -will give you information about the problem. (How much information depends on the operating system -and compiler -- some systems don't allow all memory logging to be enabled). See the -memcheck sample for example of usage. - -For wxDebugContext to do its work, the {\it new} and {\it delete}\rtfsp -operators for wxObject have been redefined to store extra information -about dynamically allocated objects (but not statically declared -objects). This slows down a debugging version of an application, but can -find difficult-to-detect memory leaks (objects are not -deallocated), overwrites (writing past the end of your object) and -underwrites (writing to memory in front of the object). - -If debugging mode is on and the symbol wxUSE\_GLOBAL\_MEMORY\_OPERATORS is set -to 1 in setup.h, 'new' is defined to be: - -{\small -\begin{verbatim} -#define new new(__FILE__,__LINE__) -\end{verbatim} -}% - -All occurrences of 'new' in wxWindows and your own application will use -the overridden form of the operator with two extra arguments. This means that the debugging -output (and error messages reporting memory problems) will tell you what -file and on what line you allocated the object. Unfortunately not all -compilers allow this definition to work properly, but most do. - -\wxheading{Debug macros} - -You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy, -scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking -will save a surprising amount of time in the long run. - -\helpref{wxASSERT}{wxassert} is used to pop up an error message box when a condition -is not true. You can also use \helpref{wxASSERT\_MSG}{wxassertmsg} to supply your -own helpful error message. For example: - -{\small -\begin{verbatim} - void MyClass::MyFunction(wxObject* object) - { - wxASSERT_MSG( (object != NULL), "object should not be NULL in MyFunction!" ); - - ... - }; -\end{verbatim} -} - -The message box allows you to continue execution or abort the program. If you are running -the application inside a debugger, you will be able to see exactly where the problem was. - -\wxheading{Logging functions} - -You can use the \helpref{wxLogDebug}{wxlogdebug} and \helpref{wxLogTrace}{wxlogtrace} functions to output debugging information in debug mode; -it will do nothing for non-debugging code. - -\subsection{wxDebugContext overview}\label{wxdebugcontextoverview} - -\overview{Debugging overview}{debuggingoverview} - -Class: \helpref{wxDebugContext}{wxdebugcontext} - -wxDebugContext is a class for performing various debugging and memory tracing -operations. - -This class has only static data and function members, and there should be -no instances. Probably the most useful members are SetFile (for directing output -to a file, instead of the default standard error or debugger output); -Dump (for dumping the dynamically allocated objects) and PrintStatistics -(for dumping information about allocation of objects). You can also call -Check to check memory blocks for integrity. - -Here's an example of use. The SetCheckpoint ensures that only the -allocations done after the checkpoint will be dumped. - -\begin{verbatim} - wxDebugContext::SetCheckpoint(); - - wxDebugContext::SetFile("c:\\temp\\debug.log"); - - wxString *thing = new wxString; - - char *ordinaryNonObject = new char[1000]; - - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); -\end{verbatim} - -You can use wxDebugContext if \_\_WXDEBUG\_\_ is defined, or you can use it -at any other time (if wxUSE\_DEBUG\_CONTEXT is set to 1 in setup.h). It is not disabled -in non-debug mode because you may not wish to recompile wxWindows and your entire application -just to make use of the error logging facility. - -Note: wxDebugContext::SetFile has a problem at present, so use the default stream instead. -Eventually the logging will be done through the wxLog facilities instead. - diff --git a/docs/latex/wx/tdelwin.tex b/docs/latex/wx/tdelwin.tex deleted file mode 100644 index f9df4e54f0..0000000000 --- a/docs/latex/wx/tdelwin.tex +++ /dev/null @@ -1,133 +0,0 @@ -\section{Window deletion overview}\label{windowdeletionoverview} - -Classes: \helpref{wxCloseEvent}{wxcloseevent}, \helpref{wxWindow}{wxwindow} - -Window deletion can be a confusing subject, so this overview is provided -to help make it clear when and how you delete windows, or respond to user requests -to close windows. - -\wxheading{What is the sequence of events in a window deletion?} - -When the user clicks on the system close button or system close command, -in a frame or a dialog, wxWindows calls \helpref{wxWindow::Close}{wxwindowclose}. This -in turn generates an EVT\_CLOSE event: see \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow}. - -It is the duty of the application to define a suitable event handler, and -decide whether or not to destroy the window. -If the application is for some reason forcing the application to close -(\helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns FALSE), the window should always be destroyed, otherwise there is the option to -ignore the request, or maybe wait until the user has answered a question -before deciding whether it's safe to close. The handler for EVT\_CLOSE should -signal to the calling code if it does not destroy the window, by calling -\helpref{wxCloseEvent::Veto}{wxcloseeventveto}. Calling this provides useful information -to the calling code. - -The wxCloseEvent handler should only call \helpref{wxWindow::Destroy}{wxwindowdestroy} to -delete the window, and not use the {\bf delete} operator. This is because -for some window classes, wxWindows delays actual deletion of the window until all events have been processed, -since otherwise there is the danger that events will be sent to a non-existent window. - -As reinforced in the next section, calling Close does not guarantee that the window -will be destroyed. Call \helpref{wxWindow::Destroy}{wxwindowdestroy} if you want to be -certain that the window is destroyed. - -\wxheading{How can the application close a window itself?} - -Your application can either use \helpref{wxWindow::Close}{wxwindowclose} event just as -the framework does, or it can call \helpref{wxWindow::Destroy}{wxwindowdestroy} directly. -If using Close(), you can pass a TRUE argument to this function to tell the event handler -that we definitely want to delete the frame and it cannot be vetoed. - -The advantage of using Close instead of Destroy is that it will call any clean-up code -defined by the EVT\_CLOSE handler; for example it may close a document contained in -a window after first asking the user whether the work should be saved. Close can be vetoed -by this process (return FALSE), whereas Destroy definitely destroys the window. - -\wxheading{What is the default behaviour?} - -The default close event handler for wxDialog simulates a Cancel command, -generating a wxID\_CANCEL event. Since the handler for this cancel event might -itself call {\bf Close}, there is a check for infinite looping. The default handler -for wxID\_CANCEL hides the dialog (if modeless) or calls EndModal(wxID\_CANCEL) (if modal). -In other words, by default, the dialog {\it is not destroyed} (it might have been created -on the stack, so the assumption of dynamic creation cannot be made). - -The default close event handler for wxFrame destroys the frame using Destroy(). - -Under Windows, wxDialog defines a handler for \helpref{wxWindow::OnCharHook}{wxwindowoncharhook} that -generates a Cancel event if the Escape key has been pressed. - -\wxheading{What should I do when the user calls up Exit from a menu?} - -You can simply call \helpref{wxWindow::Close}{wxwindowclose} on the frame. This -will invoke your own close event handler which may destroy the frame. - -You can do checking to see if your application can be safely exited at this point, -either from within your close event handler, or from within your exit menu command -handler. For example, you may wish to check that all files have been saved. -Give the user a chance to save and quit, to not save but quit anyway, or to cancel -the exit command altogether. - -\wxheading{What should I do to upgrade my 1.xx OnClose to 2.0?} - -In wxWindows 1.xx, the {\bf OnClose} function did not actually delete 'this', but signalled -to the calling function (either {\bf Close}, or the wxWindows framework) to delete -or not delete the window. - -To update your code, you should provide an event table entry in your frame or -dialog, using the EVT\_CLOSE macro. The event handler function might look like this: - -{\small% -\begin{verbatim} - void MyFrame::OnCloseWindow(wxCloseEvent& event) - { - if (MyDataHasBeenModified()) - { - wxMessageDialog* dialog = new wxMessageDialog(this, - "Save changed data?", "My app", wxYES_NO|wxCANCEL); - - int ans = dialog->ShowModal(); - dialog->Destroy(); - - switch (ans) - { - case wxID_YES: // Save, then destroy, quitting app - SaveMyData(); - this->Destroy(); - break; - case wxID_NO: // Don't save; just destroy, quitting app - this->Destroy(); - break; - case wxID_CANCEL: // Do nothing - so don't quit app. - default: - if (!event.CanVeto()) // Test if we can veto this deletion - this->Destroy(); // If not, destroy the window anyway. - else - event.Veto(); // Notify the calling code that we didn't delete the frame. - break; - } - } - } -\end{verbatim} -}% - -\wxheading{How do I exit the application gracefully?} - -A wxWindows application automatically exits when the designated top window, or the -last frame or dialog, is destroyed. Put any application-wide cleanup code in \helpref{wxApp::OnExit}{wxapponexit} (this -is a virtual function, not an event handler). - -\wxheading{Do child windows get deleted automatically?} - -Yes, child windows are deleted from within the parent destructor. This includes any children -that are themselves frames or dialogs, so you may wish to close these child frame or dialog windows -explicitly from within the parent close handler. - -\wxheading{What about other kinds of window?} - -So far we've been talking about `managed' windows, i.e. frames and dialogs. Windows -with parents, such as controls, don't have delayed destruction and don't usually have -close event handlers, though you can implement them if you wish. For consistency, -continue to use the \helpref{wxWindow::Destroy}{wxwindowdestroy} function instead -of the {\bf delete} operator when deleting these kinds of windows explicitly. - diff --git a/docs/latex/wx/tdialog.tex b/docs/latex/wx/tdialog.tex deleted file mode 100644 index a3ac9fbd6a..0000000000 --- a/docs/latex/wx/tdialog.tex +++ /dev/null @@ -1,31 +0,0 @@ -\section{wxDialog overview}\label{wxdialogoverview} - -Classes: \helpref{wxDialog}{wxdialog} - -A dialog box is similar to a panel, in that it is a window which can -be used for placing controls, with the following exceptions: - -\begin{enumerate} -\item A surrounding frame is implicitly created. -\item Extra functionality is automatically given to the dialog box, - such as tabbing between items (currently Windows only). -\item If the dialog box is {\it modal}, the calling program is blocked - until the dialog box is dismissed. -\end{enumerate} - -Under Windows 3, modal dialogs have to be emulated using -modeless dialogs and a message loop. This is because Windows 3 expects -the contents of a modal dialog to be loaded from a resource file or -created on receipt of a dialog initialization message. This is too -restrictive for wxWindows, where any window may be created and displayed -before its contents are created. - -For a set of dialog convenience functions, including file selection, see -\rtfsp\helpref{Dialog functions}{dialogfunctions}. - -See also \helpref{wxPanel}{wxpanel} and \helpref{wxWindow}{wxwindow} for inherited -member functions. Validation of data in controls is covered -in \helpref{Validator overview}{validatoroverview}. - - - diff --git a/docs/latex/wx/tdnd.tex b/docs/latex/wx/tdnd.tex deleted file mode 100644 index ecdb4cf770..0000000000 --- a/docs/latex/wx/tdnd.tex +++ /dev/null @@ -1,102 +0,0 @@ -\section{Drag-and-drop and clipboard overview}\label{wxdndoverview} - -Classes: \helpref{wxDataObject}{wxdataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxDropSource}{wxdropsource}, -\helpref{wxDropTarget}{wxdroptarget}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, -\helpref{wxFileDropTarget}{wxfiledroptarget} - -It has to be noted that the API for drag and drop in wxWindows is not -yet finished which is mostly due to the fact that DnD support under -GTK 1.0 is very rudimentary and entirely different from the XDnD -protocoll used by GTK 1.2. This also entails that not all of the documentation -concerning DnD might be correct and some of the code might get broken -in the future. The next release of wxWindows will be based on GTK 1.2 -and will hopefully include a much improved DnD support. The general -design on the wxDropSource side will be the same but especially the -wxDropTarget is almost certain to change. - -Note that wxUSE\_DRAG\_AND\_DROP must be defined in setup.h in order -to use Drag'n'Drop in wxWindows. - -This overview describes wxWindows support for drag and drop and clipboard -operations. Both of these topics are discussed here because, in fact, they're -quite related. Drag and drop and clipboard are just two ways of passing the -data around and so the code required to implement both types of the operations -is almost the same. - -Both operations involve passing some data from one program to another, -although the data can be received in the same program as the source. In the case -of clipboard transfer, the data is first placed on the clipboard and then -pasted into the destination program, while for a drag-and-drop operation the -data object is not stored anywhere but is created when the user starts -dragging and is destroyed as soon as he ends it, whether the operation was -ended successfully or cancelled. - -To be a {\it drag source}, i.e. to provide the data which may be dragged by -user elsewhere, you should implement the following steps: - -\begin{itemize}\itemsep=0pt -\item {\bf Preparation:} First of all, the data object must be created and -initialized with the data you wish to drag. For example: - -\begin{verbatim} - wxDataObject *my_data = new wxTextDataObject data("This string will be dragged."); -\end{verbatim} - -\item{\bf Drag start:} To start dragging process (typically in response to a -mouse click) you must call \helpref{DoDragDrop}{wxdropsourcedodragdrop} function -of wxDropSource object which should be constructed like this: - -\begin{verbatim} - wxDropSource dragSource( this ); - dragSource.SetData( my_data ); -\end{verbatim} - -\item {\bf Dragging:} The call to DoDragDrop() blocks until the user release the -mouse button (unless you override \helpref{GiveFeedback}{wxdropsourcegivefeedback} function -to do something special). When the mouse moves in a window of a program which understands the -same drag-and-drop protocol (any program under Windows or any program supporting GTK 1.0 -DnD protocol under X Windows), the corresponding \helpref{wxDropTarget}{wxdroptarget} methods -are called - see below. - -\item {\bf Processing the result:} DoDragDrop() returns an {\it effect code} which -is one of the values of \helpref{wxDragResult}{wxdropsource} enum. Codes -of wxDragError, wxDragNone and wxDragCancel have the obvious meaning and mean -that there is nothing to do on the sending end (except of possibly logging the -error in the first case). wxDragCopy means that the data has been successfully -copied and doesn't require any specific actions neither. But wxDragMove is -special because it means that the data must be deleted from where it was -copied. If it doesn't make sense (dragging selected text from a read-only -file) you should pass FALSE as parameter to DoDragDrop() in the previous step. -\end{itemize} - -To be a {\it drop target}, i.e. to receive the data dropped by user you should -follow the instructions below: - -\begin{itemize}\itemsep=0pt -\item {\bf Initialization:} For a window to be drop target, it needs to have -an associated \helpref{wxDropTarget}{wxdroptarget} object. Normally, you will -call \helpref{wxWindow::SetDropTarget}{wxwindowsetdroptarget} during window -creation associating you drop target with it. You must derive a class from -wxDropTarget and override its pure virtual methods. Alternatively, you may -derive from \helpref{wxTextDropTarget}{wxtextdroptarget} or -\helpref{wxFileDropTarget}{wxfiledroptarget} and override their OnDropText() -or OnDropFiles() method. - -\item {\bf Drop:} When the user releases the mouse over a window, wxWindows -queries the associated wxDropTarget object if it accepts the data. For -this, \helpref{GetFormatCount}{wxdroptargetgetformatcount} and \helpref{GetFormat}{wxdroptargetgetformat} are -used and if the format is -supported (i.e. is one of returned by GetFormat()), -then \helpref{OnDrop}{wxdroptargetondrop} is called. -Otherwise, wxDragNone is returned by DoDragDrop() and -nothing happens. - -\item {\bf The end:} After processing the data, DoDragDrop() returns either -wxDragCopy or wxDragMove depending on the state of the keys (, -and ) at the moment of drop. There is currently no way for the drop -target to change this return code. -\end{itemize} - diff --git a/docs/latex/wx/tdocview.tex b/docs/latex/wx/tdocview.tex deleted file mode 100644 index 05d29bd93a..0000000000 --- a/docs/latex/wx/tdocview.tex +++ /dev/null @@ -1,305 +0,0 @@ -\section{Document/view overview}\label{docviewoverview} - -Classes: \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp -\helpref{wxDocManager}{wxdocmanager}, \helpref{wxDocParentFrame}{wxdocparentframe}, \helpref{wxDocChildFrame}{wxdocchildframe}, -\rtfsp\helpref{wxDocMDIParentFrame}{wxdocmdiparentframe}, \helpref{wxDocMDIChildFrame}{wxdocmdichildframe}, -\rtfsp\helpref{wxCommand}{wxcommand}, \helpref{wxCommandProcessor}{wxcommandprocessor} - -The document/view framework is found in most application frameworks, because it -can dramatically simplify the code required to build many kinds of application. - -The idea is that you can model your application primarily in terms of {\it documents} to store data -and provide interface-independent operations upon it, and {\it views} to visualise and manipulate -the data. Documents know how to do input and output given stream objects, and views are responsible -for taking input from physical windows and performing the manipulation on the document data. -If a document's data changes, all views should be updated to reflect the change. - -The framework can provide many user-interface elements based on this model. Once you have defined -your own classes and the relationships between them, the framework takes care -of popping up file selectors, opening and closing files, asking the user to save -modifications, routing menu commands to appropriate (possibly default) code, even -some default print/preview functionality and support for command undo/redo. -The framework is highly modular, allowing overriding and replacement of functionality -and objects to achieve more than the default behaviour. - -These are the overall steps involved in creating an application based on the document/view framework: - -\begin{enumerate}\itemsep=0pt -\item Define your own document and view classes, overriding a minimal set of -member functions e.g. for input/output, drawing and initialization. -\item Define any subwindows -(such as a scrolled window) that are needed for the view(s). You may need to route some events -to views or documents, for example OnPaint needs to be routed to wxView::OnDraw. -\item Decide what style of interface you will use: Microsoft's MDI (multiple -document child frames surrounded by an overall frame), SDI (a separate, unconstrained frame -for each document), or single-window (one document open at a time, as in Windows Write). -\item Use the appropriate wxDocParentFrame and wxDocChildFrame classes. Construct an instance -of wxDocParentFrame in your wxApp::OnInit, and a wxDocChildFrame (if not single-window) when -you initialize a view. Create menus using standard menu ids (such as wxID\_OPEN, wxID\_PRINT), -routing non-application-specific identifiers to the base frame's OnMenuCommand. -\item Construct a single wxDocManager instance at the beginning of your wxApp::OnInit, and then -as many wxDocTemplate instances as necessary to define relationships between documents and -views. For a simple application, there will be just one wxDocTemplate. -\end{enumerate} - -If you wish to implement Undo/Redo, you need to derive your own class(es) from wxCommand -and use wxCommandProcessor::Submit instead of directly executing code. The framework will -take care of calling Undo and Do functions as appropriate, so long as the wxID\_UNDO and -wxID\_REDO menu items are defined in the view menu. - -Here are a few examples of the tailoring you can do to go beyond the default framework -behaviour: - -\begin{itemize}\itemsep=0pt -\item Override wxDocument::OnCreateCommandProcessor to define a different Do/Undo strategy, -or a command history editor. -\item Override wxView::OnCreatePrintout to create an instance of a derived \helpref{wxPrintout}{wxprintout}\rtfsp -class, to provide multi-page document facilities. -\item Override wxDocManager::SelectDocumentPath to provide a different file selector. -\item Limit the maximum number of open documents and the maximum number of undo commands. -\end{itemize} - -Note that to activate framework functionality, you need to use some or all of -the wxWindows \helpref{predefined command identifiers}{predefinedids} in your menus. - -\subsection{wxDocument overview}\label{wxdocumentoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxDocument}{wxdocument} - -The wxDocument class can be used to model an application's file-based -data. It is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}\rtfsp -and \helpref{wxDocManager}{wxdocmanager} classes. - -Using this framework can save a lot of routine user-interface programming, -since a range of menu commands -- such as open, save, save as -- are supported automatically. -The programmer just needs to define a minimal set of classes and member functions -for the framework to call when necessary. Data, and the means to view and edit -the data, are explicitly separated out in this model, and the concept of multiple {\it views} onto -the same data is supported. - -Note that the document/view model will suit many but not all styles of application. -For example, it would be overkill for a simple file conversion utility, where there -may be no call for {\it views} on {\it documents} or the ability to open, edit and save -files. But probably the majority of applications are document-based. - -See the example application in {\tt samples/docview}. - -To use the abstract wxDocument class, you need to derive a new class and override -at least the member functions SaveObject and LoadObject. SaveObject and -LoadObject will be called by the framework when the document needs to be saved -or loaded. - -Use the macros DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS in order -to allow the framework to create document objects on demand. When you create -a \helpref{wxDocTemplate}{wxdoctemplate} object on application initialization, you -should pass CLASSINFO(YourDocumentClass) to the wxDocTemplate constructor -so that it knows how to create an instance of this class. - -If you do not wish to use the wxWindows method of creating document -objects dynamically, you must override wxDocTemplate::CreateDocument -to return an instance of the appropriate class. - -\subsection{wxView overview}\label{wxviewoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxView}{wxview} - -The wxView class can be used to model the viewing and editing component of -an application's file-based data. It is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate} -and \helpref{wxDocManager}{wxdocmanager} classes. - -See the example application in {\tt samples/docview}. - -To use the abstract wxView class, you need to derive a new class and override -at least the member functions OnCreate, OnDraw, OnUpdate and OnClose. You'll probably -want to override OnMenuCommand to respond to menu commands from the frame containing the -view. - -Use the macros DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS in order -to allow the framework to create view objects on demand. When you create -a \helpref{wxDocTemplate}{wxdoctemplate} object on application initialization, you -should pass CLASSINFO(YourViewClass) to the wxDocTemplate constructor -so that it knows how to create an instance of this class. - -If you do not wish to use the wxWindows method of creating view -objects dynamically, you must override wxDocTemplate::CreateView -to return an instance of the appropriate class. - -\subsection{wxDocTemplate overview}\label{wxdoctemplateoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxDocTemplate}{wxdoctemplate} - -The wxDocTemplate class is used to model the relationship between a -document class and a view class. The application creates a document -template object for each document/view pair. The list of document -templates managed by the wxDocManager instance is used to create -documents and views. Each document template knows what file filters -and default extension are appropriate for a document/view combination, -and how to create a document or view. - -For example, you might write a small doodling application that can load -and save lists of line segments. If you had two views of the data -- graphical, -and a list of the segments -- then you would create one document class DoodleDocument, -and two view classes (DoodleGraphicView and DoodleListView). You would also -need two document templates, one for the graphical view and another for the -list view. You would pass the same document class and default file extension to both -document templates, but each would be passed a different view class. When -the user clicks on the Open menu item, the file selector is displayed -with a list of possible file filters -- one for each wxDocTemplate. Selecting -the filter selects the wxDocTemplate, and when -a file is selected, that template will be used for creating a document -and view. Under non-Windows platforms, the user will be prompted for -a list of templates before the file selector is shown, since most file selectors -do not allow a choice of file filters. - -For the case where an application has one document type and one view type, -a single document template is constructed, and dialogs will be appropriately -simplified. - -wxDocTemplate is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument} -and \helpref{wxDocManager}{wxdocmanager} classes. - -See the example application in {\tt samples/docview}. - -To use the wxDocTemplate class, you do not need to derive a new class. -Just pass relevant information to the constructor including CLASSINFO(YourDocumentClass) and -CLASSINFO(YourViewClass) to allow dynamic instance creation. -If you do not wish to use the wxWindows method of creating document -objects dynamically, you must override wxDocTemplate::CreateDocument -and wxDocTemplate::CreateView to return instances of the appropriate class. - -{\it NOTE}: the document template has nothing to do with the C++ template construct. C++ -templates are not used anywhere in wxWindows. - -\subsection{wxDocManager overview}\label{wxdocmanageroverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxDocManager}{wxdocmanager} - -The wxDocManager class is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}\rtfsp -and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -A wxDocManager instance coordinates documents, views and document templates. It keeps a list of document and -and template instances, and much functionality is routed through this object, such -as providing selection and file dialogs. The application can use this class `as is' or -derive a class and override some members to extend or change the functionality. -Create an instance of this class near the beginning of your application initialization, -before any documents, views or templates are manipulated. - -There may be multiple wxDocManager instances in an application. - -See the example application in {\tt samples/docview}. - -\subsection{wxCommand overview}\label{wxcommandoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Classes: \helpref{wxCommand}{wxcommand}, \helpref{wxCommandProcessor}{wxcommandprocessor} - -wxCommand is a base class for modelling an application command, -which is an action usually performed by selecting a menu item, pressing -a toolbar button or any other means provided by the application to -change the data or view. - -Instead of the application functionality being scattered around -switch statements and functions in a way that may be hard to -read and maintain, the functionality for a command is explicitly represented -as an object which can be manipulated by a framework or application. -When a user interface event occurs, the application {\it submits} a command -to a \helpref{wxCommandProcessor}{wxcommandprocessoroverview} object to execute and -store. - -The wxWindows document/view framework handles Undo and Redo by use of -wxCommand and wxCommandProcessor objects. You might find further uses -for wxCommand, such as implementing a macro facility that stores, loads -and replays commands. - -An application can derive a new class for every command, or, more likely, use -one class parameterized with an integer or string command identifier. - -\subsection{wxCommandProcessor overview}\label{wxcommandprocessoroverview} - -\overview{Document/view framework overview}{docviewoverview} - -Classes: \helpref{wxCommandProcessor}{wxcommandprocessor}, \helpref{wxCommand}{wxcommand} - -wxCommandProcessor is a class that maintains a history of wxCommand -instances, with undo/redo functionality built-in. Derive a new class from this -if you want different behaviour. - -\subsection{wxFileHistory overview}\label{wxfilehistoryoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Classes: \helpref{wxFileHistory}{wxfilehistory}, \helpref{wxDocManager}{wxdocmanager} - -wxFileHistory encapsulates functionality to record the last few files visited, and -to allow the user to quickly load these files using the list appended to the File menu. - -Although wxFileHistory is used by wxDocManager, it can be used independently. You may wish -to derive from it to allow different behaviour, such as popping up a scrolling -list of files. - -By calling wxFileHistory::FileHistoryUseMenu you can associate a file menu with -the file history, that will be used for appending the filenames. They are -appended using menu identifiers in the range wxID\_FILE1 to wxID\_FILE9. - -In order to respond to a file load command from one of these identifiers, -you need to handle them using an event handler, for example: - -{\small -\begin{verbatim} -BEGIN_EVENT_TABLE(wxDocParentFrame, wxFrame) - EVT_MENU(wxID_EXIT, wxDocParentFrame::OnExit) - EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, wxDocParentFrame::OnMRUFile) -END_EVENT_TABLE() - -void wxDocParentFrame::OnExit(wxCommandEvent& WXUNUSED(event)) -{ - Close(); -} - -void wxDocParentFrame::OnMRUFile(wxCommandEvent& event) -{ - wxString f(m_docManager->GetHistoryFile(event.GetSelection() - wxID_FILE1)); - if (f != "") - (void)m_docManager->CreateDocument(f, wxDOC_SILENT); -} -\end{verbatim} -} - -\subsection{wxWindows predefined command identifiers}\label{predefinedids} - -To allow communication between the application's menus and the -document/view framework, several command identifiers are predefined for you -to use in menus. The framework recognizes them and processes them if you -forward commands from wxFrame::OnMenuCommand (or perhaps from toolbars and -other user interface constructs). - -\begin{itemize}\itemsep=0pt -\item wxID\_OPEN (5000) -\item wxID\_CLOSE (5001) -\item wxID\_NEW (5002) -\item wxID\_SAVE (5003) -\item wxID\_SAVEAS (5004) -\item wxID\_REVERT (5005) -\item wxID\_EXIT (5006) -\item wxID\_UNDO (5007) -\item wxID\_REDO (5008) -\item wxID\_HELP (5009) -\item wxID\_PRINT (5010) -\item wxID\_PRINT\_SETUP (5011) -\item wxID\_PREVIEW (5012) -\end{itemize} - - diff --git a/docs/latex/wx/tempfile.tex b/docs/latex/wx/tempfile.tex deleted file mode 100644 index 8a0fe8089b..0000000000 --- a/docs/latex/wx/tempfile.tex +++ /dev/null @@ -1,103 +0,0 @@ -% automatically generated by HelpGen from tempfile.tex at 10/Jan/99 19:24:44 -\section{\class{wxTempFile}}\label{wxtempfile} - -wxTempFile provides a relatively safe way to replace the contents of the -existing file. The name is explained by the fact that it may be also used as -just a temporary file if you don't replace the old file contents. - -Usually, when a program replaces the contents of some file it first opens it for -writing, thus losing all of the old data and then starts recreating it. This -approach is not very safe because during the regeneration of the file bad things -may happen: the program may find that there is an internal error preventing it -from completing file generation, the user may interrupt it (especially if file -generation takes long time) and, finally, any other external interrupts (power -supply failure or a disk error) will leave you without either the original file -or the new one. - -wxTempFile addresses this problem by creating a temporary file which is meant to -replace the original file - but only after it is fully written. So, if the user -interrupts the program during the file generation, the old file won't be lost. -Also, if the program discovers itself that it doesn't want to replace the old -file there is no problem - in fact, wxTempFile will {\bf not} replace the old -file by default, you should explicitly call \helpref{Commit}{wxtempfilecommit} -to do it. Calling \helpref{Discard}{wxtempfilediscard} explicitly discards any -modifications: it closes and deletes the temporary file and leaves the original -file unchanged. If you don't call neither of Commit() and Discard(), the -destructor will call Discard() automatically. - -To summarize: if you want to replace another file, create an instance of -wxTempFile passing the name of the file to be replaced to the constructor (you -may also use default constructor and pass the file name to -\helpref{Open}{wxtempfileopen}). Then you can \helpref{write}{wxtempfilewrite} -to wxTempFile using \helpref{wxFile}{wxfile}-like functions and later call -Commit() to replace the old file (and close this one) or call Discard() to cancel -the modifications. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{See also:} - -\helpref{wxFile}{wxfile} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTempFile::wxTempFile}\label{wxtempfilewxtempfilector} -\func{}{wxTempFile}{\void} - -Default constructor - \helpref{Open}{wxtempfileopen} must be used to open the -file. - -\membersection{wxTempFile::wxTempFile}\label{wxtempfilewxtempfile} -\func{}{wxTempFile}{\param{const wxString\& }{strName}} - -Associates wxTempFile with the file to be replaced and opens it. You should use -\helpref{IsOpened}{wxtempfileisopened} to verify if the constructor succeeded. - -\membersection{wxTempFile::Open}\label{wxtempfileopen} -\func{bool}{Open}{\param{const wxString\& }{strName}} - -Open the temporary file (strName is the name of file to be replaced), returns -TRUE on success, FALSE if an error occured. - -\membersection{wxTempFile::IsOpened}\label{wxtempfileisopened} -\constfunc{bool}{IsOpened}{\void} - -Returns TRUE if the file was successfully opened. - -\membersection{wxTempFile::Write}\label{wxtempfilewrite} -\func{bool}{Write}{\param{const void }{*p}, \param{size\_t }{n}} - -Write to the file, return TRUE on success, FALSE on failure. - -\membersection{wxTempFile::Write}\label{wxtempfilewrites} -\func{bool}{Write}{\param{const wxString\& }{str}} - -Write to the file, return TRUE on success, FALSE on failure. - -\membersection{wxTempFile::Commit}\label{wxtempfilecommit} -\func{bool}{Commit}{\void} - -Validate changes: deletes the old file of name m\_strName and renames the new -file to the old name. Returns TRUE if both actions succeeded. If FALSE is -returned it may unfortunately mean two quite different things: either that -either the old file couldn't be deleted or that the new file couldn't be renamed -to the old name. - -\membersection{wxTempFile::Discard}\label{wxtempfilediscard} -\func{void}{Discard}{\void} - -Discard changes: the old file contents is not changed, temporary file is -deleted. - -\membersection{wxTempFile::\destruct{wxTempFile}}\label{wxtempfiledtor} -\func{}{\destruct{wxTempFile}}{\void} - -Destructor calls \helpref{Discard()}{wxtempfilediscard} if temporary file -is still opened. - diff --git a/docs/latex/wx/tevent.tex b/docs/latex/wx/tevent.tex deleted file mode 100644 index 1dc49fd843..0000000000 --- a/docs/latex/wx/tevent.tex +++ /dev/null @@ -1,338 +0,0 @@ -\section{Event handling overview}\label{eventhandlingoverview} - -Classes: \helpref{wxEvtHandler}{wxevthandler}, \helpref{wxWindow}{wxwindow}, \helpref{wxEvent}{wxevent} - -\subsection{Introduction} - -Before version 2.0 of wxWindows, events were handled by the application -either by supplying callback functions, or by overriding virtual member -functions such as {\bf OnSize}. - -From wxWindows 2.0, {\it event tables} are used instead, with a few exceptions. - -An event table is placed in an implementation file to tell wxWindows how to map -events to member functions. These member functions are not virtual functions, but -they all similar in form: they take a single wxEvent-derived argument, and have a void return -type. - -Here's an example of an event table. - -\begin{verbatim} -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU (wxID_EXIT, MyFrame::OnExit) - EVT_MENU (DO_TEST, MyFrame::DoTest) - EVT_SIZE ( MyFrame::OnSize) - EVT_BUTTON (BUTTON1, MyFrame::OnButton1) -END_EVENT_TABLE() -\end{verbatim} - -The first two entries map menu commands to two different member functions. The EVT\_SIZE macro -doesn't need a window identifier, since normally you are only interested in the -current window's size events. (In fact you could intercept a particular window's size event -by using EVT\_CUSTOM(wxEVT\_SIZE, id, func).) - -The EVT\_BUTTON macro demonstrates that the originating event does not have to come from -the window class implementing the event table - if the event source is a button within a panel within a frame, this will still -work, because event tables are searched up through the hierarchy of windows. In this -case, the button's event table will be searched, then the parent panel's, then the frame's. - -As mentioned before, the member functions that handle events do not have to be virtual. -Indeed, the member functions should not be virtual as the event handler ignores that -the functions are virtual, i.e. overriding a virtual member function in a derived class -will not have any effect. -These member functions take an event argument, and the class of event differs according -to the type of event and the class of the originating window. For size -events, \helpref{wxSizeEvent}{wxsizeevent} is used. For menu commands and most control -commands (such as button presses), \helpref{wxCommandEvent}{wxcommandevent} is used. -When controls get more complicated, then specific event classes are used, such -as \helpref{wxTreeEvent}{wxtreeevent} for events from \helpref{wxTreeCtrl}{wxtreectrl} windows. - -As well as the event table in the implementation file, there must be a DECLARE\_EVENT\_TABLE -macro in the class definition. For example: - -{\small% -\begin{verbatim} -class MyFrame: public wxFrame { - - DECLARE_DYNAMIC_CLASS(MyFrame) - -public: - ... - void OnExit(wxCommandEvent& event); - void OnSize(wxSizeEvent& event); -protected: - int m_count; - ... - DECLARE_EVENT_TABLE() -}; -\end{verbatim} -}% - -\subsection{How events are processed}\label{eventprocessing} - -When an event is received from the windowing system, wxWindows calls \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent} on -the first event handler object belonging to the window generating the event. - -It may be noted that wxWindows' event processing system implements something -very close to virtual methods in normal C++, i.e. it is possible to alter -the behaviour of a class by overriding its event handling functions. In -many cases this works even for changing the behaviour of native controls. -For example it is possible to filter out a number of key events sent by the -system to a native text control by overriding wxTextCtrl and defining a -handler for key events using EVT\_KEY\_DOWN. This would indeed prevent -any key events from being sent to the native control - which might not be -what is desired. In this case the event handler function has to call Skip() -so as to indicate that the search for the event handler should continue. - -To summarize, instead of explicitly calling the base class version as you -would have done with C++ virtual functions (i.e. {\it wxTextCtrl::OnChar()}), -you should instead call \helpref{Skip}{wxeventskip}. - -In practice, this would look like this if the derived text control only -accepts 'a' to 'z' and 'A' to 'Z': - -{\small% -\begin{verbatim} -void MyTextCtrl::OnChar(wxKeyEvent& event) -{ - if ( isalpha( event.KeyCode() ) ) - { - // key code is within legal range. we call event.Skip() so the - // event can be processed either in the base wxWindows class - // or the native control. - - event.Skip(); - } - else - { - // illegal key hit. we don't call event.Skip() so the - // event is not processed anywhere else. - - wxBell(); - } -} -\end{verbatim} -}% - - -The normal order of event table searching by ProcessEvent is as follows: - -\begin{enumerate}\itemsep=0pt -\item If the object is disabled (via a call to \helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled}) -the function skips to step (6). -\item If the object is a wxWindow, {\bf ProcessEvent} is recursively called on the window's\rtfsp -\helpref{wxValidator}{wxvalidator}. If this returns TRUE, the function exits. -\item {\bf SearchEventTable} is called for this event handler. If this fails, the base -class table is tried, and so on until no more tables exist or an appropriate function was found, -in which case the function exits. -\item The search is applied down the entire chain of event handlers (usually the chain has a length -of one). If this succeeds, the function exits. -\item If the object is a wxWindow and the event is a wxCommandEvent, {\bf ProcessEvent} is -recursively applied to the parent window's event handler. If this returns TRUE, the function exits. -\item Finally, {\bf ProcessEvent} is called on the wxApp object. -\end{enumerate} - -Note that your application may wish to override ProcessEvent to redirect processing of -events. This is done in the document/view framework, for example, to allow event handlers -to be defined in the document or view. To test for command events (which will probably -be the only events you wish to redirect), you may use wxEvent::IsCommandEvent for -efficiency, instead of using the slower run-time type system. - -As mentioned above, only command events are recursively applied to the parents event -handler. As this quite often causes confusion for users, here is a list of system -events which will NOT get sent to the parent's event handler: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxEvent}{wxevent}}{The event base class} -\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{A window or application activation event} -\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{A close window or end session event} -\twocolitem{\helpref{wxEraseEvent}{wxeraseevent}}{An erase background event} -\twocolitem{\helpref{wxFocusEvent}{wxfocusevent}}{A window focus event} -\twocolitem{\helpref{wxKeyEvent}{wxkeyevent}}{A keypress event} -\twocolitem{\helpref{wxIdleEvent}{wxidleevent}}{An idle event} -\twocolitem{\helpref{wxInitDialogEvent}{wxinitdialogevent}}{A dialog initialisation event} -\twocolitem{\helpref{wxJoystickEvent}{wxjoystickevent}}{A joystick event} -\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{A menu event} -\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{A mouse event} -\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{A move event} -\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{A paint event} -\twocolitem{\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}}{Used to query layout information} -\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{A size event} -\twocolitem{\helpref{wxScrollWinEvent}{wxscrollwinevent}}{An event, sent by a scrolled window, not a scroll bar.} -\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{A system colour change event} -\twocolitem{\helpref{wxUpdateUIEvent}{wxupdateuievent}}{A user interface update event} -\end{twocollist} - -In some cases, it might be desired by the programmer to get a certain number -of system events in a parent window, for example all key events sent to, but not -used by, the native controls in a dialog. In this case, a special event handler -will have to be written that will override ProcessEvent() in order to pass -all events (or any selection of them) to the parent window. - -\subsection{Redirection of command events to the window with the focus} - -The usual upward search through the window hierarchy for command event -handlers does not always meet an application's requirements. Say you have two -wxTextCtrl windows in a frame, plus a toolbar with Cut, Copy and Paste -buttons. To avoid the need to define event handlers in the frame -and redirect them explicitly to the window with the focus, command events -are sent to the window with the focus first, for -menu and toolbar command and UI update events only. This means that -each window can handle its own commands and UI updates independently. In -fact wxTextCtrl can handle Cut, Copy, Paste, Undo and Redo commands and UI update -requests, so no extra coding is required to support them in your menus and -toolbars. - -\subsection{Pluggable event handlers} - -In fact, you don't have to derive a new class from a window class -if you don't want to. You can derive a new class from wxEvtHandler instead, -defining the appropriate event table, and then call -\rtfsp\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler} (or, preferably, -\rtfsp\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler}) to make this -event handler the object that responds to events. This way, you can avoid -a lot of class derivation, and use the same event handler object to -handle events from instances of different classes. If you ever have to call a window's event handler -manually, use the GetEventHandler function to retrieve the window's event handler and use that -to call the member function. By default, GetEventHandler returns a pointer to the window itself -unless an application has redirected event handling using SetEventHandler or PushEventHandler. - -One use of PushEventHandler is to temporarily or permanently change the -behaviour of the GUI. For example, you might want to invoke a dialog editor -in your application that changes aspects of dialog boxes. You can -grab all the input for an existing dialog box, and edit it `in situ', -before restoring its behaviour to normal. So even if the application -has derived new classes to customize behaviour, your utility can indulge -in a spot of body-snatching. It could be a useful technique for on-line -tutorials, too, where you take a user through a serious of steps and -don't want them to diverge from the lesson. Here, you can examine the events -coming from buttons and windows, and if acceptable, pass them through to -the original event handler. Use PushEventHandler/PopEventHandler -to form a chain of event handlers, where each handler processes a different -range of events independently from the other handlers. - -\subsection{Window identifiers}\label{windowids} - -\index{identifiers}\index{wxID}Window identifiers are integers, and are used to uniquely determine window identity in the -event system (though you can use it for other purposes). In fact, identifiers do not need -to be unique across your entire application just so long as they are unique within a particular context you're interested -in, such as a frame and its children. You may use the wxID\_OK identifier, for example, on -any number of dialogs so long as you don't have several within the same dialog. - -If you pass -1 to a window constructor, an identifier will be generated for you, but beware: -if things don't respond in the way they should, it could be because of an id conflict. It's safer -to supply window ids at all times. Automatic generation of identifiers starts at 1 so may well conflict -with your own identifiers. - -The following standard identifiers are supplied. You can use wxID\_HIGHEST to determine the -number above which it is safe to define your own identifiers. Or, you can use identifiers below -wxID\_LOWEST. - -\begin{verbatim} -#define wxID_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 -\end{verbatim} - -\subsection{Event macros summary}\label{eventmacros} - -\wxheading{Generic event table macros} - -\twocolwidtha{8cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{EVT\_CUSTOM(event, id, func)}}{Allows you to add a custom event table -entry by specifying the event identifier (such as wxEVT\_SIZE), the window identifier, -and a member function to call.} -\twocolitem{\windowstyle{EVT\_CUSTOM\_RANGE(event, id1, id2, func)}}{The same as EVT\_CUSTOM, -but responds to a range of window identifiers.} -\twocolitem{\windowstyle{EVT\_COMMAND(id, event, func)}}{The same as EVT\_CUSTOM, but -expects a member function with a wxCommandEvent argument.} -\twocolitem{\windowstyle{EVT\_COMMAND\_RANGE(id1, id2, event, func)}}{The same as EVT\_CUSTOM\_RANGE, but -expects a member function with a wxCommandEvent argument.} -\end{twocollist} - -\wxheading{Macros listed by event class} - -The documentation for specific event macros is organised by event class. Please refer -to these sections for details. - -\twocolwidtha{8cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{The EVT\_ACTIVATE and EVT\_ACTIVATE\_APP macros intercept -activation and deactivation events.} -\twocolitem{\helpref{wxCommandEvent}{wxcommandevent}}{A range of commonly-used control events.} -\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{The EVT\_CLOSE macro handles window closure -called via \helpref{wxWindow::Close}{wxwindowclose}.} -\twocolitem{\helpref{wxDropFilesEvent}{wxdropfilesevent}}{The EVT\_DROP\_FILES macros handles -file drop events.} -\twocolitem{\helpref{wxEraseEvent}{wxeraseevent}}{The EVT\_ERASE\_BACKGROUND macro is used to handle window erase requests.} -\twocolitem{\helpref{wxFocusEvent}{wxfocusevent}}{The EVT\_SET\_FOCUS and EVT\_KILL\_FOCUS macros are used to handle keybaord focus events.} -\twocolitem{\helpref{wxKeyEvent}{wxkeyevent}}{EVT\_CHAR and EVT\_CHAR\_HOOK macros handle keyboard -input for any window.} -\twocolitem{\helpref{wxIdleEvent}{wxidleevent}}{The EVT\_IDLE macro handle application idle events -(to process background tasks, for example).} -\twocolitem{\helpref{wxInitDialogEvent}{wxinitdialogevent}}{The EVT\_INIT\_DIALOG macro is used -to handle dialog initialisation.} -\twocolitem{\helpref{wxListEvent}{wxlistevent}}{These macros handle \helpref{wxListCtrl}{wxlistctrl} events.} -\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{These macros handle special menu events (not menu commands).} -\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{Mouse event macros can handle either individual -mouse events or all mouse events.} -\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{The EVT\_MOVE macro is used to handle a window move.} -\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{The EVT\_PAINT macro is used to handle window paint requests.} -\twocolitem{\helpref{wxScrollEvent}{wxscrollevent}}{These macros are used to handle scroll events from -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxSlider}{wxslider},and \helpref{wxSpinButton}{wxspinbutton}.} -\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{The EVT\_SIZE macro is used to handle a window resize.} -\twocolitem{\helpref{wxSplitterEvent}{wxsplitterevent}}{The EVT\_SPLITTER\_SASH\_POS\_CHANGED, EVT\_SPLITTER\_UNSPLIT -and EVT\_SPLITTER\_DOUBLECLICKED macros are used to handle the various splitter window events.} -\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{The EVT\_SYS\_COLOUR\_CHANGED macro is used to handle -events informing the application that the user has changed the system colours (Windows only).} -\twocolitem{\helpref{wxTreeEvent}{wxtreeevent}}{These macros handle \helpref{wxTreeCtrl}{wxtreectrl} events.} -\twocolitem{\helpref{wxUpdateUIEvent}{wxupdateuievent}}{The EVT\_UPDATE\_UI macro is used to handle user interface -update pseudo-events, which are generated to give the application the chance to update the visual state of menus, -toolbars and controls.} -\end{twocollist} - diff --git a/docs/latex/wx/tex2rtf.ini b/docs/latex/wx/tex2rtf.ini deleted file mode 100644 index 181e9ee75b..0000000000 --- a/docs/latex/wx/tex2rtf.ini +++ /dev/null @@ -1,40 +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 = yes -htmlBrowseButtons = bitmap -winHelpContents = yes -winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95 -winHelpTitle = "wxWindows Manual" -truncateFilenames = yes -combineSubSections = yes -;; -;; These two are for generating MS HTML Help project, contents and index files. -;; -;htmlWorkshopFiles = true -;htmlIndex = true - -;\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}} -\overview [2] {\helpref{#1}{#2}} -\docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}} -\wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}} -\const [0] {{\bf const}} -\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} -\windowstyle [1] {{\bf #1}\index{#1}} -\bftt [1] {\bf{\tt{#1}}} -\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}}\\ #1} -%\pythonnote [1] {} - - diff --git a/docs/latex/wx/texhelp.sty b/docs/latex/wx/texhelp.sty deleted file mode 100644 index fd9d1b0b9b..0000000000 --- a/docs/latex/wx/texhelp.sty +++ /dev/null @@ -1,301 +0,0 @@ -% LaTeX style file -% Name: texhelp.sty -% Author: Julian Smart -% -% Purpose -% ------- -% Style file to enable the simultaneous preparation of printed LaTeX and on-line -% hypertext manuals. -% Use in conjunction with Tex2RTF (see Tex2RTF documentation). -% -% Note that if a non-ASCII character starts a newline and there should be a space -% between the last word on the previous line and the first word on this line, -% you need to use \rtfsp to generate a space in Windows Help. \rtfsp is ignored -% in all other formats. -% -% Julian Smart -% Artificial Intelligence Applications Institute -% -% -% ============== C++/CLIPS Documentation Facilities ============== -% -% Each class definition should be typeset with e.g. -% -% \section{\class{Name}: Parent} -% -% followed by a description of the class. -% Each member should follow: -% -% \membersection{wxName::Member} -% -% with a description of what this member does. -% Then, one (or more if overloaded) member (function) in detail: -% -% \func{return type}{name}{args} -% or -% \member{type}{name} -% -% where args is a list of \param{type}{name}, ... - -% Function, e.g. -% e.g. to typeset -% -% void DoIt(char *string); -% -% write: -% -% \func{void}{DoIt}{\param{char *}{string}} -% - -\newcommand{\func}[3]{\hangafter=1\noindent\hangindent=10mm -{{\it #1} {\bf #2}\index{#2}}(#3)} - -% For function/type definition where the name is a pointer, -% e.g. to typeset -% -% typedef void (*wxFunction)(wxObject&) -% -% write: -% -% \pfunc{typedef void}{wxFunction}{param{wxObject&}} - -\newcommand{\pfunc}[3]{\hangafter=1\noindent\hangindent=10mm -{{\it #1} ({\bf *#2})\index{#2}}(#3)} - -% Use an ordinary \section command for class name definitions. - -% This is used for a member, such as wxBitmap: GetDepth -\newcommand{\membersection}[1]{\subsection*{#1}\index{#1}} - -% CLIPS function -\newcommand{\clipsfunc}[3]{\hangafter=1\noindent\hangindent=10mm -{{\bf #1} ({\bf #2}\index{#2}}#3)} - -\newcommand{\clipssection}[1]{\chapter{#1}} - -% This is used for a CLIPS function name -\newcommand{\functionsection}[1]{\subsection*{#1}} - -% Member: a type and a name -\newcommand{\member}[2]{{\bf #1 \it #2}} - -% C++ Parameter: a type and a name (no intervening space) -\newcommand{\param}[2]{{\it #1}{\bf #2}} - -% CLIPS Parameter: a type and a name (one intervening space) -\newcommand{\cparam}[2]{{\bf #1} {\it #2}} - -% Class: puts in index -\newcommand{\class}[1]{#1\index{#1}} - -%\newcommand{\docparam}[2]{\parskip=0pt {\it #1}\par\parskip=10pt\begin{indented}{1cm}{#2}\end{indented}} - -% Void type -\newcommand{\void}{{\it void}} - -% Typeset destructor -\newcommand{\destruct}[1]{{$\sim$}#1} - -% Typeset insert/extract operators -\newcommand{\cinsert}{$<<$} -\newcommand{\cextract}{$>>$} - -% pythonnote: A note about the wxpython interface. -%\newcommand{\pythonnote}[1]{{\bf wxPython note: }#1} -\newcommand{\pythonnote}[1]{{}} - -% =================== Hypertext facilities =================== -% -% To insert hyperlinks (or references, in Latex), \label the sections -% or membersections \label{ref-label} immediately after the section, on the same line, -% and use \helpref{text-to-show}{ref-label} to make a reference. -% - -% Type text with section reference -\newcommand{\helpref}[2]{{\it #1} (p.\ \pageref{#2}) } - -% Type text with URL in verbatim mode -\newcommand{\urlref}[2]{#1 (\verb$#2$)} - -% Don't typeset section number in LaTeX -\newcommand{\helprefn}[2]{{\it #1}} - -% Like helpref, but popup text in WinHelp instead of hyperlinked -\newcommand{\popref}[2]{{\it #1}} - -% Like footnote, but popup text. -\newcommand{\footnotepopup}[2]{{\it #1}\footnote{#2}} - -% =================== On-line help specific macros =================== -% - -% Global document font size/family, help only. -\newcommand{\helpfontsize}[1]{} -\newcommand{\helpfontfamily}[1]{} - -% Ignore in all on-line help -\newcommand{\helpignore}[1]{#1} -% Only print in all on-line help -\newcommand{\helponly}[1]{} - -% Ignore in LaTeX -\newcommand{\latexignore}[1]{} -% Only print in LaTeX -\newcommand{\latexonly}[1]{#1} - -% Ignore in linear RTF -\newcommand{\rtfignore}[1]{#1} -% Only print in linear RTF -\newcommand{\rtfonly}[1]{} - -% Ignore in WinHelp RTF -\newcommand{\winhelpignore}[1]{#1} -% Only print in WinHelp RTF -\newcommand{\winhelponly}[1]{} - -% Ignore in wxHelp -\newcommand{\xlpignore}[1]{#1} -% Only print in wxHelp -\newcommand{\xlponly}[1]{} - -% Ignore in HTML -\newcommand{\htmlignore}[1]{#1} -% Only print in HTML -\newcommand{\htmlonly}[1]{} - -% Input a file only for help system (binder thickness is not a limitation -% in help systems!) -\newcommand{\helpinput}[1]{} - -\newcommand{\rtfsp}{ } % Force a space in RTF, ignore in Latex - -% =================== Miscellaneous macros =================== -% -% Headings consistent with generated ones -\newcommand{\myheading}[1]{\vspace*{25pt} -\begin{flushleft} -{\LARGE \bf #1} -\end{flushleft} -\vskip 20pt -} - -% Heading with entry in contents page. -\newcommand{\chapterheading}[1]{\myheading{#1} -\addcontentsline{toc}{chapter}{#1}} - -\newcommand{\sectionheading}[1]{\myheading{#1} -\addcontentsline{toc}{section}{#1}} - -% Glossary environment -\newenvironment{helpglossary}{\newpage\chapterheading{Glossary}\begin{description}}{\end{description}} - -% Glossary entry -\newcommand{\gloss}[1]{\item[#1]\index{#1}} - -% Image: EPS in Latex, BMP or MF (whatever's available) in RTF. Requires psbox. -\newcommand{\image}[2]{\psboxto(#1){#2}} - -% Image, left aligned (HTML) -\newcommand{\imager}[2]{\psboxto(#1){#2}} - -% Image, right aligned (HTML) -\newcommand{\imagel}[2]{\psboxto(#1){#2}} - -% Imagemap: principally for HTML only. In Latex, -% acts like \image. -\newcommand{\imagemap}[3]{\psboxto(#1){#2}} - -% Headers and footers -% \setheader{EvenPageLeft}{EvenPageCentre}{EvenPageRight} -% {OddPageLeft}{OddPageCentre}{OddPageRight} -\newcommand{\setheader}[6]{ -\lhead[\fancyplain{}{#1}]{\fancyplain{}{#4}} -\chead[\fancyplain{}{#2}]{\fancyplain{}{#5}} -\rhead[\fancyplain{}{#3}]{\fancyplain{}{#6}} -} - -% \setfooter{EvenPageLeft}{EvenPageCentre}{EvenPageRight} -% {OddPageLeft}{OddPageCentre}{OddPageRight} -\newcommand{\setfooter}[6]{ -\lfoot[\fancyplain{#1}{#1}]{\fancyplain{#4}{#4}} -\cfoot[\fancyplain{#2}{#2}]{\fancyplain{#5}{#5}} -\rfoot[\fancyplain{#3}{#3}]{\fancyplain{#6}{#6}} -} - -% Needed for telling RTF where margin paragraph should go -% in mirrored margins mode. -\newcommand{\marginpareven}[1]{\hspace*{0pt}\marginpar{#1}} -\newcommand{\marginparodd}[1]{\hspace*{0pt}\marginpar{#1}} - -% Environment for two-column table popular in WinHelp and manuals. -\newcommand{\twocolwidtha}[1]{\def\twocolwidthaval{#1}} -\newcommand{\twocolwidthb}[1]{\def\twocolwidthbval{#1}} -\newcommand{\twocolspacing}[1]{\def\twocolspacingval{#1}} - -\twocolwidtha{3cm} -\twocolwidthb{8.5cm} -\twocolspacing{2} - -\newcommand{\twocolitem}[2]{#1 & #2\\} -\newcommand{\twocolitemruled}[2]{#1 & #2\\\hline} - -\newenvironment{twocollist}{\renewcommand{\arraystretch}{\twocolspacingval}\begin{tabular}{lp{\twocolwidthbval}}}% -{\end{tabular}\renewcommand{\arraystretch}{1}} - -% Specifying table rows for RTF compatibility -\newcommand{\row}[1]{#1\\} - -% Use for the last ruled row for correct RTF generation. -\newcommand{\ruledrow}[1]{#1\\\hline} - -% Indentation environment. Arg1 is left margin size -\newenvironment{indented}[1]{\begin{list}{}{\leftmargin=#1}\item[]}% -{\end{list}} - -% Framed box of text, normal formatting. -\newcommand{\normalbox}[1]{\fbox{\vbox{#1}}} -% Double-framed box of text. -\newcommand{\normalboxd}[1]{\fbox{\fbox{\vbox{#1}}}} - -% WITHDRAWN -- can't do in RTF, easily. -% Framed box of text, horizontally centred. Ragged right within box. -% \newcommand{\centeredbox}[2]{\begin{center}\fbox{\parbox{#1}{\raggedright#2}}\end{center}} -% Double-framed box of text, horizontally centred. Ragged right within box. -% \newcommand{\centeredboxd}[2]{\begin{center}\fbox{\fbox{\parbox{#1}{\raggedright#2}}}\end{center}} - -% toocomplex environment: simply prints the argument in LaTeX, -% comes out verbatim in all generated formats. -\newenvironment{toocomplex}{}{} - -% Colour: dummy commands since LaTeX doesn't support colour. -% \definecolour{name}{red}{blue}{green} -% \fcol{name}{text} ; Foreground -% \bcol{name}{text} ; Background -\newcommand{\definecolour}[4]{} -\newcommand{\definecolor}[4]{} -\newcommand{\fcol}[2]{#2} -\newcommand{\bcol}[2]{#2} -\newcommand{\sethotspotcolour}[1]{} -\newcommand{\sethotspotunderline}[1]{} -\newcommand{\settransparency}[1]{} -\newcommand{\backslashraw}[0]{} -\newcommand{\lbraceraw}[0]{} -\newcommand{\rbraceraw}[0]{} -\newcommand{\registered}[0]{(r)} -\newcommand{\background}[1]{} -\newcommand{\textcolour}[1]{} -\newcommand{\overview}[2]{See \helpref{#1}{#2}.} -\newcommand{\docparam}[2]{{\it #1}\begin{list}{}{\leftmargin=1cm}\item[] -#2% -\end{list}} -\newcommand{\wxheading}[1]{{\bf #1}} -\newcommand{\const}[0]{{\bf const}} -\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} -\newcommand{\windowstyle}[1]{{\bf #1}\index{#1}} - -\addtolength{\textwidth}{1in} -\addtolength{\oddsidemargin}{-0.5in} -\addtolength{\topmargin}{-0.5in} -\addtolength{\textheight}{1in} -\sloppy - diff --git a/docs/latex/wx/texpr.tex b/docs/latex/wx/texpr.tex deleted file mode 100644 index 0cf364f452..0000000000 --- a/docs/latex/wx/texpr.tex +++ /dev/null @@ -1,203 +0,0 @@ -\section{wxExpr overview}\label{exproverview} - -wxExpr is a C++ class reading and writing a subset of Prolog-like syntax, -supporting objects attribute/value pairs. - -wxExpr can be used to develop programs with readable and -robust data files. Within wxWindows itself, it is used to parse -the {\tt .wxr} dialog resource files. - -{\bf History of wxExpr} - -During the development of the tool Hardy within the AIAI, a need arose -for a data file format for C++ that was easy for both humans and -programs to read, was robust in the face of fast-moving software -development, and that provided some compatibility with AI languages -such as Prolog and LISP. - -The result was the wxExpr library (formerly called PrologIO), which is able to read and write a -Prolog-like attribute-value syntax, and is additionally capable of -writing LISP syntax for no extra programming effort. The advantages of -such a library are as follows: - -\begin{enumerate}\itemsep=0pt -\item The data files are readable by humans; -\item I/O routines are easier to write and debug compared with using binary files; -\item the files are robust: unrecognised data will just be ignored by the application -\item Inbuilt hashing gives a random access capability, useful for when linking -up C++ objects as data is read in; -\item Prolog and LISP programs can load the files using a single command. -\end{enumerate} - -The library was extended to use the ability to read and write -Prolog-like structures for remote procedure call (RPC) communication. -The next two sections outline the two main ways the library can be used. - -\subsection{wxExpr for data file manipulation}\itemsep=0pt - -The fact that the output is in Prolog syntax is irrelevant for most -programmers, who just need a reasonable I/O facility. Typical output -looks like this: - -\begin{verbatim} -diagram_definition(type = "Spirit Belief Network"). - -node_definition(type = "Model", - image_type = "Diamond", - attribute_for_label = "name", - attribute_for_status_line = "label", - colour = "CYAN", - default_width = 120, - default_height = 80, - text_size = 10, - can_resize = 1, - has_hypertext_item = 1, - attributes = ["name", "combining_function", "level_of_belief"]). - -arc_definition(type = "Potentially Confirming", - image_type = "Spline", - arrow_type = "End", - line_style = "Solid", - width = 1, - segmentable = 0, - attribute_for_label = "label", - attribute_for_status_line = "label", - colour = "BLACK", - text_size = 10, - has_hypertext_item = 1, - can_connect_to = ["Evidence", "Cluster", "Model", "Evidence", "Evidence", "Cluster"], - can_connect_from = ["Data", "Evidence", "Cluster", "Evidence", "Data", "Cluster"]). -\end{verbatim} - -This is substantially easier to read and debug than a series of numbers and -strings. - -Note the object-oriented style: a file comprises a series of {\it clauses}. -Each clause is an object with a {\it functor}\/ or object name, followed -by a list of attribute-value pairs enclosed in parentheses, and finished -with a full stop. Each attribute value may be a string, a word (no quotes), -an integer, a real number, or a list with potentially recursive elements. - -The way that the facility is used by an application to read in a file is -as follows: - -\begin{enumerate}\itemsep=0pt -\item The application creates a wxExprDatabase instance. -\item The application tells the database to read in the entire file. -\item The application searches the database for objects it requires, -decomposing the objects using the wxExpr API. The database may be hashed, -allowing rapid linking-up of application data. -\item The application deletes or clears the wxExprDatabase. -\end{enumerate} - -Writing a file is just as easy: - -\begin{enumerate}\itemsep=0pt -\item The application creates a wxExprDatabase instance. -\item The application adds objects to the database using the API. -\item The application tells the database to write out the entire database, -in Prolog or LISP notation. -\item The application deletes or clears the wxExprDatabase. -\end{enumerate} - -To use the library, include "wxexpr.h". - -\subsection{wxExpr compilation} - -For UNIX compilation, ensure that YACC and LEX or FLEX are on your system. Check that -the makefile uses the correct programs: a common error is to compile -y\_tab.c with a C++ compiler. Edit the CCLEX variable in make.env -to specify a C compiler. Also, do not attempt to compile lex\_yy.c -since it is included by y\_tab.c. - -For DOS compilation, the simplest thing is to copy dosyacc.c to y\_tab.c, and doslex.c to -lex\_yy.c. It is y\_tab.c that must be compiled (lex\_yy.c is included by -y\_tab.c) so if adding source files to a project file, ONLY add y\_tab.c -plus the .cc files. If you wish to alter the parser, you will need YACC -and FLEX on DOS. - -The DOS tools are available at the AIAI ftp site, in the tools directory. Note that -for FLEX installation, you need to copy flex.skl into the directory -c:/lib. - -If you are using Borland C++ and wish to regenerate lex\_yy.c and y\_tab.c -you need to generate lex\_yy.c with FLEX and then comment out the `malloc' and `free' -prototypes in lex\_yy.c. It will compile with lots of warnings. If you -get an undefined \_PROIO\_YYWRAP symbol when you link, you need to remove -USE\_DEFINE from the makefile and recompile. This is because the parser.y -file has a choice of defining this symbol as a function or as a define, -depending on what the version of FLEX expects. See the bottom of -parser.y, and if necessary edit it to make it compile in the opposite -way to the current compilation. - -To test out wxExpr compile the test program (samples/wxexpr/wxexpr.exe), -and try loading test.exp into the test -program. Then save it to another file. If the second is identical to the -first, wxExpr is in a working state. - -\subsection{Bugs} - -These are the known bugs: - -\begin{enumerate}\itemsep=0pt -\item Functors are permissable only in the main clause (object). -Therefore nesting of structures must be done using lists, not predicates -as in Prolog. -\item There is a limit to the size of strings read in (about 5000 bytes). -\end{enumerate} - -\subsection{Using wxExpr} - -This section is a brief introduction to using the wxExpr package. - -First, some terminology. A {\it wxExprDatabase}\/ is a list of {\it clauses}, -each of which represents an object or record which needs to be saved to a file. -A clause has a {\it functor}\/ (name), and a list of attributes, each of which -has a value. Attributes may take the following types of value: string, word, -integer, floating point number, and list. A list can itself contain any -type, allowing for nested data structures. - -Consider the following code. - -\begin{verbatim} -wxExprDatabase db; - -wxExpr *my_clause = new wxExpr("object"); -my_clause->AddAttributeValue("id", (long)1); -my_clause->AddAttributeValueString("name", "Julian Smart"); -db.Append(my_clause); - -ofstream file("my_file"); -db.Write(file); -\end{verbatim} - -This creates a database, constructs a clause, adds it to the database, -and writes the whole database to a file. The file it produces looks like -this: - -\begin{verbatim} -object(id = 1, - name = "Julian Smart"). -\end{verbatim} - -To read the database back in, the following will work: - -\begin{verbatim} -wxExprDatabase db; -db.Read("my_file"); - -db.BeginFind(); - -wxExpr *my_clause = db.FindClauseByFunctor("object"); -int id = 0; -wxString name = "None found"; - -my_clause->GetAttributeValue("id", id); -my_clause->GetAttributeValue("name", name); - -cout << "Id is " << id << ", name is " << name << "\n"; -\end{verbatim} - -Note the setting of defaults before attempting to retrieve attribute values, -since they may not be found. - diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex deleted file mode 100644 index d2e831e459..0000000000 --- a/docs/latex/wx/text.tex +++ /dev/null @@ -1,591 +0,0 @@ -\section{\class{wxTextCtrl}}\label{wxtextctrl} - -A text control allows text to be displayed and edited. It may be -single line or multi-line. - -\wxheading{Derived from} - -streambuf\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate -the message wxEVENT\_TYPE\_TEXT\_ENTER\_COMMAND (otherwise pressing is -either processed internally by the control or used for navigation between -dialog controls).} -\twocolitem{\windowstyle{wxTE\_PROCESS\_TAB}}{The control will receieve -EVT\_CHAR messages for TAB pressed - normally, TAB is used for passing to the -next control in a dialog instead. For the control created with this style, -you can still use Ctrl-Enter to pass to the next control from the keyboard.} -\twocolitem{\windowstyle{wxTE\_MULTILINE}}{The text control allows multiple lines.} -\twocolitem{\windowstyle{wxTE\_PASSWORD}}{The text will be echoed as asterisks.} -\twocolitem{\windowstyle{wxTE\_READONLY}}{The text will not be user-editable.} -\twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles} and -\helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlconstr}. - -\wxheading{Remarks} - -This class multiply-inherits from {\bf streambuf} where compilers allow, allowing code such as the following: - -{\small% -\begin{verbatim} - wxTextCtrl *control = new wxTextCtrl(...); - - ostream stream(control) - - stream << 123.456 << " some text\n"; - stream.flush(); -\end{verbatim} -}% - -If your compiler does not support derivation from {\bf streambuf} and gives a compile error, define the symbol {\bf NO\_TEXT\_WINDOW\_STREAM} in the -wxTextCtrl header file. - -\wxheading{Event handling} - -The following commands are processed by default event handlers in wxTextCtrl: wxID\_CUT, wxID\_COPY, -wxID\_PASTE, wxID\_UNDO, wxID\_REDO. The associated UI update events are also processed -automatically, when the control has the focus. - -To process input from a text control, use these event handler macros to direct input to member -functions that take a \helpref{wxCommandEvent}{wxcommandevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_UPDATED event, -generated when the text changes. Notice that this event will always be sent -when the text controls contents changes - whether this is due to user input or -comes from the program itself (for example, if SetValue() is called)} -\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_ENTER event, -generated when enter is pressed in a single-line text control.} -\end{twocollist}% - -%\wxheading{See also} -% -%\helpref{wxRichTextCtrl}{wxrichtextctrl} -% -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextCtrl::wxTextCtrl}\label{wxtextctrlconstr} - -\func{}{wxTextCtrl}{\void} - -Default constructor. - -\func{}{wxTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``text"}} - -Constructor, creating and showing a text control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Should not be NULL.} - -\docparam{id}{Control identifier. A value of -1 denotes a default value.} - -\docparam{value}{Default text value.} - -\docparam{pos}{Text control position.} - -\docparam{size}{Text control size.} - -\docparam{style}{Window style. See \helpref{wxTextCtrl}{wxtextctrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -The horizontal scrollbar ({\bf wxTE\_HSCROLL} style flag) will only be created for multi-line text controls. -Without a horizontal scrollbar, text lines that don't fit in the control's -size will be wrapped (but no newline character is inserted). Single line -controls don't have a horizontal scrollbar, the text is automatically scrolled -so that the \helpref{insertion point}{wxtextctrlgetinsertionpoint} is always -visible. - -Under Windows, if the {\bf wxTE\_MULTILINE} style is used, the window is implemented -as a Windows rich text control with unlimited capacity. Otherwise, normal edit control limits -apply. - -\wxheading{See also} - -\helpref{wxTextCtrl::Create}{wxtextctrlcreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxTextCtrl::\destruct{wxTextCtrl}} - -\func{}{\destruct{wxTextCtrl}}{\void} - -Destructor, destroying the text control. - -\membersection{wxTextCtrl::AppendText}\label{wxtextctrlappendtext} - -\func{void}{AppendText}{\param{const wxString\& }{ text}} - -Appends the text to the end of the text control. - -\wxheading{Parameters} - -\docparam{text}{Text to write to the text control.} - -\wxheading{Remarks} - -After the text is appended, the insertion point will be at the end of the text control. If this behaviour is not desired, -the programmer should use \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoint} and \helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint}. - -\wxheading{See also} - -\helpref{wxTextCtrl::WriteText}{wxtextctrlwritetext} - -\membersection{wxTextCtrl::CanCopy}\label{wxtextctrlcancopy} - -\func{virtual bool}{CanCopy}{\void} - -Returns TRUE if the selection can be copied to the clipboard. - -\membersection{wxTextCtrl::CanCut}\label{wxtextctrlcancut} - -\func{virtual bool}{CanCut}{\void} - -Returns TRUE if the selection can be cut to the clipboard. - -\membersection{wxTextCtrl::CanPaste}\label{wxtextctrlcanpaste} - -\func{virtual bool}{CanPaste}{\void} - -Returns TRUE if the contents of the clipboard can be pasted into the -text control. On some platforms (Motif, GTK) this is an approximation -and returns TRUE if the control is editable, FALSE otherwise. - -\membersection{wxTextCtrl::CanRedo}\label{wxtextctrlcanredo} - -\func{virtual bool}{CanRedo}{\void} - -Returns TRUE if there is a redo facility available and the last operation -can be redone. - -\membersection{wxTextCtrl::CanUndo}\label{wxtextctrlcanundo} - -\func{virtual bool}{CanUndo}{\void} - -Returns TRUE if there is an undo facility available and the last operation -can be undone. - -\membersection{wxTextCtrl::Clear}\label{wxtextctrlclear} - -\func{virtual void}{Clear}{\void} - -Clears the text in the control. - -\membersection{wxTextCtrl::Copy}\label{wxtextctrlcopy} - -\func{virtual void}{Copy}{\void} - -Copies the selected text to the clipboard under Motif and MS Windows. - -\membersection{wxTextCtrl::Create}\label{wxtextctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``text"}} - -Creates the text control for two-step construction. Derived classes -should call or replace this function. See \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlconstr}\rtfsp -for further details. - -\membersection{wxTextCtrl::Cut}\label{wxtextctrlcut} - -\func{virtual void}{Cut}{\void} - -Copies the selected text to the clipboard and removes the selection. - -\membersection{wxTextCtrl::DiscardEdits} - -\func{void}{DiscardEdits}{\void} - -Resets the internal `modified' flag as if the current edits had been saved. - -\membersection{wxTextCtrl::GetInsertionPoint}\label{wxtextctrlgetinsertionpoint} - -\constfunc{virtual long}{GetInsertionPoint}{\void} - -Returns the insertion point. This is defined as the zero based index of the -character position to the right of the insertion point. For example, if -the insertion point is at the end of the text control, it is equal to -both \helpref{GetValue()}{wxtextctrlgetvalue}.Length() and -\helpref{GetLastPosition()}{wxtextctrlgetlastposition}. - -The following code snippet safely returns the character at the insertion -point or the zero character if the point is at the end of the control. - -{\small% -\begin{verbatim} - char GetCurrentChar(wxTextCtrl *tc) { - if (tc->GetInsertionPoint() == tc->GetLastPosition()) - return '\0'; - return tc->GetValue[tc->GetInsertionPoint()]; - } -\end{verbatim} -}% - -\membersection{wxTextCtrl::GetLastPosition}\label{wxtextctrlgetlastposition} - -\constfunc{virtual long}{GetLastPosition}{\void} - -Returns the zero based index of the last position in the text control, -which is equal to the number of characters in the control. - -\membersection{wxTextCtrl::GetLineLength}\label{wxtextctrlgetlinelength} - -\constfunc{int}{GetLineLength}{\param{long}{ lineNo}} - -Gets the length of the specified line, not including any trailing newline -character(s). - -\wxheading{Parameters} - -\docparam{lineNo}{Line number (starting from zero).} - -\wxheading{Return value} - -The length of the line, or -1 if {\it lineNo} was invalid. - -\membersection{wxTextCtrl::GetLineText}\label{wxtextctrlgetlinetext} - -\constfunc{wxString}{GetLineText}{\param{long}{ lineNo}} - -Returns the contents of a given line in the text control, not including -any trailing newline character(s). - -\wxheading{Parameters} - -\docparam{lineNo}{The line number, starting from zero.} - -\wxheading{Return value} - -The contents of the line. - -\membersection{wxTextCtrl::GetNumberOfLines}\label{wxtextctrlgetnumberoflines} - -\constfunc{int}{GetNumberOfLines}{\void} - -Returns the number of lines in the text control buffer. - -\wxheading{Remarks} - -Note that even empty text controls have one line (where the insertion point -is), so GetNumberOfLines() never returns 0. - -For gtk\_text (multi-line) controls, the number of lines is -calculated by actually counting newline characters in the buffer. You -may wish to avoid using functions that work with line numbers if you are -working with controls that contain large amounts of text. - -\membersection{wxTextCtrl::GetSelection}\label{wxtextctrlgetselection} - -\func{virtual void}{GetSelection}{\param{long*}{ from}, \param{long*}{ to}} - -Gets the current selection span. If the returned values are equal, there was -no selection. - -\wxheading{Parameters} - -\docparam{from}{The returned first position.} - -\docparam{to}{The returned last position.} - -\pythonnote{The wxPython version of this method returns a tuple -consisting of the from and to values.} - -\membersection{wxTextCtrl::GetValue}\label{wxtextctrlgetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Gets the contents of the control. - -\membersection{wxTextCtrl::IsModified}\label{wxtextctrlismodified} - -\constfunc{bool}{IsModified}{\void} - -Returns TRUE if the text has been modified. - -\membersection{wxTextCtrl::LoadFile}\label{wxtextctrlloadfile} - -\func{bool}{LoadFile}{\param{const wxString\& }{ filename}} - -Loads and displays the named file, if it exists. - -\wxheading{Parameters} - -\docparam{filename}{The filename of the file to load.} - -\wxheading{Return value} - -TRUE if successful, FALSE otherwise. - -\membersection{wxTextCtrl::OnChar}\label{wxtextctrlonchar} - -\func{void}{OnChar}{\param{wxKeyEvent\& }{event}} - -Default handler for character input. - -\wxheading{Remarks} - -It is possible to intercept character -input by overriding this member. Call this function -to let the default behaviour take place; not calling -it results in the character being ignored. You can -replace the {\it keyCode} member of {\it event} to -translate keystrokes. - -Note that Windows and Motif have different ways -of implementing the default behaviour. In Windows, -calling wxTextCtrl::OnChar immediately -processes the character. In Motif, -calling this function simply sets a flag -to let default processing happen. This might affect -the way in which you write your OnChar function -on different platforms. - -\wxheading{See also} - -\helpref{wxKeyEvent}{wxkeyevent} - -\membersection{wxTextCtrl::OnDropFiles}\label{wxtextctrlondropfiles} - -\func{void}{OnDropFiles}{\param{wxDropFilesEvent\& }{event}} - -This event handler function implements default drag and drop behaviour, which -is to load the first dropped file into the control. - -\wxheading{Parameters} - -\docparam{event}{The drop files event.} - -\wxheading{Remarks} - -This is not yet implemented for the GTK. - -\wxheading{See also} - -\helpref{wxDropFilesEvent}{wxdropfilesevent} - -\membersection{wxTextCtrl::Paste}\label{wxtextctrlpaste} - -\func{virtual void}{Paste}{\void} - -Pastes text from the clipboard to the text item. - -\membersection{wxTextCtrl::PositionToXY}\label{wxtextctrlpositiontoxy} - -\constfunc{bool}{PositionToXY}{\param{long }{pos}, \param{long *}{x}, \param{long *}{y}} - -Converts given position to a zero-based column, line number pair. - -\wxheading{Parameters} - -\docparam{pos}{Position.} - -\docparam{x}{Receives zero based column number.} - -\docparam{y}{Receives zero based line number.} - -\wxheading{Return value} - -TRUE on success, FALSE on failure (most likely due to a too large position -parameter). - -\wxheading{See also} - -\helpref{wxTextCtrl::XYToPosition}{wxtextctrlxytoposition} - -\pythonnote{In Python, PositionToXY() returns a tuple containing the x and -y values, so (x,y) = PositionToXY() is equivalent to the call described -above.} - -\membersection{wxTextCtrl::Redo}\label{wxtextctrlredo} - -\func{virtual void}{Redo}{\void} - -If there is a redo facility and the last operation can be redone, redoes the last operation. Does nothing -if there is no redo facility. - -\membersection{wxTextCtrl::Remove}\label{wxtextctrlremove} - -\func{virtual void}{Remove}{\param{long}{ from}, \param{long}{ to}} - -Removes the text starting at the first given position up to (but not including) -the character at the last position. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - -\membersection{wxTextCtrl::Replace}\label{wxtextctrlreplace} - -\func{virtual void}{Replace}{\param{long}{ from}, \param{long}{ to}, \param{const wxString\& }{value}} - -Replaces the text starting at the first position up to (but not including) -the character at the last position with the given text. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - -\docparam{value}{The value to replace the existing text with.} - -\membersection{wxTextCtrl::SaveFile}\label{wxtextctrlsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{ filename}} - -Saves the contents of the control in a text file. - -\wxheading{Parameters} - -\docparam{filename}{The name of the file in which to save the text.} - -\wxheading{Return value} - -TRUE if the operation was successful, FALSE otherwise. - -\membersection{wxTextCtrl::SetEditable}\label{wxtextctrlseteditable} - -\func{virtual void}{SetEditable}{\param{const bool}{ editable}} - -Makes the text item editable or read-only, overriding the {\bf wxTE\_READONLY} -flag. - -\wxheading{Parameters} - -\docparam{editable}{If TRUE, the control is editable. If FALSE, the control is read-only.} - -\membersection{wxTextCtrl::SetInsertionPoint}\label{wxtextctrlsetinsertionpoint} - -\func{virtual void}{SetInsertionPoint}{\param{long}{ pos}} - -Sets the insertion point at the given position. - -\wxheading{Parameters} - -\docparam{pos}{Position to set.} - -\membersection{wxTextCtrl::SetInsertionPointEnd}\label{wxtextctrlsetinsertionpointend} - -\func{virtual void}{SetInsertionPointEnd}{\void} - -Sets the insertion point at the end of the text control. This is equivalent -to \helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint}(\helpref{GetLastPosition}{wxtextctrlgetlastposition}()). - -\membersection{wxTextCtrl::SetSelection}\label{wxtextctrlsetselection} - -\func{virtual void}{SetSelection}{\param{long}{ from}, \param{long}{ to}} - -Selects the text starting at the first position up to (but not including) the character at the last position. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - -\membersection{wxTextCtrl::SetValue}\label{wxtextctrlsetvalue} - -\func{virtual void}{SetValue}{\param{const wxString\& }{ value}} - -Sets the text value. - -\wxheading{Parameters} - -\docparam{value}{The new value to set. It may contain newline characters if the text control is multi-line.} - -\membersection{wxTextCtrl::ShowPosition}\label{wxtextctrlshowposition} - -\func{void}{ShowPosition}{\param{long}{ pos}} - -Makes the line containing the given position visible. - -\wxheading{Parameters} - -\docparam{pos}{The position that should be visible.} - -\membersection{wxTextCtrl::Undo}\label{wxtextctrlundo} - -\func{virtual void}{Undo}{\void} - -If there is an undo facility and the last operation can be undone, undoes the last operation. Does nothing -if there is no undo facility. - -\membersection{wxTextCtrl::WriteText}\label{wxtextctrlwritetext} - -\func{void}{WriteText}{\param{const wxString\& }{ text}} - -Writes the text into the text control at the current insertion position. - -\wxheading{Parameters} - -\docparam{text}{Text to write to the text control.} - -\wxheading{Remarks} - -Newlines in the text string -are the only control characters allowed, and they will cause appropriate -line breaks. See \helpref{wxTextCtrl::\cinsert}{wxtextctrlinsert} and \helpref{wxTextCtrl::AppendText}{wxtextctrlappendtext} for more convenient ways of writing to the window. - -After the write operation, the insertion point will be at the end of the inserted text, so subsequent write operations will be appended. To append text after the user may have interacted with the control, call \helpref{wxTextCtrl::SetInsertionPointEnd}{wxtextctrlsetinsertionpointend} before writing. - -\membersection{wxTextCtrl::XYToPosition}\label{wxtextctrlxytoposition} - -\func{long}{XYToPosition}{\param{long}{ x}, \param{long}{ y}} - -Converts the given zero based column and line number to a position. - -\wxheading{Parameters} - -\docparam{x}{The column number.} - -\docparam{y}{The line number.} - -\wxheading{Return value} - -The position value. - -\membersection{wxTextCtrl::operator \cinsert}\label{wxtextctrlinsert} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{const wxString\& }{s}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{int}{ i}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{long}{ i}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{float}{ f}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{double}{ d}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{char}{ c}} - -Operator definitions for appending to a text control, for example: - -\begin{verbatim} - wxTextCtrl *wnd = new wxTextCtrl(my_frame); - - (*wnd) << "Welcome to text control number " << 1 << ".\n"; -\end{verbatim} - diff --git a/docs/latex/wx/textdlg.tex b/docs/latex/wx/textdlg.tex deleted file mode 100644 index ef13e0b1d5..0000000000 --- a/docs/latex/wx/textdlg.tex +++ /dev/null @@ -1,68 +0,0 @@ -\section{\class{wxTextEntryDialog}}\label{wxtextentrydialog} - -This class represents a dialog that requests a one-line text string from the user. -It is implemented as a generic wxWindows dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTextEntryDialog overview}{wxtextentrydialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextEntryDialog::wxTextEntryDialog}\label{wxtextentrydialogconstr} - -\func{}{wxTextEntryDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption = "Please enter text"}, \param{const wxString\& }{defaultValue = ""}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE}, \param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor. Use \helpref{wxTextEntryDialog::ShowModal}{wxtextentrydialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{defaultValue}{The default value, which may be the empty string.} - -\docparam{style}{A dialog style, specifying the buttons (wxOK, wxCANCEL) and an optional wxCENTRE style.} - -\docparam{pos}{Dialog position.} - -\membersection{wxTextEntryDialog::\destruct{wxTextEntryDialog}} - -\func{}{\destruct{wxTextEntryDialog}}{\void} - -Destructor. - -\membersection{wxTextEntryDialog::GetValue}\label{wxtextentrydialoggetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Returns the text that the user has entered if the user has pressed OK, or the original value -if the user has pressed Cancel. - -\membersection{wxTextEntryDialog::SetValue}\label{wxtextentrydialogsetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{value}} - -Sets the default text value. - -\membersection{wxTextEntryDialog::ShowModal}\label{wxtextentrydialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxOK\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/textfile.tex b/docs/latex/wx/textfile.tex deleted file mode 100644 index 275479dab3..0000000000 --- a/docs/latex/wx/textfile.tex +++ /dev/null @@ -1,256 +0,0 @@ -\section{\class{wxTextFile}}\label{wxtextfile} - -The wxTextFile is a simple class which allows to work with text files on line by -line basis. It also understands the differences in line termination characters -under different platforms and will not do anything bad to files with "non -native" line termination sequences - in fact, it can be also used to modify the -text files and change the line termination characters from one type (say DOS) to -another (say Unix). - -One word of warning: the class is not at all optimized for big files and so it -will load the file entirely into memory when opened. Of course, you should not -work in this way with large files (as an estimation, anything over 1 Megabyte is -surely too big for this class). On the other hand, it is not a serious -limitation for the small files like configuration files or programs sources -which are well handled by wxTextFile. - -The typical things you may do with wxTextFile in order are: - -\begin{itemize}\itemsep=0pt -\item Create and open it: this is done with \helpref{Open}{wxtextfileopen} -function which opens the file (name may be specified either as Open argument or -in the constructor), reads its contents in memory and closes it. If all of these -operations are successful, Open() will return TRUE and FALSE on error. -\item Work with the lines in the file: this may be done either with "direct -access" functions like \helpref{GetLineCount}{wxtextfilegetlinecount} and -\helpref{GetLine}{wxtextfilegetline} ({\it operator[]} does exactly the same -but looks more like array addressing) or with "sequential access" functions -which include \helpref{GetFirstLine}{wxtextfilegetfirstline}/ -\helpref{GetNextLine}{wxtextfilegetnextline} and also -\helpref{GetLastLine}{wxtextfilegetlastline}/\helpref{GetPrevLine}{wxtextfilegetprevline}. -For the sequential access functions the current line number is maintained: it is -returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} and may be -changed with \helpref{GoToLine}{wxtextfilegotoline}. -\item Add/remove lines to the file: \helpref{AddLine}{wxtextfileaddline} and -\helpref{InsertLine}{wxtextfileinsertline} add new lines while -\helpref{RemoveLine}{wxtextfileremoveline} deletes the existing ones. -\item Save your changes: notice that the changes you make to the file will {\bf -not} be saved automatically; calling \helpref{Close}{wxtextfileclose} or doing -nothing discards them! To save the changes you must explicitly call -\helpref{Write}{wxtextfilewrite} - here, you may also change the line -termination type if you wish. -\end{itemize} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Data structures} - -The following constants identify the line termination type: -\begin{verbatim} -enum wxTextFileType -{ - wxTextFileType_None, // incomplete (the last line of the file only) - wxTextFileType_Unix, // line is terminated with 'LF' = 0xA = 10 = '\n' - wxTextFileType_Dos, // 'CR' 'LF' - wxTextFileType_Mac // 'CR' = 0xD = 13 = '\r' -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxFile}{wxfile} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextFile::wxTextFile}\label{wxtextfilectordef} - -\constfunc{}{wxTextFile}{\void} - -Default constructor, use Open(string) to initialize the object. - -\membersection{wxTextFile::wxTextFile}\label{wxtextfilector} - -\constfunc{}{wxTextFile}{\param{const wxString\& }{strFile}} - -Constructor does not load the file into memory, use Open() to do it. - -\membersection{wxTextFile::Exists}\label{wxtextfileexists} - -\constfunc{bool}{Exists}{\void} - -Return TRUE if file exists - the name of the file should have been specified -in the constructor before calling Exists(). - -\membersection{wxTextFile::Open}\label{wxtextfileopen} - -\constfunc{bool}{Open}{\void} - -Open() opens the file with the name which was given in the \helpref{constructor}{wxtextfilector} -and also loads file in memory on success. - -\membersection{wxTextFile::Open}\label{wxtextfileopenname} - -\constfunc{bool}{Open}{\param{const wxString\& }{strFile}} - -Same as \helpref{Open()}{wxtextfileopen} but allows to specify the file name -(must be used if the default constructor was used to create the object). - -\membersection{wxTextFile::Close}\label{wxtextfileclose} - -\constfunc{bool}{Close}{\void} - -Closes the file and frees memory, {\bf losing all changes}. Use \helpref{Write()}{wxtextfilewrite} -if you want to save them. - -\membersection{wxTextFile::IsOpened}\label{wxtextfileisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns TRUE if the file is currently opened. - -\membersection{wxTextFile::GetLineCount}\label{wxtextfilegetlinecount} - -\constfunc{size\_t}{GetLineCount}{\void} - -Get the number of lines in the file. - -\membersection{wxTextFile::GetLine}\label{wxtextfilegetline} - -\constfunc{wxString\&}{GetLine}{\param{size\_t }{n}} - -Retrieves the line number {\it n} from the file. The returned line may be -modified but you shouldn't add line terminator at the end - this will be done -by wxTextFile. - -\membersection{wxTextFile::operator[]}\label{wxtextfileoperatorarray} - -\constfunc{wxString\&}{operator[]}{\param{size\_t }{n}} - -The same as \helpref{GetLine}{wxtextfilegetline}. - -\membersection{wxTextFile::GetCurrentLine}\label{wxtextfilegetcurrentline} - -\constfunc{size\_t}{GetCurrentLine}{\void} - -Returns the current line: it has meaning only when you're using -GetFirstLine()/GetNextLine() functions, it doesn't get updated when -you're using "direct access" functions like GetLine(). GetFirstLine() and -GetLastLine() also change the value of the current line, as well as -GoToLine(). - -\membersection{wxTextFile::GoToLine}\label{wxtextfilegotoline} - -\constfunc{void}{GoToLine}{\param{size\_t }{n}} - -Changes the value returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} -and used by \helpref{GetFirstLine()}{wxtextfilegetfirstline}/\helpref{GetNextLine()}{wxtextfilegetnextline}. - -\membersection{wxTextFile::Eof}\label{wxtextfileeof} - -\constfunc{bool}{Eof}{\void} - -Returns TRUE if the current line is the last one. - -\membersection{wxTextFile::GetFirstLine}\label{wxtextfilegetfirstline} - -\constfunc{wxString\&}{GetFirstLine}{\void} - -This method together with \helpref{GetNextLine()}{wxtextfilegetnextline} -allows more "iterator-like" traversal of the list of lines, i.e. you may -write something like: - -\begin{verbatim} -for ( str = GetFirstLine(); !Eof(); str = GetNextLine() ) -{ - // do something with the current line in str -} -\end{verbatim} - -\membersection{wxTextFile::GetNextLine}\label{wxtextfilegetnextline} - -\func{wxString\&}{GetNextLine}{\void} - -Gets the next line (see \helpref{GetFirstLine}{wxtextfilegetfirstline} for -the example). - -\membersection{wxTextFile::GetPrevLine}\label{wxtextfilegetprevline} - -\func{wxString\&}{GetPrevLine}{\void} - -Gets the previous line in the file. - -\membersection{wxTextFile::GetLastLine}\label{wxtextfilegetlastline} - -\func{wxString\&}{GetLastLine}{\void} - -Gets the last line of the file. - -\membersection{wxTextFile::GetLineType}\label{wxtextfilegetlinetype} - -\constfunc{wxTextFileType}{GetLineType}{\param{size\_t }{n}} - -Get the type of the line (see also \helpref{GetEOL}{wxtextfilegeteol}) - -\membersection{wxTextFile::GuessType}\label{wxtextfileguesstype} - -\constfunc{wxTextFileType}{GuessType}{\void} - -Guess the type of file (which is supposed to be opened). If sufficiently -many lines of the file are in DOS/Unix/Mac format, the corresponding value will -be returned. If the detection mechanism fails wxTextFileType\_None is returned. - -\membersection{wxTextFile::GetName}\label{wxtextfilegetname} - -\constfunc{const char*}{GetName}{\void} - -Get the name of the file. - -\membersection{wxTextFile::AddLine}\label{wxtextfileaddline} - -\constfunc{void}{AddLine}{\param{const wxString\& }{str}, \param{wxTextFileType }{type = typeDefault}} - -Adds a line to the end of file. - -\membersection{wxTextFile::InsertLine}\label{wxtextfileinsertline} - -\constfunc{void}{InsertLine}{\param{const wxString\& }{str}, \param{size\_t }{n}, \param{wxTextFileType }{type = typeDefault}} - -Insert a line before the line number {\it n}. - -\membersection{wxTextFile::RemoveLine}\label{wxtextfileremoveline} - -\constfunc{void}{RemoveLine}{\param{size\_t }{n}} - -Delete line number {\it n} from the file. - -\membersection{wxTextFile::Write}\label{wxtextfilewrite} - -\constfunc{bool}{Write}{\param{wxTextFileType }{typeNew = wxTextFileType\_None}} - -Change the file on disk. The {\it typeNew} parameter allows you to change the -file format (default argument means "don't change type") and may be used to -convert, for example, DOS files to Unix. - -Returns TRUE if operation succeeded, FALSE if it failed. - -\membersection{wxTextFile::GetEOL}\label{wxtextfilegeteol} - -\constfunc{static const char*}{GetEOL}{\param{wxTextFileType }{type = typeDefault}} - -Get the line termination string corresponding to given constant. {\it typeDefault} is -the value defined during the compilation and corresponds to the native format of the -platform, i.e. it will be wxTextFileType\_Dos under Windows, wxTextFileType\_Unix under -Unix and wxTextFileType\_Mac under Mac. - -\membersection{wxTextFile::\destruct{wxTextFile}}\label{wxtextfiledtor} - -\constfunc{}{\destruct{wxTextFile}}{\void} - -Destructor does nothing. - diff --git a/docs/latex/wx/tfile.tex b/docs/latex/wx/tfile.tex deleted file mode 100644 index 52c7f65e36..0000000000 --- a/docs/latex/wx/tfile.tex +++ /dev/null @@ -1,27 +0,0 @@ -\section{File classes and functions overview}\label{wxfileoverview} - -Classes: \helpref{wxFile}{wxfile}, \helpref{wxTempFile}{wxtempfile}, -\helpref{wxTextFile}{wxtextfile} - -Functions: see \helpref{file functions}{filefunctions}. - -wxWindows provides some functions and classes to facilitate working with files. -As usual, the accent is put on cross-platform features which explains, for -example, the \helpref{wxTextFile}{wxtextfile} class which may be used to convert -between different types of text files (DOS/Unix/Mac). - -wxFile may be used for low-level IO. It contains all usual functions to work -with files (opening/closing, reading/writing, seeking...) but, compared to -using standard C functions, brings error checking (in case of an error a message -is logged using \helpref{wxLog}{wxlog} facilities) and closes the file -automatically in destructor which may be quite convenient. - -wxTempFile is a very small file designed to make replacing the files contents -safer - see its \helpref{documentation}{wxtempfile} for more details. - -wxTextFile is a general purpose class for working with small text files on line -by line basis. It is especially well suited for working with configuration files -and program source files. It can be also used to work with files with "non -native" line termination characters and write them as "native" files if needed -(in fact, the files may be written in any format). - diff --git a/docs/latex/wx/tfont.tex b/docs/latex/wx/tfont.tex deleted file mode 100644 index f79794290a..0000000000 --- a/docs/latex/wx/tfont.tex +++ /dev/null @@ -1,36 +0,0 @@ -\section{Font overview}\label{wxfontoverview} - -Class: \helpref{wxFont}{wxfont} - -A font is an object which determines the appearance of text, primarily -when drawing text to a window or device context. A font is determined by -up to six parameters: - -\begin{twocollist}\itemsep=0pt -\twocolitem{Point size}{This is the standard way of referring to text size.} -\twocolitem{Family}{Supported families are: - {\bf wxDEFAULT, wxDECORATIVE, wxROMAN, wxSCRIPT, wxSWISS, wxMODERN}. - {\bf wxMODERN} is a fixed pitch font; the others are either fixed or variable pitch.} -\twocolitem{Style}{The value can be {\bf wxNORMAL, wxSLANT} or {\bf wxITALIC}.} -\twocolitem{Weight}{The value can be {\bf wxNORMAL, wxLIGHT} or {\bf wxBOLD}.} -\twocolitem{Underlining}{The value can be TRUE or FALSE.} -\twocolitem{Face name}{An optional string specifying the actual typeface to be used. If NULL, -a default typeface will chosen based on the family.} -\end{twocollist} - -Specifying a family, rather than a specific typeface name, ensures a degree of portability -across platforms because a suitable font will be chosen for the given font family. - -Under Windows, the face name can be one of the installed fonts on the user's system. Since -the choice of fonts differs from system to system, either choose standard Windows fonts, -or if allowing the user to specify a face name, store the family id with any file that -might be transported to a different Windows machine or other platform. - -\normalbox{{\bf Note:} There is currently a difference between the appearance of fonts on the -two platforms, if the mapping mode is anything other than wxMM\_TEXT. -Under X, font size is always specified in points. Under MS Windows, the -unit for text is points but the text is scaled according to the -current mapping mode. However, user scaling on a device context will -also scale fonts under both environments.} - - diff --git a/docs/latex/wx/tgrid.tex b/docs/latex/wx/tgrid.tex deleted file mode 100644 index af721965bd..0000000000 --- a/docs/latex/wx/tgrid.tex +++ /dev/null @@ -1,40 +0,0 @@ -\section{wxGrid classes overview}\label{gridoverview} - -wxGrid is a class for displaying and editing tabular information. - -To use wxGrid, include the wxgrid.h header file and link with the -wxGrid library. Create a wxGrid object, or, if you need to override -some default behaviour, create an object of a class derived from wxGrid. -You need to call CreateGrid before there are any cells in the grid. - -All row and column positions start from zero, and dimensions are in pixels. - -If you make changes to row or column dimensions, call UpdateDimensions and -then AdjustScrollbars. If you make changes to the grid appearance (such as -a change of cell background colour or font), call Refresh for the changes -to be shown. - -\subsection{Example} - -The following fragment is taken from the file samples/grid/test.cpp. Note the -call to UpdateDimensions, which is required if the application -has changed any dimensions such as column width or row height. -You may also need to call AdjustScrollbars. In this case, AdjustScrollbars -isn't necessary because it will be called by wxGrid::OnSize which is invoked -when the window is first displayed. - -\begin{verbatim} - // 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(12, wxROMAN, wxITALIC, wxNORMAL), 0, 0); - frame->grid->SetCellTextColour(*wxRED, 1, 1); - frame->grid->SetCellBackgroundColour(*wxCYAN, 2, 2); - frame->grid->UpdateDimensions(); -\end{verbatim} diff --git a/docs/latex/wx/tguide.tex b/docs/latex/wx/tguide.tex deleted file mode 100644 index 2179ddeb56..0000000000 --- a/docs/latex/wx/tguide.tex +++ /dev/null @@ -1,51 +0,0 @@ -\section{Writing a wxWindows application: a rough guide}\label{roughguide} - -To set a wxWindows application going, you'll need to derive a \helpref{wxApp}{wxapp} class and -override \helpref{wxApp::OnInit}{wxapponinit}. - -An application must have a top-level \helpref{wxFrame}{wxframe} or \helpref{wxDialog}{wxdialog} window. -Each frame may contain one or more instances of classes such as \helpref{wxPanel}{wxpanel}, \helpref{wxSplitterWindow}{wxsplitterwindow}\rtfsp -or other windows and controls. - -A frame can have a \helpref{wxMenuBar}{wxmenubar}, a \helpref{wxToolBar}{wxtoolbar}, a status line, and a \helpref{wxIcon}{wxicon} for -when the frame is iconized. - -A \helpref{wxPanel}{wxpanel} is used to place controls (classes derived from \helpref{wxControl}{wxcontrol}) -which are used for user interaction. Examples of controls are \helpref{wxButton}{wxbutton}, -\rtfsp\helpref{wxCheckBox}{wxcheckbox}, \helpref{wxChoice}{wxchoice}, \helpref{wxListBox}{wxlistbox}, -\rtfsp\helpref{wxRadioBox}{wxradiobox}, \helpref{wxSlider}{wxslider}. - -Instances of \helpref{wxDialog}{wxdialog} can also be used for controls and they have -the advantage of not requiring a separate frame. - -Instead of creating a dialog box and populating it with items, it is possible to choose -one of the convenient common dialog classes, such as \helpref{wxMessageDialog}{wxmessagedialog}\rtfsp -and \helpref{wxFileDialog}{wxfiledialog}. - -You never draw directly onto a window - you use a {\it device context} (DC). \helpref{wxDC}{wxdc} is -the base for \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPostScriptDC}{wxpostscriptdc}, -\rtfsp\helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxMetafileDC}{wxmetafiledc} and \helpref{wxPrinterDC}{wxprinterdc}. -If your drawing functions have {\bf wxDC} as a parameter, you can pass any of these DCs -to the function, and thus use the same code to draw to several different devices. -You can draw using the member functions of {\bf wxDC}, such as \helpref{wxDC::DrawLine}{wxdcdrawline}\rtfsp -and \helpref{wxDC::DrawText}{wxdcdrawtext}. Control colour on a window (\helpref{wxColour}{wxcolour}) with -brushes (\helpref{wxBrush}{wxbrush}) and pens (\helpref{wxPen}{wxpen}). - -To intercept events, you add a DECLARE\_EVENT\_TABLE macro to the window class declaration, -and put a BEGIN\_EVENT\_TABLE ... END\_EVENT\_TABLE block in the implementation file. Between these -macros, you add event macros which map the event (such as a mouse click) to a member function. -These might override predefined event handlers such as \helpref{wxWindow::OnChar}{wxwindowonchar} and -\rtfsp\helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}. - -Most modern applications will have an on-line, hypertext help system; for this, you -need wxHelp and the \helpref{wxHelpController}{wxhelpcontroller} class to control -wxHelp. - -GUI applications aren't all graphical wizardry. List and hash table needs are -catered for by \helpref{wxList}{wxlist}, \helpref{wxStringList}{wxstringlist} and \helpref{wxHashTable}{wxhashtable}. -You will undoubtedly need some platform-independent \helpref{file functions}{filefunctions}, -and you may find it handy to maintain and search a list of paths using \helpref{wxPathList}{wxpathlist}. -There's a \helpref{miscellany}{miscellany} of operating system and other functions. - -See also \helpref{Classes by Category}{classesbycat} for a list of classes. - diff --git a/docs/latex/wx/thread.tex b/docs/latex/wx/thread.tex deleted file mode 100644 index 89bc18dd24..0000000000 --- a/docs/latex/wx/thread.tex +++ /dev/null @@ -1,191 +0,0 @@ -\section{\class{wxThread}}\label{wxthread} - -A thread is basically a path of execution through a program. Threads are also -sometimes called {\it light-weight processes}, but the fundamental difference -between threads and processes is that memory spaces of different processes are -separated while all threads share the same address space. While it makes it -much easier to share common data between several threads, it also makes much -easier to shoot oneself in the foot, so careful use of synchronization objects -such as \helpref{mutexes}{wxmutex} and/or \helpref{critical sections}{wxcriticalsection} is recommended. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxMutex}{wxmutex}, \helpref{wxCondition}{wxcondition}, \helpref{wxCriticalSection}{wxcriticalsection} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxThread::wxThread}\label{wxthreadctor} - -\func{}{wxThread}{\void} - -Default constructor: it doesn't create nor starts the thread. - -\membersection{wxThread::\destruct{wxThread}} - -\func{}{\destruct{wxThread}}{\void} - -wxThread destructor is private, so you can not call it directly - i.e., deleting -wxThread objects is forbidden. Instead, you should use \helpref{Delete}{wxthreaddelete} or -\helpref{Kill}{wxthreadkill} methods. This also means that thread objects should -eb {\bf always} allocated on the heap (i.e. with {\it new}) because the functions -mentioned above will try to reclaim the storage from the heap. - -\membersection{wxThread::Create}\label{wxthreadcreate} - -\func{wxThreadError}{Create}{\void} - -Creates a new thread. The thread object is created in the suspended state, you -should call \helpref{Run}{wxthreadrun} to start running it. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTHREAD\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxTHREAD\_NO\_RESOURCE}}{There were insufficient resources to create a new thread.} -\twocolitem{{\bf wxTHREAD\_RUNNING}}{The thread is already running.} -\end{twocollist} - -\membersection{wxThread::Delete}\label{wxthreaddelete} - -\func{void}{Delete}{\void} - -This function should be called to terminate this thread. Unlike \helpref{Kill}{wxthreadkill}, it -gives the target thread the time to terminate gracefully. Because of this, however, this function -may not return immediately and if the thread is "hung" won't return at all. Also, message processing -is not stopped during this function execution, so the message handlers may be called from inside -it. - -Delete() may be called for thread in any state: running, paused or even not yet created. Moreover, -it must be called if \helpref{Create}{wxthreadcreate} or \helpref{Run}{wxthreadrun} fail to free -the memory occupied by the thread object. - -\membersection{wxThread::Entry}\label{wxthreadentry} - -\func{virtual void *}{Entry}{\void} - -This is the entry point of the thread. This function is pure virtual and must -be implemented by any derived class. The thread execution will start here. - -The returned value is the thread exit code but is currently ignored in -wxWindows implementation (this will change in near future). - -\membersection{wxThread::GetID}\label{wxthreadgetid} - -\constfunc{unsigned long}{GetID}{\void} - -Gets the thread identifier: this is a platform dependent number which uniquely identifies the -thread throughout the system during its existence (i.e. the thread identifiers may be reused). - -\membersection{wxThread::GetPriority}\label{wxthreadgetpriority} - -\constfunc{int}{GetPriority}{\void} - -Gets the priority of the thread, between zero and 100. - -The following priorities are already defined: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0} -\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50} -\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100} -\end{twocollist} - -\membersection{wxThread::IsAlive}\label{wxthreadisalive} - -\constfunc{bool}{IsAlive}{\void} - -Returns TRUE if the thread is alive (i.e. started and not terminating). - -\membersection{wxThread::IsMain}\label{wxthreadismain} - -\constfunc{bool}{IsMain}{\void} - -Returns TRUE if the calling thread is the main application thread. - -\membersection{wxThread::IsPaused}\label{wxthreadispaused} - -\constfunc{bool}{IsPaused}{\void} - -Returns TRUE if the thread is paused. - -\membersection{wxThread::IsRunning}\label{wxthreadisrunning} - -\constfunc{bool}{IsRunning}{\void} - -Returns TRUE if the thread is running. - -\membersection{wxThread::Kill}\label{wxthreadkill} - -\func{wxThreadError}{Kill}{\void} - -Immediately terminates the target thread. {\bf This function is dangerous and should -be used with extreme care (and not used at all whenever possible)!} The resources -allocated to the thread will not be freed and the state of the C runtime library -may become inconsistent. Use \helpref{Delete()}{wxthreaddelete} instead. - -\membersection{wxThread::OnExit}\label{wxthreadonexit} - -\func{void}{OnExit}{\void} - -Called when the thread exits. This function is called in the context of the thread -associated with the wxThread object, not in the context of the main thread. - -\membersection{wxThread::Run}\label{wxthreadrun} - -\func{wxThreadError}{Run}{\void} - -Runs the thread. - -\membersection{wxThread::SetPriority}\label{wxthreadsetpriority} - -\func{void}{SetPriority}{\param{int}{ priority}} - -Sets the priority of the thread, between zero and 100. This must be set before the thread is created. - -The following priorities are already defined: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0} -\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50} -\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100} -\end{twocollist} - -\membersection{wxThread::Sleep}\label{wxthreadsleep} - -\func{\void}{Sleep}{\param{unsigned long }{milliseconds}} - -Pauses the thread execution for the given amount of time. - -This function should be used instead of \helpref{wxSleep}{wxsleep} by all worker -(i.e. all except the main one) threads. - -\membersection{wxThread::This}\label{wxthreadthis} - -\func{wxThread *}{This}{\void} - -Return the thread object for the calling thread. NULL is returned if the calling thread -is the main (GUI) thread, but \helpref{IsMain}{wxthreadismain} should be used to test -whether the thread is really the main one because NULL may also be returned for the thread -not created with wxThread class. Generally speaking, the return value for such thread -is undefined. - -\membersection{wxThread::Yield}\label{wxthreadyield} - -\func{\void}{Yield}{\void} - -Give the rest of the thread time slice to the system allowing the other threads to run. -See also \helpref{Sleep()}{wxthreadsleep}. - diff --git a/docs/latex/wx/ti18n.tex b/docs/latex/wx/ti18n.tex deleted file mode 100644 index f90cd6b235..0000000000 --- a/docs/latex/wx/ti18n.tex +++ /dev/null @@ -1,51 +0,0 @@ -\section{Internationalization}\label{internationalization} - -Although internationalization (i18n for short) of an application involves far -more than just translating its text messages to another message (date, time and -currency formats need changing too, some languages are written left to right -and others right to left, character encoding may differ and many other things -may need changing too), it is a necessary first step. wxWindows provides -facilities for the messages translation with its -\helpref{wxLocale}{wxlocale} class and is itself fully translated into several -languages. Please consult wxWindows home page for the most up-to-date -translations - and if you translate it into one of the languages not done -yet, your translations would be gratefully accepted for inclusion into the -future versions of the library! - -The wxWindows approach to i18n closely follows GNU gettext package. wxWindows uses the -message catalogs which are binary compatible with gettext catalogs and this -allows to use all of the programs in this package to work with them. But note -that no additional libraries are needed during the run-time, however, so you -have only the message catalogs to distribute and nothing else. - -During program development you will need the gettext package for -working with message catalogs. {\bf Warning:} gettext versions < 0.10 are known -to be buggy, so you should find a later version of it! - -There are two kinds of message catalogs: source catalogs which are text files -with extension .po and binary catalogs which are created from the source ones -with {\it msgfmt} program (part fo gettext package) and have the extension .mo. -Only the binary files are needed during program execution. - -The program i18n involves several steps: - -\begin{enumerate}\itemsep=0pt -\item Translating the strings in the program text using -\helpref{wxGetTranslation}{wxgettranslation} or equivalently the \_() macro. -\item Extracting the strings to be translated from the program: this uses the -work done in the previous step because {\it xgettext} program used for string -extraction may be told (using its -k option) to recognise \_() and -wxGetTranslation and extract all strings inside the calls to these functions. -Alternatively, you may use -a option to extract all the strings, but it will -usually result in many strings being found which don't have to be translated at -all. This will create a text message catalog - a .po file. -\item Translating the strings extracted in the previous step to other -language(s). It involves editing the .po file. -\item Compiling the .po file into .mo file to be used by the program. -\item Setting the appropriate locale in your program to use the strings for the -given language: see \helpref{wxLocale}{wxlocale}. -\end{enumerate} - -See also the GNU gettext documentation linked from {\tt docs/html/index.htm} in -your wxWindows distribution. - diff --git a/docs/latex/wx/timaglst.tex b/docs/latex/wx/timaglst.tex deleted file mode 100644 index c080e33f1e..0000000000 --- a/docs/latex/wx/timaglst.tex +++ /dev/null @@ -1,13 +0,0 @@ -\section{wxImageList overview}\label{wximagelistoverview} - -Classes: \helpref{wxImageList}{wximagelist} - -An image list is a list of images that may have transparent areas. -The class helps an application organise a collection of images -so that they can be referenced by integer index instead of by -pointer. - -Image lists are used in \helpref{wxNotebook}{wxnotebook}, -\helpref{wxListCtrl}{wxlistctrl}, \helpref{wxTreeCtrl}{wxlistctrl} and -some other control classes. - diff --git a/docs/latex/wx/time.tex b/docs/latex/wx/time.tex deleted file mode 100644 index 85cd2a6055..0000000000 --- a/docs/latex/wx/time.tex +++ /dev/null @@ -1,230 +0,0 @@ -\section{\class{wxTime}}\label{wxtime} - -Representation of time and date. - -NOTE: this class should be -used with caution, since it is not fully tested. It will be replaced -with a new wxDateTime class in the near future. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Data structures} - -{\small \begin{verbatim} -typedef unsigned short hourTy; -typedef unsigned short minuteTy; -typedef unsigned short secondTy; -typedef unsigned long clockTy; -enum tFormat { wx12h, wx24h }; -enum tPrecision { wxStdMinSec, wxStdMin }; -\end{verbatim}} - -\wxheading{See also} - -\helpref{wxDate}{wxDate} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTime::wxTime}\label{wxtimewxtime} - -\func{}{wxTime}{\void} - -Initialize the object using the current time. - -\func{}{wxTime}{\param{clockTy }{s}} - -Initialize the object using the number of seconds that have elapsed since ???. - -\func{}{wxTime}{\param{const wxTime\&}{ time}} - -Copy constructor. - -\func{}{wxTime}{\param{hourTy }{h}, \param{minuteTy }{m}, \param{secondTy }{s = 0}, \param{bool }{dst = FALSE}} - -Initialize using hours, minutes, seconds, and whether DST time. - -\func{}{wxTime}{\param{const wxDate\&}{ date}, \param{hourTy }{h = 0}, \param{minuteTy }{m = 0}, \param{secondTy }{s = 0}, \param{bool }{dst = FALSE}} - -Initialize using a \helpref{wxDate}{wxdate} object, hours, minutes, seconds, and whether DST time. - -\membersection{wxTime::GetDay}\label{wxtimegetday} - -\constfunc{int}{GetDay}{\void} - -Returns the day of the month. - -\membersection{wxTime::GetDayOfWeek}\label{wxtimegetdatofweek} - -\constfunc{int}{GetDayOfWeek}{\void} - -Returns the day of the week, a number from 0 to 6 where 0 is Sunday and 6 is Saturday. - -\membersection{wxTime::GetHour}\label{wxtimegethour} - -\constfunc{hourTy}{GetHour}{\void} - -Returns the hour in local time. - -\membersection{wxTime::GetHourGMT}\label{wxtimegethourgmt} - -\constfunc{hourTy}{GetHourGMT}{\void} - -Returns the hour in GMT. - -\membersection{wxTime::GetMinute}\label{wxtimegetminute} - -\constfunc{minuteTy}{GetMinute}{\void} - -Returns the minute in local time. - -\membersection{wxTime::GetMinuteGMT}\label{wxtimegetminutegmt} - -\constfunc{minuteTy}{GetMinuteGMT}{\void} - -Returns the minute in GMT. - -\membersection{wxTime::GetMonth}\label{wxtimegetmonth} - -\constfunc{int}{GetMonth}{\void} - -Returns the month. - -\membersection{wxTime::GetSecond}\label{wxtimegetsecond} - -\constfunc{secondTy}{GetSecond}{\void} - -Returns the second in local time or GMT. - -\membersection{wxTime::GetSecondGMT}\label{wxtimegetsecondgmt} - -\constfunc{secondTy}{GetSecondGMT}{\void} - -Returns the second in GMT. - -\membersection{wxTime::GetSeconds}\label{wxtimegetseconds} - -\constfunc{clockTy}{GetSeconds}{\void} - -Returns the number of seconds since ???. - -\membersection{wxTime::GetYear}\label{wxtimegetyear} - -\constfunc{int}{GetYear}{\void} - -Returns the year. - -\membersection{wxTime::FormatTime}\label{wxtimeformattime} - -\constfunc{char*}{FormatTime}{\void} - -Formats the time according to the current formatting options: see \helpref{wxTime::SetFormat}{wxtimesetformat}. - -\membersection{wxTime::IsBetween}\label{wxtimeisbetween} - -\constfunc{bool}{IsBetween}{\param{const wxTime\& }{a}, \param{const wxTime\& }{b}} - -Returns TRUE if this time is between the two given times. - -\membersection{wxTime::Max}\label{wxtimemax} - -\constfunc{wxTime}{Max}{\param{const wxTime\& }{time}} - -Returns the maximum of the two times. - -\membersection{wxTime::Min}\label{wxtimemin} - -\constfunc{wxTime}{Min}{\param{const wxTime\& }{time}} - -Returns the minimum of the two times. - -\membersection{wxTime::SetFormat}\label{wxtimesetformat} - -\func{static void}{SetFormat}{\param{const tFormat}{ format = wx12h}, - \param{const tPrecision}{ precision = wxStdMinSec}} - -Sets the format and precision. - -\membersection{wxTime::operator char*}\label{wxtimestring} - -\func{operator}{char*}{\void} - -Returns a pointer to a static char* containing the formatted time. - -\membersection{wxTime::operator wxDate}\label{wxtimewxdate} - -\constfunc{operator}{wxDate}{\void} - -Converts the wxTime into a wxDate. - -\membersection{wxTime::operator $=$}\label{wxtimeoperator} - -\func{void}{operator $=$}{\param{const wxTime\& }{t}} - -Assignment operator. - -\membersection{wxTime::operator $<$}\label{wxtimeoperatorle} - -\constfunc{bool}{operator $<$}{\param{const wxTime\& }{t}} - -Less than operator. - -\membersection{wxTime::operator $<=$}\label{wxtimeoperatorleq} - -\constfunc{bool}{operator $<=$}{\param{const wxTime\& }{t}} - -Less than or equal to operator. - -\membersection{wxTime::operator $>$}\label{wxtimeoperatorge} - -\constfunc{bool}{operator $>$}{\param{const wxTime\& }{t}} - -Greater than operator. - -\membersection{wxTime::operator $>=$}\label{wxtimeoperatorgeq} - -\constfunc{bool}{operator $>=$}{\param{const wxTime\& }{t}} - -Greater than or equal to operator. - -\membersection{wxTime::operator $==$}\label{wxtimeoperatoreq} - -\constfunc{bool}{operator $==$}{\param{const wxTime\& }{t}} - -Equality operator. - -\membersection{wxTime::operator $!=$}\label{wxtimeoperatorneq} - -\constfunc{bool}{operator $!=$}{\param{const wxTime\& }{t}} - -Inequality operator. - -\membersection{wxTime::operator $+$}\label{wxtimeoperatorplus} - -\constfunc{bool}{operator $+$}{\param{long }{sec}} - -Addition operator. - -\membersection{wxTime::operator $-$}\label{wxtimeoperatorminus} - -\constfunc{bool}{operator $-$}{\param{long }{sec}} - -Subtraction operator. - -\membersection{wxTime::operator $+=$}\label{wxtimeoperatorpluseq} - -\constfunc{bool}{operator $+=$}{\param{long }{sec}} - -Increment operator. - -\membersection{wxTime::operator $-=$}\label{wxtimeoperatorminuseq} - -\constfunc{bool}{operator $-=$}{\param{long }{sec}} - -Decrement operator. - diff --git a/docs/latex/wx/timer.tex b/docs/latex/wx/timer.tex deleted file mode 100644 index a3d297137c..0000000000 --- a/docs/latex/wx/timer.tex +++ /dev/null @@ -1,63 +0,0 @@ -\section{\class{wxTimer}}\label{wxtimer} - -The wxTimer class allows you to execute code at specified intervals. To -use it, derive a new class and override the {\bf Notify} member to -perform the required action. Start with {\bf Start}, stop with {\bf -Stop}, it's as simple as that. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{::wxStartTimer}{wxstarttimer}, \helpref{::wxGetElapsedTime}{wxgetelapsedtime} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTimer::wxTimer} - -\func{}{wxTimer}{\void} - -Constructor. - -\membersection{wxTimer::\destruct{wxTimer}} - -\func{}{\destruct{wxTimer}}{\void} - -Destructor. Stops the timer if activated. - -\membersection{wxTimer::Interval} - -\func{int}{Interval}{\void} - -Returns the current interval for the timer. - -\membersection{wxTimer::Notify} - -\func{void}{Notify}{\void} - -This member should be overridden by the user. It is called on timeout. - -\membersection{wxTimer::Start} - -\func{bool}{Start}{\param{int}{ milliseconds = -1}, \param{bool}{ oneShot=FALSE}} - -(Re)starts the timer. If {\it milliseconds}\/ is absent or -1, the -previous value is used. Returns FALSE if the timer could not be started, -TRUE otherwise (in MS Windows timers are a limited resource). - -If {\it oneShot} is FALSE (the default), the Notify function will be repeatedly -called. If TRUE, Notify will be called only once. - -\membersection{wxTimer::Stop} - -\func{void}{Stop}{\void} - -Stops the timer. - - diff --git a/docs/latex/wx/tipc.tex b/docs/latex/wx/tipc.tex deleted file mode 100644 index 5eb9e7d2ed..0000000000 --- a/docs/latex/wx/tipc.tex +++ /dev/null @@ -1,188 +0,0 @@ -\section{Interprocess communication overview}\label{ipcoverview} - -Classes: \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEConnection}{wxddeconnection}, -\helpref{wxDDEClient}{wxddeclient}, -\helpref{wxTCPServer}{wxtcpserver}, \helpref{wxTCPConnection}{wxtcpconnection}, -\helpref{wxTCPClient}{wxtcpclient} - -wxWindows has a number of different classes to help with interprocess communication -and network programming. This section only discusses one family of classes - the DDE-like -protocol - but here's a list of other useful classes: - -\begin{itemize}\itemsep=0pt -\item \helpref{wxSocketEvent}{wxsocketevent}, -\helpref{wxSocketBase}{wxsocketbase}, -\helpref{wxSocketClient}{wxsocketclient}, -\helpref{wxSocketServer}{wxsocketserver}: classes for the low-level TCP/IP API. -\item \helpref{wxProtocol}{wxprotocol}, \helpref{wxURL}{wxurl}, \helpref{wxFTP}{wxftp}, wxHTTP: classes -for programming popular Internet protocols. -\end{itemize} - -Further information on these classes will be available in due course. - -wxWindows has a high-level protocol based on Windows DDE. -There are two implementations of this DDE-like protocol: -one using real DDE running on Windows only, and another using TCP/IP (sockets) that runs -on most platforms. Since the API is the same apart from the names of the classes, you -should find it easy to switch between the two implementations. - -The following description refers to 'DDE' but remember that the equivalent wxTCP... classes -can be used in much the same way. - -Three classes are central to the DDE API: - -\begin{enumerate}\itemsep=0pt -\item wxDDEClient. This represents the client application, and is used -only within a client program. -\item wxDDEServer. This represents the server application, and is used -only within a server program. -\item wxDDEConnection. This represents the connection from the current -client or server to the other application (server or client), and can be used -in both server and client programs. Most DDE -transactions operate on this object. -\end{enumerate} - -Messages between applications are usually identified by three variables: -connection object, topic name and item name. A data string is a fourth -element of some messages. To create a connection (a conversation in -Windows parlance), the client application sends the message -MakeConnection to the client object, with a string service name to -identify the server and a topic name to identify the topic for the -duration of the connection. Under Unix, the service name must contain an -integer port identifier. - -The server then responds and either vetos the connection or allows it. -If allowed, a connection object is created which persists until the -connection is closed. The connection object is then used for subsequent -messages between client and server. - -To create a working server, the programmer must: - -\begin{enumerate}\itemsep=0pt -\item Derive a class from wxDDEServer. -\item Override the handler OnAcceptConnection for accepting or rejecting a connection, -on the basis of the topic argument. This member must create and return a connection -object if the connection is accepted. -\item Create an instance of your server object, and call Create to -activate it, giving it a service name. -\item Derive a class from wxDDEConnection. -\item Provide handlers for various messages that are sent to the server -side of a wxDDEConnection. -\end{enumerate} - -To create a working client, the programmer must: - -\begin{enumerate}\itemsep=0pt -\item Derive a class from wxDDEClient. -\item Override the handler OnMakeConnection to create and return -an appropriate connection object. -\item Create an instance of your client object. -\item Derive a class from wxDDEConnection. -\item Provide handlers for various messages that are sent to the client -side of a wxDDEConnection. -\item When appropriate, create a new connection by sending a MakeConnection -message to the client object, with arguments host name (processed in Unix only), -service name, and topic name for this connection. The client object will call OnMakeConnection -to create a connection object of the desired type. -\item Use the wxDDEConnection member functions to send messages to the server. -\end{enumerate} - -\subsection{Data transfer} - -These are the ways that data can be transferred from one application to -another. - -\begin{itemize}\itemsep=0pt -\item {\bf Execute:} the client calls the server with a data string representing -a command to be executed. This succeeds or fails, depending on the -server's willingness to answer. If the client wants to find the result -of the Execute command other than success or failure, it has to explicitly -call Request. -\item {\bf Request:} the client asks the server for a particular data string -associated with a given item string. If the server is unwilling to -reply, the return value is NULL. Otherwise, the return value is a string -(actually a pointer to the connection buffer, so it should not be -deallocated by the application). -\item {\bf Poke:} The client sends a data string associated with an item -string directly to the server. This succeeds or fails. -\item {\bf Advise:} The client asks to be advised of any change in data -associated with a particular item. If the server agrees, the server will -send an OnAdvise message to the client along with the item and data. -\end{itemize} - -The default data type is wxCF\_TEXT (ASCII text), and the default data -size is the length of the null-terminated string. Windows-specific data -types could also be used on the PC. - -\subsection{Examples} - -See the sample programs {\it server}\/ and {\it client}\/ in the IPC -samples directory. Run the server, then the client. This demonstrates -using the Execute, Request, and Poke commands from the client, together -with an Advise loop: selecting an item in the server list box causes -that item to be highlighted in the client list box. - -\subsection{More DDE details} - -A wxDDEClient object represents the client part of a client-server DDE -(Dynamic Data Exchange) conversation (available in both -Windows and Unix). - -To create a client which can communicate with a suitable server, -you need to derive a class from wxDDEConnection and another from wxDDEClient. -The custom wxDDEConnection class will intercept communications in -a `conversation' with a server, and the custom wxDDEServer is required -so that a user-overriden \helpref{wxDDEClient::OnMakeConnection}{wxddeclientonmakeconnection} member can return -a wxDDEConnection of the required class, when a connection is made. - -For example: - -\begin{verbatim} -class MyConnection: public wxDDEConnection -{ - public: - MyConnection(void)::wxDDEConnection(ipc_buffer, 3999) {} - ~MyConnection(void) { } - bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) - { wxMessageBox(topic, data); } -}; - -class MyClient: public wxDDEClient -{ - public: - MyClient(void) {} - wxConnectionBase *OnMakeConnection(void) { return new MyConnection; } -}; - -\end{verbatim} - -Here, {\bf MyConnection} will respond to \helpref{OnAdvise}{wxddeconnectiononadvise} messages sent -by the server. - -When the client application starts, it must create an instance of the derived wxDDEClient. In the following, command line -arguments are used to pass the host name (the name of the machine the server is running -on) and the server name (identifying the server process). Calling \helpref{wxDDEClient::MakeConnection}{wxddeclientmakeconnection}\rtfsp -implicitly creates an instance of {\bf MyConnection} if the request for a -connection is accepted, and the client then requests an {\it Advise} loop -from the server, where the server calls the client when data has changed. - -\begin{verbatim} - wxString server = "4242"; - wxString hostName; - wxGetHostName(hostName); - - // Create a new client - MyClient *client = new MyClient; - connection = (MyConnection *)client->MakeConnection(hostName, server, "IPC TEST"); - - if (!connection) - { - wxMessageBox("Failed to make connection to server", "Client Demo Error"); - return NULL; - } - connection->StartAdvise("Item"); -\end{verbatim} - -Note that it is no longer necessary to call wxDDEInitialize or wxDDECleanUp, since -wxWindows will do this itself if necessary. - diff --git a/docs/latex/wx/tipprov.tex b/docs/latex/wx/tipprov.tex deleted file mode 100644 index c824373aab..0000000000 --- a/docs/latex/wx/tipprov.tex +++ /dev/null @@ -1,52 +0,0 @@ -\section{\class{wxTipProvider}}\label{wxtipprovider} - -This is the class used together with \helpref{wxShowTip}{wxshowtip} function. -It must implement \helpref{GetTip}{wxtipprovidergettip} function and return the -current tip from it (different tip each time it is called). - -You will never use this class yourself, but you need it to show startup tips -with wxShowTip. Also, if you want to get the tips text from elsewhere than a -simple text file, you will want to derive a new class from wxTipProvider and -use it instead of the one returned by \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Startup tips overview}{tipsoverview}, \helpref{::wxShowTip}{wxshowtip} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTipProvider::wxTipProvider}\label{wxtipproviderctor} - -\func{}{wxTipProvider}{\param{size\_t }{currentTip}} - -Constructor. - -\docparam{currentTip}{The starting tip index.} - -\membersection{wxTipProvider::GetTip}\label{wxtipprovidergettip} - -\func{wxString}{GetTip}{\void} - -Return the text of the current tip and pass to the next one. This function is -pure virtual, it should be implemented in the derived classes. - -\membersection{wxCurrentTipProvider::GetCurrentTip}\label{wxtipprovidergetcurrenttip} - -\constfunc{size\_t}{GetCurrentTip}{\void} - -Returns the index of the current tip (i.e. the one which would be returned by -GetTip). - -The program usually remembers the value returned by this function after calling -\helpref{wxShowTip}{wxshowtip}. Note that it is not the same as the value which -was passed to wxShowTip $+ 1$ because the user might have pressed the "Next" -button in the tip dialog. - diff --git a/docs/latex/wx/tlistctl.tex b/docs/latex/wx/tlistctl.tex deleted file mode 100644 index cb12e592af..0000000000 --- a/docs/latex/wx/tlistctl.tex +++ /dev/null @@ -1,6 +0,0 @@ -\section{wxListCtrl overview}\label{wxlistctrloverview} - -Classes: \helpref{wxListCtrl}{wxlistctrl}, \helpref{wxImageList}{wximagelist} - -Sorry, this topic has yet to be written. - diff --git a/docs/latex/wx/tlog.tex b/docs/latex/wx/tlog.tex deleted file mode 100644 index 8c031a488f..0000000000 --- a/docs/latex/wx/tlog.tex +++ /dev/null @@ -1,143 +0,0 @@ -\section{Log classes overview}\label{wxlogoverview} - -Classes: \helpref{wxLog}{wxlog}, wxLogStderr, -wxLogOstream, wxLogTextCtrl, wxLogWindow, wxLogGui, wxLogNull - -This is a general overview of logging classes provided by wxWindows. The word -logging here has a broad sense, including all of the program output, not only -non interactive messages. The logging facilities included in wxWindows provide -the base {\it wxLog} class which defines the standard interface for a {\it log -target} as well as several standard implementations of it and a family of -functions to use with them. - -First of all, no knowledge of {\it wxLog} classes is needed to use them. For -this, you should only know about {\it wxLogXXX()} functions. All of them have -the same syntax as {\it printf()}, i.e. they take the format string as the -first argument and a variable number of arguments. Here are all of them: - -\begin{itemize}\itemsep=0pt -\item{\bf wxLogFatalError} which is like {\it wxLogError}, but also -terminates the program with the exit code 3 (using {\it abort()} standard -function also terminates the program with this exit code). -\item{\bf wxLogError} is the function to use for error messages, i.e. the -messages that must be shown to the user. The default processing is to pop up a -message box to inform the user about it. -\item{\bf wxLogWarning} for warnings - they are also normally shown to the -user, but don't interrupt the program work. -\item{\bf wxLogMessage} is for all normal, informational messages. They also -appear in a message box by default (but it can be changed, see below). Notice -that the standard behaviour is to not show informational messages if there are -any errors later - the logic being that the later error messages make the -informational messages preceding them meaningless. -\item{\bf wxLogVerbose} is for verbose output. Normally, it's suppressed, but -might be activated if the user wishes to know more details about the program -progress (another, but possibly confusing name for the same function is {\bf -wxLogInfo}). -\item{\bf wxLogStatus} is for status messages - they will go into the status -bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one. -\item{\bf wxLogSysError} is mostly used by wxWindows itself, but might be -handy for logging errors after system call (API function) failure. It logs the -specified message text as well as the last system error -code ({\it errno} or {\it ::GetLastError()} depending on the platform) and the corresponding error -message. The second form of this function takes the error code explitly as the -first argument. -\item{\bf wxLogDebug} is {\bf the} right function for debug output. It only -does anything at all in the debug mode (when the preprocessor symbol -\_\_WXDEBUG\_\_ is defined) and expands to nothing in release mode (otherwise). -\item{\bf wxLogTrace} as {\bf wxLogDebug} only does something in debug -build. The reason for making it a separate function from it is that usually -there are a lot of trace messages, so it might make sense to separate them -from other debug messages which would be flooded in them. Moreover, the second -version of this function takes a trace mask as the first argument which allows -to further restrict the amount of messages generated. -\end{itemize} - -The usage of these functions should be fairly straightforward, however it may -be asked why not use the other logging facilities, such as C standard stdio -functions or C++ streams. The short answer is that they're all very good -generic mechanisms, but are not really adapted for wxWindows, while the log -classes are. Some of advantages in using wxWindows log functions are: - -\begin{itemize}\itemsep=0pt -\item{\bf Portability} It's a common practice to use {\it printf()} statements or -cout/cerr C++ streams for writing out some (debug or otherwise) information. -Although it works just fine under Unix, these messages go strictly nowhere -under Windows where the stdout of GUI programs is not assigned to anything. -Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it -printf()}. -\item{\bf Flexibility} The output of wxLog functions can be redirected or -suppressed entirely based on their importance, which is either impossible or -difficult to do with traditional methods. For example, only error messages, or -only error messages and warnings might be logged, filtering out all -informational messages. -\item{\bf Completeness} Usually, an error message should be presented to the user -when some operation fails. Let's take a quite simple but common case of a file -error: suppose that you're writing your data file on disk and there is not -enough space. The actual error might have been detected inside wxWindows code -(say, in {\it wxFile::Write}), so the calling function doesn't really know the -exact reason of the failure, it only knows that the data file couldn't be -written to the disk. However, as wxWindows uses {\it wxLogError()} in this -situation, the exact error code (and the corresponding error message) will be -given to the user together with "high level" message about data file writing -error. -\end{itemize} - -After having enumerated all the functions which are normally used to log the -messages, and why would you want to use them we now describe how all this -works. - -wxWindows has the notion of a {\it log target}: it's just a class deriving -from \helpref{wxLog}{wxlog}. As such, it implements the virtual functions of -the base class which are called when a message is logged. Only one log target -is {\it active} at any moment, this is the one used by \it{wxLogXXX()} -functions. The normal usage of a log object (i.e. object of a class derived -from wxLog) is to install it as the active target with a call to {\it -SetActiveTarget()} and it will be used automatically by all subsequent calls -to {\it wxLogXXX()} functions. - -To create a new log target class you only need to derive it from wxLog and -implement one (or both) of {\it DoLog()} and {\it DoLogString()} in it. The -second one is enough if you're happy with the standard wxLog message -formatting (prepending "Error:" or "Warning:", timestamping \&c) but just want -to send the messages somewhere else. The first one may be overridden to do -whatever you want but you have to distinguish between the different message -types yourself. - -There are some predefined classes deriving from wxLog and which might be -helpful to see how you can create a new log target class and, of course, may -also be used without any change. There are: - -\begin{itemize}\itemsep=0pt -\item{\bf wxLogStderr} This class logs messages to a {\it FILE *}, using -stderr by default as its name suggests. -\item{\bf wxLogStream} This class has the same functionality as wxLogStderr, -but uses {\it ostream} and cerr instead of {\it FILE *} and stderr. -\item{\bf wxLogGui} This is the standard log target for wxWindows -applications (it's used by default if you don't do anything) and provides the -most reasonable handling of all types of messages for given platform. -\item{\bf wxLogWindow} This log target provides a "log console" which -collects all messages generated by the application and also passes them to the -previous active log target. The log window frame has a menu allowing user to -clear the log, close it completely or save all messages to file. -\item{\bf wxLogNull} The last log class is quite particular: it doesn't do -anything. The objects of this class may be instantiated to (temporarily) -suppress output of {\it wxLogXXX()} functions. As an example, trying to open a -non-existing file will usually provoke an error message, but if for some -reasons it's unwanted, just use this construction: - -{\small -\begin{verbatim} - wxFile file; - - // wxFile.Open() normally complains if file can't be opened, we don't want it - { - wxLogNull logNo; - if ( !file.Open("bar") ) - ... process error ourselves ... - } // ~wxLogNull called, old log sink restored - - wxLogMessage("..."); // ok -\end{verbatim} -} -\end{itemize} - diff --git a/docs/latex/wx/tokenizr.tex b/docs/latex/wx/tokenizr.tex deleted file mode 100644 index ffc8d5dfe7..0000000000 --- a/docs/latex/wx/tokenizr.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{\class{wxStringTokenizer}}\label{wxstringtokenizer} - -wxStringTokenizer helps you to break a string up into a number of tokens. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStringTokenizer::wxStringTokenizer}\label{wxstringtokenizerwxstringtokenizer} - -\func{}{wxStringTokenizer}{\void} - -Default constructor. - -\func{}{wxStringTokenizer}{\param{const wxString\& }{to\_tokenize}, \param{const wxString\& }{delims = " $\backslash$t$\backslash$r$\backslash$n"}, \param{bool }{ret\_delim = FALSE}} - -Constructor. Pass the string to tokenize, a string containing delimiters, -a flag specifying whether delimiters are retained. - -\membersection{wxStringTokenizer::\destruct{wxStringTokenizer}}\label{wxstringtokenizerdtor} - -\func{}{\destruct{wxStringTokenizer}}{\void} - -Destructor. - -\membersection{wxStringTokenizer::CountTokens}\label{wxstringtokenizercounttokens} - -\constfunc{int}{CountTokens}{\void} - -Returns the number of tokens in the input string. - -\membersection{wxStringTokenizer::HasMoreTokens}\label{wxstringtokenizerhasmoretokens} - -\constfunc{bool}{HasMoreTokens}{\void} - -Returns TRUE if the tokenizer has further tokens. - -\membersection{wxStringTokenizer::GetNextToken}\label{wxstringtokenizergetnexttoken} - -\constfunc{wxString}{GetNextToken}{\void} - -Returns the next token. - -\membersection{wxStringTokenizer::GetString}\label{wxstringtokenizergetstring} - -\constfunc{wxString}{GetString}{\void} - -Returns the input string. - -\membersection{wxStringTokenizer::SetString}\label{wxstringtokenizersetstring} - -\func{void}{SetString}{\param{const wxString\& }{to\_tokenize}, \param{const wxString\& }{delims = " $\backslash$t$\backslash$r$\backslash$n"}, \param{bool }{ret\_delim = FALSE}} - -Initializes the tokenizer. - -Pass the string to tokenize, a string containing delimiters, -a flag specifying whether delimiters are retained. - diff --git a/docs/latex/wx/toolbar.tex b/docs/latex/wx/toolbar.tex deleted file mode 100644 index c348cf28c8..0000000000 --- a/docs/latex/wx/toolbar.tex +++ /dev/null @@ -1,667 +0,0 @@ -\section{\class{wxToolBar}}\label{wxtoolbar} - -The name wxToolBar is defined to be a synonym for one of the following classes: - -\begin{itemize}\itemsep=0pt -\item {\bf wxToolBar95} The native Windows 95 toolbar. Used on Windows 95, NT 4 and above. -\item {\bf wxToolBarMSW} A Windows implementation. Used on 16-bit Windows. -\item {\bf wxToolBarGTK} The GTK toolbar. -\item {\bf wxToolBarSimple} A simple implementation, with scrolling. -Used on platforms with no native toolbar control, or where scrolling is required. -\end{itemize} - -Note that the base class {\bf wxToolBarBase} defines -automatic scrolling management functionality which is identical -to \helpref{wxScrolledWindow}{wxscrolledwindow}, so please refer to this class also. -Not all toolbars support scrolling, but wxToolBarSimple does. - -\wxheading{Derived from} - -wxToolBarBase\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - (to allow wxWindows to select an appropriate toolbar class)\\ - (the base class)\\ - (the non-Windows 95 Windows toolbar class)\\ - (the Windows 95/98 toolbar class)\\ - (the generic simple toolbar class) - -\wxheading{Remarks} - -You may also create a toolbar that is managed by the frame, by -calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. - -{\bf wxToolBar95:} Note that this toolbar paints tools to reflect user-selected colours. -The toolbar orientation must always be {\bf wxHORIZONTAL}. - -{\bf wxToolBarGtk:} The toolbar orientation is ignored and is always {\bf wxHORIZONTAL}. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look ('coolbar' or 'flatbar' style). Windows 95 and GTK 1.2 only.} -\twocolitem{\windowstyle{wxTB\_DOCKABLE}}{Makes the toolbar floatable and dockable. GTK only.} -\twocolitem{\windowstyle{wxTB\_HORIZONTAL}}{Specifies horizontal layout.} -\twocolitem{\windowstyle{wxTB\_VERTICAL}}{Specifies vertical layout (not available for the GTK and Windows 95 -toolbar).} -\twocolitem{\windowstyle{wxTB\_3DBUTTONS}}{Gives wxToolBarSimple a mild 3D look to its buttons.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -The toolbar class emits menu commands in the same was that a frame menubar does, -so you can use one EVT\_MENU macro for both a menu item and a toolbar button. -The event handler functions take a wxCommandEvent argument. For most event macros, -the identifier of the tool is passed, but for EVT\_TOOL\_ENTER the toolbar -window is passed and the tool id is retrieved from the wxCommandEvent. -This is because the id may be -1 when the mouse moves off a tool, and -1 is not -allowed as an identifier in the event system. - -Note that tool commands (and UI update events for tools) are first sent to -the focus window within the frame that contains the toolbar. If no window within the frame has the focus, -then the events are sent directly to the toolbar (and up the hierarchy to the -frame, depending on where the application has put its event handlers). This allows command and UI update -handling to be processed by specific windows and controls, and not necessarily -by the application frame. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.} -\twocolitem{{\bf EVT\_MENU(id, func)}}{The same as EVT\_TOOL.} -\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -for a range id identifiers. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{The same as EVT\_TOOL\_RANGE.} - -\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event. -Pass the id of the tool.} -\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event -for a range of ids. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event. -Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.} -\end{twocollist} - -\wxheading{See also} - -\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp -\helpref{wxScrolledWindow}{wxscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxToolBar::wxToolBar}\label{wxtoolbarconstr} - -\func{}{wxToolBar}{\void} - -Default constructor. - -\func{}{wxToolBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxTB\_HORIZONTAL \pipe wxNO\_BORDER}, - \param{const wxString\& }{name = wxPanelNameStr}} - -Constructs a toolbar. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWindows -should generate a default position for the window. If using the wxWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWindows -should generate a default size for the window.} - -\docparam{style}{Window style. See \helpref{wxToolBar}{wxtoolbar} for details.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -After a toolbar is created, you use \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} and -perhaps \helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, and then you -must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} to construct and display the toolbar -tools. - -You may also create a toolbar that is managed by the frame, by -calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. - -\membersection{wxToolBar::\destruct{wxToolBar}} - -\func{void}{\destruct{wxToolBar}}{\void} - -Toolbar destructor. - -\membersection{wxToolBar::AddSeparator}\label{wxtoolbaraddseparator} - -\func{void}{AddSeparator}{\void} - -Adds a separator for spacing groups of tools. - -\wxheading{See also} - -\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation} - -\membersection{wxToolBar::AddTool}\label{wxtoolbaraddtool} - -\func{wxToolBarTool*}{AddTool}{\param{int}{ toolIndex}, \param{const wxBitmap\&}{ bitmap1},\rtfsp -\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = FALSE},\rtfsp -\param{long}{ xPos = -1}, \param{long}{ yPos = -1},\rtfsp -\param{wxObject* }{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}} - -Adds a tool to the toolbar. - -\wxheading{Parameters} - -\docparam{toolIndex}{An integer by which -the tool may be identified in subsequent operations.} - -\docparam{isToggle}{Specifies whether the tool is a toggle or not: a toggle tool may be in -two states, whereas a non-toggle tool is just a button.} - -\docparam{bitmap1}{The primary tool bitmap for toggle and button tools.} - -\docparam{bitmap2}{The second bitmap specifies the on-state bitmap for a toggle -tool. If this is wxNullBitmap, either an inverted version of the primary bitmap is -used for the on-state of a toggle tool (monochrome displays) or a black -border is drawn around the tool (colour displays) or the pixmap is shown -as a pressed button (GTK). } - -\docparam{xPos}{Specifies the x position of the tool if automatic layout is not suitable.} - -\docparam{yPos}{Specifies the y position of the tool if automatic layout is not suitable.} - -\docparam{clientData}{An optional pointer to client data which can be -retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.} - -\docparam{shortHelpString}{Used for displaying a tooltip for the tool in the -Windows 95 implementation of wxButtonBar. Pass the empty string if this is not required.} - -\docparam{longHelpString}{Used to displayer longer help, such as status line help. -Pass the empty string if this is not required.} - -\wxheading{Remarks} - -After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in -order to have the tools appear. - -\wxheading{See also} - -\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, -\helpref{wxToolBar::Realize}{wxtoolbarrealize}, - -\membersection{wxToolBar::CreateTools}\label{wxtoolbarcreatetools} - -\func{bool}{CreateTools}{\void} - -This function is implemented for some toolbar classes to create the tools and display them. -The portable way of calling it is to call \helpref{wxToolBar::Realize}{wxtoolbarrealize} after -you have added tools and separators. - -\wxheading{See also} - -\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::Realize}{wxtoolbarrealize} - -\membersection{wxToolBar::DrawTool}\label{wxtoolbardrawtool} - -\func{void}{DrawTool}{\param{wxMemoryDC\& }{memDC}, \param{wxToolBarTool* }{tool}} - -Draws the specified tool onto the window using the given memory device context. - -\wxheading{Parameters} - -\docparam{memDC}{A memory DC to be used for drawing the tool.} - -\docparam{tool}{Tool to be drawn.} - -\wxheading{Remarks} - -For internal use only. - -\membersection{wxToolBar::EnableTool}\label{wxtoolbarenabletool} - -\func{void}{EnableTool}{\param{int }{toolIndex}, \param{const bool}{ enable}} - -Enables or disables the tool. - -\wxheading{Parameters} - -\docparam{toolIndex}{Tool to enable or disable.} - -\docparam{enable}{If TRUE, enables the tool, otherwise disables it.} - -\wxheading{Remarks} - -For wxToolBarSimple, does nothing. Some other implementations -will change the visible state of the tool to indicate that it is disabled. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolEnabled}{wxtoolbargettoolenabled},\rtfsp -%\helpref{wxToolBar::SetToolState}{wxtoolbarsettoolstate},\rtfsp -\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool} - -\membersection{wxToolBar::FindToolForPosition}\label{wxtoolbarfindtoolforposition} - -\constfunc{wxToolBarTool*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}} - -Finds a tool for the given mouse position. - -\wxheading{Parameters} - -\docparam{x}{X position.} - -\docparam{y}{Y position.} - -\wxheading{Return value} - -A pointer to a tool if a tool is found, or NULL otherwise. - -\wxheading{Remarks} - -Used internally, and should not need to be used by the programmer. - -\membersection{wxToolBar::GetToolSize}\label{wxtoolbargettoolsize} - -\func{wxSize}{GetToolSize}{\void} - -Returns the size of a whole button, which is usually larger than a tool bitmap because -of added 3D effects. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp -\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize} - -\membersection{wxToolBar::GetToolBitmapSize}\label{wxtoolbargettoolbitmapsize} - -\func{wxSize}{GetToolBitmapSize}{\void} - -Returns the size of bitmap that the toolbar expects to have. The default bitmap size is 16 by 15 pixels. - -\wxheading{Remarks} - -Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, -and not the eventual size of the tool button. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp -\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize} - -\membersection{wxToolBar::GetMargins}\label{wxtoolbargetmargins} - -\constfunc{wxSize}{GetMargins}{\void} - -Returns the left/right and top/bottom margins, which are also used for inter-toolspacing. - -\wxheading{See also} - -\helpref{wxToolBar::SetMargins}{wxtoolbarsetmargins} - -\membersection{wxToolBar::GetMaxSize}\label{wxtoolbargetmaxsize} - -\constfunc{wxSize}{GetMaxSize}{\void} - -Gets the maximum size taken up by the tools after layout, including margins. -This can be used to size a frame around the toolbar window. - -\membersection{wxToolBar::GetToolClientData}\label{wxtoolbargettoolclientdata} - -\constfunc{wxObject*}{GetToolClientData}{\param{int }{toolIndex}} - -Get any client data associated with the tool. - -\wxheading{Parameters} - -\docparam{toolIndex}{Index of the tool, as passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.} - -\wxheading{Return value} - -Client data, or NULL if there is none. - -\membersection{wxToolBar::GetToolEnabled}\label{wxtoolbargettoolenabled} - -\constfunc{bool}{GetToolEnabled}{\param{int }{toolIndex}} - -Called to determine whether a tool is enabled (responds to user input). - -\wxheading{Parameters} - -\docparam{toolIndex}{Index of the tool in question.} - -\wxheading{Return value} - -TRUE if the tool is enabled, FALSE otherwise. - -%\wxheading{See also} -% -%\helpref{wxToolBar::SetToolEnabled}{wxtoolbarsettoolenabled} -% -\membersection{wxToolBar::GetToolLongHelp}\label{wxtoolbargettoollonghelp} - -\constfunc{wxString}{GetToolLongHelp}{\param{int }{toolIndex}} - -Returns the long help for the given tool. - -\wxheading{Parameters} - -\docparam{toolIndex}{The tool in question.} - -\wxheading{See also} - -\helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp},\rtfsp -\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp - -\membersection{wxToolBar::GetToolPacking}\label{wxtoolbargettoolpacking} - -\constfunc{int}{GetToolPacking}{\void} - -Returns the value used for packing tools. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolPacking}{wxtoolbarsettoolpacking} - -\membersection{wxToolBar::GetToolSeparation}\label{wxtoolbargettoolseparation} - -\constfunc{int}{GetToolSeparation}{\void} - -Returns the default separator size. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation} - -\membersection{wxToolBar::GetToolShortHelp}\label{wxtoolbargettoolshorthelp} - -\constfunc{wxString}{GetToolShortHelp}{\param{int }{toolIndex}} - -Returns the short help for the given tool. - -Returns the long help for the given tool. - -\wxheading{Parameters} - -\docparam{toolIndex}{The tool in question.} - -\wxheading{See also} - -\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp -\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp - -\membersection{wxToolBar::GetToolState}\label{wxtoolbargettoolstate} - -\constfunc{bool}{GetToolState}{\param{int }{toolIndex}} - -Gets the on/off state of a toggle tool. - -\wxheading{Parameters} - -\docparam{toolIndex}{The tool in question.} - -\wxheading{Return value} - -TRUE if the tool is toggled on, FALSE otherwise. - -%\wxheading{See also} -% -%\helpref{wxToolBar::SetToolState}{wxtoolbarsettoolstate} -% -\membersection{wxToolBar::Layout}\label{wxtoolbarlayout} - -\func{void}{Layout}{\void} - -Called by the application after the tools have been added to -automatically lay the tools out on the window. If you have given -absolute positions when adding the tools, do not call this. - -This function is only implemented for some toolbar classes. -The portable way of calling it is to call \helpref{wxToolBar::Realize}{wxtoolbarrealize} after -you have added tools and separators. - -\wxheading{See also} - -\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::Realize}{wxtoolbarrealize} - -\membersection{wxToolBar::OnLeftClick}\label{wxtoolbaronleftclick} - -\func{bool}{OnLeftClick}{\param{int}{ toolIndex}, \param{bool}{ toggleDown}} - -Called when the user clicks on a tool with the left mouse button. - -This is the old way of detecting tool clicks; although it will still work, -you should use the EVT\_MENU or EVT\_TOOL macro instead. - -\wxheading{Parameters} - -\docparam{toolIndex}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.} - -\docparam{toggleDown}{TRUE if the tool is a toggle and the toggle is down, otherwise is FALSE.} - -\wxheading{Return value} - -If the tool is a toggle and this function returns FALSE, the toggle -toggle state (internal and visual) will not be changed. This provides a way of -specifying that toggle operations are not permitted in some circumstances. - -\wxheading{See also} - -\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp -\helpref{wxToolBar::OnRightClick}{wxtoolbaronrightclick} - -\membersection{wxToolBar::OnMouseEnter}\label{wxtoolbaronmouseenter} - -\func{void}{OnMouseEnter}{\param{int}{ toolIndex}} - -This is called when the mouse cursor moves into a tool or out of -the toolbar. - -This is the old way of detecting mouse enter events; although it will still work, -you should use the EVT\_TOOL\_ENTER macro instead. - -\wxheading{Parameters} - -\docparam{toolIndex}{Greater than -1 if the mouse cursor has moved into the tool, -or -1 if the mouse cursor has moved. The -programmer can override this to provide extra information about the tool, -such as a short description on the status line.} - -\wxheading{Remarks} - -With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWindows may not be able to -detect it. Therefore this function may not always be called when expected. - -\membersection{wxToolBar::OnRightClick}\label{wxtoolbaronrightclick} - -\func{void}{OnRightClick}{\param{int}{ toolIndex}, \param{float}{ x}, \param{float}{ y}} - -Called when the user clicks on a tool with the right mouse button. The -programmer should override this function to detect right tool clicks. - -This is the old way of detecting tool right clicks; although it will still work, -you should use the EVT\_TOOL\_RCLICKED macro instead. - -\wxheading{Parameters} - -\docparam{toolIndex}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.} - -\docparam{x}{The x position of the mouse cursor.} - -\docparam{y}{The y position of the mouse cursor.} - -\wxheading{Remarks} - -A typical use of this member might be to pop up a menu. - -\wxheading{See also} - -\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp -\helpref{wxToolBar::OnLeftClick}{wxtoolbaronleftclick} - -\membersection{wxToolBar::Realize}\label{wxtoolbarrealize} - -\func{bool}{Realize}{\void} - -This function should be called after you have added tools. It -calls, according to the implementation, -either \helpref{wxToolBar::CreateTools}{wxtoolbarcreatetools} or - \helpref{wxToolBar::Layout}{wxtoolbarlayout}. - -If you are using absolute positions for your tools when using a wxToolBarSimple object, -do not call this function. You must call it at all other times. - -\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize} - -\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}} - -Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels. - -\wxheading{Parameters} - -\docparam{size}{The size of the bitmaps in the toolbar.} - -\wxheading{Remarks} - -This should be called to tell the toolbar what the tool bitmap size is. Call -it before you add tools. - -Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, -and not the eventual size of the tool button. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp -\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize} - -\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins} - -\func{void}{SetMargins}{\param{const wxSize\&}{ size}} - -\func{void}{SetMargins}{\param{int}{ x}, \param{int}{ y}} - -Set the values to be used as margins for the toolbar. - -\wxheading{Parameters} - -\docparam{size}{Margin size.} - -\docparam{x}{Left margin, right margin and inter-tool separation value.} - -\docparam{y}{Top margin, bottom margin and inter-tool separation value.} - -\wxheading{Remarks} - -This must be called before the tools are added if absolute positioning is to be used, and the -default (zero-size) margins are to be overridden. - -\wxheading{See also} - -\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize} - -\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp} - -\func{void}{SetToolLongHelp}{\param{int }{toolIndex}, \param{const wxString\& }{helpString}} - -Sets the long help for the given tool. - -\wxheading{Parameters} - -\docparam{toolIndex}{The tool in question.} - -\docparam{helpString}{A string for the long help.} - -\wxheading{Remarks} - -You might use the long help for displaying the tool purpose on the status line. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp -\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp},\rtfsp - -\membersection{wxToolBar::SetToolPacking}\label{wxtoolbarsettoolpacking} - -\func{void}{SetToolPacking}{\param{int}{ packing}} - -Sets the value used for spacing tools. The default value is 1. - -\wxheading{Parameters} - -\docparam{packing}{The value for packing.} - -\wxheading{Remarks} - -The packing is used for spacing in the vertical direction if the toolbar is horizontal, -and for spacing in the horizontal direction if the toolbar is vertical. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolPacking}{wxtoolbargettoolpacking} - -\membersection{wxToolBar::SetToolShortHelp}\label{wxtoolbarsettoolshorthelp} - -\func{void}{SetToolShortHelp}{\param{int }{toolIndex}, \param{const wxString\& }{helpString}} - -Sets the short help for the given tool. - -\wxheading{Parameters} - -\docparam{toolIndex}{The tool in question.} - -\docparam{helpString}{The string for the short help.} - -\wxheading{Remarks} - -An application might use short help for identifying the tool purpose in a tooltip. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolShortHelp}{wxtoolbargettoolshorthelp}, \helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp} - -\membersection{wxToolBar::SetToolSeparation}\label{wxtoolbarsettoolseparation} - -\func{void}{SetToolSeparation}{\param{int}{ separation}} - -Sets the default separator size. The default value is 5. - -\wxheading{Parameters} - -\docparam{separation}{The separator size.} - -\wxheading{See also} - -\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator} - -\membersection{wxToolBar::ToggleTool}\label{wxtoolbartoggletool} - -\func{void}{ToggleTool}{\param{int }{toolIndex}, \param{const bool}{ toggle}} - -Toggles a tool on or off. This does not cause any event to get emitted. - -\wxheading{Parameters} - -\docparam{toolIndex}{Tool in question.} - -\docparam{toggle}{If TRUE, toggles the tool on, otherwise toggles it off.} - -\wxheading{Remarks} - -Only applies to a tool that has been specified as a toggle tool. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolState}{wxtoolbargettoolstate} - - diff --git a/docs/latex/wx/topics.tex b/docs/latex/wx/topics.tex deleted file mode 100644 index e5d0e6ac0b..0000000000 --- a/docs/latex/wx/topics.tex +++ /dev/null @@ -1,46 +0,0 @@ -\chapter{Topic overviews}\label{overviews} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This chapter contains a selection of topic overviews. - -\input tapp.tex -\input tstring.tex -\input tcontain.tex -\input tlog.tex -\input tconfig.tex -\input tbitmap.tex -\input tdialog.tex -\input tfont.tex -\input tsplittr.tex -\input ttreectl.tex -\input tlistctl.tex -\input timaglst.tex -\input tcommdlg.tex -\input tconstr.tex -\input tdb.tex -\input tdc.tex -\input tdebug.tex -\input tdelwin.tex -\input tscroll.tex -\input tdocview.tex -\input tevent.tex -\input tguide.tex -\input tipc.tex -\input tprint.tex -\input tresourc.tex -\input truntime.tex -\input tstyles.tex -\input ttab.tex -\input ttoolbar.tex -\input tvalidat.tex -\input texpr.tex -\input tgrid.tex -\input tdnd.tex -\input tthreads.tex -\input tfile.tex -\input ti18n.tex -\input tstream.tex -\input tusage.tex -\input ttips.tex -\input fs.tex diff --git a/docs/latex/wx/tprint.tex b/docs/latex/wx/tprint.tex deleted file mode 100644 index e6f672c936..0000000000 --- a/docs/latex/wx/tprint.tex +++ /dev/null @@ -1,62 +0,0 @@ -\section{Printing overview}\label{printingoverview} - -Classes: \helpref{wxPrintout}{wxprintout}, -\helpref{wxPrinter}{wxprinter}, -\helpref{wxPrintPreview}{wxprintpreview}, -\helpref{wxPrinterDC}{wxprinterdc}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPrintData}{wxprintdata}, -\helpref{wxPrintDialogData}{wxprintdialogdata}, -\helpref{wxPageSetupDialog}{wxpagesetupdialog}, -\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} - -The printing framework relies on the application to provide classes -whose member functions can respond to particular requests, such -as `print this page' or `does this page exist in the document?'. -This method allows wxWindows to take over the housekeeping duties of -turning preview pages, calling the print dialog box, creating -the printer device context, and so on: the application can concentrate -on the rendering of the information onto a device context. - -The \helpref{document/view framework}{docviewoverview} creates a default wxPrintout -object for every view, calling wxView::OnDraw to achieve a -prepackaged print/preview facility. - -A document's printing ability is represented in an application by a -derived wxPrintout class. This class prints a page on request, and can -be passed to the Print function of a wxPrinter object to actually print -the document, or can be passed to a wxPrintPreview object to initiate -previewing. The following code (from the printing sample) shows how easy -it is to initiate printing, previewing and the print setup dialog, once the wxPrintout -functionality has been defined. Notice the use of MyPrintout for -both printing and previewing. All the preview user interface functionality -is taken care of by wxWindows. For details on how MyPrintout is defined, -please look at the printout sample code. - -\begin{verbatim} - case WXPRINT_PRINT: - { - wxPrinter printer; - MyPrintout printout("My printout"); - printer.Print(this, &printout, TRUE); - break; - } - case WXPRINT_PREVIEW: - { - // Pass two printout objects: for preview, and possible printing. - wxPrintPreview *preview = new wxPrintPreview(new MyPrintout, new MyPrintout); - wxPreviewFrame *frame = new wxPreviewFrame(preview, this, "Demo Print Preview", 100, 100, 600, 650); - frame->Centre(wxBOTH); - frame->Initialize(); - frame->Show(TRUE); - break; - } - case WXPRINT_PRINT_SETUP: - { - wxPrintDialog printerDialog(this); - printerDialog.GetPrintData().SetSetupDialog(TRUE); - printerDialog.Show(TRUE); - break; - } -\end{verbatim} - diff --git a/docs/latex/wx/treectrl.tex b/docs/latex/wx/treectrl.tex deleted file mode 100644 index 47f182a800..0000000000 --- a/docs/latex/wx/treectrl.tex +++ /dev/null @@ -1,664 +0,0 @@ -\section{\class{wxTreeCtrl}}\label{wxtreectrl} - -A tree control presents information as a hierarchy, with items that may be expanded -to show further items. Items in a tree control are referenced by wxTreeItemId handles. - -To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style to show + and - buttons to the -left of parent items. Win32 only. } -\twocolitem{\windowstyle{wxTR\_EDIT\_LABELS}}{Use this style if you wish the user to be -able to edit labels in the tree control.} -\twocolitem{\windowstyle{wxTR\_MULTIPLE}}{Use this style to allow the user to -select more than one item in the control - by default, only one item may be -selected.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -To process input from a tree control, use these event handler macros to direct input to member -functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.} -\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.} -\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{Parent has been expanded.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{Parent is being expanded. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp -\helpref{wxImageList}{wximagelist}, \helpref{wxTreeEvent}{wxtreeevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr} - -\func{}{wxTreeCtrl}{\void} - -Default constructor. - -\func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} - -Constructor, creating and showing a tree control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxTreeCtrl}{wxtreectrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxTreeCtrl::Create}{wxtreectrlcreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxTreeCtrl::\destruct{wxTreeCtrl}} - -\func{void}{\destruct{wxTreeCtrl}}{\void} - -Destructor, destroying the list control. - -\membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot} - -\func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} - -Adds the root node to the tree, returning the new item. - -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - -\membersection{wxTreeCtrl::AppendItem}\label{wxtreectrlappenditem} - -\func{wxTreeItemId}{AppendItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} - -Appends an item to the end of the branch identified by {\it parent}, return a new item id. - -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - -\membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse} - -\func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}} - -Collapses the given item. - -\membersection{wxTreeCtrl::CollapseAndReset}\label{wxtreectrlcollapseandreset} - -\func{void}{CollapseAndReset}{\param{const wxTreeItemId\&}{ item}} - -Collapses the given item and removes all children. - -\membersection{wxTreeCtrl::Create}\label{wxtreectrlcreate} - -\func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listCtrl"}} - -Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details. - -\membersection{wxTreeCtrl::Delete}\label{wxtreectrldelete} - -\func{void}{Delete}{\param{const wxTreeItemId\&}{ item}} - -Deletes the specified item. - -\membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems} - -\func{void}{DeleteAllItems}{\void} - -Deletes all the items in the control. - -\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel} - -\func{void}{EditLabel}{\param{const wxTreeItemId\&}{ item}} - -Starts editing the label of the given item. This function generates a -EVT\_TREE\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no -text control will appear for in-place editing. - -If the user changed the label (i.e. s/he does not press ESC or leave -the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event -will be sent which can be vetoed as well. - -\wxheading{See also} - -\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}, -\helpref{wxTreeEvent}{wxtreeevent} - -\membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel} - -\func{void}{EndEditLabel}{\param{bool }{cancelEdit}} - -Ends label editing. If {\it cancelEdit} is TRUE, the edit will be cancelled. - -This function is currently supported under Windows only. - -\wxheading{See also} - -\helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel} - -\membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible} - -\func{void}{EnsureVisible}{\param{const wxTreeItemId\&}{ item}} - -Scrolls and/or expands items to ensure that the given item is visible. - -\membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand} - -\func{void}{Expand}{\param{const wxTreeItemId\&}{ item}} - -Expands the given item. - -\membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect} - -\constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = FALSE}} - -Retrieves the rectangle bounding the {\it item}. If {\it textOnly} is TRUE, -only the rectangle around the items label will be returned, otherwise the -items image is also taken into account. - -The return value is TRUE if the rectangle was successfully retrieved or FALSE -if it was not (in this case {\it rect} is not changed) - for example, if the -item is currently invisible. - -\membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount} - -\constfunc{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = TRUE}} - -Returns the number of items in the branch. If {\it recursively} is TRUE, returns the total number -of descendants, otherwise only one level of children is counted. - -\membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount} - -\constfunc{int}{GetCount}{\void} - -Returns the number of items in the control. - -\membersection{wxTreeCtrl::GetEditControl}\label{wxtreectrlgeteditcontrol} - -\constfunc{wxTextCtrl\&}{GetEditControl}{\void} - -Returns the edit control used to edit a label. - -\membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild} - -\constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{long\& }{cookie}} - -Returns the first child; call \helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild} for the next child. - -For this enumeration function you must pass in a `cookie' parameter -which is opaque for the application but is necessary for the library -to make these functions reentrant (i.e. allow more than one -enumeration on one and the same object simultaneously). The cookie passed to -GetFirstChild and GetNextChild should be the same. - -Returns an invalid tree item if there are no further children. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild} - -\pythonnote{In wxPython the returned wxTreeItemId and the new cookie -value are both returned as a tuple containing the two values.} - -\membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem} - -\constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void} - -Returns the first visible item. - -\membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\param{int }{which = wxIMAGE\_LIST\_NORMAL}} - -Returns the specified image list. {\it which} may be one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).} -\end{twocollist} - -\membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent} - -\constfunc{int}{GetIndent}{\void} - -Returns the current tree control indentation. - -\membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata} - -\constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}} - -Returns the tree item data associated with the item. - -\wxheading{See also} - -\helpref{wxTreeItemData}{wxtreeitemdata} - -\pythonnote{wxPython provides the following shortcut method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetPyData(item)}}{Returns the Python Object -associated with the wxTreeItemData for the given item Id.} -\end{twocollist}} -} - -\membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage} - -\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}} - -Gets the normal item image. - -\membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext} - -\constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}} - -Returns the item label. - -\membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild} - -\constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}} - -Returns the last child of the item (or an invalid tree item if this item has no children). - -\wxheading{See also} - -\helpref{GetFirstChild}{wxtreectrlgetfirstchild}, -\helpref{GetLastChild}{wxtreectrlgetlastchild} - -\membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild} - -\constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{long\& }{cookie}} - -Returns the next child; call \helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} for the first child. - -For this enumeration function you must pass in a `cookie' parameter -which is opaque for the application but is necessary for the library -to make these functions reentrant (i.e. allow more than one -enumeration on one and the same object simultaneously). The cookie passed to -GetFirstChild and GetNextChild should be the same. - -Returns an invalid tree item if there are no further children. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} - -\pythonnote{In wxPython the returned wxTreeItemId and the new cookie -value are both returned as a tuple containing the two values.} - -\membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling} - -\constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}} - -Returns the next sibling of the specified item; call \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} for the previous sibling. - -Returns an invalid tree item if there are no further siblings. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} - -\membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible} - -\constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}} - -Returns the next visible item. - -\membersection{wxTreeCtrl::GetParent}\label{wxtreectrlgetparent} - -\constfunc{wxTreeItemId}{GetParent}{\param{const wxTreeItemId\&}{ item}} - -Returns the item's parent. - -\membersection{wxTreeCtrl::GetPrevSibling}\label{wxtreectrlgetprevsibling} - -\constfunc{wxTreeItemId}{GetPrevSibling}{\param{const wxTreeItemId\&}{ item}} - -Returns the previous sibling of the specified item; call \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} for the next sibling. - -Returns an invalid tree item if there are no further children. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} - -\membersection{wxTreeCtrl::GetPrevVisible}\label{wxtreectrlgetprevvisible} - -\constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}} - -Returns the previous visible item. - -\membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem} - -\constfunc{wxTreeItemId}{GetRootItem}{\void} - -Returns the root item for the tree control. - -\membersection{wxTreeCtrl::GetItemSelectedImage}\label{wxtreectrlgetitemselectedimage} - -\constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}} - -Gets the selected item image. - -\membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection} - -\constfunc{wxTreeItemId}{GetSelection}{\void} - -Returns the selection, or an invalid item if there is no selection. -This function only works with the controls without wxTR\_MULTIPLE style, use -\helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have -this style. - -\membersection{wxTreeCtrl::GetSelections}\label{wxtreectrlgetselections} - -\constfunc{size\_t}{GetSelections}{\param{wxArrayTreeItemIds\& }{selection}} - -Fills the array of tree items passed in with the currently selected items. This -function can be called only if the control has the wxTR\_MULTIPLE style. - -Returns the number of selected items. - -\membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest} - -\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}} - -Calculates which (if any) item is under the given point, returning extra information -in {\it flags}. {\it flags} is a bitlist of the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTREE\_HITTEST\_ABOVE}{Above the client area.} -\twocolitem{wxTREE\_HITTEST\_BELOW}{Below the client area.} -\twocolitem{wxTREE\_HITTEST\_NOWHERE}{In the client area but below the last item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMBUTTON}{On the button associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMINDENT}{In the indentation associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.} -\twocolitem{wxTREE\_HITTEST\_TOLEFT}{To the right of the client area.} -\twocolitem{wxTREE\_HITTEST\_TORIGHT}{To the left of the client area.} -\end{twocollist} - -\membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem} - -\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxTreeItemId\& }{previous}, \param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} - -Inserts an item after a given one. - -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - -\membersection{wxTreeCtrl::IsBold}\label{wxtreectrlisbold} - -\constfunc{bool}{IsBold}{\param{const wxTreeItemId\& }{item}} - -Returns TRUE if the given item is in bold state. - -See also: \helpref{SetItemBold}{wxtreectrlsetitembold} - -\membersection{wxTreeCtrl::IsExpanded}\label{wxtreectrlisexpanded} - -\constfunc{bool}{IsExpanded}{\param{const wxTreeItemId\&}{ item}} - -Returns TRUE if the item is expanded (only makes sense if it has children). - -\membersection{wxTreeCtrl::IsSelected}\label{wxtreectrlisselected} - -\constfunc{bool}{IsSelected}{\param{const wxTreeItemId\&}{ item}} - -Returns TRUE if the item is selected. - -\membersection{wxTreeCtrl::IsVisible}\label{wxtreectrlisvisible} - -\constfunc{bool}{IsVisible}{\param{const wxTreeItemId\&}{ item}} - -Returns TRUE if the item is visible (it might be outside the view, or not expanded). - -\membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren} - -\constfunc{bool}{ItemHasChildren}{\param{const wxTreeItemId\&}{ item}} - -Returns TRUE if the item has children. - -\membersection{wxTreeCtrl::OnCompareItems}\label{wxtreectrloncompareitems} - -\func{int}{OnCompareItems}{\param{const wxTreeItemId\& }{item1}, \param{const wxTreeItemId\& }{item2}} - -Override this function in the derived class to change the sort order of the -items in the tree control. The function should return a negative, zero or -positive value if the first item is less than, equal to or greater than the -second one. - -The base class version compares items alphabetically. - -See also: \helpref{SortChildren}{wxtreectrlsortchildren} - -\membersection{wxTreeCtrl::PrependItem}\label{wxtreectrlprependitem} - -\func{wxTreeItemId}{PrependItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}} - -Appends an item as the first child of {\it parent}, return a new item id. - -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - -\membersection{wxTreeCtrl::ScrollTo}\label{wxtreectrlscrollto} - -\func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}} - -Scrolls the specified item into view. - -\membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem} - -\func{bool}{SelectItem}{\param{const wxTreeItemId\&}{ item}} - -Selects the given item. - -\membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent} - -\func{void}{SetIndent}{\param{int }{indent}} - -Sets the indentation for the tree control. - -\membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist} - -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which = wxIMAGE\_LIST\_NORMAL}} - -Sets the image list. {\it which} should be one of wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL and -wxIMAGE\_LIST\_STATE. - -\membersection{wxTreeCtrl::SetItemBold}\label{wxtreectrlsetitembold} - -\func{void}{SetItemBold}{\param{const wxTreeItemId\& }{item}, \param{bool}{ bold = TRUE}} - -Makes item appear in bold font if {\it bold} parameter is TRUE or resets it to -the normal state. - -See also: \helpref{IsBold}{wxtreectrlisbold} - -\membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata} - -\func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}} - -Sets the item client data. - -\pythonnote{wxPython provides the following shortcut method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetPyData(item, obj)}}{Associate the given Python -Object with the wxTreeItemData for the given item Id.} -\end{twocollist}} -} - -\membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren} - -\func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = TRUE}} - -Force appearance of the button next to the item. This is useful to -allow the user to expand the items which don't have any children now, -but instead adding them only when needed, thus minimizing memory -usage and loading time. - -\membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage} - -\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{image}} - -Sets the normal item image. This is an index into the assciated image list. - -\membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage} - -\func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}} - -Sets the item selected image. This is an index into the assciated image list. - -\membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext} - -\func{void}{SetItemText}{\param{const wxTreeItemId\&}{ item}, \param{const wxString\& }{text}} - -Sets the item label. - -\membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren} - -\func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}} - -Sorts the children of the given item using -\helpref{OnCompareItems}{wxtreectrloncompareitems} method of wxTreeCtrl. You -should override that method to change the sort order (default is ascending -alphabetical order). - -\wxheading{See also} - -\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{OnCompareItems}{wxtreectrloncompareitems} - -\membersection{wxTreeCtrl::Toggle}\label{wxtreectrltoggle} - -\func{void}{Toggle}{\param{const wxTreeItemId\&}{ item}} - -Toggles the given item between collapsed and expanded states. - -\membersection{wxTreeCtrl::Unselect}\label{wxtreectrlunselect} - -\func{void}{Unselect}{\void} - -Removes the selection from the currently selected item (if any). - -\membersection{wxTreeCtrl::UnselectAll}\label{wxtreectrlunselectall} - -\func{void}{UnselectAll}{\void} - -This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect} -if the control doesn't have wxTR\_MULTIPLE style, or removes the selection from -all items if it does have this style. - -\section{\class{wxTreeItemData}}\label{wxtreeitemdata} - -wxTreeItemData is some (arbitrary) user class associated with some item. The -main advantage of having this class (compared to the 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. 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. - -\wxheading{Derived from} - -wxTreeItemId - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxTreeCtrl}{wxtreectrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTreeItemData::wxTreeItemData}\label{wxtreeitemdataconstr} - -\func{}{wxTreeItemData}{\void} - -Default constructor. - -\pythonnote{The wxPython version of this constructor optionally -accepts any Python object as a parameter. This object is then -associated with the tree item using the wxTreeItemData as a -container. - -In addition, the following methods are added in wxPython for accessing -the object:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetData()}}{Returns a reference to the Python Object} -\twocolitem{\bf{SetData(obj)}}{Associates a new Python Object with the -wxTreeItemData} -\end{twocollist}} -} - - -\membersection{wxTreeItemData::\destruct{wxTreeItemData}} - -\func{void}{\destruct{wxTreeItemData}}{\void} - -Virtual destructor. - -\membersection{wxTreeItemData::GetId}\label{wxtreeitemdatagetid} - -\func{const wxTreeItem\&}{GetId}{\void} - -Returns the item associated with this node. - -\membersection{wxTreeItemData::SetId}\label{wxtreeitemdatasetid} - -\func{void}{SetId}{\param{const wxTreeItemId\&}{ id}} - -Sets the item associated with this node. - diff --git a/docs/latex/wx/treeevt.tex b/docs/latex/wx/treeevt.tex deleted file mode 100644 index dbf88e847e..0000000000 --- a/docs/latex/wx/treeevt.tex +++ /dev/null @@ -1,77 +0,0 @@ -\section{\class{wxTreeEvent}}\label{wxtreeevent} - -A tree event holds information about events associated with wxTreeCtrl objects. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process input from a tree control, use these event handler macros to direct input to member -functions that take a wxTreeEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.} -\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.} -\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{Parent has been expanded.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{Parent is being expanded. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxTreeCtrl}{wxtreectrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTreeEvent::wxTreeEvent} - -\func{}{wxTreeEvent}{\param{WXTYPE }{commandType = 0}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxTreeEvent::GetItem} - -\constfunc{wxTreeItemId}{GetItem}{} - -Returns he item (valid for all events). - -\membersection{wxTreeEvent::GetOldItem} - -\constfunc{wxTreeItemId}{GetOldItem}{} - -Returns the old item index (valid for EVT\_TREE\_ITEM\_CHANGING and CHANGED events) - -\membersection{wxTreeEvent::GetPoint()} - -\constfunc{wxPoint}{GetPoint}{} - -Returns the position of the mouse pointer if the event is a drag event. - -\membersection{wxTreeEvent::GetCode} - -\constfunc{int}{GetCode}{} - -The key code if the event was is a key event. - -\membersection{wxTreeEvent::GetLabel} - -\constfunc{const wxString&}{GetLabel}{} - -Returns the label if the event was a begin or end edit label event. diff --git a/docs/latex/wx/tresourc.tex b/docs/latex/wx/tresourc.tex deleted file mode 100644 index 86f055a611..0000000000 --- a/docs/latex/wx/tresourc.tex +++ /dev/null @@ -1,333 +0,0 @@ -\section{The wxWindows resource system}\label{resourceformats} - -From version 1.61, wxWindows has an optional {\it resource file} facility, -which allows separation of dialog, menu, bitmap and icon specifications -from the application code. - -It is similar in principle to the Windows resource file (whose ASCII form is -suffixed .RC and whose binary form is suffixed .RES). The wxWindows resource -file is currently ASCII-only, suffixed .WXR. Note that under Windows, -the .WXR file does not {\it replace} the native Windows resource file, -it merely supplements it. There is no existing native resource format in X -(except for the defaults file, which has limited expressive power). - -Using wxWindows resources for panels and dialogs has an effect on how -you deal with panel item callbacks: you can't specify a callback function in -a resource file, so how do you achieve the same effect as with programmatic -panel construction? The solution is similar to that adopted by Windows, which -is to use the {\it parent} panel or dialog to intercept user events. - -From 1.61, wxWindows routes panel item events that do not have a callback -to the \helpref{OnCommand}{wxwindowoncommand} member of the panel (or dialog). So, to use -panel or dialog resources, you need to derive a new class and override the -default (empty) OnCommand member. The first argument is a reference -to a wxWindow, and the second is a reference to a wxCommandEvent. Check the -name of the panel item that's generating an event by using the \helpref{wxWindow::GetName}{wxwindowgetname}\rtfsp -function and a string comparison function such as \helpref{wxStringEq}{wxstringeq}. -You may need to cast the reference to an appropriate specific type to perform -some operations. - -To obtain a pointer to a panel item when you only have the name (for example, -when you need to set a value of a text item from outside of the {\bf OnCommand} function), -use the function \helpref{wxFindWindowByName}{wxfindwindowbyname}. - -For details of functions for manipulating resource files and loading -user interface elements, see \helpref{wxWindows resource functions}{resourcefuncs}. - -\subsection{The format of a .WXR file} - -A wxWindows resource file may look a little odd at first. It's C++ -compatible, comprising mostly of static string variable declarations with -PrologIO syntax within the string. - -Here's a sample .WXR file: - -\begin{verbatim} -/* - * wxWindows Resource File - * Written by wxBuilder - * - */ - -#include "noname.ids" - -static char *aiai_resource = "bitmap(name = 'aiai_resource',\ - bitmap = ['aiai', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\ - bitmap = ['aiai.xpm', wxBITMAP_TYPE_XPM, 'X'])."; - -static char *menuBar11 = "menu(name = 'menuBar11',\ - menu = \ - [\ - ['&File', 1, '', \ - ['&Open File', 2, 'Open a file'],\ - ['&Save File', 3, 'Save a file'],\ - [],\ - ['E&xit', 4, 'Exit program']\ - ],\ - ['&Help', 5, '', \ - ['&About', 6, 'About this program']\ - ]\ - ])."; - -static char *project_resource = "icon(name = 'project_resource',\ - icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\ - icon = ['project_data', wxBITMAP_TYPE_XBM, 'X'])."; - -static char *panel3 = "dialog(name = 'panel3',\ - style = '',\ - title = 'untitled',\ - button_font = [14, 'wxSWISS', 'wxNORMAL', 'wxBOLD', 0],\ - label_font = [10, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],\ - x = 0, y = 37, width = 292, height = 164,\ - control = [wxButton, 'OK', '', 'button5', 23, 34, -1, -1, 'aiai_resource'],\ - control = [wxMessage, 'A Label', '', 'message7', 166, 61, -1, -1, 'aiai_resource'],\ - control = [wxText, 'Text', 'wxVERTICAL_LABEL', 'text8', 24, 110, -1, -1])."; -\end{verbatim} - -As you can see, C++-style comments are allowed, and apparently include files -are supported too: but this is a special case, where the included file -is a file of defines shared by the C++ application code and resource file -to relate identifiers (such as FILE\_OPEN) to integers. - -Each {\it resource object} is of standard PrologIO syntax, that is, -an object name such as {\bf dialog} or {\bf icon}, then an open -parenthesis, a list of comma-delimited attribute/value pairs, a closing -parenthesis, and a full stop. Backslashes are required to escape newlines, -for the benefit of C++ syntax. If double quotation marks are used to -delimit strings, they need to be escaped with backslash within a C++ string -(so it's easier to use single quotation marks instead). - -\normalbox{{\it A note on PrologIO string syntax:} A string that begins with -an alphabetic character, and contains only alphanumeric characters, -hyphens and underscores, need not be quoted at all. Single quotes and double -quotes may be used to delimit more complex strings. In fact, single-quoted -and no-quoted strings are actually called {\it words}, but are treated -as strings for the purpose of the resource system.} - -A resource file like this is typically included in the application main file, -as if it were a normal C++ file. This eliminates the need for a separate -resource file to be distributed alongside the executable. However, the -resource file can be dynamically loaded if desired (for example by a non-C++ -language such as CLIPS, Prolog or Python). - -Once included, the resources need to be `parsed' (interpreted), because -so far the data is just a number of static string variables. The function\rtfsp -{\bf ::wxResourceParseData} is called early on in initialization of the application -(usually in {\bf wxApp::OnInit}) with a variable as argument. This may need to be -called a number of times, one for each variable. However, more than one -resource `object' can be stored in one string variable at a time, so you can -get all your resources into one variable if you want to. - -{\bf ::wxResourceParseData} parses the contents of the resource, ready for use -by functions such as {\bf ::wxResourceCreateBitmap} and {\bf wxPanel::LoadFromResource}. - -If a wxWindows resource object (such as a bitmap resource) refers to a -C++ data structure, such as static XBM or XPM data, a further call ({\bf -::wxResourceRegisterBitmapData}) needs to be made on initialization to tell -wxWindows about this data. The wxWindows resource object will refer to a -string identifier, such as `project\_data' in the example file above. -This identifier will be looked up in a table to get the C++ static data -to use for the bitmap or icon. - -In the C++ fragment below, the WXR resource file is included, -and appropriate resource initialization is carried out in {\bf OnInit}. -Note that at this stage, no actual wxWindows dialogs, menus, bitmaps or -icons are created; their `templates' are merely being set up for later -use. - -\begin{verbatim} -/* - * File: noname.cc - * Purpose: main application module, generated by wxBuilder. - */ - -#include "wx.h" -#include "wx_help.h" -#include "noname.h" - -// Includes the dialog, menu etc. resources -#include "noname.wxr" - -// Includes XBM data -#include "project.xbm" - -// Declare an instance of the application: allows the program to start -AppClass theApp; - -// Called to initialize the program -wxFrame *AppClass::OnInit(void) -{ -#ifdef wx_x - wxResourceRegisterBitmapData("project_data", project_bits, project_width, project_height); -#endif - wxResourceParseData(menuBar11); - wxResourceParseData(aiai_resource); - wxResourceParseData(project_resource); - wxResourceParseData(panel3); - ... -} -\end{verbatim} - - -\subsection{Dialog resource format} - -A dialog resource object may be used for either panels or dialog boxes, and -consists of the following attributes. In the following, a {\it font specification}\rtfsp -is a list consisting of point size, family, style, weight, underlined, optional facename. - -\begin{twocollist}\itemsep=0pt -\twocolitemruled{Attribute}{Value} -\twocolitem{name}{The name of the resource.} -\twocolitem{style}{Optional dialog box or panel window style.} -\twocolitem{title}{The title of the dialog box (unused if a panel).}. -\twocolitem{modal}{Whether modal: 1 if modal, 0 if modeless, absent if a panel resource.} -\twocolitem{button\_font}{The font used for control buttons: a list comprising point size (integer), -family (string), font style (string), font weight (string) and underlining (0 or 1).} -\twocolitem{label\_font}{The font used for control labels: a list comprising point size (integer), -family (string), font style (string), font weight (string) and underlining (0 or 1).} -\twocolitem{x}{The x position of the dialog or panel.} -\twocolitem{y}{The y position of the dialog or panel.} -\twocolitem{width}{The width of the dialog or panel.} -\twocolitem{height}{The height of the dialog or panel.} -\twocolitem{background\_colour}{The background colour of the dialog or panel. Only valid if the style includes wxUSER\_COLOURS.} -\twocolitem{label\_colour}{The default label colour for the children of the dialog or panel. Only valid if the style includes wxUSER\_COLOURS.} -\twocolitem{button\_colour}{The default button text colour for the children of the dialog or panel. Only valid if the style includes wxUSER\_COLOURS.} -\twocolitem{label\_font}{Font spec} -\twocolitem{button\_font}{Font spec} -\end{twocollist} - -Then comes zero or more attributes named `control' for each control -(panel item) on the dialog or panel. The value is a list of further -elements. In the table below, the names in the first column correspond to -the first element of the value list, and the second column details the -remaining elements of the list. - -\begin{twocollist}\itemsep=0pt -\twocolitemruled{Control}{Values} -\twocolitem{wxButton}{title (string), window style (string), name (string), x, y, width, height, button bitmap resource (optional string), button font spec} -\twocolitem{wxCheckBox}{title (string), window style (string), name (string), x, y, width, height, default value (optional integer, 1 or 0), label font spec} -\twocolitem{wxChoice}{title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), label font spec, button font spec} -\twocolitem{wxComboBox}{title (string), window style (string), name (string), x, y, width, height, default text value, values (optional list of strings), label font spec, button font spec} -\twocolitem{wxGauge}{title (string), window style (string), name (string), x, y, width, height, value (optional integer), range (optional integer), label font spec, button font spec} -\twocolitem{wxGroupBox}{title (string), window style (string), name (string), x, y, width, height, label font spec} -\twocolitem{wxListBox}{title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), multiple (optional string, wxSINGLE or wxMULTIPLE), -label font spec, button font spec} -\twocolitem{wxMessage}{title (string), window style (string), name (string), x, y, width, height, message bitmap resource (optional string), label font spec} -\twocolitem{wxMultiText}{title (string), window style (string), name (string), x, y, width, height, default value (optional string), -label font spec, button font spec} -\twocolitem{wxRadioBox}{title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), number of rows or cols, -label font spec, button font spec} -\twocolitem{wxRadioButton}{title (string), window style (string), name (string), x, y, width, height, default value (optional integer, 1 or 0), label font spec} -\twocolitem{wxScrollBar}{title (string), window style (string), name (string), x, y, width, height, value (optional integer), -page length (optional integer), object length (optional integer), view length (optional integer)} -\twocolitem{wxSlider}{title (string), window style (string), name (string), x, y, width, height, value (optional integer), minimum (optional integer), maximum (optional integer), -label font spec, button font spec} -\twocolitem{wxText}{title (string), window style (string), name (string), x, y, width, height, default value (optional string), -label font spec, button font spec} -\end{twocollist} - -\subsection{Menubar resource format} - -A menubar resource object consists of the following attributes. - -\begin{twocollist}\itemsep=0pt -\twocolitemruled{Attribute}{Value} -\twocolitem{name}{The name of the menubar resource.} -\twocolitem{menu}{A list containing all the menus, as detailed below.} -\end{twocollist} - -The value of the {\bf menu} attribute is a list of menu item specifications, where each menu -item specification is itself a list comprising: - -\begin{itemize}\itemsep=0pt -\item title (a string) -\item menu item identifier (a string or non-zero integer, see below) -\item help string (optional) -\item 0 or 1 for the `checkable' parameter (optional) -\item optionally, further menu item specifications if this item is a pulldown menu. -\end{itemize} - -If the menu item specification is the empty list ([]), this is interpreted as a menu separator. - -If further (optional) information is associated with each menu item in a future release of wxWindows, -it will be placed after the help string and before the optional pulldown menu specifications. - -Note that the menu item identifier must be an integer if the resource is being -included as C++ code and then parsed on initialisation. Unfortunately,\rtfsp -\verb$#$define substitution is not performed inside strings, and -therefore the program cannot know the mapping. However, if the .WXR file -is being loaded dynamically, wxWindows will attempt to replace string -identifiers with \verb$#$defined integers, because it is able to parse -the included \verb$#$defines. - -\subsection{Bitmap resource format} - -A bitmap resource object consists of a name attribute, and one or more {\bf bitmap} attributes. -There can be more than one of these to allow specification of bitmaps that are optimum for the -platform and display. - -\begin{itemize}\itemsep=0pt -\item Bitmap name or filename. -\item Type of bitmap; for example, wxBITMAP\_TYPE\_BMP\_RESOURCE. See class reference under {\bf wxBitmap} for -a full list). -\item Platform this bitmap is valid for; one of WINDOWS, X, MAC and ANY. -\item Number of colours (optional). -\item X resolution (optional). -\item Y resolution (optional). -\end{itemize} - -\subsection{Icon resource format} - -An icon resource object consists of a name attribute, and one or more {\bf icon} attributes. -There can be more than one of these to allow specification of icons that are optimum for the -platform and display. - -\begin{itemize}\itemsep=0pt -\item Icon name or filename. -\item Type of icon; for example, wxBITMAP\_TYPE\_ICO\_RESOURCE. See class reference under {\bf wxBitmap} for -a full list). -\item Platform this bitmap is valid for; one of WINDOWS, X, MAC and ANY. -\item Number of colours (optional). -\item X resolution (optional). -\item Y resolution (optional). -\end{itemize} - - -\subsection{Resource format design issues} - -The .WXR file format is a recent addition and subject to change. -The use of an ASCII resource file format may seem rather inefficient, but this -choice has a number of advantages: - -\begin{itemize}\itemsep=0pt -\item Since it is C++ compatible, it can be included into an application's source code, -eliminating the problems associated with distributing a separate resource file -with the executable. However, it can also be loaded dynamically from a file, which will be required -for non-C++ programs that use wxWindows. -\item No extra binary file format and separate converter need be maintained for the wxWindows project -(although others are welcome to add the equivalent of the Windows `rc' resource -parser and a binary format). -\item It would be difficult to append a binary resource component onto an executable -in a portable way. -\item The file format is essentially the PrologIO object format, for which -a parser already exists, so parsing is easy. For those programs that use PrologIO -anyway, the size overhead of the parser is minimal. -\end{itemize} - -The disadvantages of the approach include: - -\begin{itemize}\itemsep=0pt -\item Parsing adds a small execution overhead to program initialization. -\item Under 16-bit Windows especially, global data is at a premium. -Using a .RC resource table for some wxWindows resource data may be a partial solution, -although .RC strings are limited to 255 characters. -\item Without a resource preprocessor, it is not possible to substitute integers -for identifiers (so menu identifiers have to be written as integers in the resource -object, in addition to providing \verb$#$defines for application code convenience). -\end{itemize} - -\subsection{Compiling the resource system} - -To enable the resource system, set {\bf wxUSE\_WX\_RESOURCES} to 1 in setup.h. -If your wxWindows makefile supports it, set the same name in the makefile to 1. - diff --git a/docs/latex/wx/truntime.tex b/docs/latex/wx/truntime.tex deleted file mode 100644 index df443465ea..0000000000 --- a/docs/latex/wx/truntime.tex +++ /dev/null @@ -1,109 +0,0 @@ -\section{Run time class information overview}\label{runtimeclassoverview} - -Classes: \helpref{wxObject}{wxobject}, \helpref{wxClassInfo}{wxclassinfo}. - -One of the failings of C++ used to be that no run-time information was provided -about a class and its position in the inheritance hierarchy. -Another, which still persists, is that instances of a class cannot be created -just by knowing the name of a class, which makes facilities such as persistent -storage hard to implement. - -Most C++ GUI frameworks overcome these limitations by means of a set of -macros and functions and wxWindows is no exception. As it originated before the -addition of RTTI to the standard C++ and as support for it still missing from -some (albeit old) compilers, wxWindows doesn't (yet) use it, but provides its -own macro-based RTTI system. - -In the future, the standard C++ RTTI will be used though and you're encouraged -to use whenever possible \helpref{wxDynamicCast()}{wxdynamiccast} macro which, -for the implementations that support it, is defined just as dynamic\_cast<> and -uses wxWindows RTTI for all the others. This macro is limited to wxWindows -classes only and only works with pointers (unlike the real dynamic\_cast<> which -also accepts referencies). - -Each class that you wish to be known the type system should have -a macro such as DECLARE\_DYNAMIC\_CLASS just inside the class declaration. -The macro IMPLEMENT\_DYNAMIC\_CLASS should be in the implementation file. -Note that these are entirely optional; use them if you wish to check object -types, or create instances of classes using the class name. However, -it is good to get into the habit of adding these macros for all classes. - -Variations on these \helpref{macros}{macros} are used for multiple inheritance, and abstract -classes that cannot be instantiated dynamically or otherwise. - -DECLARE\_DYNAMIC\_CLASS inserts a static wxClassInfo declaration into the -class, initialized by IMPLEMENT\_DYNAMIC\_CLASS. When initialized, the -wxClassInfo object inserts itself into a linked list (accessed through -wxClassInfo::first and wxClassInfo::next pointers). The linked list -is fully created by the time all global initialisation is done. - -IMPLEMENT\_DYNAMIC\_CLASS is a macro that not only initialises the static -wxClassInfo member, but defines a global function capable of creating a -dynamic object of the class in question. A pointer to this function is -stored in wxClassInfo, and is used when an object should be created -dynamically. - -\helpref{wxObject::IsKindOf}{wxobjectiskindof} uses the linked list of -wxClassInfo. It takes a wxClassInfo argument, so use CLASSINFO(className) -to return an appropriate wxClassInfo pointer to use in this function. - -The function \helpref{wxCreateDynamicObject}{wxcreatedynamicobject} can be used -to construct a new object of a given type, by supplying a string name. -If you have a pointer to the wxClassInfo object instead, then you -can simply call wxClassInfo::CreateObject. - -\subsection{wxClassInfo}\label{wxclassinfooverview} - -\overview{Run time class information overview}{runtimeclassoverview} - -Class: \helpref{wxClassInfo}{wxclassinfo} - -This class stores meta-information about classes. An application -may use macros such as DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS -to record run-time information about a class, including: - -\begin{itemize}\itemsep=0pt -\item its position in the inheritance hierarchy; -\item the base class name(s) (up to two base classes are permitted); -\item a string representation of the class name; -\item a function that can be called to construct an instance of this class. -\end{itemize} - -The DECLARE\_... macros declare a static wxClassInfo variable in a class, which is initialized -by macros of the form IMPLEMENT\_... in the implementation C++ file. Classes whose instances may be -constructed dynamically are given a global constructor function which returns a new object. - -You can get the wxClassInfo for a class by using the CLASSINFO macro, e.g. CLASSINFO(wxFrame). -You can get the wxClassInfo for an object using wxObject::GetClassInfo. - -See also \helpref{wxObject}{wxobject} and \helpref{wxCreateDynamicObject}{wxcreatedynamicobject}. - -\subsection{Example} - -In a header file frame.h: - -\begin{verbatim} -class wxFrame : public wxWindow -{ -DECLARE_DYNAMIC_CLASS(wxFrame) - -private: - wxString m_title; - -public: - ... -}; -\end{verbatim} - -In a C++ file frame.cpp: - -\begin{verbatim} -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) - -wxFrame::wxFrame() -{ -... -} -\end{verbatim} - - diff --git a/docs/latex/wx/tscroll.tex b/docs/latex/wx/tscroll.tex deleted file mode 100644 index 40986ab426..0000000000 --- a/docs/latex/wx/tscroll.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{Scrolling overview}\label{scrollingoverview} - -Classes: \helpref{wxWindow}{wxwindow}, \helpref{wxScrolledWindow}{wxscrolledwindow}, \helpref{wxIcon}{wxicon}, \helpref{wxScrollBar}{wxscrollbar}. - -Scrollbars come in various guises in wxWindows. All windows have the potential -to show a vertical scrollbar and/or a horizontal scrollbar: it's a basic capability of a window. -However, in practice, not all windows do make use of scrollbars, such as a single-line wxTextCtrl. - -Because any class derived from \helpref{wxWindow}{wxwindow} may have scrollbars, -there are functions to manipulate the scrollbars and event handlers to intercept -scroll events. But just because a window generates a scroll event, doesn't mean -that the window necessarily handles it and physically scrolls the window. The base class -wxWindow in fact doesn't have any default functionality to handle scroll events. -If you created a wxWindow object with scrollbars, and then clicked on the scrollbars, nothing -at all would happen. This is deliberate, because the {\it interpretation} of scroll -events varies from one window class to another. - -\helpref{wxScrolledWindow}{wxscrolledwindow} (formerly wxCanvas) is an example of a window that -adds functionality to make scrolling really work. It assumes that scrolling happens in -consistent units, not different-sized jumps, and that page size is represented -by the visible portion of the window. It's suited to drawing applications, but perhaps -not so suitable for a sophisticated editor in which the amount scrolled may vary according -to the size of text on a given line. For this, you would derive from wxWindow and -implement scrolling yourself. \helpref{wxGrid}{wxgrid} is an example of a class -that implements its own scrolling, largely because columns and rows can vary in size. - -\wxheading{The scrollbar model} - -The function \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} gives a clue about -the way a scrollbar is modelled. This function takes the following arguments: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{orientation}{Which scrollbar: wxVERTICAL or wxHORIZONTAL.} -\twocolitem{position}{The position of the scrollbar in scroll units.} -\twocolitem{visible}{The size of the visible portion of the scrollbar, in scroll units.} -\twocolitem{range}{The maximum position of the scrollbar.} -\twocolitem{refresh}{Whether the scrollbar should be repainted.} -\end{twocollist}% - -{\it orientation} determines whether we're talking about -the built-in horizontal or vertical scrollbar. - -{\it position} is simply the position of the `thumb' (the bit you drag to scroll around). -It's given in scroll units, and so is relative to the total range of the scrollbar. - -{\it visible} gives the number of scroll units that represents the portion of the -window currently visible. Normally, a scrollbar is capable of indicating this visually -by showing a different length of thumb. - -{\it range} is the maximum value of the scrollbar, where zero is the start -position. You choose the units that suit you, -so if you wanted to display text that has 100 lines, you would set this to 100. -Note that this doesn't have to correspond to the number of pixels scrolled - it's -up to you how you actually show the contents of the window. - -{\it refresh} just indicates whether the scrollbar should be repainted immediately or not. - -\wxheading{An example} - -Let's say you wish to display 50 lines of text, using the same font. -The window is sized so that you can only see 16 lines at a time. - -You would use: - -{\small% -\begin{verbatim} - SetScrollbar(wxVERTICAL, 0, 16, 50); -\end{verbatim} -} - -Note that with the window at this size, the thumb position can never go -above 50 minus 16, or 34. - -You can determine how many lines are currently visible by dividing the current view -size by the character height in pixels. - -When defining your own scrollbar behaviour, you will always need to recalculate -the scrollbar settings when the window size changes. You could therefore put your -scrollbar calculations and SetScrollbar -call into a function named AdjustScrollbars, which can be called initially and also -from your \helpref{wxWindow::OnSize}{wxwindowonsize} event handler function. - -%\normalbox{{\bf For Windows programmers:} note that scrollbar range in wxWindows has a different meaning -%from that in Windows. In native Windows scrollbar calls, range is the number of positions that the scrollbar -%can physically scroll through - in our example above, it would be 34. But it's easier -%to think in terms of the number of units that the whole scrollbar represents - the virtual -%window size - which is why wxWindows does it differently.} - - diff --git a/docs/latex/wx/tsplittr.tex b/docs/latex/wx/tsplittr.tex deleted file mode 100644 index 2be27dee73..0000000000 --- a/docs/latex/wx/tsplittr.tex +++ /dev/null @@ -1,63 +0,0 @@ -\section{wxSplitterWindow overview}\label{wxsplitterwindowoverview} - -Classes: \helpref{wxSplitterWindow}{wxsplitterwindow} - -The following screenshot shows the appearance of a splitter window with a vertical split. - -$$\image{8cm;0cm}{splitter.eps}$$ - -The style wxSP\_3D has been used to show a 3D border and 3D sash. - -\subsection{Example} - -The following fragment shows how to create a splitter window, creating two -subwindows and hiding one of them. - -{\small -\begin{verbatim} - splitter = new wxSplitterWindow(this, -1, wxPoint(0, 0), wxSize(400, 400), wxSP_3D); - - leftWindow = new MyWindow(splitter); - leftWindow->SetScrollbars(20, 20, 50, 50); - - rightWindow = new MyWindow(splitter); - rightWindow->SetScrollbars(20, 20, 50, 50); - rightWindow->Show(FALSE); - - splitter->Initialize(leftWindow); - - // Set this to prevent unsplitting -// splitter->SetMinimumPaneSize(20); -\end{verbatim} -} - -The next fragment shows how the splitter window can be manipulated after creation. - -{\small -\begin{verbatim} - void MyFrame::OnSplitVertical(wxCommandEvent& event) - { - if ( splitter->IsSplit() ) - splitter->Unsplit(); - leftWindow->Show(TRUE); - rightWindow->Show(TRUE); - splitter->SplitVertically( leftWindow, rightWindow ); - } - - void MyFrame::OnSplitHorizontal(wxCommandEvent& event) - { - if ( splitter->IsSplit() ) - splitter->Unsplit(); - leftWindow->Show(TRUE); - rightWindow->Show(TRUE); - splitter->SplitHorizontally( leftWindow, rightWindow ); - } - - void MyFrame::OnUnsplit(wxCommandEvent& event) - { - if ( splitter->IsSplit() ) - splitter->Unsplit(); - } -\end{verbatim} -} - diff --git a/docs/latex/wx/tstream.tex b/docs/latex/wx/tstream.tex deleted file mode 100644 index ec0ac9c432..0000000000 --- a/docs/latex/wx/tstream.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{Streams in wxWindows overview}\label{wxstreamoverview} - -Classes: \helpref{wxStreamBase}{wxstreambase}, - \helpref{wxStreamBuffer}{wxstreambuffer}, \helpref{wxInputStream}{wxinputstream}, - \helpref{wxOutputStream}{wxoutputstream}, - \helpref{wxFilterInputStream}{wxfilterinputstream}, - \helpref{wxFilterOutputStream}{wxfilteroutputstream} - -\wxheading{Purpose of wxStream} - -We went into troubles with c++ std streams on some platform: -they react quite well in most cases, but in multi-threaded case, for example, -they have a LOT of problems. - -Then, wxStreams have been built in wxWindows because an application should compile -and run on all supported platforms and we don't want users depend on release -X.XX of libg++ or some other compiler to run the program. - -wxStreams is divided in two main parts: -\begin{enumerate}\itemsep=0pt -\item the core: wxStreamBase, wxStreamBuffer, wxInputStream, wxOutputStream, -wxFilterIn/OutputStream -\item the "IO" classes: wxSocketIn/OutputStream, wxDataIn/OutputStream, wxFileIn/OutputStream, ... -\end{enumerate} - -wxStreamBase is the base definition of a stream. It defines, for example, -the API of OnSysRead, OnSysWrite, OnSysSeek and OnSysTell. These functions are -are really implemented by the "IO" classes. -wxInputStream and wxOutputStream inherit from it. - -wxStreamBuffer is a cache manager for wxStreamBase (it manages a stream buffer -linked to a stream). One stream can have multiple stream buffers but one stream -have always one autoinitialized stream buffer. - -wxInputStream is the base class for read-only streams. It implements Read, -SeekI (I for Input), and all read or IO generic related functions. -wxOutputStream does the same thing but it is for write-only streams. - -wxFilterIn/OutputStream is base class definition for stream filtering. -I mean by stream filtering, a stream which does no syscall but filter datas -which are passed to it and then pass them to another stream. -For example, wxZLibInputStream is an inline stream decompressor. - -The "IO" classes implements the specific parts of the stream. This could be -nothing in the case of wxMemoryIn/OutputStream which bases itself on -wxStreamBuffer. This could also be a simple link to the a true syscall -(for example read(...), write(...)). - -\wxheading{Generic usage: an example} - -About its usage, it's simple. We can take the example of wxFileInputStream and here is a sample -code: - -\begin{verbatim} - ... - // The constructor initializes the stream buffer and open the file descriptor - // associated to the name of the file. - wxFileInputStream in\_stream("the\_file\_to\_be\_read"); - - // Ok, read some bytes ... nb\_datas is expressed in bytes. - in\_stream.Read(data, nb\_datas); - if (in\_stream.LastError() != wxStream\_NOERROR) { - // Oh oh, something bad happens. - // For a complete list, look into the documentation at wxStreamBase. - } - - // You can also inline all like this. - if (in\_stream.Read(data, nb\_datas).LastError() != wxStream\_NOERROR) { - // Do something. - } - - // You can also get the last number of bytes REALLY put into the buffer. - size\_t really\_read = in\_stream.LastRead(); - - // Ok, moves to the beginning of the stream. SeekI returns the last position - // in the stream counted from the beginning. - off\_t old_position = in\_stream.SeekI(0, wxFromBeginning); - - // What is my current position ? - off\_t position = in\_stream.TellI(); - - // wxFileInputStream will close the file descriptor on the destruction. -\end{verbatim} - -\wxheading{Compatibility with c++ stream} - -As I said previously, we could add a filter stream so it takes an istream -argument and builds a wxInputStream from it: I don't think it should -be difficult to implement it and it may be available in the fix of wxWindows 2.0. - diff --git a/docs/latex/wx/tstring.tex b/docs/latex/wx/tstring.tex deleted file mode 100644 index 324e0a1ea1..0000000000 --- a/docs/latex/wx/tstring.tex +++ /dev/null @@ -1,261 +0,0 @@ -\section{wxString overview}\label{wxstringoverview} - -Classes: \helpref{wxString}{wxstring}, \helpref{wxArrayString}{wxarraystring}, \helpref{wxStringTokenizer}{wxstringtokenizer} - -\subsection{Introduction} - -wxString is a class which represents a character string of arbitrary length (limited by -{\it MAX\_INT} which is usually 2147483647 on 32 bit machines) and containing -arbitrary characters. The ASCII NUL character is allowed, although care should be -taken when passing strings containing it to other functions. - -wxString only works with ASCII (8 bit characters) strings as of this release, -but support for UNICODE (16 but characters) is planned for the next one. - -This class has all the standard operations you can expect to find in a string class: -dynamic memory management (string extends to accomodate new characters), -construction from other strings, C strings and characters, assignment operators, -access to individual characters, string concatenation and comparison, substring -extraction, case conversion, trimming and padding (with spaces), searching and -replacing and both C-like \helpref{Printf()}{wxstringprintf} and stream-like -insertion functions as well as much more - see \helpref{wxString}{wxstring} -for a list of all functions. - -\subsection{Comparison of wxString to other string classes} - -The advantages of using a special string class instead of working directly with -C strings are so obvious that there is a huge number of such classes available. -The most important advantage is the need to always -remember to allocate/free memory for C strings; working with fixed size buffers almost -inevitably leads to buffer overflows. At last, C++ has a standard string class -(std::string). So why the need for wxString? - -There are several advantages: - -\begin{enumerate}\itemsep=0pt -\item {\bf Efficiency} This class was made to be as efficient as possible: both -in terms of size (each wxString objects takes exactly the same space as a {\it -char *} pointer, sing \helpref{reference counting}{wxstringrefcount}) and speed. -It also provides performance \helpref{statistics gathering code}{wxstringtuning} -which may be enabled to fine tune the memory allocation strategy for your -particular application - and the gain might be quite big. -\item {\bf Compatibility} This class tries to combine almost full compatibility -with the old wxWindows 1.xx wxString class, some reminiscence to MFC CString -class and 90\% of the functionality of std::string class. -\item {\bf Rich set of functions} Some of the functions present in wxString are -very useful but don't exist in most of other string classes: for example, -\helpref{AfterFirst}{wxstringafterfirst}, -\helpref{BeforeLast}{wxstringbeforelast}, \helpref{operator<<}{wxstringoperatorout} -or \helpref{Printf}{wxstringprintf}. Of course, all the standard string -operations are supported as well. -\item {\bf UNICODE} In this release, wxString only supports {\it construction} from -a UNICODE string, but in the next one it will be capable of also storing its -internal data in either ASCII or UNICODE format. -\item {\bf Used by wxWindows} And, of course, this class is used everywhere -inside wxWindows so there is no performance loss which would result from -conversions of objects of any other string class (including std::string) to -wxString internally by wxWindows. -\end{enumerate} - -However, there are several problems as well. The most important one is probably -that there are often several functions to do exactly the same thing: for -example, to get the length of the string either one of -\helpref{length()}{wxstringlength}, \helpref{Len()}{wxstringlen} or -\helpref{Length()}{wxstringLength} may be used. The first function, as almost -all the other functions in lowercase, is std::string compatible. The second one -is "native" wxString version and the last one is wxWindows 1.xx way. So the -question is: which one is better to use? And the answer is that: - -{\bf The usage of std::string compatible functions is strongly advised!} It will -both make your code more familiar to other C++ programmers (who are supposed to -have knowledge of std::string but not of wxString), let you reuse the same code -in both wxWindows and other programs (by just typedefing wxString as std::string -when used outside wxWindows) and by staying compatible with future versions of -wxWindows which will probably start using std::string sooner or later too. - -In the situations where there is no correspondinw std::string function, please -try to use the new wxString methods and not the old wxWindows 1.xx variants -which are deprecated and may disappear in future versions. - -\subsection{Some advice about using wxString}\label{wxstringadvices} - -Probably the main trap with using this class is the implicit conversion operator to -{\it const char *}. It is advised that you use \helpref{c\_str()}{wxstringcstr} -instead to clearly indicate when the conversion is done. Specifically, the -danger of this implicit conversion may be seen in the following code fragment: - -\begin{verbatim} -// this function converts the input string to uppercase, output it to the screen -// and returns the result -const char *SayHELLO(const wxString& input) -{ - wxString output = input.Upper(); - - printf("Hello, %s!\n", output); - - return output; -} -\end{verbatim} - -There are two nasty bugs in these three lines. First of them is in the call to the -{\it printf()} function. Although the implicit conversion to C strings is applied -automatically by the compiler in the case of - -\begin{verbatim} - puts(output); -\end{verbatim} - -because the argument of {\it puts()} is known to be of the type {\it const char *}, -this is {\bf not} done for {\it printf()} which is a function with variable -number of arguments (and whose arguments are of unknown types). So this call may -do anything at all (including displaying the correct string on screen), although -the most likely result is a program crash. The solution is to use -\helpref{c\_str()}{wxstringcstr}: just replace this line with - -\begin{verbatim} - printf("Hello, %s!\n", output.c_str()); -\end{verbatim} - -The second bug is that returning {\it output} doesn't work. The implicit cast is -used again, so the code compiles, but as it returns a pointer to a buffer -belonging to a local variable which is deleted as soon as the function exits, -its contents is totally arbitrary. The solution to this problem is also easy: -just make the function return wxString instead of a C string. - -This leads us to the following general advice: all functions taking string -arguments should take {\it const wxString\&} (this makes assignment to the -strings inside the function faster because of -\helpref{reference counting}{wxstringrefcount}) and all functions returning -strings should return {\it wxString} - this makes it safe to return local -variables. - -\subsection{Other string related functions and classes} - -As most programs use character strings, the standard C library provides quite a -few functions to work with them. Unfortunately, some of them have rather -counter-intuitive behaviour (like strncpy() which doesn't always terminate the resulting -string with a NULL) and are in general not very safe (passing NULL to them will -probably lead to program crash). Moreover, some very useful functions are not -standard at all. This is why in addition to all wxString functions, there are -also a few global string functions which try to correct these problems: -\helpref{IsEmpty()}{IsEmpty} verifies whether the string is empty (returning -TRUE for NULL pointers), \helpref{Strlen()}{Strlen} also handles NULLs correctly -and returns 0 for them and \helpref{Stricmp()}{Stricmp} is just a -platform-independent version of case-insensitive string comparison function -known either as stricmp() or strcasecmp() on different platforms. - -There is another class which might be useful when working with wxString: -\helpref{wxStringTokenizer}{wxstringtokenizer}. It is helpful when a string must -be broken into tokens and replaces the standard C library {\it -strtok()} function. - -And the very last string-related class is \helpref{wxArrayString}{wxarraystring}: it -is just a version of the "template" dynamic array class which is specialized to work -with strings. Please note that this class is specially optimized (using its -knowledge of the internal structure of wxString) for storing strings and so it is -vastly better from a performance point of view than a wxObjectArray of wxStrings. - -\subsection{Reference counting and why you shouldn't care about it}\label{wxstringrefcount} - -wxString objects use a technique known as {\it copy on write} (COW). This means -that when a string is assigned to another, no copying really takes place: only -the reference count on the shared string data is incremented and both strings -share the same data. - -But as soon as one of the two (or more) strings is modified, the data has to be -copied because the changes to one of the strings shouldn't be seen in the -otheres. As data copying only happens when the string is written to, this is -known as COW. - -What is important to understand is that all this happens absolutely -transparently to the class users and that whether a string is shared or not is -not seen from the outside of the class - in any case, the result of any -operation on it is the same. - -Probably the unique case when you might want to think about reference -counting is when a string character is taken from a string which is not a -constant (or a constant reference). In this case, due to C++ rules, the -"read-only" {\it operator[]} (which is the same as -\helpref{GetChar()}{wxstringgetchar}) cannot be chosen and the "read/write" -{\it operator[]} (the same as -\helpref{GetWritableChar()}{wxstringgetwritablechar}) is used instead. As the -call to this operator may modify the string, its data is unshared (COW is done) -and so if the string was really shared there is some performance loss (both in -terms of speed and memory consumption). In the rare cases when this may be -important, you might prefer using \helpref{GetChar()}{wxstringgetchar} instead -of the array subscript operator for this reasons. Please note that -\helpref{at()}{wxstringat} method has the same problem as the subscript operator in -this situation and so using it is not really better. Also note that if all -string arguments to your functions are passed as {\it const wxString\&} (see the -section \helpref{Some advice}{wxstringadvices}) this situation will almost -never arise because for constant references the correct operator is called automatically. - -\subsection{Tuning wxString for your application}\label{wxstringtuning} - -\normalbox{{\bf Note:} this section is strictly about performance issues and is -absolutely not necessary to read for using wxString class. Please skip it unless -you feel familiar with profilers and relative tools. If you do read it, please -also read the preceding section about -\helpref{reference counting}{wxstringrefcount}.} - -For the performance reasons wxString doesn't allocate exactly the amount of -memory needed for each string. Instead, it adds a small amount of space to each -allocated block which allows it to not reallocate memory (a relatively -expensive operation) too often as when, for example, a string is constructed by -subsequently adding one character at a time to it, as for example in: - -\begin{verbatim} -// delete all vowels from the string -wxString DeleteAllVowels(const wxString& original) -{ - wxString result; - - size_t len = original.length(); - for ( size_t n = 0; n < len; n++ ) - { - if ( strchr("aeuio", tolower(original[n])) == NULL ) - result += original[n]; - } - - return result; -} -\end{verbatim} - -This is quite a common situation and not allocating extra memory at all would -lead to very bad performance in this case because there would be as many memory -(re)allocations as there are consonants in the original string. Allocating too -much extra memory would help to improve the speed in this situation, but due to -a great number of wxString objects typically used in a program would also -increase the memory consumption too much. - -The very best solution in precisely this case would be to use -\helpref{Alloc()}{wxstringalloc} function to preallocate, for example, len bytes -from the beginning - this will lead to exactly one memory allocation being -performed (because the result is at most as long as the original string). - -However, using Alloc() is tedious and so wxString tries to do its best. The -default algorithm assumes that memory allocation is done in granularity of at -least 16 bytes (which is the case on almost all of wide-spread platforms) and so -nothing is lost if the amount of memory to allocate is rounded up to the next -multiple of 16. Like this, no memory is lost and 15 iterations from 16 in the -example above won't allocate memory but use the already allocated pool. - -The default approach is quite conservative. Allocating more memory may bring -important performance benefits for programs using (relatively) few very long -strings. The amount of memory allocated is configured by the setting of {\it -EXTRA\_ALLOC} in the file string.cpp during compilation (be sure to understand -why its default value is what it is before modifying it!). You may try setting -it to greater amount (say twice nLen) or to 0 (to see performance degradation -which will follow) and analyse the impact of it on your program. If you do it, -you will probably find it helpful to also define WXSTRING\_STATISTICS symbol -which tells the wxString class to collect performance statistics and to show -them on stderr on program termination. This will show you the average length of -strings your program manipulates, their average initial length and also the -percent of times when memory wasn't reallocated when string concatenation was -done but the alread preallocated memory was used (this value should be about -98\% for the default allocation policy, if it is less than 90\% you should -really consider fine tuning wxString for your application). - -It goes without saying that a profiler should be used to measure the precise -difference the change to EXTRA\_ALLOC makes to your program. - diff --git a/docs/latex/wx/tstyles.tex b/docs/latex/wx/tstyles.tex deleted file mode 100644 index c31d33afa4..0000000000 --- a/docs/latex/wx/tstyles.tex +++ /dev/null @@ -1,14 +0,0 @@ -\section{Window styles}\label{windowstyles} - -Window styles are used to specify alternative behaviour and appearances for windows, when they are -created. The symbols are defined in such as way that they can be combined in a `bit-list' using the -C++ {\it bitwise-or} operator. For example: - -\begin{verbatim} - wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME -\end{verbatim} - -For the window styles specific to each window class, please see the documentation -for the window. Most windows can use the generic styles listed for \helpref{wxWindow}{wxwindow} in -addition to their own styles. - diff --git a/docs/latex/wx/ttab.tex b/docs/latex/wx/ttab.tex deleted file mode 100644 index d044e81936..0000000000 --- a/docs/latex/wx/ttab.tex +++ /dev/null @@ -1,186 +0,0 @@ -\section{Tab classes overview}\label{wxtaboverview} - -Classes: \helpref{wxTabView}{wxtabview}, \helpref{wxPanelTabView}{wxpaneltabview}, - \helpref{wxTabbedPanel}{wxtabbedpanel}, \helpref{wxTabbedDialog}{wxtabbeddialog}, - \helpref{wxTabControl}{wxtabcontrol} - -The tab classes provides a way to display rows of tabs (like file divider tabs), which can be -used to switch between panels or other information. Tabs are most -commonly used in dialog boxes where the number of options is too great -to fit on one dialog. - -\wxheading{The appearance and behaviour of a wxTabbedDialog} - -The following screenshot shows the appearance of the sample tabbed dialog application. - -$$\image{8cm;0cm}{wxtab1.eps}$$ - -By clicking on the tabs, the user can display a different set of controls. In the example, -the Close and Help buttons remain constant. These two buttons are children of the main dialog box, -whereas the other controls are children of panels which are shown and hidden according to -which tab is active. - -A tabbed dialog may have several layers (rows) of tabs, each being -offset vertically and horizontally from the previous. Tabs work in -columns, in that when a tab is pressed, it swaps place with the tab on -the first row of the same column, in order to give the effect of -displaying that tab. All tabs must be of the same width. -This is a constraint of the implementation, but it also -means that the user will find it easier to find tabs since there are -distinct tab columns. On some tabbed dialog implementations, tabs jump around -seemingly randomly because tabs have different widths. -In this implementation, a tab can always be found on the same column. - -Tabs are always drawn along the top of the view area; the implementation does -not allow for vertical tabs or any other configuration. - -\wxheading{Using tabs} - -The tab classes provide facilities for switching between contexts by -means of `tabs', which look like file divider tabs. - -You must create both a {\it view} to handle the tabs, and a {\it window} to display the tabs -and related information. The wxTabbedDialog and wxTabbedPanel classes are provided for -convenience, but you could equally well construct your own window class and derived -tab view. - -If you wish to display a tabbed dialog - the most common use - you should follow these steps. - -\begin{enumerate}\itemsep=0pt -\item Create a new wxTabbedDialog class, and any buttons you wish always to be displayed -(regardless of which tab is active). -\item Create a new wxPanelTabView, passing the dialog as the first argument. -\item Set the view rectangle with \helpref{wxTabView::SetViewRect}{wxtabviewsetviewrect}, -to specify the area in which child panels will be -shown. The tabs will sit on top of this view rectangle. -\item Call \helpref{wxTabView::CalculateTabWidth}{wxtabviewcalculatetabwidth} to calculate -the width of the tabs based on the view area. This is optional if, for example, you have one row -of tabs which does not extend the full width of the view area. -\item Call \helpref{wxTabView::AddTab}{wxtabviewaddtab} for each of the tabs you wish to create, passing -a unique identifier and a tab label. -\item Construct a number of windows, one for each tab, and call \helpref{wxPanelTabView::AddTabWindow}{wxpaneltabviewaddtabwindow} for -each of these, passing a tab identifier and the window. -\item Set the tab selection. -\item Show the dialog. -\end{enumerate} - -Under Motif, you may also need to size the dialog just before setting the tab selection, for unknown reasons. - -Some constraints you need to be aware of: - -\begin{itemize}\itemsep=0pt -\item All tabs must be of the same width. -\item Omit the wxTAB\_STYLE\_COLOUR\_INTERIOR flag to ensure that the dialog background -and tab backgrounds match. -\end{itemize} - -\subsection{Example} - -The following fragment is taken from the file test.cpp. - -{\small -\begin{verbatim} -void MyDialog::Init(void) -{ - int dialogWidth = 365; - int dialogHeight = 390; - - wxButton *okButton = new wxButton(this, wxID_OK, "Close", wxPoint(100, 330), wxSize(80, 25)); - wxButton *cancelButton = new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(185, 330), wxSize(80, 25)); - wxButton *HelpButton = new wxButton(this, wxID_HELP, "Help", wxPoint(270, 330), wxSize(80, 25)); - okButton->SetDefault(); - - // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match - // with the panel background, and save a bit of time. - wxPanelTabView *view = new wxPanelTabView(this, wxTAB_STYLE_DRAW_BOX); - - wxRectangle rect; - rect.x = 5; - rect.y = 70; - // Could calculate the view width from the tab width and spacing, - // as below, but let's assume we have a fixed view width. -// rect.width = view->GetTabWidth()*4 + 3*view->GetHorizontalTabSpacing(); - rect.width = 326; - rect.height = 250; - - view->SetViewRect(rect); - - // Calculate the tab width for 4 tabs, based on a view width of 326 and - // the current horizontal spacing. Adjust the view width to exactly fit - // the tabs. - view->CalculateTabWidth(4, TRUE); - - if (!view->AddTab(TEST_TAB_CAT, wxString("Cat"))) - return; - - if (!view->AddTab(TEST_TAB_DOG, wxString("Dog"))) - return; - if (!view->AddTab(TEST_TAB_GUINEAPIG, wxString("Guinea Pig"))) - return; - if (!view->AddTab(TEST_TAB_GOAT, wxString("Goat"))) - return; - if (!view->AddTab(TEST_TAB_ANTEATER, wxString("Ant-eater"))) - return; - if (!view->AddTab(TEST_TAB_SHEEP, wxString("Sheep"))) - return; - if (!view->AddTab(TEST_TAB_COW, wxString("Cow"))) - return; - if (!view->AddTab(TEST_TAB_HORSE, wxString("Horse"))) - return; - if (!view->AddTab(TEST_TAB_PIG, wxString("Pig"))) - return; - if (!view->AddTab(TEST_TAB_OSTRICH, wxString("Ostrich"))) - return; - if (!view->AddTab(TEST_TAB_AARDVARK, wxString("Aardvark"))) - return; - if (!view->AddTab(TEST_TAB_HUMMINGBIRD,wxString("Hummingbird"))) - return; - - // Add some panels - wxPanel *panel1 = new wxPanel(this, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220), wxTAB_TRAVERSAL); - (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10)); - (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150)); - - view->AddTabWindow(TEST_TAB_CAT, panel1); - - wxPanel *panel2 = new wxPanel(this, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220)); - - wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; - (void)new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals); - - (void)new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100)), - wxTE_MULTILINE; - - view->AddTabWindow(TEST_TAB_DOG, panel2); - - // Don't know why this is necessary under Motif... -#ifdef wx_motif - this->SetSize(dialogWidth, dialogHeight-20); -#endif - - view->SetTabSelection(TEST_TAB_CAT); - - this->Centre(wxBOTH); -} -\end{verbatim} -} - -\section{wxTabView overview}\label{wxtabviewoverview} - -Classes: \helpref{wxTabView}{wxtabview}, \helpref{wxPanelTabView}{wxpaneltabview} - -A wxTabView manages and draws a number of tabs. Because it is separate -from the tabbed window implementation, it can be reused in a number of contexts. -This library provides tabbed dialog and panel classes to use with the -wxPanelTabView class, but an application could derive other kinds of -view from wxTabView. - -For example, a help application might draw a representation of a book on -a window, with a row of tabs along the top. The new tab view class might -be called wxCanvasTabView, for example, with the wxBookCanvas posting -the OnEvent function to the wxCanvasTabView before processing further, -application-specific event processing. - -A window class designed to work with a view class must call the view's -OnEvent and Draw functions at appropriate times. - diff --git a/docs/latex/wx/tthreads.tex b/docs/latex/wx/tthreads.tex deleted file mode 100644 index 531a04375b..0000000000 --- a/docs/latex/wx/tthreads.tex +++ /dev/null @@ -1,43 +0,0 @@ -\section{Multithreading overview}\label{wxthreadoverview} - -Classes: \helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex}, -\helpref{wxCriticalSection}{wxcriticalsection}, -\helpref{wxCondition}{wxcondition} - -wxWindows provides a complete set of classes encapsulating objects necessary in -multithreaded (MT) programs: the \helpref{thread}{wxthread} class itself and different -synchronization objects: \helpref{mutexes}{wxmutex} and -\helpref{critical sections}{wxcriticalsection} with -\helpref{conditions}{wxcondition}. - -These classes will hopefully make writing MT programs easier and they also -provide some extra error checking (compared to the native (be it Win32 or Posix) -thread API), however it is still an untrivial undertaking especially for large -projects. Before starting an MT application (or starting to add MT features to -an existing one) it is worth asking oneself if there is no easier and safer way -to implement the same functionality. Of course, in some situations threads -really make sense (classical example is a server application which launches a -new thread for each new client), but in others it might be a very poor choice -(example: launching a separate thread when doing a long computation to show a -progress dialog). Other implementation choices are available: for the progress -dialog example it is far better to do the calculations in the -\helpref{idle handler}{wxidleevent} or call \helpref{wxYield()}{wxyield} -periodically to update the screen. - -If you do decide to use threads in your application, it is strongly recommended -that no more than one thread calls GUI functions. The thread sample shows that -it {\it is} possible for many different threads to call GUI functions at once -(all the threads created in the sample access GUI), but it is a very poor design -choice for anything except an example. The design which uses one GUI thread and -several worker threads which communicate with the main one using events is much -more robust and will undoubtedly save you countless problems (example: under -Win32 a thread can only access GDI objects such as pens, brushes, \&c created by -itself and not by the other threads). - -Final note: in the current release of wxWindows, there are no specific -facilities for communicating between the threads. However, the usual -\helpref{ProcessEvent()}{wxevthandlerprocessevent} function may be used for -thread communication too - but you should provide your own synchronisation -mechanism if you use it (e.g. just use a critical section before sending a -message) because there is no built-in synchronisation. - diff --git a/docs/latex/wx/ttips.tex b/docs/latex/wx/ttips.tex deleted file mode 100644 index bfee67383d..0000000000 --- a/docs/latex/wx/ttips.tex +++ /dev/null @@ -1,43 +0,0 @@ -\section{Startup tips overview}\label{tipsoverview} - -Many "modern" Windows programs have a feature (some would say annoyance) of -presenting the user tips at program startup. While this is probably useless to -the advanced users of the program, the experience shows that the tips may be -quite helpful for the novices and so more and more programs now do this. - -For a wxWindows programmer, implementing this feature is extremely easy. To -show a tip, it's enough to just call \helpref{wxShowTip}{wxshowtip} function -like this: - -\begin{verbatim} - if ( ...show tips at startup?... ) - { - wxTipProvider *tipProvider = wxCreateFileTipProvider("tips.txt", 0); - wxShowTip(windowParent, tipProvider); - delete tipProvider; - } -\end{verbatim} - -Of course, you need to get the text of the tips from somewhere - in the example -above, the text is supposed to be in the file tips.txt from where it's read by -the {\it tip provider}. The tip provider is just an object of a class deriving -from \helpref{wxTipProvider}{wxtipprovider}. It has to implement one pure -virtual function of the base class: \helpref{GetTip}{wxtipprovidergettip}. -In the case of the tip provider created by -\helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}, the tips are just -the lines of the text file. - -If you want to implement your own tip provider (for example, if you wish to -hardcode the tips inside your program), you just have to derive another class -from wxTipProvider and pass a pointer to the object of this class to wxShowTip -- then you don't need wxCreateFileTipProvider at all. - -Finally, you will probably want to save somewhere the index of the tip last -shown - so that the program doesn't always show the same tip on startup. As you -also need to remember whether to show tips or not (you shouldn't do it if the -user unchecked "Show tips on startup" checkbox in the dialog), you will -probably want to store both the index of the -last shown tip (as returned by -\helpref{wxTipProvider::GetCurrentTip}{wxtipprovidergetcurrenttip} and the flag -telling whether to show the tips at startup at all. - diff --git a/docs/latex/wx/ttoolbar.tex b/docs/latex/wx/ttoolbar.tex deleted file mode 100644 index 258e4c2416..0000000000 --- a/docs/latex/wx/ttoolbar.tex +++ /dev/null @@ -1,287 +0,0 @@ -\section{Toolbar overview}\label{wxtoolbaroverview} - -Classes: \helpref{wxToolBar}{wxtoolbar} - -The toolbar family of classes allows an application to use toolbars -in a variety of configurations and styles. - -The toolbar is a popular user interface component and contains a set of bitmap -buttons or toggles. A toolbar gives faster access to an application's facilities than -menus, which have to be popped up and selected rather laboriously. - -Instead of supplying one toolbar class with a number -of different implementations depending on platform, wxWindows separates -out the classes. This is because there are a number of different toolbar -styles that you may wish to use simultaneously, and also, future -toolbar implementations will emerge which -cannot all be shoe-horned into the one class. - -For each platform, the symbol {\bf wxToolBar} is defined to be one of the -specific toolbar classes. - -The following is a summary of the toolbar classes and their differences. - -\begin{itemize}\itemsep=0pt -\item {\bf wxToolBarBase.} This is a base class with pure virtual functions, -and should not be used directly. -\item {\bf wxToolBarSimple.} A simple toolbar class written entirely with generic wxWindows -functionality. A simple 3D effect for buttons is possible, but it is not consistent -with the Windows look and feel. This toolbar can scroll, and you can have arbitrary -numbers of rows and columns. -\item {\bf wxToolBarMSW.} This class implements an old-style Windows toolbar, only on -Windows. There are small, three-dimensional buttons, which do not (currently) reflect -the current Windows colour settings: the buttons are grey. This is the default wxToolBar -on 16-bit windows. -\item {\bf wxToolBar95.} Uses the native Windows 95 toolbar class. It dynamically adjusts its -background and button colours according to user colour settings. -CreateTools must be called after the tools have been added. -No absolute positioning is supported but you can specify the number -of rows, and add tool separators with {\bf AddSeparator}. -Tooltips are supported. {\bf OnRightClick} is not supported. This is the default wxToolBar -on Windows 95, Windows NT 4 and above. With the style wxTB\_FLAT, the flat toolbar -look is used, with a border that is highlit when the cursor moves over the buttons. -\end{itemize} - -A toolbar might appear as a single row of images under -the menubar, or it might be in a separate frame layout in several rows -and columns. The class handles the layout of the images, unless explicit -positioning is requested. - -A tool is a bitmap which can either be a button (there is no `state', -it just generates an event when clicked) or it can be a toggle. If a -toggle, a second bitmap can be provided to depict the `on' state; if -the second bitmap is omitted, either the inverse of the first bitmap -will be used (for monochrome displays) or a thick border is drawn -around the bitmap (for colour displays where inverting will not have -the desired result). - -The Windows-specific toolbar classes expect 16-colour bitmaps that are 16 pixels wide and 15 pixels -high. If you want to use a different size, call {\bf SetToolBitmapSize}\rtfsp -as the demo shows, before adding tools to the button bar. Don't supply more than -one bitmap for each tool, because the toolbar generates all three images (normal, -depressed and checked) from the single bitmap you give it. - -\subsection{Using the toolbar library} - -Include {\tt "wx/toolbar.h"}, or if using a class directly, one of: - -\begin{itemize}\itemsep=0pt -\item {\tt "wx/msw/tbarmsw.h} for wxToolBarMSW -\item {\tt "wx/msw/tbar95.h} for wxToolBar95 -\item {\tt "wx/tbarsmpl.h} for wxToolBarSimple -\end{itemize} - -Example of toolbar use are given in the sample program ``toolbar''. The -source is given below. In fact it's out of date because recommended -practise is to use event handlers (using EVT\_MENU or EVT\_TOOL) instead of -overriding OnLeftClick. - -{\small -\begin{verbatim} -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxToolBar sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// 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 "wx/toolbar.h" -#include - -#include "test.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#include "bitmaps/new.xpm" -#include "bitmaps/open.xpm" -#include "bitmaps/save.xpm" -#include "bitmaps/copy.xpm" -#include "bitmaps/cut.xpm" -#include "bitmaps/print.xpm" -#include "bitmaps/preview.xpm" -#include "bitmaps/help.xpm" -#endif - -IMPLEMENT_APP(MyApp) - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit(void) -{ - // Create the main frame window - MyFrame* frame = new MyFrame((wxFrame *) NULL, -1, (const wxString) "wxToolBar Sample", - wxPoint(100, 100), wxSize(450, 300)); - - // Give it a status line - frame->CreateStatusBar(); - - // Give it an icon - frame->SetIcon(wxICON(mondrian)); - - // Make a menubar - wxMenu *fileMenu = new wxMenu; - fileMenu->Append(wxID_EXIT, "E&xit", "Quit toolbar sample" ); - - wxMenu *helpMenu = new wxMenu; - helpMenu->Append(wxID_HELP, "&About", "About toolbar sample"); - - wxMenuBar* menuBar = new wxMenuBar; - - menuBar->Append(fileMenu, "&File"); - menuBar->Append(helpMenu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menuBar); - - // Create the toolbar - frame->CreateToolBar(wxNO_BORDER|wxHORIZONTAL|wxTB_FLAT, ID_TOOLBAR); - - frame->GetToolBar()->SetMargins( 2, 2 ); - - InitToolbar(frame->GetToolBar()); - - // Force a resize. This should probably be replaced by a call to a wxFrame - // function that lays out default decorations and the remaining content window. - wxSizeEvent event(wxSize(-1, -1), frame->GetId()); - frame->OnSize(event); - frame->Show(TRUE); - - frame->SetStatusText("Hello, wxWindows"); - - SetTopWindow(frame); - - return TRUE; -} - -bool MyApp::InitToolbar(wxToolBar* toolBar) -{ - // Set up toolbar - wxBitmap* toolBarBitmaps[8]; - -#ifdef __WXMSW__ - toolBarBitmaps[0] = new wxBitmap("icon1"); - toolBarBitmaps[1] = new wxBitmap("icon2"); - toolBarBitmaps[2] = new wxBitmap("icon3"); - toolBarBitmaps[3] = new wxBitmap("icon4"); - toolBarBitmaps[4] = new wxBitmap("icon5"); - toolBarBitmaps[5] = new wxBitmap("icon6"); - toolBarBitmaps[6] = new wxBitmap("icon7"); - toolBarBitmaps[7] = new wxBitmap("icon8"); -#else - toolBarBitmaps[0] = new wxBitmap( new_xpm ); - toolBarBitmaps[1] = new wxBitmap( open_xpm ); - toolBarBitmaps[2] = new wxBitmap( save_xpm ); - toolBarBitmaps[3] = new wxBitmap( copy_xpm ); - toolBarBitmaps[4] = new wxBitmap( cut_xpm ); - toolBarBitmaps[5] = new wxBitmap( preview_xpm ); - toolBarBitmaps[6] = new wxBitmap( print_xpm ); - toolBarBitmaps[7] = new wxBitmap( help_xpm ); -#endif - -#ifdef __WXMSW__ - int width = 24; -#else - int width = 16; -#endif - int currentX = 5; - - toolBar->AddTool(wxID_NEW, *(toolBarBitmaps[0]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "New file"); - currentX += width + 5; - toolBar->AddTool(wxID_OPEN, *(toolBarBitmaps[1]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Open file"); - currentX += width + 5; - toolBar->AddTool(wxID_SAVE, *(toolBarBitmaps[2]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Save file"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(wxID_COPY, *(toolBarBitmaps[3]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Copy"); - currentX += width + 5; - toolBar->AddTool(wxID_CUT, *(toolBarBitmaps[4]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Cut"); - currentX += width + 5; - toolBar->AddTool(wxID_PASTE, *(toolBarBitmaps[5]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Paste"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(wxID_PRINT, *(toolBarBitmaps[6]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Print"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(wxID_HELP, *(toolBarBitmaps[7]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Help"); - - toolBar->Realize(); - - // Can delete the bitmaps since they're reference counted - int i; - for (i = 0; i < 8; i++) - delete toolBarBitmaps[i]; - - return TRUE; -} - -// wxID_HELP will be processed for the 'About' menu and the toolbar help button. - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(wxID_EXIT, MyFrame::OnQuit) - EVT_MENU(wxID_HELP, MyFrame::OnAbout) - EVT_CLOSE(MyFrame::OnCloseWindow) - EVT_TOOL_RANGE(wxID_OPEN, wxID_PASTE, MyFrame::OnToolLeftClick) - EVT_TOOL_ENTER(wxID_OPEN, MyFrame::OnToolEnter) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wxPoint& pos, - const wxSize& size, long style): - wxFrame(parent, id, title, pos, size, style) -{ - m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE); -} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - (void)wxMessageBox("wxWindows toolbar sample", "About wxToolBar"); -} - -// Define the behaviour for the frame closing -// - must delete all frames except for the main one. -void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - Destroy(); -} - -void MyFrame::OnToolLeftClick(wxCommandEvent& event) -{ - wxString str; - str.Printf("Clicked on tool %d", event.GetId()); - SetStatusText(str); -} - -void MyFrame::OnToolEnter(wxCommandEvent& event) -{ - if (event.GetSelection() > -1) - { - wxString str; - str.Printf("This is tool number %d", event.GetSelection()); - SetStatusText(str); - } - else - SetStatusText(""); -} -\end{verbatim} -} - diff --git a/docs/latex/wx/ttreectl.tex b/docs/latex/wx/ttreectl.tex deleted file mode 100644 index 7c30c800b0..0000000000 --- a/docs/latex/wx/ttreectl.tex +++ /dev/null @@ -1,80 +0,0 @@ -\section{wxTreeCtrl overview}\label{wxtreectrloverview} - -Classes: \helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxImageList}{wximagelist} - -The tree control displays its items in a tree like structure. Each item has its -own (optional) icon and a label. An item may be either collapsed (meaning that -its children are not visible) or expanded (meaning that its children are -shown). Each item in the tree is identified by its {\it itemId} which is of -opaque data type {\it wxTreeItemId}. - -The items text and image may be retrieved and changed with -\helpref{GetItemText}{wxtreectrlgetitemtext}/\helpref{SetItemText}{wxtreectrlsetitemtext} -and -\helpref{GetItemImage}{wxtreectrlgetitemimage}/\helpref{SetItemImage}{wxtreectrlsetitemimage}. -In fact, an item may even have two images associated with it: the normal one -and another one for selected state which is set/retrieved with -\helpref{SetItemSelectedImage}{wxtreectrlsetitemselectedimage}/\helpref{GetItemSelectedImage}{wxtreectrlgetitemselectedimage} -functions, but this functionality might be unavailable on some platforms. - -Tree items have several attributes: an item may be selected or not, visible or -not, bold or not. It may also be expanded or collapsed. All these attributes -may be retrieved with the corresponding functions: -\helpref{IsSelected}{wxtreectrlisselected}, -\helpref{IsVisible}{wxtreectrlisvisible}, \helpref{IsBold}{wxtreectrlisbold} -and \helpref{IsExpanded}{wxtreectrlisexpanded}. Only one item at a time may be -selected, selecting anopther one (with -\helpref{SelectItem}{wxtreectrlselectitem}) automatically unselects the -previously selected one. - -In addition to its icon and label, a user-specific data structure may be associated -with all tree items. If you wish to do it, you should derive a class from {\it -wxTreeItemData} which is a very simple class having only one function {\it -GetId()} which returns the id of the item this data is associated with. This -data will be freed by the control itself when the associated item is deleted -(all items are deleted when the control is destroyed), so you shouldn't delete -it yourself (if you do it, you should call -\helpref{SetItemData(NULL)}{wxtreectrlsetitemdata} to prevent the tree from -deleting the pointer second time). The associated data may be retrieved with -\helpref{GetItemData()}{wxtreectrlgetitemdata} function. - -Working with trees is relatively straightforward if all the items are added to -the tree at the moment of its creation. However, for large trees it may be -very inefficient. To improve the performance you may want to delay adding the -items to the tree until the branch containing the items is expanded: so, in the -beginning, only the root item is created (with -\helpref{AddRoot}{wxtreectrladdroot}). Other items are added when -EVT\_TREE\_ITEM\_EXPANDING event is received: then all items lying immediately -under the item being expanded should be added, but, of course, only when this -event is received for the first time for this item - otherwise, the items would -be added twice if the user expands/collapses/reexapnds the branch. - -The tree control provides functions for enumerating its items. There are 3 -groups of enumeration functions: for the children of a given item, for the -sibling of the given item and for the visible items (those which are currently -shown to the user: an item may be invisible either because its branch is -collapsed or because it is scrolled out of view). Child enumeration functions -require the caller to give them a {\it cookie} parameter: it is a number which -is opaque to the caller but is used by the tree control itself to allow -multiple enumerations to run simultaneously (this is explicitly allowed). The -only thing to remember is that the {\it cookie} passed to -\helpref{GetFirstChild}{wxtreectrlgetfirstchild} and to -\helpref{GetNextChild}{wxtreectrlgetnextchild} should be the same variable (and -that nothing should be done with it by the user code). - -Among other features of the tree control are: item sorting with -\helpref{SortChildren}{wxtreectrlsortchildren} which uses the user-defined comparison -function \helpref{OnCompareItems}{wxtreectrloncompareitems} (by default the -comparison is the alphabetic comparison of tree labels), hit testing -(determining to which portion of the control the given point belongs, useful -for implementing drag-and-drop in the tree) with -\helpref{HitTest}{wxtreectrlhittest} and editing of the tree item labels in -place (see \helpref{EditLabel}{wxtreectrleditlabel}). - -Finally, the tree control has a keyboard interface: the cursor navigation (arrow) keys -may be used to change the current selection. and are used to go to -the first/last sibling of the current item. '+', '-' and '*' expand, collapse -and toggle the current branch. Note, however, that and keys do -nothing by default, but it is usual to associate them with deleting item from -a tree and inserting a new one into it. - diff --git a/docs/latex/wx/tusage.tex b/docs/latex/wx/tusage.tex deleted file mode 100644 index ba9d767ada..0000000000 --- a/docs/latex/wx/tusage.tex +++ /dev/null @@ -1,22 +0,0 @@ -\section{Notes on using the reference}\label{referencenotes} - -In the descriptions of the wxWindows classes and their member -functions, note that descriptions of inherited member functions are not -duplicated in derived classes unless their behaviour is different. So in -using a class such as wxScrolledWindow, be aware that wxWindow functions may be -relevant. - -Note also that arguments with default values may be omitted from a -function call, for brevity. Size and position arguments may usually be -given a value of -1 (the default), in which case wxWindows will choose a -suitable value. - -Most strings are returned as wxString objects. However, for remaining -char * return values, the strings are allocated and -deallocated by wxWindows. Therefore, return values should always be -copied for long-term use, especially since the same buffer is often -used by wxWindows. - -The member functions are given in alphabetical order except for -constructors and destructors which appear first. - diff --git a/docs/latex/wx/tvalidat.tex b/docs/latex/wx/tvalidat.tex deleted file mode 100644 index 9d910371ee..0000000000 --- a/docs/latex/wx/tvalidat.tex +++ /dev/null @@ -1,122 +0,0 @@ -\section{Validator overview}\label{validatoroverview} - -Classes: \helpref{wxValidator}{wxvalidator}, \helpref{wxTextValidator}{wxtextvalidator}, -\helpref{wxGenericValidator}{wxgenericvalidator} - -The aim of the validator concept is to make dialogs very much easier to write. -A validator is an object that can be plugged into a control (such as a wxTextCtrl), and -mediates between C++ data and the control, transferring the data in either direction -and validating it. It also is able to intercept events generated -by the control, providing filtering behaviour without the need to derive a new control class. - -You can use a stock validator, such as \helpref{wxTextValidator}{wxtextvalidator} (which does text -control data transfer, validation and filtering) and -\helpref{wxGenericValidator}{wxgenericvalidator} (which does data transfer for a range of controls); -or you can write your own. - -\wxheading{Example} - -Here is an example of wxTextValidator usage. - -\begin{verbatim} - wxTextCtrl *txt1 = new wxTextCtrl(this, VALIDATE_TEXT, "", - wxPoint(10, 10), wxSize(100, 80), 0, - wxTextValidator(wxFILTER_ALPHA, &g_data.m_string)); -\end{verbatim} - -In this example, the text validator object provides the following functionality: - -\begin{enumerate}\itemsep=0pt -\item It transfers the value of g\_data.m\_string (a wxString variable) to the wxTextCtrl when -the dialog is initialised. -\item It transfers the wxTextCtrl data back to this variable when the dialog is dismissed. -\item It filters input characters so that only alphabetic characters are allowed. -\end{enumerate} - -The validation and filtering of input is accomplished in two ways. When a character is input, -wxTextValidator checks the character against the allowed filter flag (wxFILTER\_ALPHA in this case). If -the character is inappropriate, it is vetoed (does not appear) and a warning beep sounds. -The second type of validation is performed when the dialog is about to be dismissed, so if -the default string contained invalid characters already, a dialog box is shown giving the -error, and the dialog is not dismissed. - -\wxheading{Anatomy of a validator} - -A programmer creating a new validator class should provide the following functionality. - -A validator constructor is responsible for allowing the programmer to specify the kind -of validation required, and perhaps a pointer to a C++ variable that is used for storing the -data for the control. If such a variable address is not supplied by the user, then -the validator should store the data internally. - -The \helpref{wxValidator::Validate}{wxvalidatorvalidate} member function should return -TRUE if the data in the control (not the C++ variable) is valid. It should also show -an appropriate message if data was not valid. - -The \helpref{wxValidator::TransferToWindow}{wxvalidatortransfertowindow} member function should -transfer the data from the validator or associated C++ variable to the control. - -The \helpref{wxValidator::TransferFromWindow}{wxvalidatortransferfromwindow} member function should -transfer the data from the control to the validator or associated C++ variable. - -There should be a copy constructor, and a \helpref{wxValidator::Clone}{wxvalidatorclone} function -which returns a copy of the validator object. This is important because validators -are passed by reference to window constructors, and must therefore be cloned internally. - -You can optionally define event handlers for the validator, to implement filtering. These handlers -will capture events before the control itself does. - -For an example implementation, see the valtext.h and valtext.cpp files in the wxWindows library. - -\wxheading{How validators interact with dialogs} - -For validators to work correctly, validator functions must be called at the right times during -dialog initialisation and dismissal. - -When a \helpref{wxDialog::Show}{wxdialogshow} is called (for a modeless dialog) -or \helpref{wxDialog::ShowModal}{wxdialogshowmodal} is called (for a modal dialog), -the function \helpref{wxWindow::InitDialog}{wxwindowinitdialog} is automatically called. -This in turn sends an initialisation event to the dialog. The default handler for -the wxEVT\_INIT\_DIALOG event is defined in the wxWindow class to simply call -the function \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}. This -function finds all the validators in the window's children and calls the TransferToWindow -function for each. Thus, data is transferred from C++ variables to the dialog -just as the dialog is being shown. - -\normalbox{If you are using a window or panel instead of a dialog, you will need to -call \helpref{wxWindow::InitDialog}{wxwindowinitdialog} explicitly before showing the -window.} - -When the user clicks on a button, for example the OK button, the application should -first call \helpref{wxWindow::Validate}{wxwindowvalidate}, which returns FALSE if -any of the child window validators failed to validate the window data. The button handler -should return immediately if validation failed. Secondly, the application should -call \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow} and -return if this failed. It is then safe to end the dialog by calling EndModal (if modal) -or Show (if modeless). - -In fact, wxDialog contains a default command event handler for the wxID\_OK button. It goes like -this: - -\begin{verbatim} -void wxDialog::OnOK(wxCommandEvent& event) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} -\end{verbatim} - -So if using validators and a normal OK button, you may not even need to write any -code for handling dialog dismissal. - -If you load your dialog from a resource file, you'll need to iterate through the controls -setting validators, since validators can't be specified in a dialog resource. - diff --git a/docs/latex/wx/txtdatob.tex b/docs/latex/wx/txtdatob.tex deleted file mode 100644 index 63cfc3cff3..0000000000 --- a/docs/latex/wx/txtdatob.tex +++ /dev/null @@ -1,83 +0,0 @@ -\section{\class{wxTextDataObject}}\label{wxtextdataobject} - -wxTextDataObject is a specialization of wxDataObject for text data. It can be -used without change to paste data into the \helpref{wxClipboard}{wxclipboard} -or a \helpref{wxDropSource}{wxdropsource}. A user may wish to derive a new class -from this class for providing text on-demand in order to minimize memory consumption -when offering data in several formats, such as plain text and RTF. - -In order to offer text data on-demand \helpref{GetSize}{wxtextdataobjectgetsize} -and \helpref{WriteData}{wxtextdataobjectwritedata} will have to be overridden. - -\wxheading{Derived from} - -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextDataObject::wxTextDataObject}\label{wxtextdataobjectwxtextdataobject} - -\func{}{wxTextDataObject}{\void} - -Default constructor. Call \helpref{SetText}{wxtextdataobjectsettext} later -or override \helpref{WriteData}{wxtextdataobjectwritedata} and -\helpref{GetSize}{wxtextdataobjectgetsize} for providing data on-demand. - -\func{}{wxTextDataObject}{\param{const wxString\& }{strText}} - -Constructor, passing text. - -\membersection{wxTextDataObject::GetSize}\label{wxtextdataobjectgetsize} - -\constfunc{virtual size\_t}{GetSize}{\void} - -Returns the data size. By default, returns the size of the text data -set in the constructor or using \helpref{SetText}{wxtextdataobjectsettext}. -This can be overridden to provide text size data on-demand. It is recommended -to return the text length plus 1 for a trailing zero, but this is not -strictly required. - -\membersection{wxTextDataObject::GetText}\label{wxtextdataobjectgettext} - -\constfunc{virtual wxString}{GetText}{\void} - -Returns the text associated with the data object. You may wish to override -this method when offering data on-demand, but this is not required by -wxWindows' internals. Use this method to get data in text form from -the \helpref{wxClipboard}{wxclipboard}. - -\membersection{wxTextDataObject::SetText}\label{wxtextdataobjectsettext} - -\func{virtual void}{SetText}{\param{const wxString\& }{strText}} - -Sets the text associated with the data object. This method is called -internally when retrieving data from the \helpref{wxClipboard}{wxclipboard} -and may be used to paste data to the clipboard directly (instead of -on-demand). - -\membersection{wxTextDataObject::WriteData}\label{wxtextdataobjectwritedata} - -\constfunc{virtual void}{WriteData}{\param{void}{*dest} } - -Write the data owned by this class to {\it dest}. By default, this -calls \helpref{WriteString}{wxtextdataobjectwritestring} with the string -set in the constructor or using \helpref{SetText}{wxtextdataobjectsettext}. -This can be overridden to provide text data on-demand; in this case -\helpref{WriteString}{wxtextdataobjectwritestring} must be called from -within the overriding WriteData() method. - -\membersection{wxTextDataObject::WriteString}\label{wxtextdataobjectwritestring} - -\constfunc{void}{WriteString}{\param{const wxString\& }{str}\param{void}{*dest} } - -Writes the the string {\it str} to {\it dest}. This method must be called -from \helpref{WriteData}{wxtextdataobjectwritedata}. - diff --git a/docs/latex/wx/txtdrptg.tex b/docs/latex/wx/txtdrptg.tex deleted file mode 100644 index 85549e31c1..0000000000 --- a/docs/latex/wx/txtdrptg.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{\class{wxTextDropTarget}}\label{wxtextdroptarget} - -A predefined drop target for dealing with text data. - -\wxheading{Derived from} - -\helpref{wxDropTarget}{wxdroptarget} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, -\helpref{wxDropTarget}{wxdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextDropTarget::wxTextDropTarget}\label{wxtextdroptargetwxtextdroptarget} - -\func{}{wxTextDropTarget}{\void} - -Constructor. - -\membersection{wxTextDropTarget::GetFormatCount}\label{wxtextdroptargetgetformatcount} - -\constfunc{virtual size\_t}{GetFormatCount}{\void} - -See \helpref{wxDropTarget::GetFormatCount}{wxdroptargetgetformatcount}. This function is implemented -appropriately for text. - -\membersection{wxTextDropTarget::GetFormat}\label{wxtextdroptargetgetformat} - -\constfunc{virtual wxDataFormat}{GetFormat}{\param{size\_t }{n}} - -See \helpref{wxDropTarget::GetFormat}{wxdroptargetgetformat}. This function is implemented -appropriately for text. - -\membersection{wxTextDropTarget::OnDrop}\label{wxtextdroptargetondrop} - -\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void }{*data}, \param{size\_t }{size}} - -See \helpref{wxDropTarget::OnDrop}{wxdroptargetondrop}. This function is implemented -appropriately for text, and calls \helpref{wxTextDropTarget::OnDropText}{wxtextdroptargetondroptext}. - -\membersection{wxTextDropTarget::OnDropText}\label{wxtextdroptargetondroptext} - -\func{virtual bool}{OnDropText}{\param{long }{x}, \param{long }{y}, \param{const char }{*data}} - -Override this function to receive dropped text. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\docparam{data}{The data being dropped: a NULL-terminated string.} - -\wxheading{Return value} - -Return TRUE to accept the data, FALSE to veto the operation. - diff --git a/docs/latex/wx/txtstrm.tex b/docs/latex/wx/txtstrm.tex deleted file mode 100644 index b162cee031..0000000000 --- a/docs/latex/wx/txtstrm.tex +++ /dev/null @@ -1,156 +0,0 @@ -% ---------------------------------------------------------------------------- -% wxTextInputStream -% ---------------------------------------------------------------------------- -\section{\class{wxTextInputStream}}\label{wxtextinputstream} - -This class provides functions that read text datas using an input stream. -So, you can read \it{text} floats, integers. - -The wxTextInputStream correctly reads text files (or streams) in DOS, Macintosh -and Unix formats and reports a single newline char as a line ending. - -Operator >> is overloaded and you can use this class like a standard C++ iostream. -Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc -and on a typical 32-bit computer, none of these match to the "long" type (wxInt32 -is defined as int on 32-bit architectures) so that you cannot use long. To avoid -problems (here and elsewhere), make use of the wxInt32, wxUint32, etc types. - -For example: -\begin{verbatim} - wxFileInputStream input( "mytext.txt" ); - wxTextInputStream text( input ); - wxUint8 i1; - float f2; - wxString line; - - text >> i1; // read a 8 bit integer. - text >> i1 >> f2; // read a 8 bit integer followed by float. - text >> line; // read a text line -\end{verbatim} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextInputStream::wxTextInputStream}\label{wxtextinputstreamconstr} - -\func{}{wxTextInputStream}{\param{wxInputStream\&}{ stream}} - -Constructs a text stream object from an input stream. Only read methods will -be available. - -\wxheading{Parameters} - -\docparam{stream}{The input stream.} - -\membersection{wxTextInputStream::\destruct{wxTextInputStream}} - -\func{}{\destruct{wxTextInputStream}}{\void} - -Destroys the wxTextInputStream object. - -\membersection{wxTextInputStream::Read8} - -\func{wxUint8}{Read8}{\void} - -Reads a single byte from the stream. - -\membersection{wxTextInputStream::Read16} - -\func{wxUint16}{Read16}{\void} - -Reads a 16 bit integer from the stream. - -\membersection{wxTextInputStream::Read32} - -\func{wxUint16}{Read32}{\void} - -Reads a 32 bit integer from the stream. - -\membersection{wxTextInputStream::ReadDouble} - -\func{double}{ReadDouble}{\void} - -Reads a double (IEEE encoded) from the stream. - -\membersection{wxTextInputStream::ReadString} - -\func{wxString}{wxTextInputStream::ReadString}{\void} - -Reads a line from the stream. A line is a string which ends with -$\backslash$n or $\backslash$r$\backslash$n or $\backslash$r. - -% ---------------------------------------------------------------------------- -% wxTextOutputStream -% ---------------------------------------------------------------------------- - -\section{\class{wxTextOutputStream}}\label{wxtextoutputstream} - -This class provides functions that write text datas using an output stream. -So, you can write \it{text} floats, integers. - -For example: -\begin{verbatim} - wxFileOutputStream output( "mytext.txt" ); - wxTextOutputStream text( output ); - - output << "This is a text line\n"; - output << 1234; - output << 1.23456; -\end{verbatim} - -The wxTextOutputStream writes text files (or streams) on DOS, Macintosh -and Unix in their native formats (concerning the line ending). - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextOutputStream::wxTextOutputStream}\label{wxtextoutputstreamconstr} - -\func{}{wxTextOutputStream}{\param{wxOutputStream\&}{ stream}} - -Constructs a text stream object from an output stream. Only write methods will -be available. - -\wxheading{Parameters} - -\docparam{stream}{The output stream.} - -\membersection{wxTextOutputStream::\destruct{wxTextOutputStream}} - -\func{}{\destruct{wxTextOutputStream}}{\void} - -Destroys the wxTextOutputStream object. - -\membersection{wxTextOutputStream::Write8} - -\func{void}{wxTextOutputStream::Write8}{{\param wxUint8 }{i8}} - -Writes the single byte {\it i8} to the stream. - -\membersection{wxTextOutputStream::Write16} - -\func{void}{wxTextOutputStream::Write16}{{\param wxUint16 }{i16}} - -Writes the 16 bit integer {\it i16} to the stream. - -\membersection{wxTextOutputStream::Write32} - -\func{void}{wxTextOutputStream::Write32}{{\param wxUint32 }{i32}} - -Writes the 32 bit integer {\it i32} to the stream. - -\membersection{wxTextOutputStream::WriteDouble} - -\func{void}{wxTextOutputStream::WriteDouble}{{\param double }{f}} - -Writes the double {\it f} to the stream using the IEEE format. - -\membersection{wxTextOutputStream::WriteString} - -\func{void}{wxTextOutputStream::WriteString}{{\param const wxString\& }{string}} - -Writes {\it string} as a line. Depending on the operating system, it adds -$\backslash$n or $\backslash$r$\backslash$n. - diff --git a/docs/latex/wx/up.gif b/docs/latex/wx/up.gif deleted file mode 100644 index f9e7031e64..0000000000 --- a/docs/latex/wx/up.gif +++ /dev/null @@ -1 +0,0 @@ -GIF87a \ No newline at end of file diff --git a/docs/latex/wx/upduievt.tex b/docs/latex/wx/upduievt.tex deleted file mode 100644 index e602979bd5..0000000000 --- a/docs/latex/wx/upduievt.tex +++ /dev/null @@ -1,149 +0,0 @@ -\section{\class{wxUpdateUIEvent}}\label{wxupdateuievent} - -This class is used for pseudo-events which are called by wxWindows -to give an application the chance to update various user interface elements. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process an update event, use these event handler macros to direct input to member -functions that take a wxUpdateUIEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_UPDATE\_UI(id, func)}}{Process a wxEVT\_UPDATE\_UI event.} -\end{twocollist}% - -\wxheading{Remarks} - -Without update UI events, an application has to work hard to check/uncheck, enable/disable, -and set the text for elements such as menu items and toolbar buttons. -The code for doing this has to be mixed up with the code that is invoked when -an action is invoked for a menu item or button. - -With update UI events, you define an event handler to look at the state of -the application and change UI elements accordingly. wxWindows will call your -member functions in idle time, so you don't have to worry where to call this code. -In addition to being a clearer and more declarative method, it also means you -don't have to worry whether you're updating a toolbar or menubar identifier. -The same handler can update a menu item and toolbar button, if the identifier is the same. - -Instead of directly manipulating the menu or button, you call functions in the event -object, such as \helpref{wxUpdateUIEvent::Check}{wxupdateuieventcheck}. wxWindows -will determine whether such a call has been made, and which UI element to update. - -These events will work for popup menus as well as menubars. Just before a menu is popped -up, \helpref{wxMenu::UpdateUI}{wxmenuupdateui} is called to process any UI events for -the window that owns the menu. - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxUpdateUIEvent::wxUpdateUIEvent} - -\func{}{wxUpdateUIEvent}{\param{wxWindowID }{commandId = 0}} - -Constructor. - -\membersection{wxUpdateUIEvent::m\_checked} - -\member{bool}{m\_checked} - -TRUE if the element should be checked, FALSE otherwise. - -\membersection{wxUpdateUIEvent::m\_enabled} - -\member{bool}{m\_checked} - -TRUE if the element should be enabled, FALSE otherwise. - -\membersection{wxUpdateUIEvent::m\_setChecked} - -\member{bool}{m\_setChecked} - -TRUE if the application has set the {\bf m\_checked} member. - -\membersection{wxUpdateUIEvent::m\_setEnabled} - -\member{bool}{m\_setEnabled} - -TRUE if the application has set the {\bf m\_enabled} member. - -\membersection{wxUpdateUIEvent::m\_setText} - -\member{bool}{m\_setText} - -TRUE if the application has set the {\bf m\_text} member. - -\membersection{wxUpdateUIEvent::m\_text} - -\member{wxString}{m\_text} - -Holds the text with which the the application wishes to -update the UI element. - -\membersection{wxUpdateUIEvent::Check}\label{wxupdateuieventcheck} - -\func{void}{Check}{\param{bool}{ check}} - -Check or uncheck the UI element. - -\membersection{wxUpdateUIEvent::Enable}\label{wxupdateuieventenable} - -\func{void}{Enable}{\param{bool}{ enable}} - -Enable or disable the UI element. - -\membersection{wxUpdateUIEvent::GetChecked}\label{wxupdateuieventgetchecked} - -\constfunc{bool}{GetChecked}{\void} - -Returns TRUE if the UI element should be checked. - -\membersection{wxUpdateUIEvent::GetEnabled}\label{wxupdateuieventgetenabled} - -\constfunc{bool}{GetEnabled}{\void} - -Returns TRUE if the UI element should be enabled. - -\membersection{wxUpdateUIEvent::GetSetChecked}\label{wxupdateuieventgetsetchecked} - -\constfunc{bool}{GetSetChecked}{\void} - -Returns TRUE if the application has called {\bf SetChecked}. For wxWindows internal use only. - -\membersection{wxUpdateUIEvent::GetSetEnabled}\label{wxupdateuieventgetsetenabled} - -\constfunc{bool}{GetSetEnabled}{\void} - -Returns TRUE if the application has called {\bf SetEnabled}. For wxWindows internal use only. - -\membersection{wxUpdateUIEvent::GetSetText}\label{wxupdateuieventgetsettext} - -\constfunc{bool}{GetSetText}{\void} - -Returns TRUE if the application has called {\bf SetText}. For wxWindows internal use only. - -\membersection{wxUpdateUIEvent::GetText}\label{wxupdateuieventgettext} - -\constfunc{wxString}{GetText}{\void} - -Returns the text that should be set for the UI element. - -\membersection{wxUpdateUIEvent::SetText}\label{wxupdateuieventsettext} - -\func{void}{SetText}{\param{const wxString\&}{ text}} - -Sets the text for this UI element. - diff --git a/docs/latex/wx/url.tex b/docs/latex/wx/url.tex deleted file mode 100644 index 664c004f99..0000000000 --- a/docs/latex/wx/url.tex +++ /dev/null @@ -1,155 +0,0 @@ -\section{\class{wxURL}}\label{wxurl} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxProtocol}{wxprotocol} - -\wxheading{Example} - -\begin{verbatim} - wxURL url("http://a.host/a.dir/a.file"); - wxInputStream *in_stream; - - in_stream = url.GetInputStream(); - // Then, you can use all IO calls of in_stream (See wxStream) -\end{verbatim} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxURL::wxURL}\label{wxurlconstr} - -\func{}{wxURL}{\param{const wxString\&}{ url}} - -Constructs an URL object from the string. - -\wxheading{Parameters} - -\docparam{url}{Url string to parse.} - -\membersection{wxURL::\destruct{wxURL}} - -\func{}{\destruct{wxURL}}{\void} - -Destroys the URL object. - -% -% GetProtocolName -% -\membersection{wxURL::GetProtocolName} - -\constfunc{wxString}{GetProtocolName}{\void} - -Returns the name of the protocol which will be used to get the URL. - -% -% GetProtocol -% -\membersection{wxURL::GetProtocol} - -\func{wxProtocol\&}{GetProtocol}{\void} - -Returns a reference to the protocol which will be used to get the URL. - -% -% GetPath -% -\membersection{wxURL::GetPath} - -\func{wxString}{GetPath}{\void} - -Returns the path of the file to fetch. This path was encoded in the URL. - -% -% GetError -% -\membersection{wxURL::GetError} - -\constfunc{wxURLError}{GetError}{\void} - -Returns the last error. This error refers to the URL parsing or to the protocol. -It can be one of these errors: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt% -\twocolitem{{\bf wxURL\_NOERR}}{No error.} -\twocolitem{{\bf wxURL\_SNTXERR}}{Syntax error in the URL string.} -\twocolitem{{\bf wxURL\_NOPROTO}}{Found no protocol which can get this URL.} -\twocolitem{{\bf wxURL\_NOHOST}}{An host name is required for this protocol.} -\twocolitem{{\bf wxURL\_NOPATH}}{A path is required for this protocol.} -\twocolitem{{\bf wxURL\_CONNERR}}{Connection error.} -\twocolitem{{\bf wxURL\_PROTOERR}}{An error occured during negotiation.} -\end{twocollist}% - -% -% GetInputStream -% -\membersection{wxURL::GetInputStream} - -\func{wxInputStream *}{GetInputStream}{\void} - -Creates a new input stream on the the specified URL. You can use all but seek -functionnality of wxStream. Seek isn't available on all stream. For example, -http or ftp streams doesn't deal with it. - -\wxheading{Return value} - -Returns the initialized stream. You will have to delete it yourself. - -\wxheading{See also} - -%\helpref{wxInputStream}{wxinputstream} -wxInputStream - -% -% SetDefaultProxy -% -\membersection{wxURL::SetDefaultProxy}\label{wxurlsetdefaultproxy} - -\func{static void}{SetDefaultProxy}{\param{const wxString\&}{ url\_proxy}} - -Sets the default proxy server to use to get the URL. The string specifies -the proxy like this: :. - -\wxheading{Parameters} - -\docparam{url\_proxy}{Specifies the proxy to use} - -\wxheading{See also} - -\helpref{wxURL::SetProxy}{wxurlsetproxy} - -% -% SetProxy -% -\membersection{wxURL::SetProxy}\label{wxurlsetproxy} - -\func{void}{SetProxy}{\param{const wxString\&}{ url\_proxy}} - -Sets the proxy to use for this URL. - -\wxheading{See also} - -\helpref{wxURL::SetDefaultProxy}{wxurlsetdefaultproxy} - -% -% SetProxy -% -\membersection{wxURL::ConvertToValidURI} - -\func{static wxString}{ConvertToValidURI}{\param{const wxString\&}{ uri}} - -It converts a non-standardized URI to a valid network URI. It encodes non -standard characters. - diff --git a/docs/latex/wx/valgen.tex b/docs/latex/wx/valgen.tex deleted file mode 100644 index 8b2f5818b8..0000000000 --- a/docs/latex/wx/valgen.tex +++ /dev/null @@ -1,85 +0,0 @@ -\section{\class{wxGenericValidator}}\label{wxgenericvalidator} - -wxGenericValidator performs data transfer (but not validation or filtering) for the following -basic controls: wxButton, wxCheckBox, wxListBox, wxStaticText, wxRadioButton, wxRadioBox, -wxChoice, wxComboBox, wxGauge, wxSlider, wxScrollBar, wxSpinButton, wxTextCtrl, wxCheckListBox. - -It checks the type of the window and uses an appropriate type for that window. For example, -wxButton and wxTextCtrl transfer data to and from a wxString variable; wxListBox uses a -wxArrayInt; wxCheckBox uses a bool. - -For more information, please see \helpref{Validator overview}{validatoroverview}. - -\wxheading{Derived from} - -\helpref{wxValidator}{wxvalidator}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator}, -\helpref{wxTextValidator}{wxTextvalidator} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGenericValidator::wxGenericValidator}\label{wxgenericvalidatorconstr} - -\func{}{wxGenericValidator}{\param{const wxGenericValidator\&}{ validator}} - -Copy constructor. - -\func{}{wxGenericValidator}{\param{bool*}{ valPtr}} - -Constructor taking a bool pointer. This will be used for wxCheckBox and wxRadioButton. - -\func{}{wxGenericValidator}{\param{wxString*}{ valPtr}} - -Constructor taking a wxString pointer. This will be used for wxButton, wxComboBox, wxStaticText, -wxTextCtrl. - -\func{}{wxGenericValidator}{\param{int*}{ valPtr}} - -Constructor taking an integer pointer. This will be used for wxGauge, wxScrollBar, wxRadioBox, wxSpinButton, -wxChoice. - -\func{}{wxGenericValidator}{\param{wxArrayInt*}{ valPtr}} - -Constructor taking a wxArrayInt pointer. This will be used for wxListBox, wxCheckListBox. - -\wxheading{Parameters} - -\docparam{validator}{Validator to copy.} - -\docparam{valPtr}{A pointer to a variable that contains the value. This variable -should have a lifetime equal to or longer than the validator lifetime (which is usually -determined by the lifetime of the window).} - -\membersection{wxGenericValidator::\destruct{wxGenericValidator}} - -\func{}{\destruct{wxGenericValidator}}{\void} - -Destructor. - -\membersection{wxGenericValidator::Clone}\label{wxgenericvalidatorclone} - -\constfunc{virtual wxValidator*}{Clone}{\void} - -Clones the generic validator using the copy constructor. - -\membersection{wxGenericValidator::TransferFromWindow}\label{wxgenericvalidatortransferfromwindow} - -\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}} - -Transfers the value to the window. - -\membersection{wxGenericValidator::TransferToWindow}\label{wxgenericvalidatortransfertowindow} - -\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}} - -Transfers the window value to the appropriate data type. - diff --git a/docs/latex/wx/validatr.tex b/docs/latex/wx/validatr.tex deleted file mode 100644 index b6319b0a39..0000000000 --- a/docs/latex/wx/validatr.tex +++ /dev/null @@ -1,101 +0,0 @@ -\section{\class{wxValidator}}\label{wxvalidator} - -wxValidator is the base class for a family of validator classes that mediate -between a class of control, and application data. - -A validator has three major roles: - -\begin{enumerate}\itemsep=0pt -\item to transfer data from a C++ variable or own storage to and from a control; -\item to validate data in a control, and show an appropriate error message; -\item to filter events (such as keystrokes), thereby changing the behaviour of the -associated control. -\end{enumerate} - -Validators can be plugged into controls dynamically. - -To specify a default, `null' validator, use the symbol {\bf wxDefaultValidator}. - -For more information, please see \helpref{Validator overview}{validatoroverview}. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Validator overview}{validatoroverview}, \helpref{wxTextValidator}{wxtextvalidator} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxValidator::wxValidator}\label{wxvalidatorconstr} - -\func{}{wxValidator}{\void} - -Constructor. - -\membersection{wxValidator::\destruct{wxValidator}} - -\func{}{\destruct{wxValidator}}{\void} - -Destructor. - -\membersection{wxValidator::Clone}\label{wxvalidatorclone} - -\constfunc{virtual wxValidator*}{Clone}{\void} - -All validator classes must implement the {\bf Clone} function, which returns -an identical copy of itself. This is because validators are passed to control -constructors as references which must be copied. Unlike objects such as pens -and brushes, it does not make sense to have a reference counting scheme -to do this cloning, because all validators should have separate -data. - -This base function returns NULL. - -\membersection{wxValidator::GetWindow}\label{wxvalidatorgetwindow} - -\constfunc{wxWindow*}{GetWindow}{\void} - -Returns the window associated with the validator. - -\membersection{wxValidator::SetBellOnError}{wxvalidatorsetbellonerror} - -\func{void}{SetBellOnError}{\param{bool}{ doIt = TRUE}} - -This functions switches on or turns off the error sound produced by the -validators if an invalid key is pressed. - -\membersection{wxValidator::SetWindow}\label{wxvalidatorsetwindow} - -\func{void}{SetWindow}{\param{wxWindow*}{ window}} - -Associates a window with the validator. - -\membersection{wxValidator::TransferFromWindow}\label{wxvalidatortransferfromwindow} - -\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}} - -This overridable function is called when the value in the window must be -transferred to the validator. Return FALSE if there is a problem. - -\membersection{wxValidator::TransferToWindow}\label{wxvalidatortransfertowindow} - -\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}} - -This overridable function is called when the value associated with the validator must be -transferred to the window. Return FALSE if there is a problem. - -\membersection{wxValidator::Validate}\label{wxvalidatorvalidate} - -\func{virtual bool}{Validate}{\param{wxWindow*}{ parent}} - -This overridable function is called when the value in the associated window must be validated. -Return FALSE if the value in the window is not valid; you may pop up an error dialog. - - diff --git a/docs/latex/wx/valtext.tex b/docs/latex/wx/valtext.tex deleted file mode 100644 index ab34ea4d74..0000000000 --- a/docs/latex/wx/valtext.tex +++ /dev/null @@ -1,130 +0,0 @@ -\section{\class{wxTextValidator}}\label{wxtextvalidator} - -wxTextValidator validates text controls, providing a variety of filtering behaviours. - -For more information, please see \helpref{Validator overview}{validatoroverview}. - -\wxheading{Derived from} - -\helpref{wxValidator}{wxvalidator}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator}, -\helpref{wxGenericValidator}{wxgenericvalidator} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextValidator::wxTextValidator}\label{wxtextvalidatorconstr} - -\func{}{wxTextValidator}{\param{const wxTextValidator\&}{ validator}} - -Copy constructor. - -\func{}{wxTextValidator}{\param{long}{ style = wxFILTER\_NONE}, \param{wxString* }{valPtr = NULL}} - -Constructor, taking a style and optional pointer to a wxString variable. - -\wxheading{Parameters} - -\docparam{style}{A bitlist of flags, which can be: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxFILTER\_NONE}}{No filtering takes place.} -\twocolitem{{\bf wxFILTER\_ASCII}}{Non-ASCII characters are filtered out.} -\twocolitem{{\bf wxFILTER\_ALPHA}}{Non-alpha characters are filtered out.} -\twocolitem{{\bf wxFILTER\_ALPHANUMERIC}}{Non-alphanumeric characters are filtered out.} -\twocolitem{{\bf wxFILTER\_NUMERIC}}{Non-numeric characters are filtered out.} -\twocolitem{{\bf wxFILTER\_INCLUDE\_LIST}}{Use an include list. The validator -checks if the user input is on the list, complaining if not.} -\twocolitem{{\bf wxFILTER\_EXCLUDE\_LIST}}{Use an exclude list. The validator -checks if the user input is on the list, complaining if it is.} -\end{twocollist} -} - -\docparam{valPtr}{A pointer to a wxString variable that contains the value. This variable -should have a lifetime equal to or longer than the validator lifetime (which is usually -determined by the lifetime of the window). If NULL, the validator uses its own internal -storage for the value.} - -\membersection{wxTextValidator::\destruct{wxTextValidator}} - -\func{}{\destruct{wxTextValidator}}{\void} - -Destructor. - -\membersection{wxTextValidator::Clone}\label{wxtextvalidatorclone} - -\constfunc{virtual wxValidator*}{Clone}{\void} - -Clones the text validator using the copy constructor. - -\membersection{wxTextValidator::GetExcludeList}\label{wxtextvalidatorgetexcludelist} - -\constfunc{wxStringList\&}{GetExcludeList}{\void} - -Returns a reference to the exclude list (the list of invalid values). - -\membersection{wxTextValidator::GetIncludeList}\label{wxtextvalidatorgetincludelist} - -\constfunc{wxStringList\&}{GetIncludeList}{\void} - -Returns a reference to the include list (the list of valid values). - -\membersection{wxTextValidator::GetStyle}\label{wxtextvalidatorgetstyle} - -\constfunc{long}{GetStyle}{\void} - -Returns the validator style. - -\membersection{wxTextValidator::OnChar}\label{wxtextvalidatoronchar} - -\func{void}{OnChar}{\param{wxKeyEvent\&}{ event}} - -Receives character input from the window and filters it according to the -current validator style. - -\membersection{wxTextValidator::SetExcludeList}\label{wxtextvalidatorsetexcludelist} - -\func{void}{SetExcludeList}{\param{const wxStringList\&}{ stringList}} - -Sets the exclude list (invalid values for the user input). - -\membersection{wxTextValidator::SetIncludeList}\label{wxtextvalidatorsetincludelist} - -\func{void}{SetIncludeList}{\param{const wxStringList\&}{ stringList}} - -Sets the include list (valid values for the user input). - -\membersection{wxTextValidator::SetStyle}\label{wxtextvalidatorsetstyle} - -\func{void}{SetStyle}{\param{long}{ style}} - -Sets the validator style. - -\membersection{wxTextValidator::TransferFromWindow}\label{wxtextvalidatortransferfromwindow} - -\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}} - -Transfers the string value to the window. - -\membersection{wxTextValidator::TransferToWindow}\label{wxtextvalidatortransfertowindow} - -\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}} - -Transfers the window value to the string. - -\membersection{wxTextValidator::Validate}\label{wxtextvalidatorvalidate} - -\func{virtual bool}{Validate}{\param{wxWindow*}{ parent}} - -Validates the window contents against the include or exclude lists, depending -on the validator style. - diff --git a/docs/latex/wx/variant.tex b/docs/latex/wx/variant.tex deleted file mode 100644 index f91ca59e14..0000000000 --- a/docs/latex/wx/variant.tex +++ /dev/null @@ -1,444 +0,0 @@ -\section{\class{wxVariant}}\label{wxvariant} - -The {\bf wxVariant} class represents a container for any type. -A variant's value can be changed at run time, possibly to a different type of value. - -As standard, wxVariant can store values of type bool, char, double, long, string, -string list, time, date, void pointer, list of strings, and list of variants. However, an application can extend -wxVariant's capabilities by deriving from the class \helpref{wxVariantData}{wxvariantdata} and -using the wxVariantData form of the wxVariant constructor or assignment operator -to assign this data to a variant. Actual values for user-defined types will need to be accessed -via the wxVariantData object, unlike the case for basic data types where convenience -functions such as GetLong can be used. - -This class is useful for reducing the programming for certain tasks, such as an editor -for different data types, or a remote procedure call protocol. - -An optional name member is associated with a wxVariant. This might be used, for example, in CORBA -or OLE automation classes, where named parameters are required. - -wxVariant is similar to wxExpr and also to wxPropertyValue. However, wxExpr is efficiency-optimized for -a restricted range of data types, whereas wxVariant is less efficient but more extensible. -wxPropertyValue may be replaced by wxVariant eventually. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxVariantData}{wxvariantdata} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxVariant::wxVariant}\label{wxvariantctor} - -\func{}{wxVariant}{\void} - -Default constructor. - -\func{}{wxVariant}{\param{const wxVariant\& }{variant}} - -Copy constructor. - -\func{}{wxVariant}{\param{const char*}{ value}, \param{const wxString\& }{name = ``"}}\\ -\func{}{wxVariant}{\param{const wxString\&}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a string value. - -\func{}{wxVariant}{\param{char}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a character value. - -\func{}{wxVariant}{\param{long}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from an integer value. You may need to cast to (long) to -avoid confusion with other constructors (such as the bool constructor). - -\func{}{wxVariant}{\param{bool}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a boolean value. - -\func{}{wxVariant}{\param{double}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a double-precision floating point value. - -\func{}{wxVariant}{\param{const wxList\&}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a list of wxVariant objects. This constructor -copies {\it value}, the application is still responsible for -deleting {\it value} and its contents. - -\func{}{wxVariant}{\param{const wxStringList\&}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a list of strings. This constructor -copies {\it value}, the application is still responsible for -deleting {\it value} and its contents. - -%Note: this constructor is currently disabled because it causes a C++ ambiguity. - -\func{}{wxVariant}{\param{const wxTime\&}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a time. - -\func{}{wxVariant}{\param{const wxDate\&}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a date. - -\func{}{wxVariant}{\param{void*}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a void pointer. - -\func{}{wxVariant}{\param{wxVariantData*}{ data}, \param{const wxString\& }{name = ``"}} - -Construction from user-defined data. The variant holds on to the {\it data} pointer. - -\membersection{wxVariant::\destruct{wxVariant}}\label{wxvariantdtor} - -\func{}{\destruct{wxVariant}}{\void} - -Destructor. - -\membersection{wxVariant::Append}\label{wxvariantappend} - -\func{void}{Append}{\param{const wxVariant\&}{ value}} - -Appends a value to the list. - -\membersection{wxVariant::ClearList}\label{wxvariantclearlist} - -\func{void}{ClearList}{\void} - -Deletes the contents of the list. - -\membersection{wxVariant::GetCount}\label{wxvariantgetcount} - -\constfunc{int}{GetCount}{\void} - -Returns the number of elements in the list. - -\membersection{wxVariant::Delete}\label{wxvariantdelete} - -\func{bool}{Delete}{\param{int }{item}} - -Deletes the zero-based {\it item} from the list. - -\membersection{wxVariant::GetBool}\label{wxvariantgetbool} - -\constfunc{bool}{GetBool}{\void} - -Returns the boolean value. - -\membersection{wxVariant::GetChar}\label{wxvariantgetchar} - -\constfunc{char}{GetChar}{\void} - -Returns the character value. - -\membersection{wxVariant::GetData}\label{wxvariantgetdata} - -\constfunc{wxVariantData*}{GetData}{\void} - -Returns a pointer to the internal variant data. - -\membersection{wxVariant::GetDate}\label{wxvariantgetdate} - -\constfunc{wxDate}{GetDate}{\void} - -Gets the date value. - -\membersection{wxVariant::GetDouble}\label{wxvariantgetdouble} - -\constfunc{double}{GetDouble}{\void} - -Returns the floating point value. - -\membersection{wxVariant::GetLong}\label{wxvariantgetlong} - -\constfunc{long}{GetLong}{\void} - -Returns the integer value. - -\membersection{wxVariant::GetName}\label{wxvariantgetname} - -\constfunc{const wxString\&}{GetName}{\void} - -Returns a constant reference to the variant name. - -\membersection{wxVariant::GetString}\label{wxvariantgetstring} - -\constfunc{wxString}{GetString}{\void} - -Gets the string value. - -\membersection{wxVariant::GetTime}\label{wxvariantgettime} - -\constfunc{wxTime}{GetTime}{\void} - -Gets the time value. - -\membersection{wxVariant::GetType}\label{wxvariantgettype} - -\constfunc{wxString}{GetType}{\void} - -Returns the value type as a string. The built-in types are: bool, char, date, double, list, long, string, stringlist, time, void*. - -If the variant is null, the value type returned is the string ``null" (not the empty string). - -\membersection{wxVariant::GetVoidPtr}\label{wxvariantgetvoidptr} - -\constfunc{void*}{GetVoidPtr}{\void} - -Gets the void pointer value. - -\membersection{wxVariant::Insert}\label{wxvariantinsert} - -\func{void}{Insert}{\param{const wxVariant\&}{ value}} - -Inserts a value at the front of the list. - -\membersection{wxVariant::IsNull}\label{wxvariantisnull} - -\constfunc{bool}{IsNull}{\void} - -Returns TRUE if there is no data associated with this variant, FALSE if there is data. - -\membersection{wxVariant::IsType}\label{wxvariantistype} - -\constfunc{bool}{IsType}{\param{const wxString\&}{ type}} - -Returns TRUE if {\it type} matches the type of the variant, FALSE otherwise. - -\membersection{wxVariant::MakeNull}\label{wxvariantmakenull} - -\func{void}{MakeNull}{\void} - -Makes the variant null by deleting the internal data. - -\membersection{wxVariant::MakeString}\label{wxvariantmakestring} - -\constfunc{wxString}{MakeString}{\void} - -Makes a string representation of the variant value (for any type). - -\membersection{wxVariant::Member}\label{wxvariantmember} - -\constfunc{bool}{Member}{\param{const wxVariant\&}{ value}} - -Returns TRUE if {\it value} matches an element in the list. - -\membersection{wxVariant::NullList}\label{wxvariantnulllist} - -\func{void}{NullList}{\void} - -Makes an empty list. This differs from a null variant which has no data; a null list -is of type list, but the number of elements in the list is zero. - -\membersection{wxVariant::SetData}\label{wxvariantsetdata} - -\func{void}{SetData}{\param{wxVariantData*}{ data}} - -Sets the internal variant data, deleting the existing data if there is any. - -\membersection{wxVariant::operator $=$}\label{wxvariantassignment} - -\func{void}{operator $=$}{\param{const wxVariant\& }{value}} - -\func{void}{operator $=$}{\param{wxVariantData* }{value}} - -\func{void}{operator $=$}{\param{const wxString\& }{value}} - -\func{void}{operator $=$}{\param{const char* }{value}} - -\func{void}{operator $=$}{\param{char }{value}} - -\func{void}{operator $=$}{\param{const long }{value}} - -\func{void}{operator $=$}{\param{const bool }{value}} - -\func{void}{operator $=$}{\param{const double }{value}} - -\func{void}{operator $=$}{\param{const wxDate\& }{value}} - -\func{void}{operator $=$}{\param{const wxTime\& }{value}} - -\func{void}{operator $=$}{\param{void* }{value}} - -\func{void}{operator $=$}{\param{const wxList\& }{value}} - -\func{void}{operator $=$}{\param{const wxStringList\& }{value}} - -Assignment operators. - -\membersection{wxVariant::operator $==$}\label{wxvarianteq} - -\func{bool}{operator $==$}{\param{const wxVariant\& }{value}} - -\func{bool}{operator $==$}{\param{const wxString\& }{value}} - -\func{bool}{operator $==$}{\param{const char* }{value}} - -\func{bool}{operator $==$}{\param{char }{value}} - -\func{bool}{operator $==$}{\param{const long }{value}} - -\func{bool}{operator $==$}{\param{const bool }{value}} - -\func{bool}{operator $==$}{\param{const double }{value}} - -\func{bool}{operator $==$}{\param{const wxDate\& }{value}} - -\func{bool}{operator $==$}{\param{const wxTime\& }{value}} - -\func{bool}{operator $==$}{\param{void* }{value}} - -\func{bool}{operator $==$}{\param{const wxList\& }{value}} - -\func{bool}{operator $==$}{\param{const wxStringList\& }{value}} - -Equality test operators. - -\membersection{wxVariant::operator $!=$}\label{wxvariantneq} - -\func{bool}{operator $!=$}{\param{const wxVariant\& }{value}} - -\func{bool}{operator $!=$}{\param{const wxString\& }{value}} - -\func{bool}{operator $!=$}{\param{const char* }{value}} - -\func{bool}{operator $!=$}{\param{char }{value}} - -\func{bool}{operator $!=$}{\param{const long }{value}} - -\func{bool}{operator $!=$}{\param{const bool }{value}} - -\func{bool}{operator $!=$}{\param{const double }{value}} - -\func{bool}{operator $!=$}{\param{const wxDate\& }{value}} - -\func{bool}{operator $!=$}{\param{const wxTime\& }{value}} - -\func{bool}{operator $!=$}{\param{void* }{value}} - -\func{bool}{operator $!=$}{\param{const wxList\& }{value}} - -\func{bool}{operator $!=$}{\param{const wxStringList\& }{value}} - -Inequality test operators. - -\membersection{wxVariant::operator $[]$}\label{wxvariantarray} - -\constfunc{wxVariant}{operator $[]$}{\param{size\_t }{idx}} - -Returns the value at {\it idx} (zero-based). - -\func{wxVariant\&}{operator $[]$}{\param{size\_t }{idx}} - -Returns a reference to the value at {\it idx} (zero-based). This can be used -to change the value at this index. - -\membersection{wxVariant::operator char}\label{wxvariantchar} - -\constfunc{char}{operator char}{\void} - -Operator for implicit conversion to a char, using \helpref{wxVariant::GetChar}{wxvariantgetchar}. - -\membersection{wxVariant::operator double}\label{wxvariantdouble} - -\constfunc{double}{operator double}{\void} - -Operator for implicit conversion to a double, using \helpref{wxVariant::GetDouble}{wxvariantgetdouble}. - -\constfunc{long}{operator long}{\void} - -Operator for implicit conversion to a long, using \helpref{wxVariant::GetLong}{wxvariantgetlong}. - -\membersection{wxVariant::operator wxDate}\label{wxvariantwxdate} - -\constfunc{wxDate}{operator wxDate}{\void} - -Operator for implicit conversion to a wxDate, using \helpref{wxVariant::GetDate}{wxvariantgetdate}. - -\membersection{wxVariant::operator wxString}\label{wxvariantwxstring} - -\constfunc{wxString}{operator wxString}{\void} - -Operator for implicit conversion to a string, using \helpref{wxVariant::MakeString}{wxvariantmakestring}. - -\membersection{wxVariant::operator wxTime}\label{wxvariantwxtime} - -\constfunc{wxTime}{operator wxTime}{\void} - -Operator for implicit conversion to a wxTime, using \helpref{wxVariant::GetTime}{wxvariantgettime}. - -\membersection{wxVariant::operator void*}\label{wxvariantvoid} - -\constfunc{void*}{operator void*}{\void} - -Operator for implicit conversion to a pointer to a void, using \helpref{wxVariant::GetVoidPtr}{wxvariantgetvoidptr}. - -\section{\class{wxVariantData}}\label{wxvariantdata} - -The {\bf wxVariantData} is used to implement a new type for wxVariant. Derive from wxVariantData, -and override the pure virtual functions. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxVariant}{wxvariant} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxVariantData::wxVariantData}\label{wxvariantdatactor} - -\func{}{wxVariantData}{\void} - -Default constructor. - -\membersection{wxVariantData::Copy}\label{wxvariantdatacopy} - -\func{void}{Copy}{\param{wxVariantData\&}{ data}} - -Copy the data from `this' object to {\it data}. - -\membersection{wxVariantData::Eq}\label{wxvariantdataeq} - -\constfunc{bool}{Eq}{\param{wxVariantData\&}{ data}} - -Returns TRUE if this object is equal to {\it data}. - -\membersection{wxVariantData::GetType}\label{wxvariantdatagettype} - -\constfunc{wxString}{GetType}{\void} - -Returns the string type of the data. - -\membersection{wxVariantData::Read}\label{wxvariantdataread} - -\func{bool}{Read}{\param{ostream\&}{ stream}} - -\func{bool}{Read}{\param{wxString\&}{ string}} - -Reads the data from {\it stream} or {\it string}. - -\membersection{wxVariantData::Write}\label{wxvariantdatawrite} - -\constfunc{bool}{Write}{\param{ostream\&}{ stream}} - -\constfunc{bool}{Write}{\param{wxString\&}{ string}} - -Writes the data to {\it stream} or {\it string}. - - - diff --git a/docs/latex/wx/view.tex b/docs/latex/wx/view.tex deleted file mode 100644 index e977bd41df..0000000000 --- a/docs/latex/wx/view.tex +++ /dev/null @@ -1,182 +0,0 @@ -\section{\class{wxView}}\label{wxview} - -The view class can be used to model the viewing and editing component of -an application's file-based data. It is part of the document/view framework supported by wxWindows, -and cooperates with the \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate} -and \helpref{wxDocManager}{wxdocmanager} classes. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxView overview}{wxviewoverview}, \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp -\helpref{wxDocManager}{wxdocmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxView::m\_viewDocument} - -\member{wxDocument*}{m\_viewDocument} - -The document associated with this view. There may be more than one view per -document, but there can never be more than one document for one view. - -\membersection{wxView::m\_viewFrame} - -\member{wxFrame*}{m\_viewFrame} - -Frame associated with the view, if any. - -\membersection{wxView::m\_viewTypeName} - -\member{wxString}{m\_viewTypeName} - -The view type name given to the wxDocTemplate constructor, copied to this -variable when the view is created. Not currently used by the framework. - -\membersection{wxView::wxView} - -\func{}{wxView}{\void} - -Constructor. Define your own default constructor to initialize application-specific -data. - -\membersection{wxView::\destruct{wxView}} - -\func{}{\destruct{wxView}}{\void} - -Destructor. Removes itself from the document's list of views. - -\membersection{wxView::Activate} - -\func{virtual void}{Activate}{\param{bool}{ activate}} - -Call this from your view frame's OnActivate member to tell the framework which view is -currently active. If your windowing system doesn't call OnActivate, you may need to -call this function from OnMenuCommand or any place where you know the view must -be active, and the framework will need to get the current view. - -The prepackaged view frame wxDocChildFrame calls wxView::Activate from its OnActivate member -and from its OnMenuCommand member. - -This function calls wxView::OnActivateView. - -\membersection{wxView::Close} - -\func{virtual bool}{Close}{\param{bool}{ deleteWindow = TRUE}} - -Closes the view by calling OnClose. If {\it deleteWindow} is TRUE, this function should -delete the window associated with the view. - -\membersection{wxView::GetDocument} - -\constfunc{wxDocument*}{GetDocument}{\void} - -Gets a pointer to the document associated with the view. - -\membersection{wxView::GetDocumentManager} - -\constfunc{wxDocumentManager*}{GetDocumentManager}{\void} - -Returns a pointer to the document manager instance associated with this view. - -\membersection{wxView::GetFrame} - -\func{wxFrame *}{GetFrame}{\void} - -Gets the frame associated with the view (if any). - -\membersection{wxView::GetViewName} - -\constfunc{wxString}{GetViewName}{\void} - -Gets the name associated with the view (passed to the wxDocTemplate constructor). -Not currently used by the framework. - -\membersection{wxView::OnActivateView} - -\func{virtual void}{OnActivateView}{\param{bool }{activate}, \param{wxView *}{activeView}, \param{wxView *}{deactiveView}} - -Called when a view is activated by means of wxView::Activate. The default implementation does -nothing. - -\membersection{wxView::OnChangeFilename} - -\func{virtual void}{OnChangeFilename}{\void} - -Called when the filename has changed. The default implementation constructs a -suitable title and sets the title of the view frame (if any). - -\membersection{wxView::OnClose} - -\func{virtual bool}{OnClose}{\param{bool}{ deleteWindow}} - -Implements closing behaviour. The default implementation calls wxDocument::Close -to close the associated document. Does not delete the view. The application -may wish to do some cleaning up operations in this function, {\it if} a -call to wxDocument::Close succeeded. For example, if your application's -all share the same window, you need to disassociate the window from the view -and perhaps clear the window. If {\it deleteWindow} is TRUE, delete the -frame associated with the view. - -\membersection{wxView::OnCreate} - -\func{virtual bool}{OnCreate}{\param{wxDocument* }{doc}, \param{long}{ flags}} - -Called just after view construction to give the view a chance to initialize -itself based on the passed document and flags (unused). By default, simply -returns TRUE. If the function returns FALSE, the view will be deleted. - -The predefined document child frame, wxDocChildFrame, calls this function -automatically. - -\membersection{wxView::OnCreatePrintout} - -\func{virtual wxPrintout*}{OnCreatePrintout}{\void} - -If the printing framework is enabled in the library, this function returns a -\rtfsp\helpref{wxPrintout}{wxprintout} object for the purposes of printing. It should create a new object -everytime it is called; the framework will delete objects it creates. - -By default, this function returns an instance of wxDocPrintout, which prints -and previews one page by calling wxView::OnDraw. - -Override to return an instance of a class other than wxDocPrintout. - -\membersection{wxView::OnUpdate} - -\func{virtual void}{OnUpdate}{\param{wxView* }{sender}, \param{wxObject* }{hint}} - -Called when the view should be updated. {\it sender} is a pointer to the view -that sent the update request, or NULL if no single view requested the update (for instance, -when the document is opened). {\it hint} is as yet unused but may in future contain -application-specific information for making updating more efficient. - -\membersection{wxView::SetDocument} - -\func{void}{SetDocument}{\param{wxDocument* }{doc}} - -Associates the given document with the view. Normally called by the -framework. - -\membersection{wxView::SetFrame} - -\func{void}{SetFrame}{\param{wxFrame* }{frame}} - -Sets the frame associated with this view. The application should call this -if possible, to tell the view about the frame. - -\membersection{wxView::SetViewName} - -\func{void}{SetViewName}{\param{const wxString\& }{name}} - -Sets the view type name. Should only be called by the framework. - - diff --git a/docs/latex/wx/wave.tex b/docs/latex/wx/wave.tex deleted file mode 100644 index fe42ac8cfa..0000000000 --- a/docs/latex/wx/wave.tex +++ /dev/null @@ -1,68 +0,0 @@ -\section{\class{wxWave}}\label{wxwave} - -This class represents a short wave file, in Windows WAV format, that -can be stored in memory and played. Currently this class is for Windows -only. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWave::wxWave}\label{wxwaveconstr} - -\func{}{wxWave}{\void} - -Default constructor. - -\func{}{wxWave}{\param{const wxString\&}{ fileName}, \param{bool}{ isResource = FALSE}} - -Constructs a wave object from a file or resource. Call \helpref{wxWave::IsOk}{wxwaveisok} to -determine whether this succeeded. - -\wxheading{Parameters} - -\docparam{fileName}{The filename or Windows resource.} - -\docparam{isResource}{TRUE if {\it fileName} is a resource, FALSE if it is a filename.} - -\membersection{wxWave::\destruct{wxWave}} - -\func{}{\destruct{wxWave}}{\void} - -Destroys the wxWave object. - -\membersection{wxWave::Create}\label{wxwavecreate} - -\func{bool}{Create}{\param{const wxString\&}{ fileName}, \param{bool}{ isResource = FALSE}} - -Constructs a wave object from a file or resource. - -\wxheading{Parameters} - -\docparam{fileName}{The filename or Windows resource.} - -\docparam{isResource}{TRUE if {\it fileName} is a resource, FALSE if it is a filename.} - -\wxheading{Return value} - -TRUE if the call was successful, FALSE otherwise. - -\membersection{wxWave::IsOk}\label{wxwaveisok} - -\constfunc{bool}{IsOk}{\void} - -Returns TRUE if the object contains a successfully loaded file or resource, FALSE otherwise. - -\membersection{wxWave::Play}\label{wxwaveplay} - -\constfunc{bool}{Play}{\param{bool}{ async = TRUE}, \param{bool}{ looped = FALSE}} - -Plays the wave file synchronously or asynchronously, looped or single-shot. - - diff --git a/docs/latex/wx/window.tex b/docs/latex/wx/window.tex deleted file mode 100644 index 1cadad6ded..0000000000 --- a/docs/latex/wx/window.tex +++ /dev/null @@ -1,2301 +0,0 @@ -\section{\class{wxWindow}}\label{wxwindow} - -wxWindow is the base class for all windows. Any -children of the window will be deleted automatically by the destructor -before the window itself is deleted. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -The following styles can apply to all windows, although they will not always make sense for a particular -window class. - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSIMPLE\_BORDER}}{Displays a thin border around the window. wxBORDER is the old name -for this style. Windows only. } -\twocolitem{\windowstyle{wxDOUBLE\_BORDER}}{Displays a double border. Windows only.} -\twocolitem{\windowstyle{wxSUNKEN\_BORDER}}{Displays a sunken border.} -\twocolitem{\windowstyle{wxRAISED\_BORDER}}{Displays a raised border.} -\twocolitem{\windowstyle{wxSTATIC\_BORDER}}{Displays a border suitable for a static control. Windows only. } -\twocolitem{\windowstyle{wxTRANSPARENT\_WINDOW}}{The window is transparent, that is, it will not receive paint -events. Windows only.} -\twocolitem{\windowstyle{wxNO\_3D}}{Prevents the children of this window taking on 3D styles, even though -the application-wide policy is for 3D controls. Windows only.} -\twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.} -\twocolitem{\windowstyle{wxWANTS\_CHARS}}{Use this to indicate that the window -wants to get all char events - even for keys like TAB or ENTER which are -usually used for dialog navigation and which wouldn't be generated without -this style} -\twocolitem{\windowstyle{wxNO\_FULLREPAINT\_ON\_RESIZE}}{Disables repainting -the window completely when its size is changed - you will have to repaint the -new window area manually if you use style. Currently only has effect for -wxMSW.} -\twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical scrollbar. (Still used?) } -\twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal scrollbar. (Still used?) } -\twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being -repainted, then children being painted over them. Windows only.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWindow::wxWindow} - -\func{}{wxWindow}{\void} - -Default constructor. - -\func{}{wxWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = 0}, - \param{const wxString\& }{name = wxPanelNameStr}} - -Constructs a window, which can be a child of a frame, dialog or any other non-control window. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{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.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWindows -should generate a default size for the window. If no suitable size can be found, the -window will be sized to 20x20 pixels so that the window is visible but obviously not -correctly sized. } - -\docparam{style}{Window style. For generic window styles, please see \helpref{wxWindow}{wxwindow}.} - -\docparam{name}{Window name.} - -\membersection{wxWindow::\destruct{wxWindow}} - -\func{}{\destruct{wxWindow}}{\void} - -Destructor. Deletes all subwindows, then deletes itself. Instead of using -the {\bf delete} operator explicitly, you should normally -use \helpref{wxWindow::Destroy}{wxwindowdestroy} so that wxWindows -can delete a window only when it is safe to do so, in idle time. - -\wxheading{See also} - -\helpref{Window deletion overview}{windowdeletionoverview},\rtfsp -\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent} - -\membersection{wxWindow::AddChild} - -\func{virtual void}{AddChild}{\param{wxWindow* }{child}} - -Adds a child window. This is called automatically by window creation -functions so should not be required by the application programmer. - -\wxheading{Parameters} - -\docparam{child}{Child window to add.} - -\membersection{wxWindow::CaptureMouse}\label{wxwindowcapturemouse} - -\func{virtual void}{CaptureMouse}{\void} - -Directs all mouse input to this window. Call \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse} to -release the capture. - -\wxheading{See also} - -\helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse} - -\membersection{wxWindow::Center}\label{wxwindowcenter} - -\func{void}{Center}{\param{int}{ direction}} - -A synonym for \helpref{Centre}{wxwindowcentre}. - -\membersection{wxWindow::CenterOnParent}\label{wxwindowcenteronparent} - -\func{void}{CenterOnParent}{\param{int}{ direction}} - -A synonym for \helpref{CentreOnParent}{wxwindowcentreonparent}. - -\membersection{wxWindow::Centre}\label{wxwindowcentre} - -\func{void}{Centre}{\param{int}{ direction = wxHORIZONTAL}} - -Centres the window. - -\wxheading{Parameters} - -\docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp -or {\tt wxBOTH}. It may also include {\tt wxCENTRE\_ON\_SCREEN} flag -if you want to center the window on the entire screen and not on its -parent window.} - -The flag {\tt wxCENTRE\_FRAME} is obsolete and should not be used any longer. - -\wxheading{Remarks} - -If the window is a top level one (i.e. doesn't have a parent), it will be -centered relative to the screen anyhow. - -\wxheading{See also} - -\helpref{wxWindow::Center}{wxwindowcenter} - -\membersection{wxWindow::CentreOnParent}\label{wxwindowcentreonparent} - -\func{void}{CentreOnParent}{\param{int}{ direction = wxHORIZONTAL}} - -Centres the window. - -\wxheading{Parameters} - -\docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp -or {\tt wxBOTH}.} - -\wxheading{Remarks} - -This methods provides for a way to center top level windows over their -parents instead of the entire screen. If there is no parent or if the -window is not a top level window, then behaviour is the same as -\helpref{wxWindow::Centre}{wxwindowcentre}. - -\wxheading{See also} - -\helpref{wxWindow::CenterOnParent}{wxwindowcenteronparent} - -\membersection{wxWindow::Clear}\label{wxwindowclear} - -\func{void}{Clear}{\void} - -Clears the window by filling it with the current background colour. Does not -cause an erase background event to be generated. - -\membersection{wxWindow::ClientToScreen} - -\constfunc{virtual void}{ClientToScreen}{\param{int* }{x}, \param{int* }{y}} - -\constfunc{virtual wxPoint}{ClientToScreen}{\param{const wxPoint\&}{ pt}} - -Converts to screen coordinates from coordinates relative to this window. - -\docparam{x}{A pointer to a integer value for the x coordinate. Pass the client coordinate in, and -a screen coordinate will be passed out.} - -\docparam{y}{A pointer to a integer value for the y coordinate. Pass the client coordinate in, and -a screen coordinate will be passed out.} - -\docparam{pt}{The client position for the second form of the function.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{ClientToScreen(point)}}{Accepts and returns a wxPoint} -\twocolitem{\bf{ClientToScreenXY(x, y)}}{Returns a 2-tuple, (x, y)} -\end{twocollist}} -} - - -\membersection{wxWindow::Close}\label{wxwindowclose} - -\func{virtual bool}{Close}{\param{const bool}{ force = FALSE}} - -The purpose of this call is to provide a safer way of destroying a window than using -the {\it delete} operator. - -\wxheading{Parameters} - -\docparam{force}{FALSE if the window's close handler should be able to veto the destruction -of this window, TRUE if it cannot.} - -\wxheading{Remarks} - -Close calls the \helpref{close handler}{wxcloseevent} for the window, providing an opportunity for the window to -choose whether to destroy the window. - -The close handler should check whether the window is being deleted forcibly, -using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}, in which case it should -destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}. - -Applies to managed windows (wxFrame and wxDialog classes) only. - -{\it Note} that calling Close does not guarantee that the window will be destroyed; but it -provides a way to simulate a manual close of a window, which may or may not be implemented by -destroying the window. The default implementation of wxDialog::OnCloseWindow does not -necessarily delete the dialog, since it will simply simulate an wxID\_CANCEL event which -itself only hides the dialog. - -To guarantee that the window will be destroyed, call \helpref{wxWindow::Destroy}{wxwindowdestroy} instead. - -\wxheading{See also} - -\helpref{Window deletion overview}{windowdeletionoverview},\rtfsp -\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent} - -\membersection{wxWindow::ConvertDialogToPixels}\label{wxwindowconvertdialogtopixels} - -\func{wxPoint}{ConvertDialogToPixels}{\param{const wxPoint\&}{ pt}} - -\func{wxSize}{ConvertDialogToPixels}{\param{const wxSize\&}{ sz}} - -Converts a point or size from dialog units to pixels. - -For the x dimension, the dialog units are multiplied by the average character width -and then divided by 4. - -For the y dimension, the dialog units are multiplied by the average character height -and then divided by 8. - -\wxheading{Remarks} - -Dialog units are used for maintaining a dialog's proportions even if the font changes. -Dialogs created using Dialog Editor optionally use dialog units. - -You can also use these functions programmatically. A convenience macro is defined: - -{\small -\begin{verbatim} -#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxWindow::ConvertPixelsToDialog}{wxwindowconvertpixelstodialog} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{ConvertDialogPointToPixels(point)}}{Accepts and returns a wxPoint} -\twocolitem{\bf{ConvertDialogSizeToPixels(size)}}{Accepts and returns a wxSize} -\end{twocollist}} - -Additionally, the following helper functions are defined:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{wxDLG\_PNT(win, point)}}{Converts a wxPoint from dialog -units to pixels} -\twocolitem{\bf{wxDLG\_SZE(win, size)}}{Converts a wxSize from dialog -units to pixels} -\end{twocollist}} -} - - -\membersection{wxWindow::ConvertPixelsToDialog}\label{wxwindowconvertpixelstodialog} - -\func{wxPoint}{ConvertPixelsToDialog}{\param{const wxPoint\&}{ pt}} - -\func{wxSize}{ConvertPixelsToDialog}{\param{const wxSize\&}{ sz}} - -Converts a point or size from pixels to dialog units. - -For the x dimension, the pixels are multiplied by 4 and then divided by the average -character width. - -For the y dimension, the pixels are multipled by 8 and then divided by the average -character height. - -\wxheading{Remarks} - -Dialog units are used for maintaining a dialog's proportions even if the font changes. -Dialogs created using Dialog Editor optionally use dialog units. - -\wxheading{See also} - -\helpref{wxWindow::ConvertDialogToPixels}{wxwindowconvertdialogtopixels} - - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{ConvertDialogPointToPixels(point)}}{Accepts and returns a wxPoint} -\twocolitem{\bf{ConvertDialogSizeToPixels(size)}}{Accepts and returns a wxSize} -\end{twocollist}} -} - -\membersection{wxWindow::Destroy}\label{wxwindowdestroy} - -\func{virtual bool}{Destroy}{\void} - -Destroys the window safely. Use this function instead of the delete operator, since -different window classes can be destroyed differently. Frames and dialogs -are not destroyed immediately when this function is called - they are added -to a list of windows to be deleted on idle time, when all the window's events -have been processed. This prevents problems with events being sent to non-existant -windows. - -\wxheading{Return value} - -TRUE if the window has either been successfully deleted, or it has been added -to the list of windows pending real deletion. - -\membersection{wxWindow::DestroyChildren} - -\func{virtual void}{DestroyChildren}{\void} - -Destroys all children of a window. Called automatically by the destructor. - -\membersection{wxWindow::DragAcceptFiles}\label{wxwindowdragacceptfiles} - -\func{virtual void}{DragAcceptFiles}{\param{const bool}{ accept}} - -Enables or disables elibility for drop file events (OnDropFiles). - -\wxheading{Parameters} - -\docparam{accept}{If TRUE, the window is eligible for drop file events. If FALSE, the window -will not accept drop file events.} - -\wxheading{Remarks} - -Windows only. - -\wxheading{See also} - -\helpref{wxWindow::OnDropFiles}{wxwindowondropfiles} - -\membersection{wxWindow::Enable}\label{wxwindowenable} - -\func{virtual void}{Enable}{\param{const bool}{ enable}} - -Enable or disable the window for user input. - -\wxheading{Parameters} - -\docparam{enable}{If TRUE, enables the window for input. If FALSE, disables the window.} - -\wxheading{See also} - -\helpref{wxWindow::IsEnabled}{wxwindowisenabled} - -\membersection{wxWindow::FindFocus}\label{wxwindowfindfocus} - -\func{static wxWindow*}{FindFocus}{\void} - -Finds the window or control which currently has the keyboard focus. - -\wxheading{Remarks} - -Note that this is a static function, so it can be called without needing a wxWindow pointer. - -\wxheading{See also} - -\helpref{wxWindow::SetFocus}{wxwindowsetfocus} - -\membersection{wxWindow::FindWindow}\label{wxwindowfindwindow} - -\func{wxWindow*}{FindWindow}{\param{long}{ id}} - -Find a child of this window, by identifier. - -\func{wxWindow*}{FindWindow}{\param{const wxString\&}{ name}} - -Find a child of this window, by name. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{FindWindowById(id)}}{Accepts an integer} -\twocolitem{\bf{FindWindowByName(name)}}{Accepts a string} -\end{twocollist}} -} - -\membersection{wxWindow::Fit}\label{wxwindowfit} - -\func{virtual void}{Fit}{\void} - -Sizes the window so that it fits around its subwindows. - -\membersection{wxWindow::GetBackgroundColour}\label{wxwindowgetbackgroundcolour} - -\constfunc{virtual wxColour}{GetBackgroundColour}{\void} - -Returns the background colour of the window. - -\wxheading{See also} - -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp -\helpref{wxWindow::OnEraseBackground}{wxwindowonerasebackground} - -\membersection{wxWindow::GetCharHeight} - -\constfunc{virtual int}{GetCharHeight}{\void} - -Returns the character height for this window. - -\membersection{wxWindow::GetCharWidth} - -\constfunc{virtual int}{GetCharWidth}{\void} - -Returns the average character width for this window. - -\membersection{wxWindow::GetChildren} - -\func{wxList\&}{GetChildren}{\void} - -Returns a reference to the list of the window's children. - -\membersection{wxWindow::GetClientSize}\label{wxwindowgetclientsize} - -\constfunc{virtual void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}} - -\constfunc{virtual wxSize}{GetClientSize}{\void} - -This gets the size of the window `client area' in pixels. The client area is the -area which may be drawn on by the programmer, excluding title bar, border etc. - -\wxheading{Parameters} - -\docparam{width}{Receives the client width in pixels.} - -\docparam{height}{Receives the client height in pixels.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{wxGetClientSizeTuple()}}{Returns a 2-tuple of (width, height)} -\twocolitem{\bf{wxGetClientSize()}}{Returns a wxSize object} -\end{twocollist}} -} - -\membersection{wxWindow::GetConstraints}\label{wxwindowgetconstraints} - -\constfunc{wxLayoutConstraints*}{GetConstraints}{\void} - -Returns a pointer to the window's layout constraints, or NULL if there are none. - -\membersection{wxWindow::GetDefaultItem}\label{wxwindowgetdefaultitem} - -\constfunc{wxButton*}{GetDefaultItem}{\void} - -Returns a pointer to the button which is the default for this window, or NULL. - -\membersection{wxWindow::GetDropTarget}\label{wxwindowgetdroptarget} - -\constfunc{wxDropTarget*}{GetDropTarget}{\void} - -Returns the associated drop target, which may be NULL. - -\wxheading{See also} - -\helpref{wxWindow::SetDropTarget}{wxwindowsetdroptarget}, -\helpref{Drag and drop overview}{wxdndoverview} - -\membersection{wxWindow::GetEventHandler}\label{wxwindowgeteventhandler} - -\constfunc{wxEvtHandler*}{GetEventHandler}{\void} - -Returns the event handler for this window. By default, the window is its -own event handler. - -\wxheading{See also} - -\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler}\rtfsp - -\membersection{wxWindow::GetFont}\label{wxwindowgetfont} - -\constfunc{wxFont\&}{GetFont}{\void} - -Returns a reference to the font for this window. - -\wxheading{See also} - -\helpref{wxWindow::SetFont}{wxwindowsetfont} - -\membersection{wxWindow::GetForegroundColour}\label{wxwindowgetforegroundcolour} - -\func{virtual wxColour}{GetForegroundColour}{\void} - -Returns the foreground colour of the window. - -\wxheading{Remarks} - -The interpretation of foreground colour is open to interpretation according -to the window class; it may be the text colour or other colour, or it may not -be used at all. - -\wxheading{See also} - -\helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour} - -\membersection{wxWindow::GetGrandParent} - -\constfunc{wxWindow*}{GetGrandParent}{\void} - -Returns the grandparent of a window, or NULL if there isn't one. - -\membersection{wxWindow::GetHandle} - -\constfunc{void*}{GetHandle}{\void} - -Returns the platform-specific handle of the physical window. Cast it to an appropriate -handle, such as {\bf HWND} for Windows, {\bf Widget} for Motif or {\bf GtkWidget} for GTK. - -\membersection{wxWindow::GetId}\label{wxwindowgetid} - -\constfunc{int}{GetId}{\void} - -Returns the identifier of the window. - -\wxheading{Remarks} - -Each window has an integer identifier. If the application has not provided one -(or the default Id -1) an unique identifier with a negative value will be generated. - -\wxheading{See also} - -\helpref{wxWindow::SetId}{wxwindowsetid}\rtfsp -\helpref{Window identifiers}{windowids} - -\membersection{wxWindow::GetPosition} - -\constfunc{virtual void}{GetPosition}{\param{int* }{x}, \param{int* }{y}} - -This gets the position of the window in pixels, relative to the parent window or -if no parent, relative to the whole display. - -\wxheading{Parameters} - -\docparam{x}{Receives the x position of the window.} - -\docparam{y}{Receives the y position of the window.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetPosition()}}{Returns a wxPoint} -\twocolitem{\bf{GetPositionTuple()}}{Returns a tuple (x, y)} -\end{twocollist}} -} - -\membersection{wxWindow::GetLabel} - -\constfunc{virtual wxString }{GetLabel}{\void} - -Generic way of getting a label from any window, for -identification purposes. - -\wxheading{Remarks} - -The interpretation of this function differs from class to class. -For frames and dialogs, the value returned is the title. For buttons or static text controls, it is -the button text. This function can be useful for meta-programs (such as testing -tools or special-needs access programs) which need to identify windows -by name. - -\membersection{wxWindow::GetName}\label{wxwindowgetname} - -\constfunc{virtual wxString }{GetName}{\void} - -Returns the window's name. - -\wxheading{Remarks} - -This name is not guaranteed to be unique; it is up to the programmer to supply an appropriate -name in the window constructor or via \helpref{wxWindow::SetName}{wxwindowsetname}. - -\wxheading{See also} - -\helpref{wxWindow::SetName}{wxwindowsetname} - -\membersection{wxWindow::GetParent} - -\constfunc{virtual wxWindow*}{GetParent}{\void} - -Returns the parent of the window, or NULL if there is no parent. - -\membersection{wxWindow::GetRect}\label{wxwindowgetrect} - -\constfunc{virtual wxRect}{GetRect}{\void} - -Returns the size and position of the window as a \helpref{wxRect}{wxrect} object. - -\membersection{wxWindow::GetScrollThumb}\label{wxwindowgetscrollthumb} - -\func{virtual int}{GetScrollThumb}{\param{int }{orientation}} - -Returns the built-in scrollbar thumb size. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} - -\membersection{wxWindow::GetScrollPos}\label{wxwindowgetscrollpos} - -\func{virtual int}{GetScrollPos}{\param{int }{orientation}} - -Returns the built-in scrollbar position. - -\wxheading{See also} - -See \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} - -\membersection{wxWindow::GetScrollRange}\label{wxwindowgetscrollrange} - -\func{virtual int}{GetScrollRange}{\param{int }{orientation}} - -Returns the built-in scrollbar range. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} - -\membersection{wxWindow::GetSize}\label{wxwindowgetsize} - -\constfunc{virtual void}{GetSize}{\param{int* }{width}, \param{int* }{height}} - -\constfunc{virtual wxSize}{GetSize}{\void} - -This gets the size of the entire window in pixels. - -\wxheading{Parameters} - -\docparam{width}{Receives the window width.} - -\docparam{height}{Receives the window height.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetSize()}}{Returns a wxSize} -\twocolitem{\bf{GetSizeTuple()}}{Returns a 2-tuple (width, height)} -\end{twocollist}} -} - -\membersection{wxWindow::GetTextExtent} - -\constfunc{virtual void}{GetTextExtent}{\param{const wxString\& }{string}, \param{int* }{x}, \param{int* }{y}, - \param{int* }{descent = NULL}, \param{int* }{externalLeading = NULL}, - \param{const wxFont* }{font = NULL}, \param{const bool}{ use16 = FALSE}} - -Gets the dimensions of the string as it would be drawn on the -window with the currently selected font. - -\wxheading{Parameters} - -\docparam{string}{String whose extent is to be measured.} - -\docparam{x}{Return value for width.} - -\docparam{y}{Return value for height.} - -\docparam{descent}{Return value for descent (optional).} - -\docparam{externalLeading}{Return value for external leading (optional).} - -\docparam{font}{Font to use instead of the current window font (optional).} - -\docparam{use16}{If TRUE, {\it string} contains 16-bit characters. The default is FALSE.} - - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{GetTextExtent(string)}}{Returns a 2-tuple, (width, height)} -\twocolitem{\bf{GetFullTextExtent(string, font=NULL)}}{Returns a -4-tuple, (width, height, descent, externalLeading) } -\end{twocollist}} -} - - -\membersection{wxWindow::GetTitle}\label{wxwindowgettitle} - -\func{virtual wxString}{GetTitle}{\void} - -Gets the window's title. Applicable only to frames and dialogs. - -\wxheading{See also} - -\helpref{wxWindow::SetTitle}{wxwindowsettitle} - -\membersection{wxWindow::GetUpdateRegion}\label{wxwindowgetupdateregion} - -\constfunc{virtual wxRegion}{GetUpdateRegion}{\void} - -Returns the region specifying which parts of the window have been damaged. Should -only be called within an \helpref{OnPaint}{wxwindowonpaint} event handler. - -\wxheading{See also} - -\helpref{wxRegion}{wxregion}, \helpref{wxRegionIterator}{wxregioniterator}, \helpref{wxWindow::OnPaint}{wxwindowonpaint} - -\membersection{wxWindow::GetValidator}\label{wxwindowgetvalidator} - -\constfunc{wxValidator*}{GetValidator}{\void} - -Returns a pointer to the current validator for the window, or NULL if there is none. - -\membersection{wxWindow::GetWindowStyleFlag} - -\constfunc{long}{GetWindowStyleFlag}{\void} - -Gets the window style that was passed to the consructor or {\bf Create} member. -{\bf GetWindowStyle} is synonymous. - -\membersection{wxWindow::InitDialog}\label{wxwindowinitdialog} - -\func{void}{InitDialog}{\void} - -Sends an \helpref{wxWindow::OnInitDialog}{wxwindowoninitdialog} event, which -in turn transfers data to the dialog via validators. - -\wxheading{See also} - -\helpref{wxWindow::OnInitDialog}{wxwindowoninitdialog} - -\membersection{wxWindow::IsEnabled}\label{wxwindowisenabled} - -\constfunc{virtual bool}{IsEnabled}{\void} - -Returns TRUE if the window is enabled for input, FALSE otherwise. - -\wxheading{See also} - -\helpref{wxWindow::Enable}{wxwindowenable} - -\membersection{wxWindow:IsExposed}\label{wxwindowisexposed} - -\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}} - -\constfunc{bool}{IsExposed}{\param{wxPoint }{&pt}} - -\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}, \param{int }{w}, \param{int }{h}} - -\constfunc{bool}{IsExposed}{\param{wxRect }{&rect}} - -Returns TRUE if the given point or rectange area has been exposed since the -last repaint. Call this in an paint event handler to optimize redrawing by -only redrawing those area, which have been exposed. - -\membersection{wxWindow::IsRetained}\label{wxwindowisretained} - -\constfunc{virtual bool}{IsRetained}{\void} - -Returns TRUE if the window is retained, FALSE otherwise. - -\wxheading{Remarks} - -Retained windows are only available on X platforms. - -\membersection{wxWindow::IsShown}\label{wxwindowisshown} - -\constfunc{virtual bool}{IsShown}{\void} - -Returns TRUE if the window is shown, FALSE if it has been hidden. - -\membersection{wxWindow::IsTopLevel}\label{wxwindowistoplevel} - -\constfunc{bool}{IsTopLevel}{\void} - -Returns TRUE if the given window is a top-level one. Currently all frames and -dialogs are considered to be top-level windows (even if they have a parent -window). - -\membersection{wxWindow::Layout}\label{wxwindowlayout} - -\func{void}{Layout}{\void} - -Invokes the constraint-based layout algorithm or the sizer-based algorithm -for this window. - -See \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} on when -this function gets called automatically using auto layout. - -\membersection{wxWindow::LoadFromResource}\label{wxwindowloadfromresource} - -\func{virtual bool}{LoadFromResource}{\param{wxWindow* }{parent},\rtfsp -\param{const wxString\& }{resourceName}, \param{const wxResourceTable* }{resourceTable = NULL}} - -Loads a panel or dialog from a resource file. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{resourceName}{The name of the resource to load.} - -\docparam{resourceTable}{The resource table to load it from. If this is NULL, the -default resource table will be used.} - -\wxheading{Return value} - -TRUE if the operation succeeded, otherwise FALSE. - -\membersection{wxWindow::Lower}\label{wxwindowlower} - -\func{void}{Lower}{\void} - -Lowers the window to the bottom of the window hierarchy if it is a managed window (dialog -or frame). - -\membersection{wxWindow::MakeModal}\label{wxwindowmakemodal} - -\func{virtual void}{MakeModal}{\param{const bool }{flag}} - -Disables all other windows in the application so that -the user can only interact with this window. (This function -is not implemented anywhere). - -\wxheading{Parameters} - -\docparam{flag}{If TRUE, this call disables all other windows in the application so that -the user can only interact with this window. If FALSE, the effect is reversed.} - -\membersection{wxWindow::Move}\label{wxwindowmove} - -\func{void}{Move}{\param{int}{ x}, \param{int}{ y}} - -\func{void}{Move}{\param{const wxPoint\&}{ pt}} - -Moves the window to the given position. - -\wxheading{Parameters} - -\docparam{x}{Required x position.} - -\docparam{y}{Required y position.} - -\docparam{pt}{\helpref{wxPoint}{wxpoint} object representing the position.} - -\wxheading{Remarks} - -Implementations of SetSize can also implicitly implement the -wxWindow::Move function, which is defined in the base wxWindow class -as the call: - -\begin{verbatim} - SetSize(x, y, -1, -1, wxSIZE_USE_EXISTING); -\end{verbatim} - -\wxheading{See also} - -\helpref{wxWindow::SetSize}{wxwindowsetsize} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{Move(point)}}{Accepts a wxPoint} -\twocolitem{\bf{MoveXY(x, y)}}{Accepts a pair of integers} -\end{twocollist}} -} - -\membersection{wxWindow::OnActivate}\label{wxwindowonactivate} - -\func{void}{OnActivate}{\param{wxActivateEvent\&}{ event}} - -Called when a window is activated or deactivated. - -\wxheading{Parameters} - -\docparam{event}{Object containing activation information.} - -\wxheading{Remarks} - -If the window is being activated, \helpref{wxActivateEvent::GetActive}{wxactivateeventgetactive} returns TRUE, -otherwise it returns FALSE (it is being deactivated). - -\wxheading{See also} - -\helpref{wxActivateEvent}{wxactivateevent},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnChar}\label{wxwindowonchar} - -\func{void}{OnChar}{\param{wxKeyEvent\&}{ event}} - -Called when the user has pressed a key that is not a modifier (SHIFT, CONTROL or ALT). - -\wxheading{Parameters} - -\docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -details about this class.} - -\wxheading{Remarks} - -This member function is called in response to a keypress. To intercept this event, -use the EVT\_CHAR macro in an event table definition. Your {\bf OnChar} handler may call this -default function to achieve default keypress functionality. - -Note that the ASCII values do not have explicit key codes: they are passed as ASCII -values. - -Note that not all keypresses can be intercepted this way. If you wish to intercept modifier -keypresses, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or -\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}. - -Most, but not all, windows allow keypresses to be intercepted. - -\wxheading{See also} - -\helpref{wxWindow::OnKeyDown}{wxwindowonkeydown}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp -\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnCharHook}\label{wxwindowoncharhook} - -\func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}} - -This member is called to allow the window to intercept keyboard events -before they are processed by child windows. - -\wxheading{Parameters} - -\docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -details about this class.} - -\wxheading{Remarks} - -This member function is called in response to a keypress, if the window is active. To intercept this event, -use the EVT\_CHAR\_HOOK macro in an event table definition. If you do not process a particular -keypress, call \helpref{wxEvent::Skip}{wxeventskip} to allow default processing. - -An example of using this function is in the implementation of escape-character processing for wxDialog, -where pressing ESC dismisses the dialog by {\bf OnCharHook} 'forging' a cancel button press event. - -Note that the ASCII values do not have explicit key codes: they are passed as ASCII -values. - -This function is only relevant to top-level windows (frames and dialogs), and under -Windows only. Under GTK the normal EVT\_CHAR\_ event has the functionality, i.e. -you can intercepts it and if you don't call \helpref{wxEvent::Skip}{wxeventskip} -the window won't get the event. - -\wxheading{See also} - -\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -\helpref{wxApp::OnCharHook}{wxapponcharhook},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnCommand}\label{wxwindowoncommand} - -\func{virtual void}{OnCommand}{\param{wxEvtHandler\& }{object}, \param{wxCommandEvent\& }{event}} - -This virtual member function is called if the control does not handle the command event. - -\wxheading{Parameters} - -\docparam{object}{Object receiving the command event.} - -\docparam{event}{Command event} - -\wxheading{Remarks} - -This virtual function is provided mainly for backward compatibility. You can also intercept commands -from child controls by using an event table, with identifiers or identifier ranges to identify -the control(s) in question. - -\wxheading{See also} - -\helpref{wxCommandEvent}{wxcommandevent},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnClose}\label{wxwindowonclose} - -\func{virtual bool}{OnClose}{\void} - -Called when the user has tried to close a a frame -or dialog box using the window manager (X) or system menu (Windows). - -{\bf Note:} This is an obsolete function. -It is superceded by the \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} event -handler. - -\wxheading{Return value} - -If TRUE is returned by OnClose, the window will be deleted by the system, otherwise the -attempt will be ignored. Do not delete the window from within this handler, although -you may delete other windows. - -\wxheading{See also} - -\helpref{Window deletion overview}{windowdeletionoverview},\rtfsp -\helpref{wxWindow::Close}{wxwindowclose},\rtfsp -\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent} - -\membersection{wxWindow::OnCloseWindow}\label{wxwindowonclosewindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\& }{event}} - -This is an event handler function called when the user has tried to close a a frame -or dialog box using the window manager (X) or system menu (Windows). It is -called via the \helpref{wxWindow::Close}{wxwindowclose} function, so -that the application can also invoke the handler programmatically. - -Use the EVT\_CLOSE event table macro to handle close events. - -You should check whether the application is forcing the deletion of the window -using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE, -destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}. -If not, it is up to you whether you respond by destroying the window. - -(Note: GetForce is now superceded by CanVeto. So to test whether forced destruction of -the window is required, test for the negative of CanVeto. If CanVeto returns FALSE, -it is not possible to skip window deletion.) - -If you don't destroy the window, you should call \helpref{wxCloseEvent::Veto}{wxcloseeventveto} to -let the calling code know that you did not destroy the window. This allows the \helpref{wxWindow::Close}{wxwindowclose} function -to return TRUE or FALSE depending on whether the close instruction was honoured or not. - -\wxheading{Remarks} - -The \helpref{wxWindow::OnClose}{wxwindowonclose} virtual function remains -for backward compatibility with earlier versions of wxWindows. The -default {\bf OnCloseWindow} handler for wxFrame and wxDialog will call {\bf OnClose}, -destroying the window if it returns TRUE or if the close is being forced. - -\wxheading{See also} - -\helpref{Window deletion overview}{windowdeletionoverview},\rtfsp -\helpref{wxWindow::Close}{wxwindowclose},\rtfsp -\helpref{wxWindow::OnClose}{wxwindowonclose},\rtfsp -\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent},\rtfsp -\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp -\helpref{wxApp::OnEndSession}{wxapponendsession} - -\membersection{wxWindow::OnDropFiles}\label{wxwindowondropfiles} - -\func{void}{OnDropFiles}{\param{wxDropFilesEvent\&}{ event}} - -Called when files have been dragged from the file manager to the window. - -\wxheading{Parameters} - -\docparam{event}{Drop files event. For more information, see \helpref{wxDropFilesEvent}{wxdropfilesevent}.} - -\wxheading{Remarks} - -The window must have previously been enabled for dropping by calling -\rtfsp\helpref{wxWindow::DragAcceptFiles}{wxwindowdragacceptfiles}. - -This event is only generated under Windows. - -To intercept this event, use the EVT\_DROP\_FILES macro in an event table definition. - -\wxheading{See also} - -\helpref{wxDropFilesEvent}{wxdropfilesevent}, \helpref{wxWindow::DragAcceptFiles}{wxwindowdragacceptfiles},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnEraseBackground}\label{wxwindowonerasebackground} - -\func{void}{OnEraseBackground}{\param{wxEraseEvent\&}{ event}} - -Called when the background of the window needs to be erased. - -\wxheading{Parameters} - -\docparam{event}{Erase background event. For more information, see \helpref{wxEraseEvent}{wxeraseevent}.} - -\wxheading{Remarks} - -This event is only generated under Windows. It is therefore recommended that -you set the text background colour explicitly in order to prevent flicker. -The default background colour under GTK is grey. - -To intercept this event, use the EVT\_ERASE\_BACKGROUND macro in an event table definition. - -\wxheading{See also} - -\helpref{wxEraseEvent}{wxeraseevent}, \helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnKeyDown}\label{wxwindowonkeydown} - -\func{void}{OnKeyDown}{\param{wxKeyEvent\&}{ event}} - -Called when the user has pressed a key, before it is translated into an ASCII value using other -modifier keys that might be pressed at the same time. - -\wxheading{Parameters} - -\docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -details about this class.} - -\wxheading{Remarks} - -This member function is called in response to a key down event. To intercept this event, -use the EVT\_KEY\_DOWN macro in an event table definition. Your {\bf OnKeyDown} handler may call this -default function to achieve default keypress functionality. - -Note that not all keypresses can be intercepted this way. If you wish to intercept special -keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or -\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}. - -Most, but not all, windows allow keypresses to be intercepted. - -\wxheading{See also} - -\helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp -\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnKeyUp}\label{wxwindowonkeyup} - -\func{void}{OnKeyUp}{\param{wxKeyEvent\&}{ event}} - -Called when the user has released a key. - -\wxheading{Parameters} - -\docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -details about this class.} - -\wxheading{Remarks} - -This member function is called in response to a key up event. To intercept this event, -use the EVT\_KEY\_UP macro in an event table definition. Your {\bf OnKeyUp} handler may call this -default function to achieve default keypress functionality. - -Note that not all keypresses can be intercepted this way. If you wish to intercept special -keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or -\helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}. - -Most, but not all, windows allow key up events to be intercepted. - -\wxheading{See also} - -\helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown},\rtfsp -\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnKillFocus}\label{wxwindowonkillfocus} - -\func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}} - -Called when a window's focus is being killed. - -\wxheading{Parameters} - -\docparam{event}{The focus event. For more information, see \helpref{wxFocusEvent}{wxfocusevent}.} - -\wxheading{Remarks} - -To intercept this event, use the macro EVT\_KILL\_FOCUS in an event table definition. - -Most, but not all, windows respond to this event. - -\wxheading{See also} - -\helpref{wxFocusEvent}{wxfocusevent}, \helpref{wxWindow::OnSetFocus}{wxwindowonsetfocus},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnIdle}\label{wxwindowonidle} - -\func{void}{OnIdle}{\param{wxIdleEvent\& }{event}} - -Provide this member function for any processing which needs to be done -when the application is idle. - -\wxheading{See also} - -\helpref{wxApp::OnIdle}{wxapponidle}, \helpref{wxIdleEvent}{wxidleevent} - -\membersection{wxWindow::OnInitDialog}\label{wxwindowoninitdialog} - -\func{void}{OnInitDialog}{\param{wxInitDialogEvent\&}{ event}} - -Default handler for the wxEVT\_INIT\_DIALOG event. Calls \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}. - -\wxheading{Parameters} - -\docparam{event}{Dialog initialisation event.} - -\wxheading{Remarks} - -Gives the window the default behaviour of transferring data to child controls via -the validator that each control has. - -\wxheading{See also} - -\helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow} - -\membersection{wxWindow::OnMenuCommand}\label{wxwindowonmenucommand} - -\func{void}{OnMenuCommand}{\param{wxCommandEvent\& }{event}} - -Called when a menu command is received from a menu bar. - -\wxheading{Parameters} - -\docparam{event}{The menu command event. For more information, see \helpref{wxCommandEvent}{wxcommandevent}.} - -\wxheading{Remarks} - -A function with this name doesn't actually exist; you can choose any member function to receive -menu command events, using the EVT\_COMMAND macro for individual commands or EVT\_COMMAND\_RANGE for -a range of commands. - -\wxheading{See also} - -\helpref{wxCommandEvent}{wxcommandevent},\rtfsp -\helpref{wxWindow::OnMenuHighlight}{wxwindowonmenuhighlight},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnMenuHighlight}\label{wxwindowonmenuhighlight} - -\func{void}{OnMenuHighlight}{\param{wxMenuEvent\& }{event}} - -Called when a menu select is received from a menu bar: that is, the -mouse cursor is over a menu item, but the left mouse button has not been -pressed. - -\wxheading{Parameters} - -\docparam{event}{The menu highlight event. For more information, see \helpref{wxMenuEvent}{wxmenuevent}.} - -\wxheading{Remarks} - -You can choose any member function to receive -menu select events, using the EVT\_MENU\_HIGHLIGHT macro for individual menu items or EVT\_MENU\_HIGHLIGHT\_ALL macro -for all menu items. - -The default implementation for \helpref{wxFrame::OnMenuHighlight}{wxframeonmenuhighlight} displays help -text in the first field of the status bar. - -This function was known as {\bf OnMenuSelect} in earlier versions of wxWindows, but this was confusing -since a selection is normally a left-click action. - -\wxheading{See also} - -\helpref{wxMenuEvent}{wxmenuevent},\rtfsp -\helpref{wxWindow::OnMenuCommand}{wxwindowonmenucommand},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - - -\membersection{wxWindow::OnMouseEvent}\label{wxwindowonmouseevent} - -\func{void}{OnMouseEvent}{\param{wxMouseEvent\&}{ event}} - -Called when the user has initiated an event with the -mouse. - -\wxheading{Parameters} - -\docparam{event}{The mouse event. See \helpref{wxMouseEvent}{wxmouseevent} for -more details.} - -\wxheading{Remarks} - -Most, but not all, windows respond to this event. - -To intercept this event, use the EVT\_MOUSE\_EVENTS macro in an event table definition, or individual -mouse event macros such as EVT\_LEFT\_DOWN. - -\wxheading{See also} - -\helpref{wxMouseEvent}{wxmouseevent},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnMove}\label{wxwindowonmove} - -\func{void}{OnMove}{\param{wxMoveEvent\& }{event}} - -Called when a window is moved. - -\wxheading{Parameters} - -\docparam{event}{The move event. For more information, see \helpref{wxMoveEvent}{wxmoveevent}.} - -\wxheading{Remarks} - -Use the EVT\_MOVE macro to intercept move events. - -\wxheading{Remarks} - -Not currently implemented. - -\wxheading{See also} - -\helpref{wxMoveEvent}{wxmoveevent},\rtfsp -\helpref{wxFrame::OnSize}{wxframeonsize},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnPaint}\label{wxwindowonpaint} - -\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} - -Sent to the event handler when the window must be refreshed. - -\wxheading{Parameters} - -\docparam{event}{Paint event. For more information, see \helpref{wxPaintEvent}{wxpaintevent}.} - -\wxheading{Remarks} - -Use the EVT\_PAINT macro in an event table definition to intercept paint events. - -In a paint event handler, the application should always create a \helpref{wxPaintDC}{wxpaintdc} object. - -For example: - -\small{% -\begin{verbatim} - void MyWindow::OnPaint(wxPaintEvent& event) - { - wxPaintDC dc(this); - - DrawMyDocument(dc); - } -\end{verbatim} -}% - -You can optimize painting by retrieving the rectangles -that have been damaged and only repainting these. The rectangles are in -terms of the client area, and are unscrolled, so you will need to do -some calculations using the current view position to obtain logical, -scrolled units. - -Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class: - -{\small% -\begin{verbatim} -// Called when window needs to be repainted. -void MyWindow::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - // Find Out where the window is scrolled to - int vbX,vbY; // Top left corner of client - ViewStart(&vbX,&vbY); - - int vX,vY,vW,vH; // Dimensions of client area in pixels - wxRegionIterator upd(GetUpdateRegion()); // get the update rect list - - while (upd) - { - vX = upd.GetX(); - vY = upd.GetY(); - vW = upd.GetW(); - vH = upd.GetH(); - - // Alternatively we can do this: - // wxRect rect; - // upd.GetRect(&rect); - - // Repaint this rectangle - ...some code... - - upd ++ ; - } -} -\end{verbatim} -}% - -\wxheading{See also} - -\helpref{wxPaintEvent}{wxpaintevent},\rtfsp -\helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnScroll}\label{wxwindowonscroll} - -\func{void}{OnScroll}{\param{wxScrollWinEvent\& }{event}} - -Called when a scroll window event is received from one of the window's built-in scrollbars. - -\wxheading{Parameters} - -\docparam{event}{Command event. Retrieve the new scroll position by -calling \helpref{wxScrollEvent::GetPosition}{wxscrolleventgetposition}, and the -scrollbar orientation by calling \helpref{wxScrollEvent::GetOrientation}{wxscrolleventgetorientation}.} - -\wxheading{Remarks} - -Note that it is not possible to distinguish between horizontal and vertical scrollbars -until the function is executing (you can't have one function for vertical, another -for horizontal events). - -\wxheading{See also} - -\helpref{wxScrollWinEvent}{wxscrollwinevent},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnSetFocus}\label{wxwindowonsetfocus} - -\func{void}{OnSetFocus}{\param{wxFocusEvent\& }{event}} - -Called when a window's focus is being set. - -\wxheading{Parameters} - -\docparam{event}{The focus event. For more information, see \helpref{wxFocusEvent}{wxfocusevent}.} - -\wxheading{Remarks} - -To intercept this event, use the macro EVT\_SET\_FOCUS in an event table definition. - -Most, but not all, windows respond to this event. - -\wxheading{See also} - -\helpref{wxFocusEvent}{wxfocusevent}, \helpref{wxWindow::OnKillFocus}{wxwindowonkillfocus},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnSize}\label{wxwindowonsize} - -\func{void}{OnSize}{\param{wxSizeEvent\& }{event}} - -Called when the window has been resized. - -\wxheading{Parameters} - -\docparam{event}{Size event. For more information, see \helpref{wxSizeEvent}{wxsizeevent}.} - -\wxheading{Remarks} - -You may wish to use this for frames to resize their child windows as appropriate. - -Note that the size passed is of -the whole window: call \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} for the area which may be -used by the application. - -\wxheading{See also} - -\helpref{wxSizeEvent}{wxsizeevent},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::OnSysColourChanged}\label{wxwindowonsyscolourchanged} - -\func{void}{OnSysColourChanged}{\param{wxOnSysColourChangedEvent\& }{event}} - -Called when the user has changed the system colours. Windows only. - -\wxheading{Parameters} - -\docparam{event}{System colour change event. For more information, see \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}.} - -\wxheading{See also} - -\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\membersection{wxWindow::PopEventHandler}\label{wxwindowpopeventhandler} - -\constfunc{wxEvtHandler*}{PopEventHandler}{\param{bool }{deleteHandler = FALSE}} - -Removes and returns the top-most event handler on the event handler stack. - -\wxheading{Parameters} - -\docparam{deleteHandler}{If this is TRUE, the handler will be deleted after it is removed. The -default value is FALSE.} - -\wxheading{See also} - -\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp -\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler}\rtfsp - -\membersection{wxWindow::PopupMenu}\label{wxwindowpopupmenu} - -\func{bool}{PopupMenu}{\param{wxMenu* }{menu}, \param{const wxPoint& }{pos}} - -\func{bool}{PopupMenu}{\param{wxMenu* }{menu}, \param{int }{x}, \param{int }{y}} - -Pops up the given menu at the specified coordinates, relative to this -window, and returns control when the user has dismissed the menu. If a -menu item is selected, the corresponding menu event is generated and will be -processed as usually. - -\wxheading{Parameters} - -\docparam{menu}{Menu to pop up.} - -\docparam{pos}{The position where the menu will appear.} - -\docparam{x}{Required x position for the menu to appear.} - -\docparam{y}{Required y position for the menu to appear.} - -\wxheading{See also} - -\helpref{wxMenu}{wxmenu} - -\wxheading{Remarks} - -Just before the menu is popped up, \helpref{wxMenu::UpdateUI}{wxmenuupdateui} is called -to ensure that the menu items are in the correct state. The menu does not get deleted -by the window. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{PopupMenu(menu, point)}}{Specifies position with a wxPoint} -\twocolitem{\bf{PopupMenuXY(menu, x, y)}}{Specifies position with two integers (x, y)} -\end{twocollist}} -} - -\membersection{wxWindow::PushEventHandler}\label{wxwindowpusheventhandler} - -\func{void}{PushEventHandler}{\param{wxEvtHandler* }{handler}} - -Pushes this event handler onto the event stack for the window. - -\wxheading{Parameters} - -\docparam{handler}{Specifies the handler to be pushed.} - -\wxheading{Remarks} - -An event handler is an object that is capable of processing the events -sent to a window. By default, the window is its own event handler, but -an application may wish to substitute another, for example to allow -central implementation of event-handling for a variety of different -window classes. - -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} allows -an application to set up a chain of event handlers, where an event not handled by one event handler is -handed to the next one in the chain. Use \helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} to -remove the event handler. - -\wxheading{See also} - -\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp -\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler} - -\membersection{wxWindow::Raise}\label{wxwindowraise} - -\func{void}{Raise}{\void} - -Raises the window to the top of the window hierarchy if it is a managed window (dialog -or frame). - -\membersection{wxWindow::Refresh}\label{wxwindowrefresh} - -\func{virtual void}{Refresh}{\param{const bool}{ eraseBackground = TRUE}, \param{const wxRect* }{rect -= NULL}} - -Causes a message or event to be generated to repaint the -window. - -\wxheading{Parameters} - -\docparam{eraseBackground}{If TRUE, the background will be -erased.} - -\docparam{rect}{If non-NULL, only the given rectangle will -be treated as damaged.} - -\membersection{wxWindow::ReleaseMouse}\label{wxwindowreleasemouse} - -\func{virtual void}{ReleaseMouse}{\void} - -Releases mouse input captured with \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}. - -\wxheading{See also} - -\helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse} - -\membersection{wxWindow::RemoveChild}\label{wxwindowremovechild} - -\func{virtual void}{RemoveChild}{\param{wxWindow* }{child}} - -Removes a child window. This is called automatically by window deletion -functions so should not be required by the application programmer. - -\wxheading{Parameters} - -\docparam{child}{Child window to remove.} - -\membersection{wxWindow::Reparent}\label{wxwindowreparent} - -\func{virtual bool}{Reparent}{\param{wxWindow* }{newParent}} - -Reparents the window, i.e the window will be removed from its -current parent window (e.g. a non-standard toolbar in a wxFrame) -and then re-inserted into another (e.g. a wxMiniFrame for a -floating toolbar). Available on Windows and GTK+. - -\wxheading{Parameters} - -\docparam{newParent}{New parent.} - -\membersection{wxWindow::ScreenToClient}\label{wxwindowscreentoclient} - -\constfunc{virtual void}{ScreenToClient}{\param{int* }{x}, \param{int* }{y}} - -\constfunc{virtual wxPoint}{ScreenToClient}{\param{const wxPoint\& }{pt}} - -Converts from screen to client window coordinates. - -\wxheading{Parameters} - -\docparam{x}{Stores the screen x coordinate and receives the client x coordinate.} - -\docparam{y}{Stores the screen x coordinate and receives the client x coordinate.} - -\docparam{pt}{The screen position for the second form of the function.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{ScreenToClient(point)}}{Accepts and returns a wxPoint} -\twocolitem{\bf{ScreenToClientXY(x, y)}}{Returns a 2-tuple, (x, y)} -\end{twocollist}} -} - - -\membersection{wxWindow::ScrollWindow}\label{wxwindowscrollwindow} - -\func{virtual void}{ScrollWindow}{\param{int }{dx}, \param{int }{dy}, \param{const wxRect*}{ rect = NULL}} - -Physically scrolls the pixels in the window and move child windows accordingly. - -\wxheading{Parameters} - -\docparam{dx}{Amount to scroll horizontally.} - -\docparam{dy}{Amount to scroll vertically.} - -\docparam{rect}{Rectangle to invalidate. If this is NULL, the whole window is invalidated. If you -pass a rectangle corresponding to the area of the window exposed by the scroll, your painting handler -can optimise painting by checking for the invalidated region. This paramter is ignored under GTK, -instead the regions to be invalidated are calculated automatically. } - -\wxheading{Remarks} - -Use this function to optimise your scrolling implementations, to minimise the area that must be -redrawn. Note that it is rarely required to call this function from a user program. - -\membersection{wxWindow::SetAcceleratorTable}\label{wxwindowsetacceleratortable} - -\func{virtual void}{SetAcceleratorTable}{\param{const wxAcceleratorTable\&}{ accel}} - -Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}. - -\membersection{wxWindow::SetAutoLayout}\label{wxwindowsetautolayout} - -\func{void}{SetAutoLayout}{\param{const bool}{ autoLayout}} - -Determines whether the \helpref{wxWindow::Layout}{wxwindowlayout} function will -be called automatically when the window is resized. Use in connection with -\helpref{wxWindow::SetSizer}{wxwindowsetsizer} and -\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} for layouting subwindows. - -\wxheading{Parameters} - -\docparam{autoLayout}{Set this to TRUE if you wish the Layout function to be called -from within wxWindow::OnSize functions.} - -\wxheading{Remarks} - -Note that this function is actually disabled for wxWindow and only indirectly -takes affect for children of wxDialog, wxFrame, wxNotebook and wxSplitterWindow. - -\wxheading{See also} - -\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} - -\membersection{wxWindow::SetBackgroundColour}\label{wxwindowsetbackgroundcolour} - -\func{virtual void}{SetBackgroundColour}{\param{const wxColour\& }{colour}} - -Sets the background colour of the window. - -\wxheading{Parameters} - -\docparam{colour}{The colour to be used as the background colour.} - -\wxheading{Remarks} - -The background colour is usually painted by the default\rtfsp -\helpref{wxWindow::OnEraseBackground}{wxwindowonerasebackground} event handler function -under Windows and automatically under GTK. - -Note that setting the background colour does not cause an immediate refresh, so you -may wish to call \helpref{wxWindow::Clear}{wxwindowclear} or \helpref{wxWindow::Refresh}{wxwindowrefresh} after -calling this function. - -Note that when using this functions under GTK, you will disable the so called "themes", -i.e. the user chosen apperance of windows and controls, including the themes of -their parent windows. - -\wxheading{See also} - -\helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour},\rtfsp -\helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp -\helpref{wxWindow::Clear}{wxwindowclear},\rtfsp -\helpref{wxWindow::Refresh}{wxwindowrefresh},\rtfsp -\helpref{wxWindow::OnEraseBackground}{wxwindowonerasebackground} - -\membersection{wxWindow::SetClientSize}\label{wxwindowsetclientsize} - -\func{virtual void}{SetClientSize}{\param{int}{ width}, \param{int}{ height}} - -\func{virtual void}{SetClientSize}{\param{const wxSize\&}{ size}} - -This sets the size of the window client area in pixels. Using this function to size a window -tends to be more device-independent than \helpref{wxWindow::SetSize}{wxwindowsetsize}, since the application need not -worry about what dimensions the border or title bar have when trying to fit the window -around panel items, for example. - -\wxheading{Parameters} - -\docparam{width}{The required client area width.} - -\docparam{height}{The required client area height.} - -\docparam{size}{The required client size.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetClientSize(size)}}{Accepts a wxSize} -\twocolitem{\bf{SetClientSizeWH(width, height)}}{} -\end{twocollist}} -} - -\membersection{wxWindow::SetCursor}\label{wxwindowsetcursor} - -\func{virtual void}{SetCursor}{\param{const wxCursor\&}{cursor}} - -Sets the window's cursor. Notice that setting the cursor for this window does -not set it for its children so you'll need to explicitly call SetCursor() for -them too if you need it. - -\wxheading{Parameters} - -\docparam{cursor}{Specifies the cursor that the window should normally display.} - -\wxheading{See also} - -\helpref{::wxSetCursor}{wxsetcursor}, \helpref{wxCursor}{wxcursor} - -\membersection{wxWindow::SetEventHandler}\label{wxwindowseteventhandler} - -\func{void}{SetEventHandler}{\param{wxEvtHandler* }{handler}} - -Sets the event handler for this window. - -\wxheading{Parameters} - -\docparam{handler}{Specifies the handler to be set.} - -\wxheading{Remarks} - -An event handler is an object that is capable of processing the events -sent to a window. By default, the window is its own event handler, but -an application may wish to substitute another, for example to allow -central implementation of event-handling for a variety of different -window classes. - -It is usually better to use \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} since -this sets up a chain of event handlers, where an event not handled by one event handler is -handed to the next one in the chain. - -\wxheading{See also} - -\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler} - -\membersection{wxWindow::SetConstraints}\label{wxwindowsetconstraints} - -\func{void}{SetConstraints}{\param{wxLayoutConstraints* }{constraints}} - -Sets the window to have the given layout constraints. The window -will then own the object, and will take care of its deletion. -If an existing layout constraints object is already owned by the -window, it will be deleted. - -\wxheading{Parameters} - -\docparam{constraints}{The constraints to set. Pass NULL to disassociate and delete the window's -constraints.} - -\wxheading{Remarks} - -You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use -the constraints automatically in OnSize; otherwise, you must override OnSize and call Layout() -explicitly. When setting both a wxLayoutConstraints and a \helpref{wxSizer}{wxsizer}, only the -sizer will have effect. - -\membersection{wxWindow::SetDropTarget}\label{wxwindowsetdroptarget} - -\func{void}{SetDropTarget}{\param{wxDropTarget*}{ target}} - -Associates a drop target with this window. - -If the window already has a drop target, it is deleted. - -\wxheading{See also} - -\helpref{wxWindow::GetDropTarget}{wxwindowgetdroptarget}, -\helpref{Drag and drop overview}{wxdndoverview} - -\membersection{wxWindow::SetFocus}\label{wxwindowsetfocus} - -\func{virtual void}{SetFocus}{\void} - -This sets the window to receive keyboard input. - -\membersection{wxWindow::SetFont}\label{wxwindowsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font for this window. - -\wxheading{Parameters} - -\docparam{font}{Font to associate with this window.} - -\wxheading{See also} - -\helpref{wxWindow::GetFont}{wxwindowgetfont} - -\membersection{wxWindow::SetForegroundColour}\label{wxwindowsetforegroundcolour} - -\func{virtual void}{SetForegroundColour}{\param{const wxColour\& }{colour}} - -Sets the foreground colour of the window. - -\wxheading{Parameters} - -\docparam{colour}{The colour to be used as the foreground colour.} - -\wxheading{Remarks} - -The interpretation of foreground colour is open to interpretation according -to the window class; it may be the text colour or other colour, or it may not -be used at all. - -Note that when using this functions under GTK, you will disable the so called "themes", -i.e. the user chosen apperance of windows and controls, including the themes of -their parent windows. - -\wxheading{See also} - -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour} - -\membersection{wxWindow::SetId}\label{wxwindowsetid} - -\func{void}{SetId}{\param{int}{ id}} - -Sets the identifier of the window. - -\wxheading{Remarks} - -Each window has an integer identifier. If the application has not provided one, -an identifier will be generated. Normally, the identifier should be provided -on creation and should not be modified subsequently. - -\wxheading{See also} - -\helpref{wxWindow::GetId}{wxwindowgetid},\rtfsp -\helpref{Window identifiers}{windowids} - -\membersection{wxWindow::SetName}\label{wxwindowsetname} - -\func{virtual void}{SetName}{\param{const wxString\& }{name}} - -Sets the window's name. - -\wxheading{Parameters} - -\docparam{name}{A name to set for the window.} - -\wxheading{See also} - -\helpref{wxWindow::GetName}{wxwindowgetname} - -\membersection{wxWindow::SetPalette}\label{wxwindowsetpalette} - -\func{virtual void}{SetPalette}{\param{wxPalette* }{palette}} - -Obsolete - use \helpref{wxDC::SetPalette}{wxdcsetpalette} instead. - -\membersection{wxWindow::SetScrollbar}\label{wxwindowsetscrollbar} - -\func{virtual void}{SetScrollbar}{\param{int }{orientation}, \param{int }{position},\rtfsp -\param{int }{thumbSize}, \param{int }{range},\rtfsp -\param{const bool }{refresh = TRUE}} - -Sets the scrollbar properties of a built-in scrollbar. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose page size is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{position}{The position of the scrollbar in scroll units.} - -\docparam{thumbSize}{The size of the thumb, or visible portion of the scrollbar, in scroll units.} - -\docparam{range}{The maximum position of the scrollbar.} - -\docparam{refresh}{TRUE to redraw the scrollbar, FALSE otherwise.} - -\wxheading{Remarks} - -Let's say you wish to display 50 lines of text, using the same font. -The window is sized so that you can only see 16 lines at a time. - -You would use: - -{\small% -\begin{verbatim} - SetScrollbar(wxVERTICAL, 0, 16, 50); -\end{verbatim} -} - -Note that with the window at this size, the thumb position can never go -above 50 minus 16, or 34. - -You can determine how many lines are currently visible by dividing the current view -size by the character height in pixels. - -When defining your own scrollbar behaviour, you will always need to recalculate -the scrollbar settings when the window size changes. You could therefore put your -scrollbar calculations and SetScrollbar -call into a function named AdjustScrollbars, which can be called initially and also -from your \helpref{wxWindow::OnSize}{wxwindowonsize} event handler function. - -\wxheading{See also} - -\helpref{Scrolling overview}{scrollingoverview},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} - -\begin{comment} -\membersection{wxWindow::SetScrollPage}\label{wxwindowsetscrollpage} - -\func{virtual void}{SetScrollPage}{\param{int }{orientation}, \param{int }{pageSize}, \param{const bool }{refresh = TRUE}} - -Sets the page size of one of the built-in scrollbars. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose page size is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{pageSize}{Page size in scroll units.} - -\docparam{refresh}{TRUE to redraw the scrollbar, FALSE otherwise.} - -\wxheading{Remarks} - -The page size of a scrollbar is the number of scroll units that the scroll thumb travels when you -click on the area above/left of or below/right of the thumb. Normally you will want a whole visible -page to be scrolled, i.e. the size of the current view (perhaps the window client size). This -value has to be adjusted when the window is resized, since the page size will have changed. - -In addition to specifying how far the scroll thumb travels when paging, in Motif and some versions of Windows -the thumb changes size to reflect the page size relative to the length of the document. When the -document size is only slightly bigger than the current view (window) size, almost all of the scrollbar -will be taken up by the thumb. When the two values become the same, the scrollbar will (on some systems) -disappear. - -Currently, this function should be called before SetPageRange, because of a quirk in the Windows -handling of pages and ranges. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollpage},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} -\end{comment} - -\membersection{wxWindow::SetScrollPos}\label{wxwindowsetscrollpos} - -\func{virtual void}{SetScrollPos}{\param{int }{orientation}, \param{int }{pos}, \param{const bool }{refresh = TRUE}} - -Sets the position of one of the built-in scrollbars. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose position is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{pos}{Position in scroll units.} - -\docparam{refresh}{TRUE to redraw the scrollbar, FALSE otherwise.} - -\wxheading{Remarks} - -This function does not directly affect the contents of the window: it is up to the -application to take note of scrollbar attributes and redraw contents accordingly. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar},\rtfsp -\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollThumb}{wxwindowgetscrollthumb},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} - -\begin{comment} -\membersection{wxWindow::SetScrollRange}\label{wxwindowsetscrollrange} - -\func{virtual void}{SetScrollRange}{\param{int }{orientation}, \param{int }{range}, \param{const bool }{refresh = TRUE}} - -Sets the range of one of the built-in scrollbars. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose range is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{range}{Scroll range.} - -\docparam{refresh}{TRUE to redraw the scrollbar, FALSE otherwise.} - -\wxheading{Remarks} - -The range of a scrollbar is the number of steps that the thumb may travel, rather than the total -object length of the scrollbar. If you are implementing a scrolling window, for example, you -would adjust the scroll range when the window is resized, by subtracting the window view size from the -total virtual window size. When the two sizes are the same (all the window is visible), the range goes to zero -and usually the scrollbar will be automatically hidden. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp -\helpref{wxWindow::SetScrollPage}{wxwindowsetscrollpage},\rtfsp -\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollpage},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} -\end{comment} - -\membersection{wxWindow::SetSize}\label{wxwindowsetsize} - -\func{virtual void}{SetSize}{\param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height}, - \param{int}{ sizeFlags = wxSIZE\_AUTO}} - -\func{virtual void}{SetSize}{\param{const wxRect\&}{ rect}} - -Sets the size and position of the window in pixels. - -\func{virtual void}{SetSize}{\param{int}{ width}, \param{int}{ height}} - -\func{virtual void}{SetSize}{\param{const wxSize\&}{ size}} - -Sets the size of the window in pixels. - -\wxheading{Parameters} - -\docparam{x}{Required x position in pixels, or -1 to indicate that the existing -value should be used.} - -\docparam{y}{Required y position in pixels, or -1 to indicate that the existing -value should be used.} - -\docparam{width}{Required width in pixels, or -1 to indicate that the existing -value should be used.} - -\docparam{height}{Required height position in pixels, or -1 to indicate that the existing -value should be used.} - -\docparam{size}{\helpref{wxSize}{wxsize} object for setting the size.} - -\docparam{rect}{\helpref{wxRect}{wxrect} object for setting the position and size.} - -\docparam{sizeFlags}{Indicates the interpretation of other parameters. It is a bit list of the following: - -{\bf wxSIZE\_AUTO\_WIDTH}: a -1 width value is taken to indicate -a wxWindows-supplied default width.\\ -{\bf wxSIZE\_AUTO\_HEIGHT}: a -1 height value is taken to indicate -a wxWindows-supplied default width.\\ -{\bf wxSIZE\_AUTO}: -1 size values are taken to indicate -a wxWindows-supplied default size.\\ -{\bf wxSIZE\_USE\_EXISTING}: existing dimensions should be used -if -1 values are supplied.\\ -{\bf wxSIZE\_ALLOW\_MINUS\_ONE}: allow dimensions of -1 and less to be interpreted -as real dimensions, not default values. -} - -\wxheading{Remarks} - -The second form is a convenience for calling the first form with default -x and y parameters, and must be used with non-default width and height values. - -The first form sets the position and optionally size, of the window. -Parameters may be -1 to indicate either that a default should be supplied -by wxWindows, or that the current value of the dimension should be used. - -\wxheading{See also} - -\helpref{wxWindow::Move}{wxwindowmove} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{\bf{SetDimensions(x, y, width, height, sizeFlags=wxSIZE_AUTO)}}{} -\twocolitem{\bf{SetSize(size)}}{} -\twocolitem{\bf{SetPosition(point)}}{} -\end{twocollist}} -} - -\membersection{wxWindow::SetSizeHints}\label{wxwindowsetsizehints} - -\func{virtual void}{SetSizeHints}{\param{int}{ minW=-1}, \param{int}{ minH=-1}, \param{int}{ maxW=-1}, \param{int}{ maxH=-1}, - \param{int}{ incW=-1}, \param{int}{ incH=-1}} - -Allows specification of minimum and maximum window sizes, and window size increments. -If a pair of values is not set (or set to -1), the default values will be used. - -\wxheading{Parameters} - -\docparam{minW}{Specifies the minimum width allowable.} - -\docparam{minH}{Specifies the minimum height allowable.} - -\docparam{maxW}{Specifies the maximum width allowable.} - -\docparam{maxH}{Specifies the maximum height allowable.} - -\docparam{incW}{Specifies the increment for sizing the width (Motif/Xt only).} - -\docparam{incH}{Specifies the increment for sizing the height (Motif/Xt only).} - -\wxheading{Remarks} - -If this function is called, the user will not be able to size the window outside the -given bounds. - -The resizing increments are only significant under Motif or Xt. - -\membersection{wxWindow::SetSizer}\label{wxwindowsetsizer} - -\func{void}{SetSizer}{\param{wxSizer* }{sizer}} - -Sets the window to have the given layout sizer. The window -will then own the object, and will take care of its deletion. -If an existing layout constraints object is already owned by the -window, it will be deleted. - -\wxheading{Parameters} - -\docparam{sizer}{The sizer to set. Pass NULL to disassociate and delete the window's -sizer.} - -\wxheading{Remarks} - -You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use -the sizer automatically in OnSize; otherwise, you must override OnSize and call Layout() -explicitly. When setting both a wxSizer and a \helpref{wxLayoutConstraints}{wxlayoutconstraints}, -only the sizer will have effect. - -\membersection{wxWindow::SetTitle}\label{wxwindowsettitle} - -\func{virtual void}{SetTitle}{\param{const wxString\& }{title}} - -Sets the window's title. Applicable only to frames and dialogs. - -\wxheading{Parameters} - -\docparam{title}{The window's title.} - -\wxheading{See also} - -\helpref{wxWindow::GetTitle}{wxwindowgettitle} - -\membersection{wxWindow::SetValidator}\label{wxwindowsetvalidator} - -\func{virtual void}{SetValidator}{\param{const wxValidator\&}{ validator}} - -Deletes the current validator (if any) and sets the window validator, having called wxValidator::Clone to -create a new validator of this type. - -\membersection{wxWindow::Show}\label{wxwindowshow} - -\func{virtual bool}{Show}{\param{const bool}{ show}} - -Shows or hides the window. - -\wxheading{Parameters} - -\docparam{show}{If TRUE, displays the window and brings it to the front. Otherwise, -hides the window.} - -\wxheading{See also} - -\helpref{wxWindow::IsShown}{wxwindowisshown} - -\membersection{wxWindow::TransferDataFromWindow}\label{wxwindowtransferdatafromwindow} - -\func{virtual bool}{TransferDataFromWindow}{\void} - -Transfers values from child controls to data areas specified by their validators. Returns -FALSE if a transfer failed. - -\wxheading{See also} - -\helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow},\rtfsp -\helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate} - -\membersection{wxWindow::TransferDataToWindow}\label{wxwindowtransferdatatowindow} - -\func{virtual bool}{TransferDataToWindow}{\void} - -Transfers values to child controls from data areas specified by their validators. - -\wxheading{Return value} - -Returns FALSE if a transfer failed. - -\wxheading{See also} - -\helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp -\helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate} - -\membersection{wxWindow::Validate}\label{wxwindowvalidate} - -\func{virtual bool}{Validate}{\void} - -Validates the current values of the child controls using their validators. - -\wxheading{Return value} - -Returns FALSE if any of the validations failed. - -\wxheading{See also} - -\helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp -\helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp -\helpref{wxValidator}{wxvalidator} - -\membersection{wxWindow::WarpPointer}\label{wxwindowwarppointer} - -\func{void}{WarpPointer}{\param{int}{ x}, \param{int}{ y}} - -Moves the pointer to the given position on the window. - -\wxheading{Parameters} - -\docparam{x}{The new x position for the cursor.} - -\docparam{y}{The new y position for the cursor.} - diff --git a/docs/latex/wx/windowdc.tex b/docs/latex/wx/windowdc.tex deleted file mode 100644 index 2112237ac3..0000000000 --- a/docs/latex/wx/windowdc.tex +++ /dev/null @@ -1,37 +0,0 @@ -\section{\class{wxWindowDC}}\label{wxwindowdc} - -A wxWindowDC must be constructed if an application wishes to paint on the -whole area of a window (client and decorations). -This should normally be constructed as a temporary stack object; don't store -a wxWindowDC object. - -To draw on a window from inside {\bf OnPaint}, construct a \helpref{wxPaintDC}{wxpaintdc} object. - -To draw on the client area of a window from outside {\bf OnPaint}, construct a \helpref{wxClientDC}{wxclientdc} object. - -To draw on the whole window including decorations, construct a \helpref{wxWindowDC}{wxwindowdc} object -(Windows only). - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxClientDC}{wxclientdc}, \helpref{wxScreenDC}{wxscreendc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWindowDC::wxWindowDC} - -\func{}{wxWindowDC}{\param{wxWindow*}{ window}} - -Constructor. Pass a pointer to the window on which you wish to paint. - - - diff --git a/docs/latex/wx/wx.hpj b/docs/latex/wx/wx.hpj deleted file mode 100644 index 5bf567ae88..0000000000 --- a/docs/latex/wx/wx.hpj +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS] -BMROOT=d:\wx2\wxWind~1\docs/latex/wx ; Assume that bitmaps are where the source is -TITLE=wxWindows Manual -CONTENTS=Contents -COMPRESS=HIGH - -[FILES] -wx.rtf - -[CONFIG] -CreateButton("Up", "&Up", "JumpId(`wx.hlp', `Contents')") -BrowseButtons() - -[MAP] - -[BITMAPS] - diff --git a/docs/latex/wx/wxPython.tex b/docs/latex/wx/wxPython.tex deleted file mode 100644 index e8230b56d2..0000000000 --- a/docs/latex/wx/wxPython.tex +++ /dev/null @@ -1,526 +0,0 @@ -\chapter{wxPython Notes}\label{wxPython} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This addendum is written by Robin Dunn, author of the wxPython wrapper - -%---------------------------------------------------------------------- -\section{What is wxPython?}\label{wxpwhat} - -wxPython is a blending of the wxWindows GUI classes and the -\urlref{Python}{http://www.python.org/} programming language. - -\wxheading{Python} - -So what is Python? Go to -\urlref{http://www.python.org}{http://www.python.org} -to learn more, but in a nutshell Python is an interpreted, -interactive, object-oriented programming language. It is often -compared to Tcl, Perl, Scheme or Java. - -Python combines remarkable power with very clear syntax. It has -modules, classes, exceptions, very high level dynamic data types, and -dynamic typing. There are interfaces to many system calls and -libraries, and new built-in modules are easily written in C or -C++. Python is also usable as an extension language for applications -that need a programmable interface. - -Python is copyrighted but freely usable and distributable, even for -commercial use. - -\wxheading{wxPython} - -wxPython is a Python package that can be imported at runtime that -includes a collection of Python modules and an extension module -(native code). It provides a series of Python classes that mirror (or -shadow) many of the wxWindows GUI classes. 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. - -wxPython is very versitile. It can be used to create standalone GUI -applications, or in situations where Python is embedded in a C++ -application as an internal scripting or macro language. - -Currently wxPython is available for Win32 platforms and the GTK -toolkit (wxGTK) on most Unix/X-windows platforms. The effort to -enable wxPython for wxMotif will begin shortly. See \helpref{Building Python}{wxpbuild} for -details about getting wxPython working for you. - - -%---------------------------------------------------------------------- -\section{Why use wxPython?}\label{wxpwhy} - -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 absolutely 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 or longer with C++. Converting a wxPython app to a C++/wxWindows app -should be a straight forward task. - -%---------------------------------------------------------------------- -\section{Other Python GUIs}\label{wxpother} - -There are other GUI solutions out there for Python. - -\wxheading{Tkinter} - -Tkinter is the defacto standard GUI for Python. It is available -on nearly every platform that Python and Tcl/TK are. Why Tcl/Tk? -Well because Tkinter is just a wrapper around Tcl's GUI toolkit, Tk. -This has its upsides and its downsides... - -The upside is that Tk is a pretty veristile toolkit. It can be made -to do a lot of things in a lot of different environments. It is fairly -easy to create new widgets and use them interchangably in your -programs. - -The downside is Tcl. When using Tkinter you actually have two -separate language interpreters running, the Python interpreter and the -Tcl interpreter for the GUI. Since the guts of Tcl is mostly about -string processing, it is fairly slow as well. (Not too bad on a fast -Pentium II, but you really notice the difference on slower machines.) - -It wasn't until the lastest version of Tcl/Tk that native Look and -Feel's were possible on non-Motif platforms. This is because Tk -usually implements it's own widgets (controls) even when there are -native controls available. - -Tkinter is a pretty low-level toolkit. You have to do a lot of work -(verbose program code) to do things that would be much simpler with a higher -level of abstraction. - -\wxheading{PythonWin} - -PythonWin is an add-on package for Python for the Win32 platform. It -includes wrappers for MFC as well as much of the win32 API. Because -of its foundation, it is very familiar for programmers who have -experience with MFC and the Win32 API. It is obviously not compatible -with other platforms and toolkits. PythonWin is organized as separate -packages and modules so you can use the pieces you need without having -to use the GUI portions. - -\wxheading{Others} - -There are quite a few other GUI modules available for Python, some in -active use, some that havn't been updated for ages. Most are simple -wrappers around some C or C++ toolkit or another, and most are not -cross-platform compatible. See \urlref{this -link}{http://www.python.org/download/Contributed.html\#Graphics} -for a listing of a few of them. - -%---------------------------------------------------------------------- -\section{Building wxPython}\label{wxpbuild} - -I used SWIG (\urlref{http://www.swig.org}{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. If you try to build wxPython and get errors -because SWIG is missing, then simply touch the .cpp and .py files so -make won't attempt to build them from the .i files. - -I added a few minor features to SWIG to control some of the code -generation. If you want to play around 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 -\urlref{this site}{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 \tt{PYTHONPATH}, (and preferably -should be named wxPython.) You can control where the build process -will dump wxPython by setting the \tt{TARGETDIR} makefile variable. -The default is \tt{\$(WXWIN)/utils/wxPython}. If you leave it here -then you should add \tt{\$(WXWIN)/utils} to your \tt{PYTHONPATH}. -However, you may prefer to use something that is already on your -\tt{PYTHONPATH}, such as the \tt{site-packages} directory on Unix -systems. - -\wxheading{Win32} - -These instructions assume that you have Microsoft Visual C++ 5.0 or -6.0, that you have installed the command-line tools, and that the -appropriate environment variables are set for these tools. You should -also have Python 1.5.1 installed, and wxWindows installed and built as -specified below. - -\begin{enumerate}\itemsep=0pt -\item Build wxWindows with \tt{wxUSE_RESOURCE_LOADING_IN_MSW} set to 1 in -\tt{include/wx/msw/setup.h} so icons can be loaded dynamically. While -there, make sure \tt{wxUSE_OWNER_DRAWN} is also set to 1. -\item Change into the \tt{\$(WXWIN)/utils/wxPython/src} directory. -\item Edit makefile.vc and specify where your python installation is at. -You may also want to fiddle with the \tt{TARGETDIR} variable as described -above. -\item Run \tt{nmake -f makefile.vc} -\item If it builds successfully, congratulations! Move on to the next -step. If not then you can try mailing the wxwin-developers list for -help. Also, I will always have a pre-built win32 version of this extension module at -\urlref{http://alldunn.com/wxPython}{http://alldunn.com/wxPython}. -\item Change to the \tt{\$(WXWIN)/utils/wxPython/demo} directory. -\item Try executing the demo program. Note that some of the demos print -diagnositc or test info to standard output, so they will require the -console version of python. For example: - -\tt{python demo.py} - -To run them without requiring a console, you can use the \tt{pythonw.exe} -version of Python either from the command line or from a shortcut. -\end{enumerate} - -\wxheading{Unix} - -These directions assume that you have already successfully built -wxWindows for GTK, and installed Python 1.5.1 or later. If you build Python -yourself, you will get everything installed that you need simply by -doing \bftt{make install}. If you get Python from an RPM or other -pre-packaged source then there will probably be a separate package -with the development libraries, etc. that you will need to install. - - -\begin{enumerate}\itemsep=0pt -\item Change into the \tt{\$(WXWIN)/utils/wxPython/src} directory. -\item Edit \tt{Setup.in} and ensure that the flags, directories, and toolkit -options are correct, (hopefully this will be done by \tt{configure} -soon.) See the above commentary about \tt{TARGETDIR}. There are a -few sample Setup.in.[platform] files provided. -\item Run this command to generate a makefile: - -\tt{make -f Makefile.pre.in boot} - -\item Once you have the \tt{Makefile}, run \bftt{make} to build and then -\bftt{make install} to install the wxPython extension module. -\item Change to the \tt{\$(WXWIN)/utils/wxPython/demo} directory. -\item Try executing the demo program. For example: - -\tt{python demo.py} -\end{enumerate} - - -%---------------------------------------------------------------------- -\section{Using wxPython}\label{wxpusing} - -\wxheading{First things first...} - -I'm not going to try and teach the Python language here. You can do -that at the \urlref{Python Tutorial}{http://www.python.org/doc/tut/tut.html}. -I'm also going to assume that you know a bit about wxWindows already, -enough to notice the similarities in the classes used. - -Take a look at the following wxPython program. You can find a similar -program in the \tt{wxPython/demo} directory, named \tt{DialogUnits.py}. If your -Python and wxPython are properly installed, you should be able to run -it by issuing this command: - -\begin{indented}{1cm} - \bftt{python DialogUnits.py} -\end{indented} - -\hrule - -\begin{verbatim} -001: ## import all of the wxPython GUI package -002: from wxPython.wx import * -003: -004: ## Create a new frame class, derived from the wxPython Frame. -005: class MyFrame(wxFrame): -006: -007: def __init__(self, parent, id, title): -008: # First, call the base class' __init__ method to create the frame -009: wxFrame.__init__(self, parent, id, title, -010: wxPoint(100, 100), wxSize(160, 100)) -011: -012: # Associate some events with methods of this class -013: EVT_SIZE(self, self.OnSize) -014: EVT_MOVE(self, self.OnMove) -015: -016: # Add a panel and some controls to display the size and position -017: panel = wxPanel(self, -1) -018: wxStaticText(panel, -1, "Size:", -019: wxDLG_PNT(panel, wxPoint(4, 4)), wxDefaultSize) -020: wxStaticText(panel, -1, "Pos:", -021: wxDLG_PNT(panel, wxPoint(4, 14)), wxDefaultSize) -022: self.sizeCtrl = wxTextCtrl(panel, -1, "", -023: wxDLG_PNT(panel, wxPoint(24, 4)), -024: wxDLG_SZE(panel, wxSize(36, -1)), -025: wxTE_READONLY) -026: self.posCtrl = wxTextCtrl(panel, -1, "", -027: wxDLG_PNT(panel, wxPoint(24, 14)), -028: wxDLG_SZE(panel, wxSize(36, -1)), -029: wxTE_READONLY) -030: -031: -032: # This method is called automatically when the CLOSE event is -033: # sent to this window -034: def OnCloseWindow(self, event): -035: # tell the window to kill itself -036: self.Destroy() -037: -038: # This method is called by the system when the window is resized, -039: # because of the association above. -040: def OnSize(self, event): -041: size = event.GetSize() -042: self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height)) -043: -044: # tell the event system to continue looking for an event handler, -045: # so the default handler will get called. -046: event.Skip() -047: -048: # This method is called by the system when the window is moved, -049: # because of the association above. -050: def OnMove(self, event): -051: pos = event.GetPosition() -052: self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y)) -053: -054: -055: # Every wxWindows application must have a class derived from wxApp -056: class MyApp(wxApp): -057: -058: # wxWindows calls this method to initialize the application -059: def OnInit(self): -060: -061: # Create an instance of our customized Frame class -062: frame = MyFrame(NULL, -1, "This is a test") -063: frame.Show(true) -064: -065: # Tell wxWindows that this is our main window -066: self.SetTopWindow(frame) -067: -068: # Return a success flag -069: return true -070: -071: -072: app = MyApp(0) # Create an instance of the application class -073: app.MainLoop() # Tell it to start processing events -074: -\end{verbatim} -\hrule - -\wxheading{Things to notice} - -\begin{enumerate}\itemsep=0pt -\item At line 2 the wxPython classes, constants, and etc. are imported -into the current module's namespace. If you prefer to reduce -namespace polution you can use "\tt{from wxPython import wx}" and -then access all the wxPython identifiers through the wx module, for -example, "\tt{wx.wxFrame}". -\item At line 13 the frame's sizing and moving events are connected to -methods of the class. These helper functions are intended to be like -the event table macros that wxWindows employs. But since static event -tables are impossible with wxPython, we use helpers that are named the -same to dynamically build the table. The only real difference is -that the first arguemnt to the event helpers is always the window that -the event table entry should be added to. -\item Notice the use of \tt{wxDLG\_PNT} and \tt{wxDLG\_SZE} in lines 19 -- 29 to convert from dialog units to pixels. These helpers are unique -to wxPython since Python can't do method overloading like C++. -\item There is an \tt{OnCloseWindow} method at line 34 but no call to -EVT\_CLOSE to attach the event to the method. Does it really get -called? The answer is, yes it does. This is because many of the -\em{standard} events are attached to windows that have the associated -\em{standard} method names. I have tried to follow the lead of the -C++ classes in this area to determine what is \em{standard} but since -that changes from time to time I can make no guarentees, nor will it -be fully documented. When in doubt, use an EVT\_*** function. -\item At lines 17 to 21 notice that there are no saved references to -the panel or the static text items that are created. Those of you -who know Python might be wondering what happens when Python deletes -these objects when they go out of scope. Do they disappear from the GUI? They -don't. Remember that in wxPython the Python objects are just shadows of the -coresponding C++ objects. Once the C++ windows and controls are -attached to their parents, the parents manage them and delete them -when necessary. For this reason, most wxPython objects do not need to -have a \_\_del\_\_ method that explicitly causes the C++ object to be -deleted. If you ever have the need to forcibly delete a window, use -the Destroy() method as shown on line 36. -\item Just like wxWindows in C++, wxPython apps need to create a class -derived from \tt{wxApp} (line 56) that implements a method named -\tt{OnInit}, (line 59.) This method should create the application's -main window (line 62) and use \tt{wxApp.SetTopWindow()} (line 66) to -inform wxWindows about it. -\item And finally, at line 72 an instance of the application class is -created. At this point wxPython finishes initializing itself, and calls -the \tt{OnInit} method to get things started. (The zero parameter here is -a flag for functionality that isn't quite implemented yet. Just -ignore it for now.) The call to \tt{MainLoop} at line 73 starts the event -loop which continues until the application terminates or all the top -level windows are closed. -\end{enumerate} - -%---------------------------------------------------------------------- -\section{wxWindows classes implemented in wxPython}\label{wxpclasses} - -The following classes are supported in wxPython. Most provide nearly -full implementations of the public interfaces specified in the C++ -documentation, others are less so. They will all be brought as close -as possible to the C++ spec over time. - -\begin{itemize}\itemsep=0pt -\item \helpref{wxAcceleratorEntry}{wxacceleratorentry} -\item \helpref{wxAcceleratorTable}{wxacceleratortable} -\item \helpref{wxActivateEvent}{wxactivateevent} -\item \helpref{wxBitmapButton}{wxbitmapbutton} -\item \helpref{wxBitmap}{wxbitmap} -\item wxBMPHandler -\item \helpref{wxBrush}{wxbrush} -\item \helpref{wxButton}{wxbutton} -\item \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent} -\item \helpref{wxCheckBox}{wxcheckbox} -\item \helpref{wxCheckListBox}{wxchecklistbox} -\item \helpref{wxChoice}{wxchoice} -\item \helpref{wxClientDC}{wxclientdc} -\item \helpref{wxCloseEvent}{wxcloseevent} -\item \helpref{wxColourData}{wxcolourdata} -\item \helpref{wxColourDialog}{wxcolourdialog} -\item \helpref{wxColour}{wxcolour} -\item \helpref{wxComboBox}{wxcombobox} -\item \helpref{wxCommandEvent}{wxcommandevent} -\item \helpref{wxConfig}{wxconfigbase} -\item \helpref{wxControl}{wxcontrol} -\item \helpref{wxCursor}{wxcursor} -\item \helpref{wxDC}{wxdc} -\item \helpref{wxDialog}{wxdialog} -\item \helpref{wxDirDialog}{wxdirdialog} -\item \helpref{wxDropFilesEvent}{wxdropfilesevent} -\item \helpref{wxEraseEvent}{wxeraseevent} -\item \helpref{wxEvent}{wxevent} -\item \helpref{wxEvtHandler}{wxevthandler} -\item \helpref{wxFileDialog}{wxfiledialog} -\item \helpref{wxFocusEvent}{wxfocusevent} -\item \helpref{wxFontData}{wxfontdata} -\item \helpref{wxFontDialog}{wxfontdialog} -\item \helpref{wxFont}{wxfont} -\item \helpref{wxFrame}{wxframe} -\item \helpref{wxGauge}{wxgauge} -\item wxGIFHandler -\item wxGLCanvas -\item wxGridCell -\item wxGridEvent -\item \helpref{wxGrid}{wxgrid} -\item wxIconizeEvent -\item \helpref{wxIcon}{wxicon} -\item \helpref{wxIdleEvent}{wxidleevent} -\item \helpref{wxImage}{wximage} -\item \helpref{wxImageHandler}{wximagehandler} -\item \helpref{wxImageList}{wximagelist} -\item \helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint} -\item \helpref{wxInitDialogEvent}{wxinitdialogevent} -\item \helpref{wxJoystickEvent}{wxjoystickevent} -\item wxJPEGHandler -\item \helpref{wxKeyEvent}{wxkeyevent} -\item \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} -\item \helpref{wxLayoutConstraints}{wxlayoutconstraints} -\item \helpref{wxListBox}{wxlistbox} -\item \helpref{wxListCtrl}{wxlistctrl} -\item \helpref{wxListEvent}{wxlistevent} -\item \helpref{wxListItem}{wxlistctrlsetitem} -\item \helpref{wxMDIChildFrame}{wxmdichildframe} -\item \helpref{wxMDIClientWindow}{wxmdiclientwindow} -\item \helpref{wxMDIParentFrame}{wxmdiparentframe} -\item \helpref{wxMask}{wxmask} -\item wxMaximizeEvent -\item \helpref{wxMemoryDC}{wxmemorydc} -\item \helpref{wxMenuBar}{wxmenubar} -\item \helpref{wxMenuEvent}{wxmenuevent} -\item \helpref{wxMenuItem}{wxmenuitem} -\item \helpref{wxMenu}{wxmenu} -\item \helpref{wxMessageDialog}{wxmessagedialog} -\item \helpref{wxMetaFileDC}{wxmetafiledc} -\item \helpref{wxMiniFrame}{wxminiframe} -\item \helpref{wxMouseEvent}{wxmouseevent} -\item \helpref{wxMoveEvent}{wxmoveevent} -\item \helpref{wxNotebookEvent}{wxnotebookevent} -\item \helpref{wxNotebook}{wxnotebook} -\item \helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} -\item \helpref{wxPageSetupDialog}{wxpagesetupdialog} -\item \helpref{wxPaintDC}{wxpaintdc} -\item \helpref{wxPaintEvent}{wxpaintevent} -\item \helpref{wxPalette}{wxpalette} -\item \helpref{wxPanel}{wxpanel} -\item \helpref{wxPen}{wxpen} -\item wxPNGHandler -\item \helpref{wxPoint}{wxpoint} -\item \helpref{wxPostScriptDC}{wxpostscriptdc} -\item \helpref{wxPreviewFrame}{wxpreviewframe} -\item \helpref{wxPrintData}{wxprintdata} -\item \helpref{wxPrintDialogData}{wxprintdialogdata} -\item \helpref{wxPrintDialog}{wxprintdialog} -\item \helpref{wxPrinter}{wxprinter} -\item \helpref{wxPrintPreview}{wxprintpreview} -\item \helpref{wxPrinterDC}{wxprinterdc} -\item \helpref{wxPrintout}{wxprintout} -\item \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent} -\item \helpref{wxRadioBox}{wxradiobox} -\item \helpref{wxRadioButton}{wxradiobutton} -\item \helpref{wxRealPoint}{wxrealpoint} -\item \helpref{wxRect}{wxrect} -\item \helpref{wxRegionIterator}{wxregioniterator} -\item \helpref{wxRegion}{wxregion} -\item \helpref{wxSashEvent}{wxsashevent} -\item \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} -\item \helpref{wxSashWindow}{wxsashwindow} -\item \helpref{wxScreenDC}{wxscreendc} -\item \helpref{wxScrollBar}{wxscrollbar} -\item \helpref{wxScrollEvent}{wxscrollevent} -\item \helpref{wxScrolledWindow}{wxscrolledwindow} -\item wxShowEvent -\item \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog} -\item \helpref{wxSizeEvent}{wxsizeevent} -\item \helpref{wxSize}{wxsize} -\item \helpref{wxSlider}{wxslider} -\item \helpref{wxSpinButton}{wxspinbutton} -\item wxSpinEvent -\item \helpref{wxSplitterWindow}{wxsplitterwindow} -\item \helpref{wxStaticBitmap}{wxstaticbitmap} -\item \helpref{wxStaticBox}{wxstaticbox} -\item wxStaticLine -\item \helpref{wxStaticText}{wxstatictext} -\item \helpref{wxStatusBar}{wxstatusbar} -\item \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent} -\item \helpref{wxTaskBarIcon}{wxtaskbaricon} -\item \helpref{wxTextCtrl}{wxtextctrl} -\item \helpref{wxTextEntryDialog}{wxtextentrydialog} -\item \helpref{wxTimer}{wxtimer} -\item wxToolBarTool -\item \helpref{wxToolBar}{wxtoolbar} -\item wxToolTip -\item \helpref{wxTreeCtrl}{wxtreectrl} -\item \helpref{wxTreeEvent}{wxtreeevent} -\item \helpref{wxTreeItemData}{wxtreeitemdata} -\item wxTreeItemId -\item \helpref{wxUpdateUIEvent}{wxupdateuievent} -\item \helpref{wxWindowDC}{wxwindowdc} -\item \helpref{wxWindow}{wxwindow} - - -\end{itemize} - -%---------------------------------------------------------------------- -\section{Where to go for help}\label{wxphelp} - -Since wxPython is a blending of multiple technologies, help comes from -multiple sources. See -\urlref{http://alldunn.com/wxPython}{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 - -\urlref{http://starship.python.net/mailman/listinfo/wxpython-users}{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 - diff --git a/docs/latex/wx/wxhtml.tex b/docs/latex/wx/wxhtml.tex deleted file mode 100644 index b215fedc62..0000000000 --- a/docs/latex/wx/wxhtml.tex +++ /dev/null @@ -1,37 +0,0 @@ -\chapter{wxHTML Notes}\label{wxHTML} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This addendum is written by Vaclav Slavik, the author of the wxHTML library. - -The wxHTML library provides classes for parsing and displaying HTML. - -It is not intended to be a high-end HTML browser. If you're looking for -something like that try \urlref{http://www.mozilla.org}{http://www.mozilla.org} - there's a -chance you'll be able to make their widget wxWindows-compatible. I'm sure -everyone will enjoy your work in that case... - -But back to wxHTML. - -\section{wxHTML Sub-library Overview}\label{wxhtmloverview} - -wxHTML can be used as a generic rich text viewer - for example to display -a nice About Box (like those of GNOME apps) or to display the result of -database searching. There is a \helpref{wxFileSystem}{wxfilesystem} -class which allows you to use your own virtual file systems. - -wxHtmlWindow supports tag handlers. This means that you can easily -extend wxHtml library with new, unsupported tags. Not only that, -you can even use your own application specific tags! -See lib/mod\_*.cpp files for details. - -There is a generic (non-wxHtmlWindow) wxHtmlParser class. - -\input htmlstrt.tex -\input htmlprn.tex -\input htmlhlpf.tex -\input htmlfilt.tex -\input htmlcell.tex -\input htmlhand.tex - diff --git a/docs/latex/wx/wxstring.tex b/docs/latex/wx/wxstring.tex deleted file mode 100644 index 5aa5d9d4a5..0000000000 --- a/docs/latex/wx/wxstring.tex +++ /dev/null @@ -1,992 +0,0 @@ -\section{\class{wxString}}\label{wxstring} - -wxString is a class representing a character string. Please see the -\helpref{wxString overview}{wxstringoverview} for more information about it. As explained -there, wxString implements about 90\% of methods of the std::string class (iterators -are not supported, nor all methods which use them). -These standard functions are not documented in this manual so please see the STL documentation. -The behaviour of all these functions is identical to the behaviour described -there. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Predefined objects} - -Objects: - -{\bf wxEmptyString} - -\wxheading{See also} - -\overview{Overview}{wxstringoverview} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Constructors and assignment operators} - -A strign may be constructed either from a C string, (some number of copies of) -a single character or a wide (UNICODE) string. For all constructors (except the -default which creates an empty string) there is also a corresponding assignment -operator. - -\helpref{wxString}{wxstringconstruct}\\ -\helpref{operator $=$}{wxstringoperatorassign}\\ -\helpref{\destruct{wxString}}{wxstringdestruct} - -\membersection{String length} - -These functions return the string length and check whether the string is empty -or empty it. - -\helpref{Len}{wxstringlen}\\ -\helpref{IsEmpty}{wxstringisempty}\\ -\helpref{operator!}{wxstringoperatornot}\\ -\helpref{Empty}{wxstringempty}\\ -\helpref{Clear}{wxstringclear} - -\membersection{Character access} - -Many functions in this section take a character index in the string. As with C -strings and/or arrays, the indices start from $0$, so the first character of a -string is string[$0$]. Attempt to access a character beyond the end of the -string (which may be even $0$ if the string is empty) will provocate an assert -failure in \helpref{debug build}{debuggingoverview}, but no checks are done in -release builds. - -This section also contains both implicit and explicit conversions to C style -strings. Although implicit conversion is quite convenient, it is advised to use -explicit \helpref{c\_str()}{wxstringcstr} method for the sake of clarity. Also -see \helpref{overview}{wxstringadvices} for the cases where it is necessary to -use it. - -\helpref{GetChar}{wxstringgetchar}\\ -\helpref{GetWritableChar}{wxstringgetwritablechar}\\ -\helpref{SetChar}{wxstringsetchar}\\ -\helpref{Last}{wxstringlast}\\ -\helpref{operator []}{wxstringoperatorbracket}\\ -\helpref{c\_str}{wxstringcstr}\\ -\helpref{operator const char*}{wxstringoperatorconstcharpt} - -\membersection{Concatenation} - -Anything may be concatenated (appended to) with a string. However, you can't -append something to a C string (including literal constants), so to do this it -should be converted to a wxString first. - -\helpref{operator \cinsert}{wxstringoperatorout}\\ -\helpref{operator $+=$}{wxstringplusequal}\\ -\helpref{operator $+$}{wxstringoperatorplus}\\ -\helpref{Append}{wxstringappend}\\ -\helpref{Prepend}{wxstringprepend} - -\membersection{Comparison} - -The default comparison function \helpref{Cmp}{wxstringcmp} is case-sensitive and -so is the default version of \helpref{IsSameAs}{wxstringissameas}. For case -insensitive comparisons you should use \helpref{CmpNoCase}{wxstringcmpnocase} or -give a second parameter to IsSameAs. This last function is may be more -convenient if only equality of the strings matters because it returns a boolean -true value if the strings are the same and not 0 (which is usually FALSE in C) -as Cmp does. - -\helpref{Matches}{wxstringmatches} is a poor man's regular expression matcher: -it only understands '*' and '?' metacharacters in the sense of DOS command line -interpreter. - -\helpref{Cmp}{wxstringcmp}\\ -\helpref{CmpNoCase}{wxstringcmpnocase}\\ -\helpref{IsSameAs}{wxstringissameas}\\ -\helpref{Matches}{wxstringmatches} - -\membersection{Substring extraction} - -These functions allow to extract substring from this string. All of them don't -modify the original string and return a new string containing the extracted -substring. - -\helpref{Mid}{wxstringmid}\\ -\helpref{operator()}{wxstringoperatorparenth}\\ -\helpref{Left}{wxstringleft}\\ -\helpref{Right}{wxstringright}\\ -\helpref{BeforeFirst}{wxstringbeforefirst}\\ -\helpref{BeforeLast}{wxstringbeforelast}\\ -\helpref{AfterFirst}{wxstringafterfirst}\\ -\helpref{AfterLast}{wxstringafterlast} - -\membersection{Case conversion} - -The MakeXXX() variants modify the string in place, while the other functions -return a new string which containts the original text converted to the upper or -lower case and leave the original string unchanged. - -\helpref{MakeUpper}{wxstringmakeupper}\\ -\helpref{Upper}{wxstringupper}\\ -\helpref{MakeLower}{wxstringmakelower}\\ -\helpref{Lower}{wxstringlower} - -\membersection{Searching and replacing} - -These functions replace the standard {\it strchr()} and {\it strstr()} -functions. - -\helpref{Find}{wxstringfind}\\ -\helpref{Replace}{wxstringreplace} - -\membersection{Writing values into the string} - -Both formatted versions (\helpref{Printf}{wxstringprintf}) and stream-like -insertion operators exist (for basic types only). - -\helpref{Printf}{wxstringprintf}\\ -\helpref{PrintfV}{wxstringprintfv}\\ -\helpref{operator \cinsert}{wxstringoperatorout} - -\membersection{Memory management} - -These are "advanced" functions and they will be needed quite rarily. -\helpref{Alloc}{wxstringalloc} and \helpref{Shrink}{wxstringshrink} are only -interesting for optimization purposes. -\helpref{GetWriteBuf}{wxstringgetwritebuf} may be very useful when working with -some external API which requires the caller to provide a writable buffer, but -extreme care should be taken when using it: before performing any other -operation on the string \helpref{UngetWriteBuf}{wxstringungetwritebuf} {\bf -must} be called! - -\helpref{Alloc}{wxstringalloc}\\ -\helpref{Shrink}{wxstringshrink}\\ -\helpref{GetWriteBuf}{wxstringgetwritebuf}\\ -\helpref{UngetWriteBuf}{wxstringungetwritebuf} - -\membersection{Miscellaneous} - -Other string functions. - -\helpref{Trim}{wxstringtrim}\\ -\helpref{Pad}{wxstringpad}\\ -\helpref{Truncate}{wxstringtruncate} - -\membersection{wxWindows 1.xx compatiblity functions} - -These functiosn are deprecated, please consider using new wxWindows 2.0 -functions instead of them (or, even better, std::string compatible variants). - -\helpref{SubString}{wxstringsubstring}\\ -\helpref{sprintf}{wxstringsprintf}\\ -\helpref{CompareTo}{wxstringcompareto}\\ -\helpref{Length}{wxstringlength}\\ -\helpref{Freq}{wxstringfreq}\\ -\helpref{LowerCase}{wxstringlowercase}\\ -\helpref{UpperCase}{wxstringuppercase}\\ -\helpref{Strip}{wxstringstrip}\\ -\helpref{Index}{wxstringindex}\\ -\helpref{Remove}{wxstringremove}\\ -\helpref{First}{wxstringfirst}\\ -\helpref{Last}{wxstringlast}\\ -\helpref{Contains}{wxstringcontains}\\ -\helpref{IsNull}{wxstringisnull}\\ -\helpref{IsAscii}{wxstringisascii}\\ -\helpref{IsNumber}{wxstringisnumber}\\ -\helpref{IsWord}{wxstringisword} - -\membersection{std::string compatibility functions}\label{wxstringat} - -The supported functions are only listed here, please see any STL reference for -their documentation. - -\begin{verbatim} - // take nLen chars starting at nPos - wxString(const wxString& str, size_t nPos, size_t nLen); - // take all characters from pStart to pEnd (poor man's iterators) - wxString(const void *pStart, const void *pEnd); - - // lib.string.capacity - // return the length of the string - size_t size() const; - // return the length of the string - size_t length() const; - // return the maximum size of the string - size_t max_size() const; - // resize the string, filling the space with c if c != 0 - void resize(size_t nSize, char ch = '\0'); - // delete the contents of the string - void clear(); - // returns true if the string is empty - bool empty() const; - - // lib.string.access - // return the character at position n - char at(size_t n) const; - // returns the writable character at position n - char& at(size_t n); - - // lib.string.modifiers - // append a string - wxString& append(const wxString& str); - // append elements str[pos], ..., str[pos+n] - wxString& append(const wxString& str, size_t pos, size_t n); - // append first n (or all if n == npos) characters of sz - wxString& append(const char *sz, size_t n = npos); - - // append n copies of ch - wxString& append(size_t n, char ch); - - // same as `this_string = str' - wxString& assign(const wxString& str); - // same as ` = str[pos..pos + n] - wxString& assign(const wxString& str, size_t pos, size_t n); - // same as `= first n (or all if n == npos) characters of sz' - wxString& assign(const char *sz, size_t n = npos); - // same as `= n copies of ch' - wxString& assign(size_t n, char ch); - - // insert another string - wxString& insert(size_t nPos, const wxString& str); - // insert n chars of str starting at nStart (in str) - wxString& insert(size_t nPos, const wxString& str, size_t nStart, size_t n); - - // insert first n (or all if n == npos) characters of sz - wxString& insert(size_t nPos, const char *sz, size_t n = npos); - // insert n copies of ch - wxString& insert(size_t nPos, size_t n, char ch); - - // delete characters from nStart to nStart + nLen - wxString& erase(size_t nStart = 0, size_t nLen = npos); - - // replaces the substring of length nLen starting at nStart - wxString& replace(size_t nStart, size_t nLen, const char* sz); - // replaces the substring with nCount copies of ch - wxString& replace(size_t nStart, size_t nLen, size_t nCount, char ch); - // replaces a substring with another substring - wxString& replace(size_t nStart, size_t nLen, - const wxString& str, size_t nStart2, size_t nLen2); - // replaces the substring with first nCount chars of sz - wxString& replace(size_t nStart, size_t nLen, - const char* sz, size_t nCount); - - // swap two strings - void swap(wxString& str); - - // All find() functions take the nStart argument which specifies the - // position to start the search on, the default value is 0. All functions - // return npos if there were no match. - - // find a substring - size_t find(const wxString& str, size_t nStart = 0) const; - - // find first n characters of sz - size_t find(const char* sz, size_t nStart = 0, size_t n = npos) const; - - // find the first occurence of character ch after nStart - size_t find(char ch, size_t nStart = 0) const; - - // rfind() family is exactly like find() but works right to left - - // as find, but from the end - size_t rfind(const wxString& str, size_t nStart = npos) const; - - // as find, but from the end - size_t rfind(const char* sz, size_t nStart = npos, - size_t n = npos) const; - // as find, but from the end - size_t rfind(char ch, size_t nStart = npos) const; - - // find first/last occurence of any character in the set - - // - size_t find_first_of(const wxString& str, size_t nStart = 0) const; - // - size_t find_first_of(const char* sz, size_t nStart = 0) const; - // same as find(char, size_t) - size_t find_first_of(char c, size_t nStart = 0) const; - // - size_t find_last_of (const wxString& str, size_t nStart = npos) const; - // - size_t find_last_of (const char* s, size_t nStart = npos) const; - // same as rfind(char, size_t) - size_t find_last_of (char c, size_t nStart = npos) const; - - // find first/last occurence of any character not in the set - - // - size_t find_first_not_of(const wxString& str, size_t nStart = 0) const; - // - size_t find_first_not_of(const char* s, size_t nStart = 0) const; - // - size_t find_first_not_of(char ch, size_t nStart = 0) const; - // - size_t find_last_not_of(const wxString& str, size_t nStart=npos) const; - // - size_t find_last_not_of(const char* s, size_t nStart = npos) const; - // - size_t find_last_not_of(char ch, size_t nStart = npos) const; - - // All compare functions return a negative, zero or positive value - // if the [sub]string is less, equal or greater than the compare() argument. - - // just like strcmp() - int compare(const wxString& str) const; - // comparison with a substring - int compare(size_t nStart, size_t nLen, const wxString& str) const; - // comparison of 2 substrings - int compare(size_t nStart, size_t nLen, - const wxString& str, size_t nStart2, size_t nLen2) const; - // just like strcmp() - int compare(const char* sz) const; - // substring comparison with first nCount characters of sz - int compare(size_t nStart, size_t nLen, - const char* sz, size_t nCount = npos) const; - - // substring extraction - wxString substr(size_t nStart = 0, size_t nLen = npos) const; -\end{verbatim} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{wxString::wxString}\label{wxstringconstruct} - -\func{}{wxString}{\void} - -Default constructor. - -\func{}{wxString}{\param{const wxString\&}{ x}} - -Copy constructor. - -\func{}{wxString}{\param{char}{ ch}, \param{size\_t}{ n = 1}} - -Constructs a string of {\it n} copies of character {\it ch}. - -\func{}{wxString}{\param{const char*}{ psz}, \param{size\_t}{ nLength = wxSTRING\_MAXLEN}} - -Takes first {\it nLength} characters from the C string {\it psz}. -The default value of wxSTRING\_MAXLEN means take all the string. - -\func{}{wxString}{\param{const unsigned char*}{ psz}, \param{size\_t}{ nLength = wxSTRING\_MAXLEN}} - -For compilers using unsigned char: takes first {\it nLength} characters from the C string {\it psz}. -The default value of wxSTRING\_MAXLEN means take all the string. - -\func{}{wxString}{\param{const wchar\_t*}{ psz}} - -Constructs a string from the wide (UNICODE) string. - -\membersection{wxString::\destruct{wxString}}\label{wxstringdestruct} - -\func{}{\destruct{wxString}}{\void} - -String destructor. Note that this is not virtual, so wxString must not be inherited from. - -\membersection{wxString::Alloc}\label{wxstringalloc} - -\func{void}{Alloc}{\param{size\_t}{ nLen}} - -Preallocate enough space for wxString to store {\it nLen} characters. This function -may be used to increase speed when the string is constructed by repeated -concatenation as in - -\begin{verbatim} - -// delete all vowels from the string -wxString DeleteAllVowels(const wxString& original) -{ - wxString result; - - size_t len = original.length(); - - result.Alloc(len); - - for ( size_t n = 0; n < len; n++ ) - { - if ( strchr("aeuio", tolower(original[n])) == NULL ) - result += original[n]; - } - - return result; -} - -\end{verbatim} - -because it will avoid the need of reallocating string memory many times (in case -of long strings). Note that it does not set the maximal length of a string - it -will still expand if more than {\it nLen} characters are stored in it. Also, it -does not truncate the existing string (use -\helpref{Truncate()}{wxstringtruncate} for this) even if its current length is -greater than {\it nLen} - -\membersection{wxString::Append}\label{wxstringappend} - -\func{wxString\&}{Append}{\param{const char*}{ psz}} - -Concatenates {\it psz} to this string, returning a reference to it. - -\func{wxString\&}{Append}{\param{char}{ ch}, \param{int}{ count = 1}} - -Concatenates character {\it ch} to this string, {\it count} times, returning a reference -to it. - -\membersection{wxString::AfterFirst}\label{wxstringafterfirst} - -\constfunc{wxString}{AfterFirst}{\param{char}{ ch}} - -Gets all the characters after the first occurence of {\it ch}. -Returns the empty string if {\it ch} is not found. - -\membersection{wxString::AfterLast}\label{wxstringafterlast} - -\constfunc{wxString}{AfterLast}{\param{char}{ ch}} - -Gets all the characters after the last occurence of {\it ch}. -Returns the whole string if {\it ch} is not found. - -\membersection{wxString::BeforeFirst}\label{wxstringbeforefirst} - -\constfunc{wxString}{BeforeFirst}{\param{char}{ ch}} - -Gets all characters before the first occurence of {\it ch}. -Returns the whole string if {\it ch} is not found. - -\membersection{wxString::BeforeLast}\label{wxstringbeforelast} - -\constfunc{wxString}{BeforeLast}{\param{char}{ ch}} - -Gets all characters before the last occurence of {\it ch}. -Returns the empty string if {\it ch} is not found. - -\membersection{wxString::c\_str}\label{wxstringcstr} - -\constfunc{const char *}{c\_str}{\void} - -Returns a pointer to the string data. - -\membersection{wxString::Clear}\label{wxstringclear} - -\func{void}{Clear}{\void} - -Empties the string and frees memory occupied by it. - -See also: \helpref{Empty}{wxstringempty} - -\membersection{wxString::Cmp}\label{wxstringcmp} - -\constfunc{int}{Cmp}{\param{const char*}{ psz}} - -Case-sensitive comparison. - -Returns a positive value if the string is greater than the argument, zero if -it si equal to it or negative value if it is less than argument (same semantics -as the standard {\it strcmp()} function). - -See also \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas}. - -\membersection{wxString::CmpNoCase}\label{wxstringcmpnocase} - -\constfunc{int}{CmpNoCase}{\param{const char*}{ psz}} - -Case-insensitive comparison. - -Returns a positive value if the string is greater than the argument, zero if -it si equal to it or negative value if it is less than argument (same semantics -as the standard {\it strcmp()} function). - -See also \helpref{Cmp}{wxstringcmp}, \helpref{IsSameAs}{wxstringissameas}. - -\membersection{wxString::CompareTo}\label{wxstringcompareto} - -\begin{verbatim} -#define NO_POS ((int)(-1)) // undefined position -enum caseCompare {exact, ignoreCase}; -\end{verbatim} - -\constfunc{int}{CompareTo}{\param{const char*}{ psz}, \param{caseCompare}{ cmp = exact}} - -Case-sensitive comparison. Returns 0 if equal, 1 if greater or -1 if less. - -\membersection{wxString::Contains}\label{wxstringcontains} - -\constfunc{bool}{Contains}{\param{const wxString\&}{ str}} - -Returns 1 if target appears anyhere in wxString; else 0. - -\membersection{wxString::Empty}\label{wxstringempty} - -\func{void}{Empty}{\void} - -Makes the string empty, but doesn't free memory occupied by the string. - -See also: \helpref{Clear()}{wxstringclear}. - -\membersection{wxString::Find}\label{wxstringfind} - -\constfunc{int}{Find}{\param{char}{ ch}, \param{bool}{ fromEnd = FALSE}} - -Searches for the given character. Returns the starting index, or -1 if not found. - -\constfunc{int}{Find}{\param{const char*}{ sz}} - -Searches for the given string. Returns the starting index, or -1 if not found. - -\membersection{wxString::First}\label{wxstringfirst} - -\func{size\_t}{First}{\param{char}{ c}} - -\constfunc{size\_t}{First}{\param{const char*}{ psz}} - -\constfunc{size\_t}{First}{\param{const wxString\&}{ str}} - -\constfunc{size\_t}{First}{\param{const char}{ ch}} - -Returns the first occurrence of the item. - -\membersection{wxString::Freq}\label{wxstringfreq} - -\constfunc{int}{Frec}{\param{char }{ch}} - -Returns the number of occurences of {it ch} in the string. - -\membersection{wxString::GetChar}\label{wxstringgetchar} - -\constfunc{char}{GetChar}{\param{size\_t}{ n}} - -Returns the character at position {\it n} (read-only). - -\membersection{wxString::GetData}\label{wxstringgetdata} - -\constfunc{const char*}{GetData}{\void} - -wxWindows compatibility conversion. Returns a constant pointer to the data in the string. - -\membersection{wxString::GetWritableChar}\label{wxstringgetwritablechar} - -\func{char\&}{GetWritableChar}{\param{size\_t}{ n}} - -Returns a reference to the character at position {\it n}. - -\membersection{wxString::GetWriteBuf}\label{wxstringgetwritebuf} - -\func{char*}{GetWriteBuf}{\param{size\_t}{ len}} - -Returns a writable buffer of at least {\it len} bytes. - -Call \helpref{wxString::UngetWriteBuf}{wxstringungetwritebuf} as soon as possible -to put the string back into a reasonable state. - -\membersection{wxString::Index}\label{wxstringindex} - -\constfunc{size\_t}{Index}{\param{char}{ ch}, \param{int}{ startpos = 0}} - -Same as \helpref{wxString::Find}{wxstringfind}. - -\constfunc{size\_t}{Index}{\param{const char*}{ sz}} - -Same as \helpref{wxString::Find}{wxstringfind}. - -\constfunc{size\_t}{Index}{\param{const char*}{ sz}, \param{bool}{ caseSensitive = TRUE}, \param{bool}{ fromEnd = FALSE}} - -Search the element in the array, starting from either side. - -If {\it fromEnd} is TRUE, reverse search direction. - -If {\bf caseSensitive}, comparison is case sensitive (the default). - -Returns the index of the first item matched, or NOT\_FOUND. - -% TODO -%\membersection{wxString::insert}\label{wxstringinsert} -% Wrong! -%\func{void}{insert}{\param{const wxString\&}{ str}, \param{size\_t}{ index}} -% -%Add new element at the given position. -% -\membersection{wxString::IsAscii}\label{wxstringisascii} - -\constfunc{bool}{IsAscii}{\void} - -Returns TRUE if the string is ASCII. - -\membersection{wxString::IsEmpty}\label{wxstringisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns TRUE if the string is NULL. - -\membersection{wxString::IsNull}\label{wxstringisnull} - -\constfunc{bool}{IsNull}{\void} - -Returns TRUE if the string is NULL (same as IsEmpty). - -\membersection{wxString::IsNumber}\label{wxstringisnumber} - -\constfunc{bool}{IsNumber}{\void} - -Returns TRUE if the string is a number. - -\membersection{wxString::IsSameAs}\label{wxstringissameas} - -\constfunc{bool}{IsSameAs}{\param{const char*}{ psz}, \param{bool}{ caseSensitive = TRUE}} - -Test for string equality, case-sensitive (default) or not. - -caseSensitive is TRUE by default (case matters). - -Returns TRUE if strings are equal, FALSE otherwise. - -See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas2} - -\membersection{wxString::IsSameAs}\label{wxstringissameas2} - -\constfunc{bool}{IsSameAs}{\param{char}{ c}, \param{bool}{ caseSensitive = TRUE}} - -Test whether the string is equal to the single character {\it c}. The test is -case-sensitive if {\it caseSensitive} is TRUE (default) or not if it is FALSE. - -Returns TRUE if the string is equal to the character, FALSE otherwise. - -See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas} - -\membersection{wxString::IsWord}\label{wxstringisword} - -\constfunc{bool}{IsWord}{\void} - -Returns TRUE if the string is a word. TODO: what's the definition of a word? - -\membersection{wxString::Last}\label{wxstringlast} - -\constfunc{char}{Last}{\void} - -Returns the last character. - -\func{char\&}{Last}{\void} - -Returns a reference to the last character (writable). - -\membersection{wxString::Left}\label{wxstringleft} - -\constfunc{wxString}{Left}{\param{size\_t}{ count}} - -Returns the first {\it count} characters. - -\constfunc{wxString}{Left}{\param{char}{ ch}} - -Returns all characters before the first occurence of {\it ch}. -Returns the whole string if {\it ch} is not found. - -\membersection{wxString::Len}\label{wxstringlen} - -\constfunc{size\_t}{Len}{\void} - -Returns the length of the string. - -\membersection{wxString::Length}\label{wxstringlength} - -\constfunc{size\_t}{Length}{\void} - -Returns the length of the string (same as Len). - -\membersection{wxString::Lower}\label{wxstringlower} - -\constfunc{wxString}{Lower}{\void} - -Returns this string converted to the lower case. - -\membersection{wxString::LowerCase}\label{wxstringlowercase} - -\func{void}{LowerCase}{\void} - -Same as MakeLower. - -\membersection{wxString::MakeLower}\label{wxstringmakelower} - -\func{void}{MakeLower}{\void} - -Converts all characters to lower case. - -\membersection{wxString::MakeUpper}\label{wxstringmakeupper} - -\func{void}{MakeUpper}{\void} - -Converts all characters to upper case. - -\membersection{wxString::Matches}\label{wxstringmatches} - -\constfunc{bool}{Matches}{\param{const char*}{ szMask}} - -Returns TRUE if the string contents matches a mask containing '*' and '?'. - -\membersection{wxString::Mid}\label{wxstringmid} - -\constfunc{wxString}{Mid}{\param{size\_t}{ first}, \param{size\_t}{ count = wxSTRING\_MAXLEN}} - -Returns a substring starting at {\it first}, with length {\it count}, or the rest of -the string if {\it count} is the default value. - -\membersection{wxString::Pad}\label{wxstringpad} - -\func{wxString\&}{Pad}{\param{size\_t}{ count}, \param{char}{ pad = ' '}, \param{bool}{ fromRight = TRUE}} - -Adds {\it count} copies of {\it pad} to the beginning, or to the end of the string (the default). - -Removes spaces from the left or from the right (default). - -\membersection{wxString::Prepend}\label{wxstringprepend} - -\func{wxString\&}{Prepend}{\param{const wxString\&}{ str}} - -Prepends {\it str} to this string, returning a reference to this string. - -\membersection{wxString::Printf}\label{wxstringprintf} - -\func{int}{Printf}{\param{const char* }{pszFormat}, \param{}{...}} - -Similar to the standard function {\it sprintf()}. Returns the number of -characters written, or an integer less than zero on error. - -{\bf NB:} This function will use a safe version of {\it vsprintf()} (usually called -{\it vsnprintf()}) whenever available to always allocate the buffer of correct -size. Unfortunately, this function is not available on all platforms and the -dangerous {\it vsprintf()} will be used then which may lead to buffer overflows. - -\membersection{wxString::PrintfV}\label{wxstringprintfv} - -\func{int}{PrintfV}{\param{const char* }{pszFormat}, \param{va\_list}{ argPtr}} - -Similar to vprintf. Returns the number of characters written, or an integer less than zero -on error. - -\membersection{wxString::Remove}\label{wxstringremove} - -\func{wxString\&}{Remove}{\param{size\_t}{ pos}} - -Same as Truncate. Removes the portion from {\it pos} to the end of the string. - -\func{wxString\&}{Remove}{\param{size\_t}{ pos}, \param{size\_t}{ len}} - -Removes the last {\it len} characters from the string, starting at {\it pos}. - -\membersection{wxString::RemoveLast}\label{wxstringremovelast} - -\func{wxString\&}{RemoveLast}{\void} - -Removes the last character. - -\membersection{wxString::Replace}\label{wxstringreplace} - -\func{size\_t}{Replace}{\param{const char*}{ szOld}, \param{const char*}{ szNew}, \param{bool}{ replaceAll = TRUE}} - -Replace first (or all) occurences of substring with another one. - -{\it replaceAll}: global replace (default), or only the first occurence. - -Returns the number of replacements made. - -\membersection{wxString::Right}\label{wxstringright} - -\constfunc{wxString}{Right}{\param{size\_t}{ count}} - -Returns the last {\it count} characters. - -\membersection{wxString::SetChar}\label{wxstringsetchar} - -\func{void}{SetChar}{\param{size\_t}{ n}, \param{char}{ch}} - -Sets the character at position {\it n}. - -\membersection{wxString::Shrink}\label{wxstringshrink} - -\func{void}{Shrink}{\void} - -Minimizes the string's memory. This can be useful after a call to -\helpref{Alloc()}{wxstringalloc} if too much memory were preallocated. - -\membersection{wxString::sprintf}\label{wxstringsprintf} - -\func{void}{sprintf}{\param{const char* }{ fmt}} - -The same as Printf. - -\membersection{wxString::Strip}\label{wxstringstrip} - -\begin{verbatim} -enum stripType {leading = 0x1, trailing = 0x2, both = 0x3}; -\end{verbatim} - -\constfunc{wxString}{Strip}{\param{stripType}{ s = trailing}} - -Strip characters at the front and/or end. The same as Trim except that it -doesn't change this string. - -\membersection{wxString::SubString}\label{wxstringsubstring} - -\constfunc{wxString}{SubString}{\param{size\_t}{ to}, \param{size\_t}{ from}} - -Same as \helpref{Mid}{wxstringmid}. - -\membersection{wxString::Trim}\label{wxstringtrim} - -\func{wxString\&}{Trim}{\param{bool}{ fromRight = TRUE}} - -Removes spaces from the left or from the right (default). - -\membersection{wxString::Truncate}\label{wxstringtruncate} - -\func{wxString\&}{Truncate}{\param{size\_t}{ len}} - -Truncate the string to the given length. - -\membersection{wxString::UngetWriteBuf}\label{wxstringungetwritebuf} - -\func{void}{UngetWriteBuf}{\void} - -Puts the string back into a reasonable state, after -\rtfsp\helpref{wxString::GetWriteBuf}{wxstringgetwritebuf} was called. - -\membersection{wxString::Upper}\label{wxstringupper} - -\constfunc{wxString}{Upper}{\void} - -Returns this string converted to upper case. - -\membersection{wxString::UpperCase}\label{wxstringuppercase} - -\func{void}{UpperCase}{\void} - -The same as MakeUpper. - -\membersection{wxString::operator!}\label{wxstringoperatornot} - -\constfunc{bool}{operator!}{\void} - -Empty string is FALSE, so !string will only return TRUE if the string is empty. -This allows the tests for NULLness of a {\it const char *} pointer and emptyness -of the string to look the same in the code and makes it easier to port old code -to wxString. - -See also \helpref{IsEmpty()}{wxstringisempty}. - -\membersection{wxString::operator $=$}\label{wxstringoperatorassign} - -\func{wxString\&}{operator $=$}{\param{const wxString\&}{ str}} - -\func{wxString\&}{operator $=$}{\param{const char*}{ psz}} - -\func{wxString\&}{operator $=$}{\param{char}{ c}} - -\func{wxString\&}{operator $=$}{\param{const unsigned char*}{ psz}} - -\func{wxString\&}{operator $=$}{\param{const wchar\_t*}{ pwz}} - -Assignment: the effect of each operation is the same as for the corresponding -constructor (see \helpref{wxString constructors}{wxstringconstruct}). - -\membersection{operator wxString::$+$}\label{wxstringoperatorplus} - -Concatenation: all these operators return a new strign equal to the sum of the -operands. - -\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const char*}{ y}} - -\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{char}{ y}} - -\func{wxString}{operator $+$}{\param{const char*}{ x}, \param{const wxString\&}{ y}} - -\membersection{wxString::operator $+=$}\label{wxstringplusequal} - -\func{void}{operator $+=$}{\param{const wxString\&}{ str}} - -\func{void}{operator $+=$}{\param{const char*}{ psz}} - -\func{void}{operator $+=$}{\param{char}{ c}} - -Concatenation in place: the argument is appended to the string. - -\membersection{wxString::operator []}\label{wxstringoperatorbracket} - -\func{char\&}{operator []}{\param{size\_t}{ i}} - -\func{char}{operator []}{\param{size\_t}{ i}} - -\func{char}{operator []}{\param{int}{ i}} - -Element extraction. - -\membersection{wxString::operator ()}\label{wxstringoperatorparenth} - -\func{wxString}{operator ()}{\param{size\_t}{ start}, \param{size\_t}{ len}} - -Same as Mid (substring extraction). - -\membersection{wxString::operator \cinsert}\label{wxstringoperatorout} - -\func{wxString\&}{operator \cinsert}{\param{const wxString\&}{ str}} - -\func{wxString\&}{operator \cinsert}{\param{const char*}{ psz}} - -\func{wxString\&}{operator \cinsert}{\param{char }{ch}} - -Same as $+=$. - -\func{wxString\&}{operator \cinsert}{\param{int}{ i}} - -\func{wxString\&}{operator \cinsert}{\param{float}{ f}} - -\func{wxString\&}{operator \cinsert}{\param{double}{ d}} - -These functions work as C++ stream insertion operators: they insert the given -value into the string. Precision or format cannot be set using them, you can use -\helpref{Printf}{wxstringprintf} for this. - -\membersection{wxString::operator \cextract}\label{wxstringoperatorin} - -\func{friend istream\&}{operator \cextract}{\param{istream\&}{ is}, \param{wxString\&}{ str}} - -Extraction from a stream. - -\membersection{wxString::operator const char*}\label{wxstringoperatorconstcharpt} - -\constfunc{}{operator const char*}{\void} - -Implicit conversion to a C string. - -\membersection{Comparison operators}\label{wxstringcomparison} - -\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const char*}{ t}} - -\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}} - -\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const char*}{ t}} - -\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}} - -\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const char*}{ t}} - -\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}} - -\wxheading{Remarks} - -These comparisons are case-sensitive. - diff --git a/docs/latex/wx/wxtab1.bmp b/docs/latex/wx/wxtab1.bmp deleted file mode 100644 index 754c02827e..0000000000 Binary files a/docs/latex/wx/wxtab1.bmp and /dev/null differ diff --git a/docs/latex/wx/wxtab1.eps b/docs/latex/wx/wxtab1.eps deleted file mode 100644 index eff7361042..0000000000 --- a/docs/latex/wx/wxtab1.eps +++ /dev/null @@ -1,1086 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: wxtab1.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 124 196 489 596 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -124 196 translate - -% size of image (on paper, in 1/72inch coords) -365 400 scale - -% define 'colorimage' if it isn't defined -% ('colortogray' and 'mergeprocs' come from xwd2ps -% via xgrab) -/colorimage where % do we know about 'colorimage'? - { pop } % yes: pop off the 'dict' returned - { % no: define one - /colortogray { % define an RGB->I function - /rgbdata exch store % call input 'rgbdata' - rgbdata length 3 idiv - /npixls exch store - /rgbindx 0 store - /grays npixls string store % str to hold the result - 0 1 npixls 1 sub { - grays exch - rgbdata rgbindx get 20 mul % Red - rgbdata rgbindx 1 add get 32 mul % Green - rgbdata rgbindx 2 add get 12 mul % Blue - add add 64 idiv % I = .5G + .31R + .18B - put - /rgbindx rgbindx 3 add store - } for - grays - } bind def - - % Utility procedure for colorimage operator. - % This procedure takes two procedures off the - % stack and merges them into a single procedure. - - /mergeprocs { % def - dup length - 3 -1 roll - dup - length - dup - 5 1 roll - 3 -1 roll - add - array cvx - dup - 3 -1 roll - 0 exch - putinterval - dup - 4 2 roll - putinterval - } bind def - - /colorimage { % def - pop pop % remove 'false 3' operands - {colortogray} mergeprocs - image - } bind def - } ifelse % end of 'false' case - - - -% define the colormap -/cmap 15 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 0000bf c0c0c0 808080 ffffff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in color map - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - % and put it in position i*3 in block - block exch 3 mul rgbval putinterval - } for - block 0 bcount 127 sub 3 mul getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in colormap - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - 0 1 bcount { block exch 3 mul rgbval putinterval } for - - block 0 bcount 1 add 3 mul getinterval - } ifelse - } % end of proc - false 3 colorimage -} bind def - - -365 400 8 % dimensions of data -[365 0 0 -400 0 400] % mapping matrix -rlecmapimage - -7f037f036b030000 -8103047f047f046804810300 -83030402037f037f0364038304020300 -8403040203017f017f0163018304020300 -8403040203017f017f0163018304020300 -8403040203017f017f0152010e0485000104020300 -8403040203017f017f0152018104020b028603000104020300 -840304020301810104040408010104040101040f01010404010404030101040701010412 -0104047f0175018104020b028603000104020300 -840304020301020101040a010104040101040f01010404010104010101040c0101041201 -0104010101047f017401810402010201000302010001028603000104020300 -840304020301020101040a010104040101040f01010404010104020101040b0101041201 -0104010101047f017401810402020201000102010002028603000104020300 -840304020301020101040401030401010404010104040201030402010404040101040201 -010401010104010103040101010401010304020104040401010401010104020103040101 -01048101048104017f0165018104020302030003028603000104020300 -840304020301020101040701010481010481040181010482040104810401810104820401 -048104018101048204010481040181010481040103010104020101040101010404010104 -810104820401048104018101048204010481040181010481040103010404020101040101 -0104810104820401048104017f0165018104020402010004028603000104020300 -840304020301020101040401040481010481040181010482040104810401810104820401 -040404810104810401810104810401030101040201010401010104010104048101048204 -010481040181010482040104810401810104810401030101040101010401010104010101 -04010102047f0167018104020302030003028603000104020300 -840304020301020101040301010401010104810104810401810104820401048104018101 -048204010481040103010104010101040401010402010104010101048101048104018101 -048204010482040104810401810104820401048104018101048104010301010401010104 -0101010401010104010102047f0167018104020202010001020100020286030001040203 -00 -840304020301020101040301010401010104810104810401810104820401048104018101 -048204010481040181010482040104810401810104810401030101040101010402010104 -810104810401810104820401048204010481040181010482040104810401810104810401 -03010104010101040101010401010104810104820401048104017f016501810402010201 -000302010001028603000104020300 -840304020301020101040401040481010403040101040402010304020104040401040403 -010104010104048101048104018101040204020104040401040403010304010101048101 -048104017f0165018104020b028603000104020300 -840304020301500101047f017f018104020b028603000104020300 -8403040203014c0104047f017f01820104030c0385000104020300 -8403040203017f017f0152010f00840104020300 -8403040203017f017f0163018304020300 -8403040203017f017f0163018304020300 -83030402047f047f04650482020300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -8203040218024f04820302044e04820302044e04820302044e048103020602810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104021e0203000102810002260283030004021502020008028100020402 -81000205028100021a028303000402110281000210028100020f02810002140283030004 -020602810002020281000215028100020b02810002030281000207028100020902820300 -020502810300 -8203040218028104021e0281000201028100022802830300040214028100020102810002 -06028100020c028100021a028303000402100283000200020f028100020f028100021402 -83030004020602810002020281000223028100020d028100020902820300020502810300 - -8203040218028104021e0281000201028300020002810200830002000220028303000402 -130281000203028100028102000100810200010086020002000200028102000100010282 -000200810002170283030004021002830002000202020200010283000200028102008500 -020002000201028100028102000100010285000200020002820200021102830300040206 -028100020202830002000201028400020002000200010282000200020001028200020002 -000202010085020002000200810002860200020002000281020083000200020902820300 -020502810300 -8203040218028104021e0281000201028500020002000281020081000220028303000402 -130281000203028300020002010283000200028102008100028402000200020102820002 -008100028202000216028303000402100283000200020102810002010282000200810002 -820200028102008300020002010283000200020102820002008100028402000200021202 -830300040206020500820200020102820002008300020002830200020083000200028602 -000200020002010283000200028102008200020081000285020002000200810002820200 -028102008100020902820300020502810300 -8203040218028104021e0203000102830002000201028100022002830300040213028100 -020302810002810200810002010281000282020002010283000200020302810002010281 -0002160283030004020f0281000201028100020102030082020002010281000201028100 -028402000200020102030082020002010201001402830300040206028100020202830002 -000201028300020002820200028402000200028202000286020002000200020102830002 -000201028300020002010285000200020002010281000201028100020902820300020502 -810300 -8203040218028104021e0281000203028300020002010281000220028303000402130281 -000203028100020202810002820200028202000201028300020002030281000201028100 -02160283030004020f020400010281000201028300020002010281000201028100028402 -000200028202000201028300020002010283000200021202830300040206028100020202 -830002000201028300020002820200028402000200028202000286020002000200020102 -830002000201028300020002010285000200020002010281000201028100020902820300 -020502810300 -8203040218028104021e0281000203028300020002810200810002200283030004021402 -810002010281000282020002010283000200028202000201028300020002010283000200 -020102810002160283030004020e02810002030283000200028102008300020002010281 -000281020081000201028100020102810002810200830002000201028300020002120283 -030004020602810002020283000200028102008300020002820200028402000200028202 -000286020002000200020102830002000281020082000200810002860200020002000201 -028100028102008100020902820300020502810300 -8203040218028104021e0281000203028100028102008300020002200283030004021502 -020003020200010201008202000201028100028102000100010281000201028100021602 -83030004020e028100020302810002810200850002000200020202010082020002010281 -000202020100840200020002010281000282020002110283030004020602810002020281 -000281020085000200020002820200028402000200028202000286020002000200020102 -810002810200860002000200020081000284020002000202020100820200020902820300 -020502810300 -8203040218028104022a02810002200283030004024d0283030004024d0283030004022f -028100021b02820300020502810300 -82030402180281040226020300220283030004024d0283030004024d0283030004022b02 -03001d02820300020502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -820304020e024f04820302044e04820302044e04820302044e0481030207028203000205 -02810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104021102810002080281000210028100021b0283030004021602030001 -028100022e0283030004021b0202002e028303000402160281000202028100022f028203 -00020602820300020502810300 -820304020e0281040210028300020002070281000210028100021b028303000402150281 -0002020283000200022e0283030004021a0281000201028100022c028303000402160281 -000202028100022f02820300020602820300020502810300 -820304020e02810402100283000200020102030081020001000502020002020200810200 -010001020200010283000200021002830300040215028100020402820002008100020102 -020002020200010282000200810002190283030004021902810002050202000102810002 -010281000201028100021c02830300040216028100020202810002810200010001028300 -0200028102000100020202001b02820300020602820300020502810300 -820304020e02810402100283000200020102810002010283000200020402810002010283 -000200020102830002000282020002010282000200810002110283030004021602010003 -020100010283000200020102830002000201028200020081000282020002180283030004 -021902810002040281000201028300020002840200020002820200021c02830300040216 -020500820200020102820002008100028202000201028300020002010281000219028203 -00020602820300020502810300 -820304020e028104020f0281000201028100028202000201028300020002040204000102 -030082020002810200030082020002120283030004021802010001028100020102820002 -000300810200030082020002010281000218028303000402190281000204028100020102 -810002880200020002000200021d02830300040216028100020202830002000201028300 -02000202020100020204001a02820300020602820300020502810300 -820304020e028104020f0204000102810002010283000200028102000100820200020302 -81000201028300020002820200020302810002120283030004021a028300020002010283 -000200020302810002030281000201028100021802830300040219028100020402810002 -0102810002880200020002000200021d0283030004021602810002020283000200020102 -83000200020402810002820200021d02820300020602820300020502810300 -820304020e028104020e0281000203028300020002010283000200020402810002010283 -000200028102008300020002820200020102830002000212028303000402150281000202 -028300020002010283000200020102830002000201028200020081000282020002180283 -030004021a02810002010283000200020102810002010281000201028100021e02830300 -040216028100020202830002000201028300020002010281000201028300020002010281 -00021902820300020602820300020502810300 -820304020e028104020e0281000203028300020002010282000200810002040202000202 -010083020002008100028102000100010281000212028303000402160203000102810002 -0102810002810200010002020200010282000200810002190283030004021b0202000202 -0200030281000201028100021e0283030004021602810002020281000281020001000102 -81000202020200020202001b02820300020602820300020502810300 -820304020e028104024d0283030004022e028100021c0283030004024d0283030004024d -02820300020602820300020502810300 -820304020e028104024d0283030004022e028100021c0283030004024d0283030004024d -02820300020602820300020502810300 -820304020e0281040245024f04810302070283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e0281040245028104024d0282030002060283030004024d0283030004024d02 -820300020602820300020502810300 -820304020e0281040245028104024d0282030002060283030004024d0283030004024d02 -820300020602820300020502810300 -820304020e0281040245028104024d0282030002060283030004024d0283030004024d02 -820300020602820300020502810300 -8203040204024f0483030204024d02820300044e04820302044e04810302070282030002 -0602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104021f0202000702810002200283030004021a0204002d028303000402 -0d0202000802810002140203000102810002140283030004021b0202000e028100021d02 -820300020602820300020602820300020502810300 -8203040204028104021e0281000201028100020502810002200283030004021a02010001 -0201002c0283030004020c0281000201028100021d028100020102810002160283030004 -021a0281000201028100020c028100021d02820300020602820300020602820300020502 -810300 -8203040204028104021d02810002050202008102000100200283030004021a0201000102 -010001020300020204001e0283030004020b028100020302830002000201028400020002 -000200020202000202020004028100020102830002000281020083000200020e02830300 -04021902810002030281000281020001000202020081020001001d028203000206028203 -00020602820300020502810300 -8203040204028104021d02810002040281000201028300020002200283030004021a0201 -0001020100810200810002810200820002008100028102008100021d0283030004020b02 -810002050281000201028500020002000201028300020002010283000200020102810002 -02028100020102850002000200028102008100020e028303000402190281000205028100 -0201028300020002010283000200021d0282030002060282030002060282030002050281 -0300 -8203040204028104021d028100020502030082020002200283030004021a020100010201 -00810200810002810200820002008100028102008100021d0283030004020b0281000201 -020200820200020102850002000200020102820002000300010203000302030001028300 -02000201028100020e028303000402190281000201020200820200020102810002810200 -0200820200021d02820300020602820300020602820300020502810300 -8203040204028104021d02810002040281000201028300020002200283030004021a0201 -0001020100810200810002810200820002008100028102008100021d0283030004020b02 -810002030283000200020102850002000200020102830002000203028100020102810002 -02028100020302830002000201028100020e028303000402190281000203028300020002 -01028300020002010283000200021d028203000206028203000206028203000205028103 -00 -8203040204028104021e0281000201028300020002810200830002000220028303000402 -1a02010001020100810200810002810200820002008100028102008100021d0283030004 -020c02810002010281000282020002810200850002000200020102830002000201028300 -0200028102008100020202810002030283000200028102008100020e0283030004021a02 -8100020102810002820200020102830002000281020083000200021d0282030002060282 -0300020602820300020502810300 -8203040204028104021f0202000202010083020002008100021f0283030004021a020400 -02020300020204001e0283030004020d0202000302010086020002000200020102810002 -810200010002020100820200020202810002030281000281020083000200020e02830300 -04021b020200030202000202010083020002008100021c02820300020602820300020602 -820300020502810300 -8203040204028104024d0283030004022802810002010201001e0283030004023c028100 -020e0283030004024d02820300020602820300020602820300020502810300 -8203040204028104024d028303000402290203001f028303000402380203001002830300 -04024d02820300020602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -82030402040252044e027f042304820300020602820300020602820300020502810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104021602810002030281000205028100020b028100020e028100020d02 -8100027f026d02820300020602820300020602820300020502810300 -82030402040281040216028100020b028100020a028100021f028100027f026d02820300 -020602820300020602820300020502810300 -820304020402810402160281000203028100028102000100810200010004020200010202 -0004020200010203000102840002000200020002020200010281000281020001007f0269 -02820300020602820300020602820300020502810300 -820304020402810402160281000203028300020002010283000200020302810002010281 -000282020002030281000201028300020002010284000200020083000200028402000200 -0201028500020002000201028100027f0267028203000206028203000206028203000205 -02810300 -820304020402810402160281000203028100028102008100020102810002030281000201 -028100028202000204020300820200020102850002000200028202000282020002810200 -0200820200028102008100027f0269028203000206028203000206028203000205028103 -00 -820304020402810402160281000203028100020202810002820200020302810002010281 -000282020002030281000201028300020002010285000200020002820200028402000200 -020102830002000202028100027f02680282030002060282030002060282030002050281 -0300 -820304020402810402160281000203028300020002010283000200020302810002010281 -000282020002030281000281020083000200020102850002000200028202000284020002 -00028102008500020002000201028100027f026702820300020602820300020602820300 -020502810300 -820304020402810402160204008202000281020001000102010004020200020281000204 -020100840200020002010285000200020002820200028202000281020085000200020002 -81020001007f026902820300020602820300020602820300020502810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f025f024d00150282030002060282030002060282030002050281 -0300 -82030402040281040215027f032b031c028100044b048203000213028203000206028203 -00020602820300020502810300 -82030402040281040215028103007f0028008104021b028100044a040103810002130282 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f0419040b0201008104021b028100048104024802 -01038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048102040804810300820004021b02810004 -81040214029d000200020002000200020002000200020002000200020002000200020002 -150201038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -04810402480201038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300048204000402048100047f0411048202040207028103 -00820004021b028100048104021402810002190281000215020103810002130282030002 -0602820300020602820300020502810300 -8203040204028104021502820300048204000402048100047f0411048202040207028103 -00820004021b028100048104024802010381000213028203000206028203000206028203 -00020502810300 -820304020402810402150282030004820400040204810004810400010001048300040004 -81040001007f0403048202040202028100020202810300820004021b0281000481040214 -028100028102000100010281000211028100021502010381000213028203000206028203 -00020602820300020502810300 -820304020402810402150282030004810400040082040004010482000400810004820400 -0401048100047f04010482020402010202000202810300820004021b0281000481040216 -028100020102830002000229020103810002130282030002060282030002060282030002 -0502810300 -820304020402810402150282030004820400040204810004810400020082040004010404 -007f0402048202040281020003000102810300820004021b028100048104021402010005 -028100028102000100020202000202020001028100021502010381000213028203000206 -02820300020602820300020502810300 -820304020402810402150282030004820400040204830004000401048300040004010481 -00047f040504820204020702810300820004021b02810004810402150281000204028300 -020002010283000200020102830002000201028100021702010381000213028203000206 -02820300020602820300020502810300 -820304020402810402150282030004820400040204830004000481040083000400040104 -81000401048100047f040104820204020702810300820004021b02810004810402140201 -000502830002000201028100028102008100020102040082020002150201038100021302 -820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004810400850004000400040204 -02007f040304820204020702810300820004021b02810004810402150281000204028300 -02000201028100020202810002820200021b020103810002130282030002060282030002 -0602820300020502810300 -8203040204028104021502820300047f041904810203090301008104021b028100048104 -021402830002000201028500020002000201028300020002010283000200020102830002 -0002150201038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f0419040d008104021b0281000481040217020200 -010281000281020001000202020002020200190201038100021302820300020602820300 -020602820300020502810300 -8203040204028104021502820300047f0419048f02040204020402040204020402000402 -1b0281000481040214028100021902810002150201038100021302820300020602820300 -020602820300020502810300 -8203040204028104021502820300047f041a048e0204020402040204020402040004021b -028100048104024802010381000213028203000206028203000206028203000205028103 -00 -8203040204028104021502820300047f0419048f02040204020402040204020402000402 -1b0281000481040214028100021902810002150201038100021302820300020602820300 -020602820300020502810300 -8203040204028104021502820300047f041a048e0204020402040204020402040004021b -0281000481040215029b0002000200020002000200020002000200020002000200020002 -0002160201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004810400030007048100040304810004030483000400 -047b048f020402040204020402040204020004021b028100048104024802010381000213 -02820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004050481000403048100040504 -8100047c048e0204020402040204020402040004021b0281000481040248020103810002 -1302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004810400010001048200040081 -0004830400040081000481040002007b048f020402040204020402040204020004021b02 -820004034b038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004810400030001048100040104820004008100048304 -00040081000486040004000400047b040b0201008104021b028100034c03810002130282 -0300020602820300020602820300020502810300 -820304020402810402150282030004820400048204000402040300820400040104830004 -00040104850004000400047b048102040804810300820004021c024d0015028203000206 -02820300020602820300020502810300 -820304020402810402150282030004820400040104810004820400040104830004000401 -0483000400040104850004000400047b04820204020702810300820004027f0283020300 -020602820300020602820300020502810300 -820304020402810402150282030004820400040104810004820400048104008200040081 -0004830400040081000486040004000400047b04820204020702810300820004027f0283 -020300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004810400860004000400040081 -0004830400040081000483040004008100047a04820204020702810300820004027f0283 -020300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021c024d00 -1502820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -044b04820300021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -044a0401038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -04810402480201038100021302820300020602820300020602820300020502810300 -82030402040281040215028203000401040300070481000411048100040c048100048204 -00040d048100040204810004820400044b04820204020702810300820004021b02810004 -810402480201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004050481000411048100040c04 -810004820400040d0481000402048100044e04820204020702810300820004021b028100 -04810402480201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040504020001048200040081000484040004 -000481040001000404020001040200020402008104000100830400040081000401040200 -020401008204000401040200820400048104008300040004810400010001048300040004 -3b04820204020702810300820004021b0281000481040248020103810002130282030002 -0602820300020602820300020502810300 -820304020402810402150282030004010401000304810004010482000400810004830400 -040081000482040004010481000403048100048204000401048300040004010483000400 -048104008100048404000400040104830004000481040081000402048100048404000400 -0481040083000400040104820004008100043c04820204020702810300820004021b0281 -0004810402480201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004030401000204030082040004010483000400040104 -040004048100048204000401048300040004010483000400048204000401048200040003 -0082040004010481000402048100048404000400040104820004000300820400043d0482 -0204020702810300820004021b0281000481040218028100020202810002050281000220 -0201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004050483000400040104830004000401048300040004 -010481000403040200820400048204000401048300040004010483000400048204000401 -048300040004030481000401048100040204810004840400040004010483000400040304 -8100043d04820204020702810300820004021b0281000481040218028100020202810002 -0502810002200201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204830004000481040082000400810004 -840400040004010481000401048100040304810004820400040104830004000401048300 -040004820400040104830004000401048300040004810400810004020481000484040004 -00048104008300040004010483000400043d04820204020702810300820004021b028100 -0481040218028100020202810002810200010001028400020002008100021b0201038100 -021302820300020602820300020602820300020502810300 -820304020402810402150282030004010403000204010085040004000400810004820400 -040204020005040100010402000204020001040100820400040104810004810400010002 -0401008204000402040100820400048104008300040004810400010001048100043d0482 -0204020702810300820004021b0281000481040218020500820200020102840002000200 -810002820200021a02010381000213028203000206028203000206028203000205028103 -00 -82030402040281040215028203000451048100044504820204020702810300820004021b -028100048104021802810002020282000200030084020002000201028100021a02010381 -00021302820300020602820300020602820300020502810300 -8203040204028104021502820300044d0403004704820204020702810300820004021b02 -8100048104021802810002020283000200020302830002000201028100021a0201038100 -021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -048104021802810002020283000200020102840002000200810002820200021a02010381 -00021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -0481040218028100020202810002810200010001028400020002008100021b0201038100 -021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -0481040227028100021e0201038100021302820300020602820300020602820300020502 -810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -0481040227028100021e0201038100021302820300020602820300020602820300020502 -810300 -8203040204028104021502820300048104000300030404007f040a048202040207028103 -00820004021b028100048104024802010381000213028203000206028203000206028203 -00020502810300 -8203040204028104021502820300040204810004040481000402048100047f0408048102 -03090301008104021b028100048104024802010381000213028203000206028203000206 -02820300020502810300 -820304020402810402150282030004020481000404048100040204810004810400010001 -0481000401048100047c040d008104021b02810004810402480201038100021302820300 -020602820300020602820300020502810300 -820304020402810402150282030004020481000404040400010481000401048100048404 -000400047d040b0201008104021b02810004810402480201038100021302820300020602 -820300020602820300020502810300 -820304020402810402150282030004020481000404048100048204000401040400020481 -00047e048102040804810300820004021b02820004034b03810002130282030002060282 -0300020602820300020502810300 -820304020402810402150282030004020481000404048100040104810004820400040504 -8100047e04820204020702810300820004021b028100034c038100021302820300020602 -820300020602820300020502810300 -820304020402810402150282030004020481000404048100040104810004820400040104 -8100048404000400047d04820204020702810300820004021c024d001502820300020602 -820300020602820300020502810300 -820304020402810402150282030004020481000404048100040204810004810400010001 -0481000401048100047c04820204020702810300820004027f0283020300020602820300 -020602820300020502810300 -8203040204028104021502820300047f0419048202040281020003000102810300820004 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048202040201020200020281030082000402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048202040202028100020202810300820004 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904810203090301008104027f028302030002 -0602820300020602820300020502810300 -8203040204028104021502820300047f0419040d008104027f0283020300020602820300 -020602820300020502810300 -82030402040281040215028103027f021a020d008104027f028302030002060282030002 -0602820300020502810300 -82030402040281040215027f042b047f0201028203000206028203000206028203000205 -02810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104021602810002020281000205028100027f027f021d02820300020602 -820300020602820300020502810300 -82030402040281040216020100020281000205028100027f027f021d0282030002060282 -0300020602820300020502810300 -820304020402810402160283000200028202000281020001008102000100010202000202 -02007f027f021202820300020602820300020602820300020502810300 -820304020402810402160283000200028402000200020102830002000282020002010283 -0002000201028100027f027f021002820300020602820300020602820300020502810300 - -820304020402810402160281000286020002000200020102830002000281020003000102 -01007f027f021302820300020602820300020602820300020502810300 -820304020402810402160281000286020002000200020102830002000282020002060281 -00027f027f021102820300020602820300020602820300020502810300 -820304020402810402160281000201020100820200020102830002000282020002010283 -0002000201028100027f027f021002820300020602820300020602820300020502810300 - -820304020402810402160281000202028100028102000100010201000102020002020200 -7f027f021202820300020602820300020602820300020502810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -82030402040281040215027f032b037f0201028203000206028203000206028203000205 -02810300 -82030402040281040215028103007f0028008104027f0283020300020602820300020602 -820300020502810300 -8203040204028104021502820300047f04190482000204080483030004027f0283020300 -020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300048104000200240481000415048100040f0481000403 -048100048204000418048100040d048100040f0483000204020202810002020283030004 -027f0283020300020602820300020602820300020502810300 -82030402040281040215028403000400040204810004220481000415048100040f048100 -0403048100048204000428048100040f04830002040201020200020283030004027f0283 -020300020602820300020602820300020502810300 -820304020402810402150284030004000405040200010482000400020002040200040403 -000204020081040001000104020002040200050402000104820004008100040104020001 -048100040104030002040200830400040081000401040200050402000104030001048400 -04000400020002040200010481000481040001000b048300020402810200030001028303 -0004027f0283020300020602820300020602820300020502810300 -820304020402810402150282030004810400810004020481000401048200040083000400 -048404000400040104810004020481000401048300040004010483000400048204000401 -048300040004010481000402048100040104820004008100048404000400040104830004 -000401048300040004030481000481040081000484040004000401048100040204810004 -010483000400040104840004000400830004000484040004000401048500040004000401 -0481000409048300020402070283030004027f0283020300020602820300020602820300 -020502810300 -820304020402810402150282030004020401000104810004010483000400048204000483 -040004000300030481000401048300040004010483000400048104000300010401000604 -030082040004010483000400040104830004000401048300040004030481000482040004 -010482000400030004040300820400040104850004000400048204000482040004810400 -0200820400048104008100040b048300020402070283030004027f028302030002060282 -0300020602820300020502810300 -820304020402810402150282030004040483000400040104830004000482040004840400 -040004060481000401048300040004010483000400048204000406048100040304810004 -010483000400040104830004000401048300040004010483000400040304810004820400 -040104830004000406048100040104830004000401048500040004000482040004840400 -0400040104830004000402048100040a048300020402070283030004027f028302030002 -0602820300020602820300020502810300 -820304020402810402150284030004000402048300040004010483000400048204000484 -040004000401048100040204810004010483000400040104830004000482040004010483 -000400040104810004020481000481040082000400810004840400040004010483000400 -048104008300040004030481000482040004010483000400040104810004020481000481 -040083000400040104850004000400048204000484040004000481040085000400040004 -01048100040904820002030903820004027f028302030002060282030002060282030002 -0502810300 -820304020402810402150282030004810400020002040200010481000482040004820400 -048104000100040481000401048100048104000100010401000104020002040200050401 -008504000400040081000401040200020401008304000400810004020401008204000401 -048100048104000100050401008404000400040104850004000400048204000482040004 -8104008500040004000481040001000b040d008104027f02830203000206028203000206 -02820300020502810300 -8203040204028104021502820300047f0419048100020a02820004027f02830203000206 -02820300020602820300020502810300 -8203040204028104021502820300047f04190482000204080483030004027f0283020300 -020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -820304020402810402150284030004000408048100048204000403048100040804810004 -78048300020402070283030004027f028302030002060282030002060282030002050281 -0300 -8203040204028104021502820300040a04810004820400040e0481000478048300020402 -070283030004027f0283020300020602820300020602820300020502810300 -820304020402810402150285030004000400020003040200830400040081000482040004 -810400010004048200040081000401040200010481000401048100048104000100020402 -005e048300020402070283030004027f0283020300020602820300020602820300020502 -810300 -820304020402810402150286030004000400040104810004020481000481040081000486 -040004000400040104810004020401000104830004000401048300040004010483000400 -040104830004000401048100045c048300020402070283030004027f0283020300020602 -820300020602820300020502810300 -820304020402810402150286030004000400040104810004020481000482040004010483 -000400048104008100040404810004010483000400040104830004000401048100048104 -00810004010404005d048300020402070283030004027f02830203000206028203000206 -02820300020502810300 -820304020402810402150286030004000400040104810004020481000482040004010483 -000400040204810004030481000401048300040004010483000400040104810004020481 -0004820400046004820002030903820004027f0283020300020602820300020602820300 -020502810300 -820304020402810402150286030004000400040104810004020481000482040004010485 -000400040004010481000402048100040104830004000401048300040004810400830004 -00040104830004000401048100045c040d008104027f0283020300020602820300020602 -820300020502810300 -820304020402810402150286030004000400040104810004020401008204000401048300 -040004810400010004048100040104810004810400010002040100820400048104000100 -020402005e048d00040204020402040204020402048104027f0283020300020602820300 -020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048100020a02820004027f02830203000206 -02820300020602820300020502810300 -8203040204028104021502820300047f04190482000204080483030004027f0283020300 -020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402810200030001028303000402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f041904830002040201020200020283030004027f -0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402020281000202028303000402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f041904820002030903820004027f028302030002 -0602820300020602820300020502810300 -82030402040281040215028103027f021a020d008104027f028302030002060282030002 -0602820300020502810300 -82030402040281040215027f042b047f0201028203000206028203000206028203000205 -02810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f0243028203000206028203000307038100020502810300 -8203040204028104027f027f02430282030002060281030008000702810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f0243028203000307038100020f02810300 -8203040204028104027f027f02430281030008001102810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104037f037f0344038100021902810300 -8203040204027f007f0047001a02810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -7f037f036b030000 -7f007f006c00 - -% -% Compression made this file 5.76% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/docs/latex/wx/wxtab1.gif b/docs/latex/wx/wxtab1.gif deleted file mode 100644 index 510fb5710b..0000000000 Binary files a/docs/latex/wx/wxtab1.gif and /dev/null differ diff --git a/docs/latex/wx/zipstrm.tex b/docs/latex/wx/zipstrm.tex deleted file mode 100644 index 8e9828993a..0000000000 --- a/docs/latex/wx/zipstrm.tex +++ /dev/null @@ -1,29 +0,0 @@ -% -% automatically generated by HelpGen from -% zipstream.h at 02/May/99 19:54:25 -% - -\section{\class{wxZipInputStream}}\label{wxzipinputstream} - -This class is input stream from ZIP archive. The archive -must be local file (accessible via FILE*). -It has all features including GetSize and seeking. - -\wxheading{Derived from} - -wxInputStream - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxZipInputStream::wxZipInputStream}\label{wxzipinputstreamwxzipinputstream} - -\func{}{wxZipInputStream}{\param{const wxString\& }{archive}, \param{const wxString\& }{file}} - -Constructor. - -\wxheading{Parameters} - -\docparam{archive}{name of ZIP file} - -\docparam{file}{name of file stored in the archive} - diff --git a/docs/lgpl.txt b/docs/lgpl.txt deleted file mode 100644 index d43cdf091b..0000000000 --- a/docs/lgpl.txt +++ /dev/null @@ -1,517 +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/licence.txt b/docs/licence.txt deleted file mode 100644 index c91deed0bc..0000000000 --- a/docs/licence.txt +++ /dev/null @@ -1,53 +0,0 @@ - wxWindows Library Licence, Version 3 - ==================================== - - Copyright (c) 1998 Julian Smart, Robert Roebling et al - - Everyone is permitted to copy and distribute verbatim copies - of this licence document, but changing it is not allowed. - - WXWINDOWS LIBRARY LICENCE - 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 Licence as published by - the Free Software Foundation; either version 2 of the Licence, or (at - your option) any later version. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library - General Public Licence for more details. - - You should have received a copy of the GNU Library General Public Licence - along with this software, usually in a file named COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA. - - EXCEPTION NOTICE - - 1. As a special exception, the copyright holders of this library give - permission for additional uses of the text contained in this release of - the library as licenced under the wxWindows Library Licence, applying - either version 3 of the Licence, or (at your option) any later version of - the Licence as published by the copyright holders of version 3 of the - Licence document. - - 2. The exception is that you may use, copy, link, modify and distribute - under the user's own terms, binary object code versions of works based - on the Library. - - 3. If you copy code from files distributed under the terms of the GNU - General Public Licence or the GNU Library General Public Licence into a - copy of this library, as this licence permits, the exception does not - apply to the code that you add in this way. To avoid misleading anyone as - to the status of such modified files, you must delete this exception - notice from such code and/or adjust the licensing conditions notice - accordingly. - - 4. If you write modifications of your own for this library, it is your - choice whether to permit this exception to apply to your modifications. - If you do not wish that, you must delete the exception notice from such - code and/or adjust the licensing conditions notice accordingly. - - diff --git a/docs/licendoc.txt b/docs/licendoc.txt deleted file mode 100644 index 5bfa143812..0000000000 --- a/docs/licendoc.txt +++ /dev/null @@ -1,60 +0,0 @@ - wxWindows Free Documentation Licence, Version 3 - =============================================== - - Copyright (c) 1998 Julian Smart, Robert Roebling et al - - Everyone is permitted to copy and distribute verbatim copies - of this licence document, but changing it is not allowed. - - WXWINDOWS FREE DOCUMENTATION LICENCE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 1. Permission is granted to make and distribute verbatim copies of this - manual or piece of documentation provided any copyright notice and this - permission notice are preserved on all copies. - - 2. Permission is granted to process this file or document through a - document processing system and, at your option and the option of any third - party, print the results, provided a printed document carries a copying - permission notice identical to this one. - - 3. Permission is granted to copy and distribute modified versions of this - manual or piece of documentation under the conditions for verbatim - copying, provided also that any sections describing licensing conditions - for this manual, such as, in particular, the GNU General Public Licence, - the GNU Library General Public Licence, and any wxWindows Licence are - included exactly as in the original, and provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - 4. Permission is granted to copy and distribute translations of this - manual or piece of documentation into another language, under the above - conditions for modified versions, except that sections related to - licensing, including this paragraph, may also be included in translations - approved by the copyright holders of the respective licence documents in - addition to the original English. - - WARRANTY DISCLAIMER - - 5. BECAUSE THIS MANUAL OR PIECE OF DOCUMENTATION IS LICENSED FREE OF CHARGE, - THERE IS NO WARRANTY FOR IT, TO THE EXTENT PERMITTED BY APPLICABLE LAW. - EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER - PARTIES PROVIDE THIS MANUAL OR PIECE OF DOCUMENTATION "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 MANUAL OR PIECE OF DOCUMENTATION IS WITH YOU. SHOULD THE MANUAL OR - PIECE OF DOCUMENTATION PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL - NECESSARY SERVICING, REPAIR OR CORRECTION. - - 6. 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 MANUAL OR PIECE OF DOCUMENTATION 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 - MANUAL OR PIECE OF DOCUMENTATION (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 A PROGRAM BASED ON THE MANUAL OR PIECE OF - DOCUMENTATION TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR - OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - diff --git a/docs/motif/aix.txt b/docs/motif/aix.txt deleted file mode 100644 index b4bf78d231..0000000000 --- a/docs/motif/aix.txt +++ /dev/null @@ -1,17 +0,0 @@ -Notes for wxWindows compilation on AIX --------------------------------------- - -wxWindows 2.0 has been compiled under AIX with the C set ++ 3.1. - -The environment variables CC and CXX should be set accordingly before running -configure for the first time: - -For Bourne shell (sh, ksh, zsh, bash) users: - - export CC=xlc - export CXX=xlC - -For C shell (csh, tcsh) users: - - setenv CC xlc - setenv CXX xlC diff --git a/docs/motif/install.txt b/docs/motif/install.txt deleted file mode 100644 index d8368dfbf5..0000000000 --- a/docs/motif/install.txt +++ /dev/null @@ -1,211 +0,0 @@ -wxWindows 2.0 for Motif installation ------------------------------------- - -IMPORTANT NOTE: If you experience problems installing, please re-read this - instructions and other related files (todo.txt, bugs.txt and - osname.txt for your platform if it exists) carefully before - mailing wxwin-users or the author. Preferably, try to fix the - problem first and then send a patch to the author. - -- Prerequisites: Motif 1.2 or above, or Lesstif - (not yet tested). Motif 2.0 and above may also be suitable. - -- Download the files wx200gen.zip and wx200mot.zip, and - documentation in a preferred format, such as wx200htm.zip - or wx200pdf.zip. - -- Make a directory such as ~/wx and unzip the files into this - directory. Use the -a option if available to convert the ASCII - files to Unix format. Don't worry about files being - overwritten: they should be identical anyway. - - (See http://www.cdrom.com/pub/infozip/ if you don't have zip/unzip - already installed. Zip isn't the same as gzip!) - -- It is recommended that you install bison and flex; using yacc - and lex may require tweaking of the makefiles. You also need - libXpm (see comments in the Notes section below) if you want to have - XPM support in wxWindows (recommended). - -- You now have the option of using the configure-based system, or the simple - makefile system. - - Using configure is the recommended way to build the library. If it doesn't - work for you for whatever reason, please report it (together with detailed - information about your platform and the (relevant part of) contents of - config.log file) to wxwin-developers@wx.dent.med.uni-muenchen.de. - -COMPILING USING CONFIGURE -========================= - -- You can use the wxGTK configure system to make wxMotif, or - you can follow the following steps to use the simpler (but - less automatic) makefile system. If using configure, the - following script should make the library and samples, when - run from the top-level wxWindows directory (see also 'makewxmotif' - in this directory). Make this script executable with the command - chmod a+x makewxmotif. - - -------:x-----Cut here-----:x----- - # makewxmotif - # Sets permissions (in case we extracted wxMotif from zip files) - # and makes wxMotif. - # 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: - # if they're not supported by the target platform, they will be disabled - # anyhow - # -- Julian Smart - chmod a+x configure config.sub config.guess setup/general/* setup/shared/* - ./configure --with-shared --with-motif --without-gtk --with-debug_flag --with-debug_info --without-threads - make - -------:x-----Cut here-----:x----- - - This script will build wxMotif using shared libraries. - -- Change directory to a sample e.g. samples/minimal, and type make. - The binary will end up under the Linux (or other appropriate) subdirectory. - -- To build an application outside the wxWindows hierarchy, you can - use `wx-config --cflags` when compiling source files and `wx-config --libs` - when linking, where wx-config is in the wxWindows root directory. - These invocations return the appropriate flags for the compiler. - -- When compiling certain utilities such as Dialog Editor, you may find - that the makefile refers to wx-config as above. Unless you have used - "make install" to install wxWindows, wx-config won't be found, so - either edit the makefile to hard-wire the flags, or place wx-config - where it will be found by the makefile, or add the directory where you have - installed wxWindows to your PATH. - -- If switching between wxMotif and wxGTK, you should remove the - config.cache file manually before running configure again. - -COMPILING USING MAKEFILES -========================= - -- Copy the file include/wx/motif/setup0.h to include/wx/motif/setup.h and - edit it if you wish to enable/disable some library features - -- Choose a .env file from src/makeenvs that matches your - environment, and copy it to src/make.env. These are the - settings read by wxWindows for Motif makefiles. - -- Edit src/make.env to change options according to your local - environment. In particular, change WXDIR to where wxWindows is - found on your system, or set the WXWIN environment variable - before compilation, e.g.: - - export WXWIN=/home/jacs/wx2 - - Please feel free to contribute settings files for your environment. - -- Change directory to src/motif and type: - - make -f makefile.unx motif - - This should make the library libwx_motif.a in the lib - directory. Note that this makefile system does not build shared - libraries, only static ones (that is, the wxWindows library will be - linked statically; to see remaining dependencies on shared libraries, - type e.g. ldd minimal_motif). - -- Make a sample, such as the minimal sample: - - cd samples/minimal - make -f makefile.unx motif - - and run the resulting minimal_motif binary. - -Troubleshooting ---------------- - -- If you have trouble compiling the file y_tab.c, or have strange - linking errors, check whether you're using a C or C++ compiler for this file. - You should specify a C compiler in the CCLEX variable in src/make.env. - You could also try using bison and flex instead of yacc and - lex. - -- Solaris compilation with gcc: if the compiler has problems with the variable argument - functions, try putting the gcc fixinclude file paths early in the include - path. - -- If you operator-related compile errors or strange memory problems - (for example in deletion of string arrays), set wxUSE_GLOBAL_MEMORY_OPERATORS - and wxUSE_MEMORY_TRACING to 0 in setup.h, and recompile. - -- If you get an internal compiler error in gcc, turn off optimisations. - -- Problems with XtDestroyWidget crashing in ~wxWindow have been - reported on SGI IRIX 6.4. This has not yet been resolved, so - any advice here would be very welcome. See bugs.txt for a - possible temporary workaround (comment out the final - XtDestroyWidget from ~wxWindow in window.cpp). - -- If you use flex and bison instead of yacc and lex, you may need - to change the relevant part of src/motif/makefile.unx to read: - - ../common/y_tab.c: ../common/parser.y - $(YACC) ../common/parser.y - mv ../common/parser.tab.c ../common/y_tab.c - - (the 'mv' command needs to be changed) - -- Some compilers, such as Sun C++, may give a lot of warnings about - virtual functions being hidden. Please ignore these, it's correct C++ syntax. - If you find any incorrect instances, though, such as a - missing 'const' in an overridden function, please let us know. - -Other Notes ------------ - -- Better installation and makefile systems are - required. A revised configure system is in preparation. - -- Debugging mode is switched on by default in the makefiles, but using - configure will create a release build of the library by default: it's - recommended to use --with-debug_info and --with-debug_flag configure - switches while developing your application. To compile in non-debug - mode, remove the -D__WXDEBUG__ switch in make.env (or if using the - configure system, change --with-debug_flag to --without_debug_flag - and --with-debug_info to --without-debug_info in the makewxmotif - script). - -- Some classes can be switched off in include/wx/motif/setup.h, - if you are having trouble with a particular file. However, - I'd prefer you to fix the problem and send the fix to me :-) or at - least let me know about it. - -- Thread support is switched off by default in setup.h (wxUSE_THREADS) - because standard Unices often do not have the necessary thread library - installed. Please see ../docs/gtk/install.txt for more details on this. - The systems for which thread support is known to work are Linux with libc6 - (a.k.a. glibc2), Solaris 2.5 and 2.6 (provided that X libraries are thread - safe) and, to some extent, FreeBSD 2.8 and 3.1 (any feedback on thread - support under FreeBSD as well as the systems not mentioned here would be - appreciated). - -- If you run into problems with a missing X11/Xpm.h header, you - need to install the XPM package. It can be obtained from: - - ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz - http://sunfreeware.com - - You may need to modify make.env to add -I and -L options pointing to where Xpm - is installed and possibly change bitmap.cpp to - include instead of - - Alternatively, edit include/wx/motif/setup.h, set wxUSE_XPM - to 0, and recompile. You will not be able to load any XPMs, - though (currently the only supported colour bitmap format). - -Bug reports ------------ - -Please send bug reports with a description of your environment, -compiler and the error message(s) to the wxwin-developers mailing list at: - - wxwin-developers@wx.dent.med.uni-muenchen.de - -Julian Smart, February 1999. -julian.smart@ukonline.co.uk diff --git a/docs/motif/issues.txt b/docs/motif/issues.txt deleted file mode 100644 index bb4c54218e..0000000000 --- a/docs/motif/issues.txt +++ /dev/null @@ -1,13 +0,0 @@ -Outstanding issues ------------------- - -(see also todo.txt) - -- wxTextCtrl doesn't work as a stream buffer in Linux/gcc -- No wxSpinButton -- Need a way of specifying default settings for colour/font/etc. -- More optimisation could be done to reduce X server traffic, etc. -- Should scrollbars take on the background colour? Not right for - e.g. wxScrolledWindows, so maybe have wxSystemSettings value for - scrollbar colour, and/or ability to set scrollbar colour independently. - diff --git a/docs/motif/makewxmotif b/docs/motif/makewxmotif deleted file mode 100644 index cc86aad813..0000000000 --- a/docs/motif/makewxmotif +++ /dev/null @@ -1,11 +0,0 @@ -# makewxmotif -# Sets permissions (in case we extracted wxMotif from zip files) -# and makes wxMotif. -# 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-motif --without-gtk --with-debug_flag --with-debug_info --without-threads -make makefiles -make diff --git a/docs/motif/readme.txt b/docs/motif/readme.txt deleted file mode 100644 index a56f9e93a4..0000000000 --- a/docs/motif/readme.txt +++ /dev/null @@ -1,7 +0,0 @@ -wxMotif ReadMe --------------- - -This file is currently under construction. - -For further details of the Motif port, please see changes.txt and -todo.txt. diff --git a/docs/motif/todo.txt b/docs/motif/todo.txt deleted file mode 100644 index 1852d3c4ba..0000000000 --- a/docs/motif/todo.txt +++ /dev/null @@ -1,98 +0,0 @@ -wxMotif TODO ------------- - -Updated: 11/02/99 - - -------------------------------o------------------------- - -General comment: see the following site for useful Motif widgets. -ftp://ftp.x.org/contrib/widgets/motif - -Also, grep for TODO comments in source. - -High Priority -------------- - -- Have a central/per app file for colour settings, with a wxWin - app to allow changing settings interactively. - -- Implementation of default event processing (i.e. passing on an intercepted - event such as OnChar to the system). Currently, such events are processed - anyway, so for example intercepting left-click in a widget doesn't disable - the default behaviour. See TODOs in window.cpp. - -- wxRadioBox doesn't show up in the controls sample, though it's - OK on other dialogs (e.g. printing sample). - -- wxSpinButton - -- wxToolTip - -- Miscellaneous events. - -- Use wxImage to load other formats into wxBitmaps, such as PNG, BMP. - -- Allow wxFrame and other widgets to have mouse event handlers. - -Low Priority ------------- - -- Painting a retained window could be optimized further (see - wxWindow::DoPaint). - -- Visuals: how to select an appropriate one? See Thomas Runge's - visual patch for 1.68 -- should be straightforward to port to 2.0. - -- Work out why XFreeFont in font.cpp produces a segv. This is - currently commented out, which presumably causes a memory leak. - -- Better makefile system that can put objects in different dirs. - -- Extra wxBitmap formats: PNG, BMP. Could use old wxWin 1.68 - wxImage code (derived from XV) for BMP/GIF but it's very bloated. However, - when implemented as extra bitmap handlers, the code won't be linked - unless needed. Update: see if wxImage can handle these formats. - -- Get Dialog Editor working (better) under Motif. - -- New wxHelp version: try using the XmHTML widget at - http://www.xs4all.nl/~ripley/XmHTML/. - - We need to: - - make a minimal distribution under wx/src/xmhtml, just enough - to compile the source. - - add XMHTML_C_SRC to src/motif/makefile.unx with the source files - listed. - - make sure we can compile the sources, passing the correct - flags for zlib/png compilation. - - make a wxHTMLWindow class from e.g. examples/example_2.c. Should - probably make the cache and history facilities part of the class. - - add the driver code to src/motif/helphtml.cpp (a frame, toolbar, - history list). - -- Drag and drop. Use a standard X drag - and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/ - or use Motif drag and drop as described here: - http://www.motifzone.com/tmd/articles/DnD/dnd.html - -- Optimize colour management so we don't get clashes when e.g. - Netscape is running. See: - http://www.motifzone.com/tmd/articles/John_Cwikla/index.html - -- wxRCConfig (a config class using X .rc files). Could simply - implement it in terms of current wxGet/WriteResource functions. - -- wxCheckBoxList - -- wxBitmapCheckBox, wxBitmapRadioButton - -- Reimplement combobox using Lesstif's widget (avoiding GPL'ed - widget currently used). - -- Miscellaneous classes e.g. wxJoystick (identical to GTK's one for - Linux) - -- Get ODBC classes and sample working. - -- Work out why wxTextCtrl doesn't work as a stream buffer under - gcc \ No newline at end of file diff --git a/docs/motif2/COPYING.LIB b/docs/motif2/COPYING.LIB deleted file mode 100644 index eb685a5ec9..0000000000 --- a/docs/motif2/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/motif2/changes.txt b/docs/motif2/changes.txt deleted file mode 100644 index d286db4e9e..0000000000 --- a/docs/motif2/changes.txt +++ /dev/null @@ -1,4 +0,0 @@ - -22th June '99: First wxMotif 2.1 snapshot released - -Initial release diff --git a/docs/motif2/install.txt b/docs/motif2/install.txt deleted file mode 100644 index 3a7d4c11b5..0000000000 --- a/docs/motif2/install.txt +++ /dev/null @@ -1,383 +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: wxMotif 2.1 beta 6, egcs 1.1.1, Redhat 5.0 !!! - -* The most simple case ------------------------ - -If you compile wxWindows on Linux for the first time and don't like to read -install instructions just do (in the base dir): - -> ./configure --with-motif -> make -> su -> make install -> ldconfig -> exit - -Afterwards you can continue with - -> 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 currently -be installed, so you'd have to use local version of the library for that purpose. -For building three versions (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_flag -make -cd .. - -* The most simple errors ------------------------- - -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 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/Motif requires the Motif library to be installed on your system. As -an alternative, you may also use the free library "lesstif" which implements -most of the Motif API without the licence restrictions of Motif. - -You can get the newest version of the Lesstif from the lesstif homepage at: - - http://www.lesstif.org - -* Additional libraries ------------------------ - -wxWindows/Motif 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. - -* Building wxMotif on SGI --------------------------- - -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. - -* 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 - -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 -------------------- - -Given below are the commands to change the default behaviour, -i.e. if it says "--disable-threads" it means that threads -are enabled by default. - -Many of the confiugre options have been thoroughly tested -in wxWindows snapshot 6, but not yet all (ODBC not). - -You have to add --with-motif on platforms, where Motif is -not the default (on Linux, configure will deafult to GTK). - - --without-gtk Don't 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-no_rtti Enable compilation without creation of - C++ RTTI information in object files. - This will speed-up compilation and reduce - binary size. - - --enable-no_exceptions Enable compilation without creation of - C++ exception information in object files. - This will speed-up compilation and reduce - binary size. Also fewer crashes during the - actual compilation... - - --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 -------------------- - -Many of the confiugre options have been thoroughly tested -in wxWindows snapshot 6, but not yet all (ODBC not). - -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. Not yet. } - - --disable-resources 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. - - --disable-file Disables the wxFile class. - - --disable-textfile Disables the wxTextFile class. - - --disable-intl Disables the internationalisation. - - --disable-validators Disables validators. - - --disable-accel Disables accel. - -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 --------------------------- - -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 -GNU libtool version 1.2 (1.3 seems broken) - -and quite possibly - -GNU make -GNU C++ - -and if you have all this then you probably know enough to -go ahead yourself :-) - ----------------------- - -In the hope that it will be useful, - - Robert Roebling - - diff --git a/docs/motif2/licence.txt b/docs/motif2/licence.txt deleted file mode 100644 index e6dcfbd25c..0000000000 --- a/docs/motif2/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/motif2/readme.txt b/docs/motif2/readme.txt deleted file mode 100644 index 115494e85a..0000000000 --- a/docs/motif2/readme.txt +++ /dev/null @@ -1,56 +0,0 @@ - - Welcome to wxWindows/Motif 2.1 snapshot 7, - -you have downloaded version 2.1 of the Motif 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. - -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: - -./configure --with-motif -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_motif.a (static) and libwx_motif-2.1.so.0.0.0 (shared) so that -once a binary incompatible version of wxWindows/Motif 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 list. Information -on how to subscribe is available from my homepage. - -wxWindows/Motif 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/motif2/todo.txt b/docs/motif2/todo.txt deleted file mode 100644 index 96bce1ccb8..0000000000 --- a/docs/motif2/todo.txt +++ /dev/null @@ -1,48 +0,0 @@ - --------------------- High priority --------------------- - -Finalise DnD API. - -More testing of Unicode support. - -New wxSizer class implementation. - -Make wxSockets work on all platform. - -Do something about reentry problems with GUI threads - when doing asynchronous work (clipboard transfer, - DnD, sockets, different threads). - -Add ID based i18n system as a replacement for the - unelegant gettext system. - -Add controls to toolbar. - -Add TIFF handler. Someone? (Hint, hint). - -Improve, update translations. Install *.mo files somewehere. - -Completely remove internal usage of C++ iostreams. - -Sleep, eat, walk, study, shave, read, play piano and wash less. - --------------------- Medium priority --------------------- - -Show accelerator control labels and actually implement them - -> Changed in GTK 1.2 (so let's do it for 1.2). Difficult. - --------------------- Low priority --------------------- - -Right aligned checkboxes: focus highlighting is wrong, tooltips can't be set can't be set - -OwnerDraw for wxListCtrl and others - -> Postponed. - -Implement wxPalette - -> I never understood that. Postponed. - -Implement different visuals and displays - -> I never understood that. Postponed. - -Cooperation with Qt - -> Would be nice. diff --git a/docs/msw/bc_ide.txt b/docs/msw/bc_ide.txt deleted file mode 100644 index 135384be7d..0000000000 --- a/docs/msw/bc_ide.txt +++ /dev/null @@ -1,30 +0,0 @@ -Readme for wxWindows 2.0 Ide-files -First release Feb. 1999, detlev@reymann-online.de - -1. What you can do with this ide-files -2. Where to install the files -3. How to modify them for your own needs -4. How to create ide-files for your own wxWindows-programs - -1. What you can do with this ide-files -====================================== -There are three ide-files. One ide-file should help you to create the wxWindows libraries from within the Ide of Borlands C++, v. 5.x. The second is called bc32d.ide and produces the debug-version of the wxWindows-library. -If you want to produce the debugging-version, using the special ide-file bc32d.ide you have to create a seperate subdirectory \WXWIN_PATH\src\debug. -The last one should help you to create most of the samples of wxWindows. - -2. Where to install the files -============================= -You should copy the files for the libraries into the src-directory of your wxWindows-Installation (e.g. C:\wxwin\src). -And the other file for the samples should be copied into the samples-directory (e.g. C:\wxwin\samples). - -3. How to modify them for your own needs -======================================== -If your wxWindows-Installation resides on the same drive as your Borland-Compiler and additionally the Borland-Installation is the default (e.g. C:\BC5) then there should be no need to change anything. -Otherwise please change the path from within the ide (Options->project->directories). Because we use the $inherit-makro (Julian foung the trick), this should do the trick. - -4. How to create ide-files for your own wxWindows-programs -========================================================== -I think you are familiar with the necessary options for your own programm. So I will only describe what is neccessary to link yout programm with the wxWindows-library. If you want to create a ide-file for your own wxWindows-program, create a new project from the menu file->new->project. Deactivate all the standard-options, the only two thing that should be aktivated is "static" for the libraries, if you want to use the library produced with the library-ide and the checkbox OLE (You can leave this checkbox unchecked, but then you have to add the library \bc5\lib\ole2w32.lib to your project). You have to add the include-path of wxWindows to the include-path in the options-dialog (options->project->directories->include). The result should be something like: -path_of_my_program;\bc5\include;\wxwin2\include; -Then you have to add the libraries to the project. -Open the project-view and activate your programm. Then right-click and choose "add" and select the wxWindows-library (e.g. \wxwin\lib\wx32.lib). \ No newline at end of file diff --git a/docs/msw/install.txt b/docs/msw/install.txt deleted file mode 100644 index ebfd849c7c..0000000000 --- a/docs/msw/install.txt +++ /dev/null @@ -1,432 +0,0 @@ - -Installing wxWindows 2.1 ------------------------- - -[Notes from Robert Roebling for snapshot 8] - -This is a not-so-well tested snapshot release of wxWindows 2.1 for -Microsoft Windows 95, 98 and NT. This is not a production release, -although a huge number of bugs found in wxWindows 2.0 have been -fixed. - -There have not been major changes in the way to build the library, -although the creation of the various makefiles has been automatized. -I myself use the GNU MingGW32 compiler from - - http://www.cygnus.com - -using the GNU make program from - - http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32 - -and I have not tested any other compiler, but other developers use -the makefiles for Borland C++, MS-Visual C++ 5.0 and 6.0 and probably -Metrowerks C++. - -Expect problems. - -Installing wxWindows 2.0 ------------------------- - -IMPORTANT NOTE: If you experience problems installing, please -re-read this instructions and other related files (todo.txt, -bugs.txt etc.) carefully before mailing wxwin-users or -the author. Preferably, try to fix the problem first and -then send a patch to the author. - -Unarchiving ------------ - -If there is a setup program, run the setup program that comes with the Windows version. -Do not install into a path that contains spaces. The installation program should set the -WXWIN environment variable, which will be activated when your machine is rebooted. - -If there is no setup program, it will come as a series of .zip -files: - -wx200gen.zip Generic source code and samples (required) -wx200msw.zip Windows-specific source code and samples (required) -wx200doc.zip Documentation source code (not required) -wx200hlp.zip WinHelp documentation -wx200pdf.zip Acrobat PDF documentation -wx200htm.zip HTML documentation -wx200vc.zip MS VC++ 5.0 project files -wx200cw.zip Metrowerks CodeWarrior project files -wx200bc.zip BC++ 5 project files - -Unarchive the required files plus any optional documentation -files into a suitable directory such as c:\wx. - -Other add-on packages are available from the wxWindows Web site, such as: - -- glcanvas.zip. Use OpenGL in a wxWindows window. -- ogl3.zip. Object Graphics Library: build network diagrams, CASE tools etc. -- tex2rtf3.zip. Tex2RTF: create Windows Help, HTML, and Word RTF files from - the same document source. - -General installation notes --------------------------- - -Alter your WXWIN environment variable to point to this directory. -For Cygwin or Mingw32 compilation, make sure WXWIN contains only -forward slashes. - -If installing from the CVS server, copy include/wx/msw/setup0.h to -include/wx/msw/setup.h and edit the resulting file to choose the featrues you -would like to compile wxWindows with[out]. - -Compilation ------------ - -The following sections explain how to compile wxWindows with each supported -compiler. - -Visual C++ 4.0/5.0/6.0 compilation ----------------------------------- - -Using project files: - -1. Unarchive wx200vc.zip, the VC++ 5 project makefiles. -2. Open src/wxvc.dsp, set Debug or Release configuration, and - compile. This will produce src/Debug/wxvc.lib or - src/Release/wxvc.lib. The project file src/wxvc_dll.dsp - will make a DLL version of wxWindow, which will go in - src/DebugDLL/wxvc.[lib,dll] and src/ReleaseDLL/wxvc.[lib,dll]. -3. Open a sample project file, choose a configuration, and compile. - The project files don't use precompiled headers, to save - space, but you can switch PCH compiling on for greater speed. - -Using makefiles: - -1. Make sure your WXWIN variable is set. -2. Change directory to wx\src\msw. Type: - - 'nmake -f makefile.vc' - - to make the wxWindows core library with debug information - (wx\lib\wx_d.lib), or - - 'nmake -f makefile.vc FINAL=1' - - to make the wxWindows core library without debug information - (wx\lib\wx.lib). - -3. Change directory to wx\samples and type 'nmake -f makefile.vc' - to make all the samples. You can also make them individually. - -Notes: - - Use the 'clean' target to clean all objects, libraries and - executables. - - To build the release version using makefiles, add FINAL=1 to your - nmake invocation, both when building the library and for samples. - - Note that the wxWindows core library allows you to have debug - and release libraries available simultaneously, by compiling the - objects in different subdirectories, whereas samples must be - cleaned and re-made to build a different configuration. This - may be changed in later versions of wxWindows. - -To build the DLL version using makefiles: - -1. Change directory to wx\src\msw. Type 'nmake -f makefile.vc dll pch' - to make both a suitable DLL and import library, and to build a - suitable precompiled header file for compiling applications. - The resulting libraries are called: - - wx\lib\wx200_d.lib(dll) (debug version) - wx\lib\wx200.lib(dll) (release version, using FINAL=1) - -2. Invoke a sample makefile with 'nmake -f makefile.vc WXUSINGDLL=1' - (or edit src\makeprog.vc to set WXUSINGDLL to 1 for all - applications). - -Note (1): if you wish to use templates, please edit -include\wx\msw\setup.h and set wxUSE_DEBUG_NEW_ALWAYS to 0. -Without this, the redefinition of 'new' will cause problems in -the headers. Alternatively, #undef new before including template headers. -You will also need to set wxUSE_IOSTREAMH to 0 if you will be -using templates, to avoid the non-template stream files being included -within wxWindows. - -Note (2): libraries and applications generated with makefiles and -project files are unlikely to be compatible, so use one method or -the other. - -Note (3): 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. - -Note (4): some crash problems can be due to inconsistent compiler -options. 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. - -Visual C++ 1.5 compilation --------------------------- - -1. Make sure your WXWIN variable is set, and uses the FAT (short - name) form. -2. Change directory to wx\src\msw. Type 'nmake -f makefile.dos' to - make the wxWindows core library. -3. Change directory to a sample, such as wx\samples\minimal, and - type 'nmake -f makefile.dos'. - -Add FINAL=1 to your makefile invocation to build the release -versions of the library and samples. - -Use the 'clean' target to clean all objects, libraries and -executables. - -Borland C++ 4.5/5.0 compilation -------------------------------- - -Compiling using the makefiles: - -1. Make sure your WXWIN variable is set, and uses the FAT (short - name) form if doing a 16-bit compile. -2. Change directory to wx\src\msw. Type 'make -f makefile.b32' to - make the wxWindows core library. Ignore the warnings about - 'XXX' not found in library. -3. Change directory to a sample such as minimal, and type - 'make -f makefile.b32'. -4. For release versions, recompile wxWindows and samples using - 'make -f makefile.b32 clean' - 'make -f makefile.b32 FINAL=1' - for the library and samples. - -Note: the wxWindows library and (some) samples compile in 16-bit mode -using makefile.bcc, but at present the wxWindows resource system is switched -off in this mode. See issues.txt for details. - -Compiling using the IDE files: - -1. Load src\bc32.ide (or src\bc32d.ide for a debugging version). -2. Go to Options|Project... and specify the correct BC++ include and lib path for - your file structure. -3. Press F9 to compile the wxWindows library. -4. Load samples\bc32.ide. -5. Go to Options|Project... and specify the correct BC++ include and lib path for - your file structure. -6. Press F9 to compile the samples. - -Note that to make the png, xpm and zlib libraries (needed for -some samples) you need to compile with bc32.ide. bc32d.ide only -makes the wxWindows library (lib\wx32d.lib). - -The debug version of the wxWindows library is about 37 MB, and the -release version is around 3 MB. - -See also the file bc_ide.txt for further instructions and details -of how to create your own project files. - -Borland C++Builder compilation ------------------------------- - -C++Builder compilation is the same as for Borland C++ above. - -Tested with C++Builder 1.0 and 3.0. Only makefiles are currently -supplied. - -Watcom C++ 10.6 compilation ---------------------------- - -1. Make sure your WXWIN variable is set, and uses the DOS short - name form. -2. Change directory to wx\src\msw. Type 'wmake -f makefile.wat' to - make the wxWindows core library. -3. Change directory to wx\samples\minimal and type 'wmake -f makefile.wat' - to make this sample. - -Metrowerks CodeWarrior compilation ----------------------------------- - -1. Downloaded and unzip wx200cw.zip. -2. Load the make_cw.mcp project in wx\src, and compile. -3. Load the make_cw.mcp project in wx\samples\minimal, and compile. - Further project files for samples will be available in due - course. - -NOTES: - -You need CodeWarrior Pro 4 plus the patches to 4.1 from the -Metrowerks Web site. - -Symantec C++ compilation ------------------------- - -1. Make sure your WXWIN variable is set, and uses the FAT (short - name) form. -2. Edit setup.h and set wxUSE_DRAG_AND_DROP to 0. -3. Change directory to wx\src\msw. Type 'make -f makefile.sc' to - make the wxWindows core library. -4. Change directory to wx\samples\minimal and type 'make -f makefile.sc' - to make this sample. - -Note: the minimal sample doesn't link properly ('Error: no -start address'). -32-bit compilation only (partially) supported at present, using SC++ 6.1. -Some functionality is missing using this compiler (see makefile). -Add -D__WIN95__ if your SC++ has Windows 95 support, and ignore -Step (2). 16-bit compilation is left as an excercise for the user! - -Salford C++ compilation ------------------------ - -1. Make sure your WXWIN variable is set, and uses the FAT (short - name) form. -2. Edit SALFORDDIR and RESOURCEDIR in src/makesl.env as per - notes. -3. Change directory to wx\src\msw. Type 'mk32 -f makefile.sl all' to - make the wxWindows core library. -4. Change directory to wx\samples\minimal and type 'mk32 -f makefile.sl' - to make this sample. - -Unfortunately, Salford C++ seems to have problems with its code generation for -operations on objects, as seen in wxFrame::OnMenuHighlight -(minimal sample) or wxWindow::SetValidator (mdi sample). Also the -the debugging version of the library is 90MB, with samples coming in -at 40MB :-) However, wxWindows at least makes a good test suite for -improving the compiler. - -Cygwin b19/b20/Mingw32 compilation ----------------------------------- - -wxWindows 2.0 supports Cygwin (formerly GnuWin32) b19, b20, Mingw32, and Mingw32/EGCS. - -Thanks are due to Keith Garry Boyce (garp@opustel.com) and Cygnus for making -it all possible. - -From wxWindows 2.0 beta 9, both Cygwin and Mingw32 (the minimal -distribution of Cygwin) can be used with the same makefiles. - -Here are the steps required: - -- Retrieve and install the latest beta of Cygwin, or Mingw32, as per the - instructions with either of these packages. - -- If using Mingw32 (including the EGCS variant), you need some - extra files to use the wxWindows makefiles. You can find these - files in ports/mingw32 on the ftp site or CD-ROM, as extra.zip. - These should be extracted to the Mingw32 directory. - If you have already have downloaded bison, flex, make, rm, mv - from elsewhere, you won't need this. - - IMPORTANT: also see mingw32.txt in this directory (docs/msw) - about a fix that has to be applied to a Mingw32 header file. - -- Modify the file wx/src/cygnus.bat (or mingw32.bat or mingegcs.bat) - to set up appropriate variables, if necessary mounting drives. - Run it before compiling. - -- For Cygwin, make sure there's a \tmp directory on your - Windows drive or bison will crash. - -- Edit wx/src/makeg95.env and search for MINGW32. Take note of - the comments for adjusting settings to suit Cygwin or - Mingw32. Basically, this is just a case of adding the __MINGW32__ symbol - to OPTIONS for Mingw32, or removing it for Cygnus Cygwin. - For Mingw32/EGCS, add both __MINGW32__ and __EGCS__. - You may need to remove -loldnames from WINLIBS for Mingw32, or add it for - Cygwin. - -- Mingw32 may not support winsock.h, so comment out - socket-related files in src/msw/makefile.g95. - -- Set your WXWIN variable to where wxWindows is installed. - *** IMPORTANT: For Cygwin/Mingw32, use forward slashes in the path, not - backslashes. - -- Use the makefile.g95 files for compiling wxWindows and samples, - e.g.: - > cd c:\wx\src\msw - > make -f makefile.g95 - > cd c:\wx\samples\minimal - > make -f makefile.g95 - - Ignore the warning about the default entry point. - -- Use the 'strip' command to reduce executable size. - -- With Cygnus Cygwin, you can invoke gdb --nw myfile.exe to - debug an executable. If there are memory leaks, they will be - flagged when the program quits. - -- If using GnuWin32 b18, you will need to copy windres.exe - from e.g. the Mingw32 distribution, to a directory in your path. - -All targets have 'clean' targets to allow removal of object files -and other intermediate compiler files. - -Notes: - -- libwx.a is 48 MB or more - but much less if compiled with no - debug info (-g0) and level 4 optimization (-O4). - -- install.exe doesn't have built-in decompression because lzexpand.lib - isn't available with Cygwin. However, you can use it with external - decompression utilities. - -- Doesn't compile src/msw/ole files, so no drag and drop. - -- There's a bug in the Mingw32 headers for some distributions. - - in include/windows32/defines.h, where it says: - - #define LPSTR_TEXTCALLBACKA (LPSTR)-1L) - - it should say: - - #define LPSTR_TEXTCALLBACKA ((LPSTR)-1L) - - (a missing bracket). - -References: - - - The GNU-WIN32 site is at - http://www.cygnus.com/gnu-win32/ - - Mingw32 is available at: - http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/index.html - - See also http://web.ukonline.co.uk/julian.smart/wxwin/gnuwin32.htm - -TWIN32 and gcc on Linux ------------------------ - -The wxWindows 2 for Windows port may be compiled using -the TWIN32 emulator package from www.willows.com. However, -TWIN32 is by no means finished so this should be taken as -something to think about for the future, rather than -a tool for writing products with. - -Use makefile.twn in much the same way as makefile.g95, as -described above. Not all sample makefiles are supplied yet. - -For some reason, I found I had to copy TWIN32's Windows resource -compiler (rc) to the current working directory for it to be found. - -General Notes -------------- - -- Debugging: under Windows 95, debugging output isn't output in - the same way that it is under NT or Windows 3.1. Set - wxUSE_DBWIN32 to 1 if you wish to enable code to output debugging - info to an external debug monitor, such as Andrew Tucker's DBWIN32. - You can download DBWIN32 from: - - http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip - - and it's also on the wxWindows CD-ROM under Packages. - -- If you are installing wxWindows 2 from CVS, you may find that - include/wx/msw/setup.h is missing. This is deliberate, to avoid - developers' different setup.h configurations getting confused. - Please copy setup0.h to setup.h before compiling. diff --git a/docs/msw/issues.txt b/docs/msw/issues.txt deleted file mode 100644 index 2f245e467b..0000000000 --- a/docs/msw/issues.txt +++ /dev/null @@ -1,29 +0,0 @@ -Current issues and bugs ------------------------ - -Memory-checking subsystem -------------------------- - -This conflicts with wxUSE_IOSTREAMSH = 0 using MS VC++ 5.0 -(crashes the template code). It should be switched off if you -wish to use wxUSE_IOSTREAMSH = 0. - -BC++ in 16-bit mode -------------------- - -resource.cpp has to be split into two to compile (hence -resourc2.cpp). Unfortunately we still get the error: - - Segment TEXT_RESOURCE exceeds 64K. - -The solution is probably to load wxResourceBitListTable -dynamically using LoadString to load the names, and initialize the table -at wxWindows start-up. - -Meanwhile the work-around is to switch wxUSE_WX_RESOURCES to 0 -(done in setup.h if BC++/16-bit mode is detected). - -See also: - http://www.inprise.com/devsupport/borlandcpp/ti_list/TI703.html - http://www.inprise.com/devsupport/borlandcpp/ti/TI1007.html - diff --git a/docs/msw/mingw32.txt b/docs/msw/mingw32.txt deleted file mode 100644 index 934585bc72..0000000000 --- a/docs/msw/mingw32.txt +++ /dev/null @@ -1,32 +0,0 @@ -Return-Path: -Delivered-To: julian.smart@ukonline.co.uk -Delivered-To: fixup-julian.smart@ukonline.co.uk@fixme -Date: Tue, 01 Dec 1998 23:27:18 -0700 -From: "J.Russell Smyth" -X-Accept-Language: en -To: Julian Smart -Subject: fixes for mingw32 - -Julian, - - After 3 hours I have found the problem causing - -..\\..\\include\\wx/string.h:520: warning: ANSI C++ forbids implicit -conversion -from `void *' in assignment - --There is an error in -mingw\lib\gcc-lib\i386-mingw32\2.8.1\include\stdarg.h - -(not a real diff.. dont have win95 diff avail right now) -67c67 -<#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || -defined(__NetBSD__) ---- ->#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || -defined(__NetBSD__)||defined(__WIN32__) - -this fixes it!! I will send a message to the maintainer of mingw to let -him know of this problem. - - diff --git a/docs/msw/readme.txt b/docs/msw/readme.txt deleted file mode 100644 index 2ae9f1b797..0000000000 --- a/docs/msw/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -This is the wxWindows for Windows Preview. - -For more information, please see changes.txt, todo.txt, and the -manuals. - diff --git a/docs/msw/todo.txt b/docs/msw/todo.txt deleted file mode 100644 index a6a72a791f..0000000000 --- a/docs/msw/todo.txt +++ /dev/null @@ -1,141 +0,0 @@ - -Todo on wxWin 2.0, Windows platform ------------------------------------ - -HIGH PRIORITY -------------- - -Add further controls and properties to Dialog Editor. - -Add centring, right justify styles to wxStaticText. - -Extend wxSystemSettings to get symbols for current nationality, -e.g. ',' instead of '.' for decimal points. - -Supply correct ctl3d/odbc lib files for BC++, Watcom (corrupt?) - -wxToolTip::Enable should be static for wxGTK compatibility (VZ) - -LOW PRIORITY (MEDIUM TERM) --------------------------- - -Supply VC++ project generator utility. - -Convert remaining utilities e.g. wxGraphLayout. - -More wxSystemSettings (see comment in settings.cpp). - -Synchronize drawing functions on all platforms, using Chris's -code to test them. - -Shell function to invoke a document with open, print, whatever... - -Write tutorial. - -Add wxDC::DeviceToLogical -> wxPoint etc (convenience accessors). - -Generic makefiles? Rewrite makefiles to maintain simultaneous debug/release -objects. - -Add a wxTabCtrl sample. - -Improve printing. More API functions for printer DCs (to get -printer characteristics) and more reliable printing framework. - -Add GetIcon, GetBitmap to wxImageList. Perhaps store bitmaps -in image list so we can get them later. - -Merge dib.cpp, dibutils.cpp (see also some DIB code in bitmap.cpp). - -Debug PNG support in wxBitmap (no 4-bit support), and possibly add a convertor from PNG -to HICON. We could perhaps also support inclusion of PNGs into -a .res file as a custom resource. - -Fonts: ability to enumerate them. - -Angled text. - -Think about reimplementing wxBitmapButton, wxStaticBitmap using -BS_BITMAP, SS_BITMAP - but this may not allow wxBitmap -argument, so instead just allow controls loaded from native -resource to deal with this style and call default processing. - -wxWizard class? - -Doc/view - have some standard views/docs e.g. wxTextView. - -Miscellaneous file/system function wrappers. - -Bug database. - -Menu bitmaps - document Vadim's enhancements. - -wxCreateDynamicObject is apparently slow: ~ 2000 calls to strcmp. Need to -use some kind of hash table scheme. - -Write wxDisplay class for querying settings and passing -to wxFrame to mirror the X situation (multiple displays). - -Write translator between old and new .wxr formats (including -substituting static text for obsolete labels). - -Write more validators. Also, how do they work if loading the -dialog from a .wxr? Could call SetValidator from within -InitDialog for all controls, then call TransferDataToWindow. - -Classes for file/OS utility functions. - -Add support for more static controls e.g. wxStaticLine. - -Perhaps rewrite wxFile to use FILE* descriptors, so Eof and Flush -can work. - -Find out how to set wxFileDialog position. - -Maybe bundle Andrew Tucker's DBWIN32 with wxWindows (it's only -26KB), for viewing debug messages without a debugger. - -Implement wxDC floating point transformations. - -A wxDC function (or two) for drawing 3D edges? - -LOW PRIORITY (LONG TERM) ------------------------- - -Improve and expand wxSizer classes. - -ActiveX support - -Look at porting to WinCE - -Enhance Tex2RTF to generate Microsoft HTML help, perhaps Netscape -HTML help also. - -GDI objects could be optimised further in constructors by -searching for a matching, pre-existing object, and assigning from -that, thus sharing the internal handle. A problem with this -arises if you wish to change the data. But this can be handled by -un-refing and creating a new handle. So we could reuse many -Windows GDI objects without troubling the programmer. We might -wish to switch this off in certain circumstances, e.g. - - wxEnableGDIReuse(FALSE); - wxBrush brush(...); - wxEnableGDIReuse(TRUE); - -or even - - wxGDIReuse reuse(FALSE); - wxBrush brush(...); - -which lasts until its scope ends. This might be needed e.g. if we -needed to ensure that the operation was maximally efficient -(creating a new object rather than searching may or may not be -more efficient). - -Integrate Guilhem's multimedia classes: documentation, makefiles, -different platforms. - -Rich text class. - - diff --git a/docs/preamble.txt b/docs/preamble.txt deleted file mode 100644 index 643cd1c457..0000000000 --- a/docs/preamble.txt +++ /dev/null @@ -1,49 +0,0 @@ -Preamble -======== - -The licensing of the wxWindows library is intended to protect the wxWindows -library, its developers, and its users, so that the considerable investment -it represents is not abused. - -Under the terms of the wxWindows Licence, you as a user are not -obliged to distribute wxWindows source code with your products, if you -distribute these products in binary form. However, you are prevented from -restricting use of the library in source code form, or denying others the -rights to use or distribute wxWindows library source code in the way -intended. - -The wxWindows Licence establishes the copyright for the code and related -material, and it gives you legal permission to copy, distribute and/or -modify the library. It also asserts that no warranty is given by the authors -for this or derived code. - -The core distribution of the wxWindows library contains files -under two different licences: - -- Most files are distributed under the GNU Library General Public - Licence, version 2, with the special exception that you may create and - distribute object code versions built from the source code or modified - versions of it (even if these modified versions include code under a - different licence), and distribute such binaries under your own - terms. - -- Most core wxWindows manuals are made available under the "wxWindows - Free Documentation Licence", which allows you to distribute modified - versions of the manuals, such as versions documenting any modifications - made by you in your version of the library. However, you may not restrict - any third party from reincorporating your changes into the original - manuals. - -Other relevant files: - -- licence.txt: a statement that the wxWindows library is - covered by the GNU Library General Public Licence, with an - exception notice for binary distribution. - -- licencdoc.txt: the wxWindows Documentation Licence. - -- lgpl.txt: the text of the GNU Library General Public Licence. - -- gpl.txt: the text of the GNU General Public Licence, which is - referenced by the LGPL. - diff --git a/docs/readme.txt b/docs/readme.txt deleted file mode 100644 index 78a3583732..0000000000 --- a/docs/readme.txt +++ /dev/null @@ -1,135 +0,0 @@ -wxWindows 2.0.1 ---------------- - -Welcome to wxWindows 2, a sophisticated cross-platform C++ -framework for writing advanced GUI applications using (where -possible) the native controls. - -In addition to common and advanced GUI facilities such as frames, scrolling -windows, toolbars, tree controls, icons, device contexts, printing, -splitter windows and so on, there are wrappers for common file operations, -and facilities for writing TCP/IP applications, thread handling, and more. -Where certain features are not available on a platform, such as MDI and -tree controls on Unix, they are emulated. - -A detailed 700-page reference manual is supplied in HTML, PDF and -Windows Help form: see the docs hierarchy. - -For a quick start, point your Web browser at docs/html/index.htm for a list of -important documents and samples. - -Platforms supported -------------------- - -wxWindows 2 currently supports the following platforms: - -- Windows 3.1, Windows 95/98, Windows NT -- Most Unix variants with Motif/Lesstif -- Most Unix variants with GTK+ - -Most popular C++ compilers are supported; see the release notes -(available via docs/html/index.htm) for details. - -Files ------ - -Depending on what you downloaded, you may have one or more of -these ports. You may unarchive any or all of the ports into -the same directory hierarchy. The zip archive set comprises the -following: - -wx200gen.zip Generic source code and samples (required) -wx200msw.zip Windows-specific source code -wx200mot.zip Motif-specific source code -wx200gtk.zip GTK-specific source code -wx200stubs.zip Stubs ('empty port') source. Needs - wx200gen.zip/tgz. -wx200doc.zip Documentation source code (not required) -wx200hlp.zip WinHelp documentation -wx200pdf.zip Acrobat PDF documentation -wx200htm.zip HTML documentation -wx200vc.zip MS VC++ 5/6 project files -wx200bc.zip Borland C++ 5 project files -wx200cw.zip Metrowerks CodeWarrior 4.1 project files - -The tarred, gzip archive comprises the following (or similar -names). Not all of these files are available in all distributions, due -to space restrictions. - -wx200gtk.tgz All wxGTK source and samples -wx200mot.tgz All wxMotif source and samples -wx200stubs.tgz Stubs ('empty port') source. Needs - wx200gen.zip/tgz. -wx200gen.tgz Generic code and samples (common to all ports) -wx200pdf.tgz Acrobat PDF documentation -wx200htm.tgz HTML documentation -wx200src.tgz Documentation source - -Installation ------------- - -wxWindows 2 needs to be compiled before you can test out -the samples or write your own applications. -For installation information, please see the install.txt file -in the individual directories: - - docs/msw - docs/gtk - docs/motif - -Licence information -------------------- - -For licensing information, please see the files: - - docs/preamble.txt - docs/licence.txt - docs/licendoc.txt - docs/gpl.txt - docs/lgpl.txt - -Although this may seem complex, it is there to allow authors of -proprietary/commercial applications to use wxWindows in -addition to those writing GPL'ed applications. In summary, -the licence is L-GPL plus a clause allowing unrestricted -distribution of application binaries. To answer a FAQ, you -don't have to distribute any source if you wish to write -commercial applications using wxWindows. - -Documentation -------------- - -See docs/changes.txt for a history of changes to wxWindows 2. -See docs/html/index.htm for an HTML index of the major documents. - -The Windows help files are located in docs/winhelp. -The PDF help files are located in docs/pdf. - -Further information -------------------- - -The wxWindows Web site is located at: - - http://www.wxwindows.org - -The wxGTK Web site (with further wxGTK-specific files and -information) is located at: - - http://www.freiburg.linux.de/~wxxt - -The main wxWindows ftp site is at: - - ftp://www.remstar.com/pub/wxwin - -A wxWindows CD-ROM with the latest distribution plus an HTML -front-end and hundreds of MB of compilers, utilities and other -material may be ordered from the CD-ROM page: - - http://www.wxwindows.org/cdrom.htm - -or contact Julian Smart . - -Good luck! - -The wxWindows Team, March 1st, 1999 - diff --git a/docs/symbols.txt b/docs/symbols.txt deleted file mode 100644 index 2eb06a06f2..0000000000 --- a/docs/symbols.txt +++ /dev/null @@ -1,63 +0,0 @@ -This is a list of preprocessor symbols used in the wxWindows source. - -GUIs: ------ - -__X__ any X, but not GTK -__WXMOTIF__ Motif -__WXXT__ Xt; mutually exclusive with WX_MOTIF (?) -__WXGTK__ GTK -__WXGTK12__ GTK 1.2 or higher -__WXMSW__ Any Windows -__WXWINE__ WINE (i.e. Win32 on Unix) -__WXMAC__ MacOS -__UNIX__ any Unix -__WINDOWS__ any Windows -__WIN95__ GUI for Windows 95 and above; NT 4.0 and above. -__WIN32__ WIN32 API -__NT__ Windows NT -__WXCURSES__ CURSES -__WXSTUBS__ Stubbed version ('template' wxWin implementation) - -In fact, they should better all start with __WX instead of __ only. -The only GUIs implemented for 2.0 are __WXGTK__, __WXMSW__ and __WXMOTIF__ -yet. Any new ones, please start the define with __WX. - -OSes/machines: - -__HPUX__ -__SVR4__ -__SYSV__ -__LINUX__ -__SGI__ -__ULTRIX__ -__BSD__ -__VMS__ -__SUN__ Any Sun -__SUNOS__ -__SOLARIS__ -__ALPHA__ -__AIX__ -__DATA_GENERAL__ -__OSF__ -__FREEBSD__ - -Compilers: ----------- - -__GNUWIN32__ Gnu-Win32 compiler -__DJGPP__ DJGPP -__GNUG__ Gnu C++ on any platform -__BORLANDC__ Borland C++ -__WATCOMC__ Watcom C++ -__SYMANTECC__ Symantec C++ -__VISUALC__ VC++ -__SUNCC__ Sun CC -__XLC__ ?? compiler - -wxWindows modes: ----------------- - -__WXDEBUG__ usage: #ifdef __WXDEBUG__ (=> debug mode, else => release) -WXDEBUG usage: #if DEBUG (0: release, 1: minimal debug code, ...) - diff --git a/docs/todo.txt b/docs/todo.txt deleted file mode 100644 index 87bcd223f1..0000000000 --- a/docs/todo.txt +++ /dev/null @@ -1,52 +0,0 @@ -General ToDo ------------- - -Please see also: - - docs/gtk/todo.txt - docs/motif/todo.txt - docs/msw/todo.txt - -- Suggestion from Janos Vegh: the memory-checking classes could - also keep return the size of memory currently allocated, with - a call to return it e.g. int wxDebugContext::GetMemoryUsed(). - Maybe even an optional window in debug mode with a tally of memory - usage, how many classes of each kind are in use, etc.? That - would be neat. - -- Documentation: mention include files with each class. - -- Document/update wxTime. - -- Fix TCP/IP mode in dde sample (how to use; why does it crash). - -- wxDB ODBC classes: it seems that there are too many - Sybase-specific features for it to work on e.g. MySQL, - PostgreSQL. Find out what Remstar uses and document - problems/restrictions. - -- In doc/view file selector, document type is selected by - extension, not the type selected in the (Windows) file selector. - -- Add all makefiles/documentation for utils/serialize. - -- Implement wxScrolledWindow::OnChar to scroll the window using - the keyboard. - -For 2.1: small changes not involving rewriting anything -------------------------------------------------------- - -- wxArrayDouble class? - -- generate CREATE/DESTROY events just after/before a window (any window, not - just frame/dialog) is created/deleted - -- Dynamic menu handling: wxMenuBar::DeleteMenu(), InsertMenu() - -For 2.2: major new additions -------------------------------------------------------- - -- Unicode support (Win32 only probably) - -- DnD and OLE clipboard, uniform DnD/clipboard handling - diff --git a/docs/wine/COPYING.LIB b/docs/wine/COPYING.LIB deleted file mode 100644 index eb685a5ec9..0000000000 --- a/docs/wine/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/wine/changes.txt b/docs/wine/changes.txt deleted file mode 100644 index 43622c7d00..0000000000 --- a/docs/wine/changes.txt +++ /dev/null @@ -1,12 +0,0 @@ - -22th June '99: wxWINE 2.1 snapshot 7 released - -The numbering is just in synch with the wxGTK numbering as this -is actually the first ever release of wxWINE. - -This snapshot just demonstrates that the complete build environment -for wxWINE is in place and that all that has to be done to get -wxWINE running is to make WINE work as Win32. No joke intended. - - Robert Roebling - diff --git a/docs/wine/install.txt b/docs/wine/install.txt deleted file mode 100644 index ab0afa3fd7..0000000000 --- a/docs/wine/install.txt +++ /dev/null @@ -1,374 +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: wxWINE 2.1 snapshot 6, egcs 1.1.1, Redhat 5.0 !!! - -* Preparing WINE ----------------- - -Most C++ compilers cannot compile the WINE sources yet (this includes -all versions of g++ and ecgs) so you have to make a minimal change -and recompile all of WINE in order to get anywhere. - -This change has do be applied to the /include/windef.h file, line 59 -in the section "Calling convention defintions", where the sources -reads: - -#if __i386__ - -which has to be changed into - -#if 0 - -After this change, you'll have to recompile all of WINE without -forgetting to install it. The direct consequence of this change -is that the Win32 binary emulator won't work anymore, as the -change disables the Windows native calling convention. - -* The most simple case ------------------------ - -If you compile wxWindows on Linux for the first time and don't like to read -install instructions just do (in the base dir): - -> ./configure --with-wine -> make -> su -> make install -> ldconfig -> exit - -On all variants of Unix except Linux (and maybe except *BSD), shared libraries -are not supportet out of the box due to the utter stupidity of libtool, so you'll -have to do this to get shared library support: - -> ./configure --with-wine --disable-static --enable-shared - -Then you'll have to edit the wrongly created libtool script. There are two -important entries with respect to shared library creation, which are - - archive_cmds="\$LD -shared .... - archive_expsym_cmds="\$LD -shared .... - -which should be something like - - archive_cmds="\$CC -shared .... - archive_expsym_cmds="\$CC -shared .... - -Afterwards you can continue with - -> 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 currently -be installed, so you'd have to use local version of the library for that purpose. -For building three versions (one GTK, one WINE and a debug version of the WINE -source) you'd do this: - -md buildmotif -cd buildmotif -../configure --with-motif -make -cd .. - -md buildwine -cd buildwine -../configure --with-wine -make -cd .. - -md buildwined -cd buildwined -../configure --with-wine --enable-debug_flag -make -cd .. - -* The most simple errors ------------------------- - -wxWINE doesn't work yet as WINE isn't really up to the task yet. - -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 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 WINE, WXWINE, WHAT DISTRIBUTION -YOU USE AND WHAT ERROR WAS REPORTED. I know this has no effect, but I tried... - -* GUI libraries ------------------------ - -wxWindows/WINE requires the WINE library to be installed on your system. - -You can get the newest version of the WINE from the WINE homepage at: - - http://www.winehq.com - -* 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 - -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 -------------------- - -Given below are the commands to change the default behaviour, -i.e. if it says "--disable-threads" it means that threads -are enabled by default. - -Many of the confiugre options have been thoroughly tested -in wxWindows snapshot 6, but not yet all (ODBC not). - -You must do this by running configure with either of: - - --with-wine Use the WINE library - -The following options handle the kind of library you want to build. - - --enable-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-no_rtti Enable compilation without creation of - C++ RTTI information in object files. - This will speed-up compilation and reduce - binary size. - - --enable-no_exceptions Enable compilation without creation of - C++ exception information in object files. - This will speed-up compilation and reduce - binary size. Also fewer crashes during the - actual compilation... - - --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 -------------------- - -Many of the confiugre options have been thoroughly tested -in wxWindows snapshot 6, but not yet all (ODBC not). - -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. Not yet. } - - --disable-resources 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. - - --disable-file Disables the wxFile class. - - --disable-textfile Disables the wxTextFile class. - - --disable-intl Disables the internationalisation. - - --disable-validators Disables validators. - - --disable-accel Disables accel. - -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 --------------------------- - -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 -GNU libtool version 1.3 - -and quite possibly - -GNU make -GNU C++ - -and if you have all this then you probably know enough to -go ahead yourself :-) - ----------------------- - -In the hope that it will be useful, - - Robert Roebling - - diff --git a/docs/wine/licence.txt b/docs/wine/licence.txt deleted file mode 100644 index e6dcfbd25c..0000000000 --- a/docs/wine/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/wine/readme.txt b/docs/wine/readme.txt deleted file mode 100644 index f81cb30180..0000000000 --- a/docs/wine/readme.txt +++ /dev/null @@ -1,45 +0,0 @@ - - Welcome to wxWindows/Wine 2.1 snapshot 7, - -you have downloaded version 2.1 of the WINE 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. - -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. - -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 THE WINE SOURCES, 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_mse.a (static) and libwx_msw-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 list. Information -on how to subscribe is available from my homepage. - -wxWindows/Wine 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/wine/todo.txt b/docs/wine/todo.txt deleted file mode 100644 index 188d0fabe4..0000000000 --- a/docs/wine/todo.txt +++ /dev/null @@ -1,10 +0,0 @@ - --------------------- High priority --------------------- - -Finish WINE. - --------------------- Medium priority --------------------- - - --------------------- Low priority --------------------- - diff --git a/docs/word/odbc.doc b/docs/word/odbc.doc deleted file mode 100644 index 8f6929136d..0000000000 Binary files a/docs/word/odbc.doc and /dev/null differ 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/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/accel.h b/include/wx/accel.h deleted file mode 100644 index cc3423b721..0000000000 --- a/include/wx/accel.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 7deb0a45a7..0000000000 --- a/include/wx/app.h +++ /dev/null @@ -1,332 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxAppBase class and macros used for declaration of wxApp -// derived class in the user code -// 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 __GNUG__ - #pragma interface "appbase.h" -#endif - -// ---------------------------------------------------------------------------- -// typedefs -// ---------------------------------------------------------------------------- - -#ifdef __WXMSW__ - class WXDLLEXPORT wxApp; - typedef wxApp* (*wxAppInitializerFunction)(); -#else - // returning wxApp* won't work with gcc - #include "wx/object.h" - - typedef wxObject* (*wxAppInitializerFunction)(); -#endif - -// ---------------------------------------------------------------------------- -// headers we have to include here -// ---------------------------------------------------------------------------- - -#include "wx/event.h" // for the base class - -#include "wx/window.h" // for wxTopLevelWindows - -#if wxUSE_LOG - #include "wx/log.h" -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -static const int wxPRINT_WINDOWS = 1; -static const int wxPRINT_POSTSCRIPT = 2; - -// ---------------------------------------------------------------------------- -// the common part of wxApp implementations for all platforms -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxAppBase : public wxEvtHandler -{ -public: - // the virtual functions which may/must be overridden in the derived class - // ----------------------------------------------------------------------- - - // called during the program initialization, returning FALSE from here - // prevents the program from continuing - it's a good place to create - // the top level program window and return TRUE. - // - // Override: always. - virtual bool OnInit() { return FALSE; }; - - // a platform-dependent version of OnInit(): the code here is likely to - // depend on the toolkit. default version does nothing. - // - // Override: rarely. - virtual bool OnInitGui() { return TRUE; } - - // called to start program execution - the default version just enters - // the main GUI loop in which events are received and processed until - // the last window is not deleted (if GetExitOnFrameDelete) or - // ExitMainLoop() is called. - // - // Override: rarely. - virtual int OnRun() { return MainLoop(); }; - - // called after the main loop termination. This is a good place for - // cleaning up (it may be too late in dtor) and is also useful if you - // want to return some non-default exit code - this is just the return - // value of this method. - // - // Override: often. - 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! It may be - // overridden if you wish to react somehow in non-default way (core - // dump under Unix, application crash under Windows) to fatal program - // errors, however extreme care should be taken if you don't want this - // function to crash. - // - // Override: rarely. - virtual void OnFatalException() { } - - // the worker functions - usually not used directly by the user code - // ----------------------------------------------------------------- - - // execute the main GUI loop, the function returns when the loop ends - virtual int MainLoop() = 0; - - // exit the main GUI loop during the next iteration (i.e. it does not - // stop the program immediately!) - virtual void ExitMainLoop() = 0; - - // returns TRUE if the program is initialized - virtual bool Initialized() = 0; - - // returns TRUE if there are unprocessed events in the event queue - virtual bool Pending() = 0; - - // process the first event in the event queue (blocks until an event - // apperas if there are none currently) - virtual void Dispatch() = 0; - - // application info: name, description, vendor - // ------------------------------------------- - - // NB: all these should be set by the application itself, there are no - // reasonable default except for the application name which is taken to - // be argv[0] - - // set/get the application name - wxString GetAppName() const - { - if ( !m_appName ) - return m_className; - else - return m_appName; - } - void SetAppName(const wxString& name) { m_appName = name; } - - // set/get the app class name - wxString GetClassName() const { return m_className; } - void SetClassName(const wxString& name) { m_className = name; } - - // set/get the vendor name - const wxString& GetVendorName() const { return m_vendorName; } - void SetVendorName(const wxString& name) { m_vendorName = name; } - - // top level window functions - // -------------------------- - - // set the "main" top level window - void SetTopWindow(wxWindow *win) { m_topWindow = win; } - - // return the "main" top level window (if it hadn't been set previously - // with SetTopWindow(), will return just some top level window and, if - // there are none, will return NULL) - wxWindow *GetTopWindow() const - { - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.GetCount() > 0) - return wxTopLevelWindows.GetFirst()->GetData(); - else - return (wxWindow *)NULL; - } - - // control the exit behaviour: by default, the program will exit the - // main loop (and so, usually, terminate) when the last top-level - // program window is deleted. Beware that if you disabel this (with - // SetExitOnFrameDelete(FALSE)), you'll have to call ExitMainLoop() - // explicitly from somewhere. - void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; } - bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - // miscellaneous customization functions - // ------------------------------------- - -#if wxUSE_LOG - // override this function to create default log target of arbitrary - // user-defined class (default implementation creates a wxLogGui - // object) - this log object is used by default by all wxLogXXX() - // functions. - virtual wxLog *CreateLogTarget() { return new wxLogGui; } -#endif // wxUSE_LOG - - - // get the standard icon used by wxWin dialogs - this allows the user - // to customize the standard dialogs. The 'which' parameter is one of - // wxICON_XXX values - virtual wxIcon GetStdIcon(int which) const = 0; - - // VZ: what does this do exactly? - void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; } - bool GetWantDebugOutput() const { return m_wantDebugOutput; } - - // set/get printing mode: see wxPRINT_XXX constants. - // - // default behaviour is the normal one for Unix: always use PostScript - // printing. - virtual void SetPrintMode(int WXUNUSED(mode)) { } - int GetPrintMode() const { return wxPRINT_POSTSCRIPT; } - - // implementation only from now on - // ------------------------------- - - // helpers for dynamic wxApp construction - static void SetInitializerFunction(wxAppInitializerFunction fn) - { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() - { return m_appInitFn; } - - // access to the command line arguments - int argc; - wxChar **argv; - -//private: -protected: - // function used for dynamic wxApp creation - static wxAppInitializerFunction m_appInitFn; - - // application info (must be set from the user code) - wxString m_vendorName, // vendor name (ACME Inc) - m_appName, // app name - m_className; // class name - - // if TRUE, exit the main loop when the last top level window is deleted - bool m_exitOnFrameDelete; - - // TRUE if the application wants to get debug output - bool m_wantDebugOutput; - - // the main top level window - may be NULL - wxWindow *m_topWindow; -}; - -// ---------------------------------------------------------------------------- -// now include the declaration of the real class -// ---------------------------------------------------------------------------- - -#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(__WXPM__) - #include "wx/os2/app.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/app.h" -#endif - -// ---------------------------------------------------------------------------- -// the global data -// ---------------------------------------------------------------------------- - -// the one and only application object - use of wxTheApp in application code -// is discouraged, consider using DECLARE_APP() after which you may call -// wxGetApp() which will return the object of the correct type (i.e. MyApp and -// not wxApp) -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// Force an exit from main loop -void WXDLLEXPORT wxExit(); - -// Yield to other apps/messages -bool WXDLLEXPORT wxYield(); - -// ---------------------------------------------------------------------------- -// macros for dynamic creation of the application object -// ---------------------------------------------------------------------------- - -// 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 - -// use this macro exactly once, the argument is the name of the wxApp-derived -// class which is the class of your application -#define IMPLEMENT_APP(appname) \ - wxApp *wxCreateApp() { return new appname; } \ - wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \ - appname& wxGetApp() { return *(appname *)wxTheApp; } \ - IMPLEMENT_WXWIN_MAIN - -#define DECLARE_APP(appname) extern appname& wxGetApp(); - -#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 f9118cb55e..0000000000 --- a/include/wx/bitmap.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 f753cd2409..0000000000 --- a/include/wx/bmpbuttn.h +++ /dev/null @@ -1,20 +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(__WXPM__) -#include "wx/os2/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 3955876d1d..0000000000 --- a/include/wx/brush.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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/busyinfo.h b/include/wx/busyinfo.h deleted file mode 100644 index 37e7238cb6..0000000000 --- a/include/wx/busyinfo.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: busyinfo.h -// Purpose: Information window (when app is busy) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// RCS-ID: $Id$ -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __INFOWIN_H__ -#define __INFOWIN_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/wxprec.h" - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#include "wx/frame.h" - -#if wxUSE_BUSYINFO - -class WXDLLEXPORT wxInfoFrame : public wxFrame -{ - public: - wxInfoFrame(wxWindow *parent, const wxString& message); -}; - - -//-------------------------------------------------------------------------------- -// wxBusyInfo -// Displays progress information -// Can be used in exactly same way as wxBusyCursor -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxBusyInfo : public wxObject -{ - public: - wxBusyInfo(const wxString& message); - ~wxBusyInfo(); - - private: - wxInfoFrame *m_InfoFrame; -}; - - -#endif - -#endif diff --git a/include/wx/button.h b/include/wx/button.h deleted file mode 100644 index 31d4e12d0a..0000000000 --- a/include/wx/button.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 7ab4acc752..0000000000 --- a/include/wx/caret.h +++ /dev/null @@ -1,192 +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_ - -#ifdef __GNUG__ -#pragma interface "caret.h" -#endif - -// --------------------------------------------------------------------------- -// 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" -#elif defined(__WXPM__) - #include "wx/os2/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 ac6e7e992b..0000000000 --- a/include/wx/checkbox.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 4528bb8f84..0000000000 --- a/include/wx/checklst.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 c87d9345c4..0000000000 --- a/include/wx/choice.h +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/choice.h -// Purpose: wxChoice class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 26.07.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_BASE_ -#define _WX_CHOICE_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "choiccmn.h" -#endif - -#include "wx/control.h" // the base class - -// ---------------------------------------------------------------------------- -// global data -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern const wxChar*) wxChoiceNameStr; - -// ---------------------------------------------------------------------------- -// wxChoice allows to select one of a non-modifiable list of strings -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxChoiceBase : public wxControl -{ -public: - // ctor - wxChoiceBase() { m_clientDataItemsType = ClientData_None; } - - // add a new item to the list - // no client data - void Append(const wxString& item) { DoAppend(item); } - // with client data which belongs to the caller - void Append(const wxString &item, void* clientData) - { DoAppend(item); SetClientData(GetCount() - 1, clientData); } - // with client data which will be deleted by the control - void Append(const wxString &item, wxClientData* clientData) - { DoAppend(item); SetClientObject(GetCount() - 1, clientData); } - - // delete items from the list - // one item - virtual void Delete(int n) = 0; - // all of them - virtual void Clear() = 0; - - // selection (at most one item may be selected in wxChoice) - // get the index of currently selected item or -1 - virtual int GetSelection() const = 0; - // get the text of the currently selected item or empty string - virtual wxString GetStringSelection() const; - - // set selectionto current item - virtual void SetSelection(int n) = 0; - // set selection to the current item, returns TRUE if ok - virtual bool SetStringSelection(const wxString& sel); - - // accessors to the list of strings - // get the number of items in the list of strings - virtual int GetCount() const = 0; - - // find string in the list, return wxNOT_FOUND if not found - virtual int FindString(const wxString& s) const = 0; - // get the string with the specified index - virtual wxString GetString(int n) const = 0; - - // set/get the number of columns in the control (as they're not supporte on - // most platforms, they do nothing by default) - virtual void SetColumns(int WXUNUSED(n) = 1 ) { } - virtual int GetColumns() const { return 1 ; } - - // client data - // untyped (isn't deleted by the control) - void SetClientData( int n, void* clientData ); - void* GetClientData( int n ) const; - // typed (is owned and deleted by the control) - void SetClientObject( int n, wxClientData* clientData ); - wxClientData* GetClientObject( int n ) const; - - // emulate selecting the item event.GetInt() from the control - virtual void Command(wxCommandEvent &event); - - // deprecated functions, heer for backwards compatibility only - int Number() const { return GetCount(); } - -private: - // pure virtuals to implement in the derived classes - virtual void DoAppend(const wxString& item) = 0; - - virtual void DoSetClientData( int n, void* clientData ) = 0; - virtual void* DoGetClientData( int n ) const = 0; - virtual void DoSetClientObject( int n, wxClientData* clientData ) = 0; - virtual wxClientData* DoGetClientObject( int n ) const = 0; - - // the type of the client data for the items - wxClientDataType m_clientDataItemsType; - // the above pure virtuals hide these virtuals in wxWindowBase - virtual void DoSetClientData(void* clientData ) { wxWindowBase::DoSetClientData(clientData); }; - virtual void* DoGetClientData() const { return(wxWindowBase::DoGetClientData()); }; - virtual void DoSetClientObject( wxClientData* clientData ) { wxWindowBase::DoSetClientObject(clientData); }; - virtual wxClientData* DoGetClientObject() const { return(wxWindowBase::DoGetClientObject()); }; -}; - -// ---------------------------------------------------------------------------- -// include the platform-dependent class definition -// ---------------------------------------------------------------------------- - -#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(__WXPM__) - #include "wx/os2/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 36a95b0638..0000000000 --- a/include/wx/clipbrd.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 178e58668c..0000000000 --- a/include/wx/cmndata.h +++ /dev/null @@ -1,388 +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/window.h" -#include "wx/font.h" -#include "wx/colour.h" -#include "wx/gdicmn.h" - -#if (defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__)) && 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__) || defined(__WXPM__)) && 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 7500259cb8..0000000000 --- a/include/wx/colordlg.h +++ /dev/null @@ -1,26 +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(__WXPM__) -#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 dc5706de19..0000000000 --- a/include/wx/colour.h +++ /dev/null @@ -1,23 +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(__WXPM__) -#include "wx/os2/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 9c80b16565..0000000000 --- a/include/wx/combobox.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 c4cfa87538..0000000000 --- a/include/wx/confbase.h +++ /dev/null @@ -1,318 +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 -}; - -// ---------------------------------------------------------------------------- -// 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) -#if !defined(__WXMAC__) && !defined(__EMX__) - { 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 - -// ---------------------------------------------------------------------------- -// various helper global functions (defined even if !wxUSE_CONFIG) -// ---------------------------------------------------------------------------- - -/* - 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); - -#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 5641eb3506..0000000000 --- a/include/wx/control.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/control.h -// Purpose: wxControl common interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 26.07.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_BASE_ -#define _WX_CONTROL_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "ctrlcmn.h" -#endif - -#include "wx/window.h" // base class - -// ---------------------------------------------------------------------------- -// wxControl is the base class for all controls -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxControlBase : public wxWindow -{ -public: - // simulates the event of given type (i.e. wxButton::Command() is just as - // if the button was clicked) - virtual void Command(wxCommandEvent &event); - -protected: - // creates the controls (invokes wxWindowBase::CreateBase) and adds it to - // the list of parents children - bool CreateControl(wxWindowBase *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name); - - // inherit colour and font settings from the parent window - void InheritAttributes(); -}; - -// ---------------------------------------------------------------------------- -// include platform-dependent wxControl declarations -// ---------------------------------------------------------------------------- - -#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(__WXPM__) - #include "wx/os2/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 f163125fa6..0000000000 --- a/include/wx/cursor.h +++ /dev/null @@ -1,43 +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(__WXPM__) -#include "wx/os2/cursor.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/cursor.h" -#endif - -#include "wx/utils.h" -/* This is a small class which can be used by all ports - to temporarily suspend the busy cursor. Useful in modal - dialogs. -*/ -class wxBusyCursorSuspender -{ -public: - wxBusyCursorSuspender() - { - m_wasBusy = wxIsBusy(); - if(m_wasBusy) - wxEndBusyCursor(); - } - ~wxBusyCursorSuspender() - { - if(m_wasBusy) - wxBeginBusyCursor(); - } - private: - bool m_wasBusy; -}; -#endif - // _WX_CURSOR_H_BASE_ diff --git a/include/wx/dataobj.h b/include/wx/dataobj.h deleted file mode 100644 index 0e9659bfc5..0000000000 --- a/include/wx/dataobj.h +++ /dev/null @@ -1,98 +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__) - #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(__WXPM__) - #include "wx/os2/dataobj.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 -{ -#if defined(__WXGTK__) || defined(__WXMOTIF__) - 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 - void Free(); - - // the data - size_t m_size; - void *m_data; - -#if !defined(__WXGTK__) && !defined(__WXMOTIF__) - // the data format - wxDataFormat m_format; -#endif -}; - - -#endif - // _WX_DATAOBJ_H_BASE_ diff --git a/include/wx/date.h b/include/wx/date.h deleted file mode 100644 index dc7c7b613a..0000000000 --- a/include/wx/date.h +++ /dev/null @@ -1,146 +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); - -#if wxUSE_STD_IOSTREAM - friend ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt); -#endif - - 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 7b0fa1a613..0000000000 --- a/include/wx/datstrm.h +++ /dev/null @@ -1,82 +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 - -#if wxUSE_STREAMS - -class WXDLLEXPORT wxDataInputStream { -public: - wxDataInputStream(wxInputStream& s); - ~wxDataInputStream(); - - wxUint32 Read32(); - wxUint16 Read16(); - wxUint8 Read8(); - double ReadDouble(); - wxString ReadString(); - - wxDataInputStream& operator>>(wxString& s); - wxDataInputStream& operator>>(wxInt8& c); - wxDataInputStream& operator>>(wxInt16& i); - wxDataInputStream& operator>>(wxInt32& i); - wxDataInputStream& operator>>(wxUint8& c); - wxDataInputStream& operator>>(wxUint16& i); - wxDataInputStream& operator>>(wxUint32& i); - wxDataInputStream& operator>>(double& i); - wxDataInputStream& operator>>(float& f); - - void BigEndianOrdered(bool be_order) { m_be_order = be_order; } - protected: - wxInputStream *m_input; - bool m_be_order; -}; - -class WXDLLEXPORT wxDataOutputStream { - public: - wxDataOutputStream(wxOutputStream& s); - ~wxDataOutputStream(); - - void Write32(wxUint32 i); - void Write16(wxUint16 i); - void Write8(wxUint8 i); - void WriteDouble(double d); - void WriteString(const wxString& string); - - wxDataOutputStream& operator<<(const wxChar *string); - wxDataOutputStream& operator<<(wxString& string); - wxDataOutputStream& operator<<(wxInt8 c); - wxDataOutputStream& operator<<(wxInt16 i); - wxDataOutputStream& operator<<(wxInt32 i); - wxDataOutputStream& operator<<(wxUint8 c); - wxDataOutputStream& operator<<(wxUint16 i); - wxDataOutputStream& operator<<(wxUint32 i); - wxDataOutputStream& operator<<(double f); - wxDataOutputStream& operator<<(float f); - - void BigEndianOrdered(bool be_order) { m_be_order = be_order; } - protected: - wxOutputStream *m_output; - bool m_be_order; -}; - -#endif - // wxUSE_STREAMS - -#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 90fd7f6c94..0000000000 --- a/include/wx/dc.h +++ /dev/null @@ -1,558 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: wxDC class -// Author: Vadim Zeitlin -// Modified by: -// Created: 05/25/99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#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(__WXPM__) - #include "wx/os2/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 0d7938d875..0000000000 --- a/include/wx/dcclient.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 8e8c4cd3c2..0000000000 --- a/include/wx/dcmemory.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 37ebb5469c..0000000000 --- a/include/wx/dcprint.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _WX_DCPRINT_H_BASE_ -#define _WX_DCPRINT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/dcprint.h" -#endif -#if defined(__WXPM__) -#include "wx/os2/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 d6aa6e1515..0000000000 --- a/include/wx/dcscreen.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 a77e343d16..0000000000 --- a/include/wx/dde.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 f80688c80a..0000000000 --- a/include/wx/defs.h +++ /dev/null @@ -1,1612 +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 - -// ---------------------------------------------------------------------------- -// compiler and OS identification -// ---------------------------------------------------------------------------- - -// OS -#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ - defined(__LINUX__) || defined(__sgi ) || \ - defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \ - defined(__EMX__) - - #define __UNIX_LIKE__ - - // 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 -#elif defined(__OS2__) - #if defined(__IBMCPP__) - #define __VISAGEAVER__ __IBMCPP__ - #endif - #ifndef __WXOS2__ - #define __WXOS2__ - #endif - #ifndef __WXPM__ - #define __WXPM__ - #endif - - // Place other OS/2 compiler environment defines here - #define LINKAGEMODE _Optlink -#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 - -// LINKAGEMODE mode is empty for everyting except OS/2 -#ifndef LINKAGEMODE - #define LINKAGEMODE -#endif // LINKAGEMODE - -// 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 -#ifndef WIN32 -# pragma warning(disable:4134) // conversion between pointers to members of same class -# pragma warning(disable:4135) // conversion between different integral types -# pragma warning(disable:4769) // assignment of near pointer to long integer -#endif -#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__ - -#ifdef __VISUALC__ -#ifndef WIN32 -// VC1.5 does not have LPTSTR type -#define LPTSTR LPSTR -#define LPCTSTR LPCSTR -#endif -#endif - -// 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 - -// Mingw32 gcc-2.95 uses new windows headers which are more ms-like -// we are setting this define because of the complex check -// using NORLANDER as Cygwin may follow. (header author is Anders Norlander) -#if defined(__MINGW32__) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))) -# define wxUSE_NORLANDER_HEADERS 1 -#endif - - -////////////////////////////////////////////////////////////////////////////////// -// 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(__WXPM__) && \ - !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__) - #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]" -#endif - -// ---------------------------------------------------------------------------- -// wxWindows options -// ---------------------------------------------------------------------------- - -#include - -#include "wx/setup.h" - -// just in case they were defined in setup.h -#undef PACKAGE -#undef VERSION - -// if we're on a Unixsystem but didn't use configure (so that setup.h didn't -// define __UNIX__), do define __UNIX__ now -#if !defined(__UNIX__) && defined(__UNIX_LIKE__) - #define __UNIX__ -#endif // Unix - -#include "wx/version.h" - -// ============================================================================ -// non portable C++ features -// ============================================================================ - -// ---------------------------------------------------------------------------- -// check for native bool type and TRUE/FALSE constants -// ---------------------------------------------------------------------------- - -#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXPM__) || 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 - #elif defined(__VISAGECPP__) - typedef unsigned long 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 - */ - -#if defined(__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 - -#elif defined(__WXPM__) - -# ifdef WXMAKINGDLL -# define WXDLLEXPORT _Export -# define WXDLLEXPORT_DATA(type) _Export type -# define WXDLLEXPORT_CTORFN -# elif defined(WXUSINGDLL) -# define WXDLLEXPORT _Export -# define WXDLLEXPORT_DATA(type) _Export 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&); - -// ---------------------------------------------------------------------------- -// 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 and 8 - wxBEOS, // BeOS - wxGTK, // GTK on X - wxGTK_WIN32, // GTK on Win32 - wxGTK_OS2, // GTK on OS/2 - wxGTK_BEOS, // GTK on BeOS - 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 - wxMGL_UNIX, // MGL with direct hardware access - wxMGL_X, // MGL on X - wxMGL_WIN32, // MGL on Win32 - wxMGL_OS2 // MGL on OS/2 -}; - -// ---------------------------------------------------------------------------- -// machine specific settings -// ---------------------------------------------------------------------------- - -// fixed length types - -#define wxInt8 char signed -#define wxUint8 char unsigned - -#ifdef __WIN16__ -#define wxInt16 int signed -#define wxUint16 int unsigned -#define wxInt32 long signed -#define wxUint32 long unsigned -#endif - -#ifdef __WIN32__ -#define wxInt16 short signed -#define wxUint16 short unsigned -#define wxInt32 int signed -#define wxUint32 int unsigned -#endif - -#ifdef __WXMAC__ -#define wxInt16 short signed -#define wxUint16 short unsigned -#define wxInt32 int signed -#define wxUint32 int unsigned -#endif - -#ifdef __WXOS2__ -#define wxInt16 short signed -#define wxUint16 short unsigned -#define wxInt32 int signed -#define wxUint32 int unsigned -#endif - -#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__) - #if defined(SIZEOF_INT) - /* well, this shouldn't happen... */ - #define wxInt16 short signed - #define wxUint16 short unsigned - #define wxInt32 int signed - #define wxUint32 int unsigned - #else - #define wxInt16 short signed - #define wxUint16 short unsigned - #define wxInt32 int signed - #define wxUint32 int unsigned - #endif -#endif - -#define wxByte wxUint8 -#define wxWord wxUint16 - -// 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 - -// ---------------------------------------------------------------------------- -// Geometric flags -// ---------------------------------------------------------------------------- - -enum wxGeometryCentre -{ - wxCENTRE = 0x0001, - wxCENTER = wxCENTRE -}; - -// centering into frame rather than screen (obsolete) -#define wxCENTER_FRAME 0x0000 -// centre on screen rather than parent -#define wxCENTRE_ON_SCREEN 0x0002 -#define wxCENTER_ON_SCREEN wxCENTRE_ON_SCREEN - -enum wxOrientation -{ - wxHORIZONTAL = 0x0004, - wxVERTICAL = 0x0008, - - wxBOTH = (wxVERTICAL | wxHORIZONTAL) -}; - -enum wxDirection -{ - wxLEFT = 0x0010, - wxRIGHT = 0x0020, - wxUP = 0x0040, - wxDOWN = 0x0080, - - wxTOP = wxUP, - wxBOTTOM = wxDOWN, - - wxNORTH = wxUP, - wxSOUTH = wxDOWN, - wxWEST = wxLEFT, - wxEAST = wxRIGHT, - - wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT) -}; - -enum wxAlignment -{ - wxALIGN_NOT = 0x0000, - wxALIGN_CENTER = 0x0100, - wxALIGN_CENTRE = wxALIGN_CENTER, - wxALIGN_LEFT = wxALIGN_NOT, - wxALIGN_TOP = wxALIGN_NOT, - wxALIGN_RIGHT = 0x0200, - wxALIGN_BOTTOM = 0x0400 -}; - -enum wxStretch -{ - wxSTRETCH_NOT = 0x0000, - wxSHRINK = 0x1000, - wxGROW = 0x2000, - wxEXPAND = wxGROW -}; - -// ---------------------------------------------------------------------------- -// 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 - -// Make window retained (mostly Motif, I think) -#define wxRETAINED 0x00020000 -#define wxBACKINGSTORE wxRETAINED - -// don't invalidate the whole window (resulting in a PAINT event) when the -// window is resized (currently, makes sense for wxMSW only) -#define wxNO_FULL_REPAINT_ON_RESIZE 0x00010000 -/* - * wxFrame/wxDialog 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 - -/* - * wxExtDialog style flags - */ -#define wxED_CLIENT_MARGIN 0x0004 -#define wxED_BUTTONS_BOTTOM 0x0000 // has no effect -#define wxED_BUTTONS_RIGHT 0x0002 -#define wxED_STATIC_LINE 0x0001 - -#if defined(__WXMSW__) || defined(__WXMAC__) -# define wxEXT_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN) -#else -# define wxEXT_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN|wxED_STATIC_LINE) -#endif - -/* - * 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 - -/* - * wxMenu style flags - */ -#define wxMENU_TEAROFF 0x0001 - -/* - * Apply to all panel items - */ -#define wxCOLOURED 0x0800 -#define wxFIXED_LENGTH 0x0400 - -/* - * 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 -// this style means to use RICHEDIT control and does something only under wxMSW -// and Win32 and is silently ignored under all other platforms -#define wxTE_RICH 0x0080 - -/* - * wxComboBox style flags - */ -#define wxCB_SIMPLE 0x0004 -#define wxCB_SORT 0x0008 -#define wxCB_READONLY 0x0010 -#define wxCB_DROPDOWN 0x0020 - -/* - * wxRadioBox style flags - */ -// New, more intuitive names to specify majorDim argument -#define wxRA_SPECIFY_COLS wxHORIZONTAL -#define wxRA_SPECIFY_ROWS wxVERTICAL -// Old names for compatibility -#define wxRA_HORIZONTAL wxHORIZONTAL -#define wxRA_VERTICAL wxVERTICAL - -/* - * wxRadioButton style flag - */ -#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_HEIGHT 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 -#define wxPD_ELAPSED_TIME 0x0008 -#define wxPD_ESTIMATED_TIME 0x0010 -#define wxPD_REMAINING_TIME 0x0020 - -/* - * wxHtmlWindow flags - */ -#define wxHW_SCROLLBAR_NEVER 0x0002 -#define wxHW_SCROLLBAR_AUTO 0x0004 - -/* - * extended dialog specifiers. these values are stored in a different - * flag and thus do not overlap with other style flags. note that these - * values do not correspond to the return values of the dialogs (for - * those values, look at the wxID_XXX defines). - */ - -// wxCENTRE already defined as 0x00000001 -#define wxOK 0x00000004 -#define wxYES_NO 0x00000008 -#define wxCANCEL 0x00000010 -#define wxYES 0x00000020 -#define wxNO 0x00000040 -#define wxNO_DEFAULT 0x00000080 -#define wxYES_DEFAULT 0x00000000 // has no effect - -#define wxICON_EXCLAMATION 0x00000100 -#define wxICON_HAND 0x00000200 -#define wxICON_WARNING wxICON_EXCLAMATION -#define wxICON_ERROR wxICON_HAND -#define wxICON_QUESTION 0x00000400 -#define wxICON_INFORMATION 0x00000800 -#define wxICON_STOP wxICON_HAND -#define wxICON_ASTERISK wxICON_INFORMATION -#define wxICON_MASK (0x00000100|0x00000200|0x00000400|0x00000800) - -#define wxFORWARD 0x00001000 -#define wxBACKWARD 0x00002000 -#define wxRESET 0x00004000 -#define wxHELP 0x00008000 -#define wxMORE 0x00010000 -#define wxSETUP 0x00020000 - -// ---------------------------------------------------------------------------- -// standard IDs -// ---------------------------------------------------------------------------- - -// Standard menu IDs -#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 - -// Standard button IDs -#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_FORWARD 5106 -#define wxID_BACKWARD 5107 -#define wxID_DEFAULT 5108 -#define wxID_MORE 5109 -#define wxID_SETUP 5110 -#define wxID_RESET 5111 - -#define wxID_HIGHEST 5999 - -// ---------------------------------------------------------------------------- -// 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 - -// ---------------------------------------------------------------------------- -// 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 - - -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 -}; - -// 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; - -// --------------------------------------------------------------------------- -// macros that enable wxWindows apps to be compiled in absence of the -// sytem headers, although some platform specific types are used in the -// platform specific (implementation) parts of the headers -// --------------------------------------------------------------------------- - -#if defined(__WXMSW__) || defined(__WXPM__) -// Stand-ins for Windows types or OS/2, to avoid #including all of windows.h or os2.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(__WXPM__) -typedef unsigned long WXMPARAM; -typedef unsigned long WXMSGID; -typedef void* WXRESULT; -typedef int (*WXFARPROC)(); -// some windows handles not defined by PM -typedef unsigned long HANDLE; -typedef unsigned long HICON; -typedef unsigned long HFONT; -typedef unsigned long HMENU; -typedef unsigned long HPEN; -typedef unsigned long HBRUSH; -typedef unsigned long HPALETTE; -typedef unsigned long HCURSOR; -typedef unsigned long HINSTANCE; -typedef unsigned long HIMAGELIST; -typedef unsigned long HGLOBAL; -typedef unsigned long DWORD; -typedef unsigned short WORD; -#endif - -#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; - -typedef unsigned long Atom; /* this might fail on a few architectures */ - -#endif // Motif - -#ifdef __WXGTK__ -/* Stand-ins for GLIB types */ -typedef int gint; -typedef unsigned guint; -typedef unsigned long gulong; -typedef void* gpointer; -typedef struct _GSList GSList; - -/* 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 ac5f9a9672..0000000000 --- a/include/wx/dialog.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dialog.h -// Purpose: wxDialogBase class -// Author: Vadim Zeitlin -// Modified by: -// Created: 29.06.99 -// RCS-ID: $Id$ -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_BASE_ -#define _WX_DIALOG_H_BASE_ - -#include "wx/defs.h" -#include "wx/panel.h" - -class WXDLLEXPORT wxDialogBase : public wxPanel -{ -public: - // the modal dialogs have a return code - usually the id of the last - // pressed button - void SetReturnCode(int returnCode) { m_returnCode = returnCode; } - int GetReturnCode() const { return m_returnCode; } - -protected: - // splits text up at newlines and places the - // lines into a vertical wxBoxSizer - wxSizer *CreateTextSizer( const wxString &message ); - - // places buttons into a horizontal wxBoxSizer - wxSizer *CreateButtonSizer( long flags ); - - // the return code from modal dialog - int m_returnCode; -}; - -#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(__WXPM__) - #include "wx/os2/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 5da68a5a45..0000000000 --- a/include/wx/dirdlg.h +++ /dev/null @@ -1,25 +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(__WXPM__) -#include "wx/os2/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 f6ddf89255..0000000000 --- a/include/wx/dnd.h +++ /dev/null @@ -1,23 +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(__WXPM__) -#include "wx/os2/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 0216cacdd7..0000000000 --- a/include/wx/docmdi.h +++ /dev/null @@ -1,90 +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/defs.h" - -#if wxUSE_MDI_ARCHITECTURE && wxUSE_DOC_VIEW_ARCHITECTURE - -#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 - // wxUSE_MDI_ARCHITECTURE - -#endif - // _WX_DOCMDI_H_ diff --git a/include/wx/docview.h b/include/wx/docview.h deleted file mode 100644 index fb93a4a378..0000000000 --- a/include/wx/docview.h +++ /dev/null @@ -1,597 +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; - -#if wxUSE_STD_IOSTREAM - #include "wx/ioswrap.h" -#else - #include "wx/stream.h" -#endif - -// 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(); - -#if wxUSE_STD_IOSTREAM - virtual ostream& SaveObject(ostream& stream); - virtual istream& LoadObject(istream& stream); -#else - virtual wxOutputStream& SaveObject(wxOutputStream& stream); - virtual wxInputStream& LoadObject(wxInputStream& stream); -#endif - -#if wxUSE_SERIAL - // need this to keep from hiding the virtual from wxObject - virtual void LoadObject(wxObjectInputStream& stream) { wxObject::LoadObject(stream); }; -#endif - - // 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; -}; - -#if wxUSE_STD_IOSTREAM -// 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 - -#endif // _WX_DOCH__ diff --git a/include/wx/dragimag.h b/include/wx/dragimag.h deleted file mode 100644 index 02da2e77dd..0000000000 --- a/include/wx/dragimag.h +++ /dev/null @@ -1,25 +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(__WXPM__) -#include "wx/generic/dragimag.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/dragimag.h" -#endif - -#endif - // _WX_DRAGIMAG_H_BASE_ diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h deleted file mode 100644 index caf4b814d1..0000000000 --- a/include/wx/dynarray.h +++ /dev/null @@ -1,450 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dynarray.h -// Purpose: auto-resizable (i.e. dynamic) array support -// Author: Vadim Zeitlin -// Modified by: -// Created: 12.09.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _DYNARRAY_H -#define _DYNARRAY_H - -#ifdef __GNUG__ -#pragma interface "dynarray.h" -#endif - -#include "wx/defs.h" -#include "wx/debug.h" - -/** @name Dynamic arrays and object arrays (array which own their elements) - @memo Arrays which grow on demand and do range checking (only in debug) - */ -//@{ - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -/** - the initial size by which an array grows when an element is added - default value avoids allocate one or two bytes when the array is created - which is rather inefficient -*/ -#define WX_ARRAY_DEFAULT_INITIAL_SIZE (16) - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -/** - callback compare function for quick sort - must return negative value, 0 or positive value if pItem1 <, = or > pItem2 - */ - -#if defined(__VISUALC__) - #define CMPFUNC_CONV _cdecl -#elif defined(__VISAGECPP__) - #define CMPFUNC_CONV _Optlink -#else // !Visual C++ - #define CMPFUNC_CONV -#endif // compiler -typedef int (CMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2); - -// ---------------------------------------------------------------------------- -/** - base class managing data having size of type 'long' (not used directly) - - NB: for efficiency this often used class has no virtual functions (hence no - VTBL), even dtor is not virtual. If used as expected it won't - create any problems because ARRAYs from DEFINE_ARRAY have no dtor at all, - so it's not too important if it's not called (this happens when you cast - "SomeArray *" as "BaseArray *" and then delete it) - - @memo Base class for template array classes -*/ -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxBaseArray -{ -public: - /** @name ctors and dtor */ - //@{ - /// default ctor - wxBaseArray(); - /// copy ctor - wxBaseArray(const wxBaseArray& array); - /// assignment operator - wxBaseArray& operator=(const wxBaseArray& src); - /// not virtual, see above - /// EXCEPT for Gnu compiler to reduce warnings... -#ifdef __GNUG__ - virtual -#endif - ~wxBaseArray(); - //@} - - /** @name memory management */ - //@{ - /// empties the array, but doesn't release memory - void Empty() { m_nCount = 0; } - /// empties the array and releases memory - void Clear(); - /// preallocates memory for given number of items - void Alloc(size_t uiSize); - /// minimizes the memory used by the array (frees unused memory) - void Shrink(); - //@} - - /** @name simple accessors */ - //@{ - /// number of elements in the array - size_t Count() const { return m_nCount; } - size_t GetCount() const { return m_nCount; } - /// is it empty? - bool IsEmpty() const { return m_nCount == 0; } - //@} - -protected: - // these methods are protected because if they were public one could - // mistakenly call one of them instead of DEFINE_ARRAY's or OBJARRAY's - // type safe methods - - /** @name items access */ - //@{ - /// get item at position uiIndex (range checking is done in debug version) - long& Item(size_t uiIndex) const - { wxASSERT( uiIndex < m_nCount ); return m_pItems[uiIndex]; } - /// same as Item() - long& operator[](size_t uiIndex) const { return Item(uiIndex); } - //@} - - /** @name item management */ - //@{ - /** - Search the element in the array, starting from the either side - @param bFromEnd if TRUE, start from the end - @return index of the first item matched or wxNOT_FOUND - @see wxNOT_FOUND - */ - int Index(long lItem, bool bFromEnd = FALSE) const; - /// search for an item using binary search in a sorted array - int Index(long lItem, CMPFUNC fnCompare) const; - /// add new element at the end - void Add(long lItem); - /// add item assuming the array is sorted with fnCompare function - void Add(long lItem, CMPFUNC fnCompare); - /// add new element at given position (it becomes Item[uiIndex]) - void Insert(long lItem, size_t uiIndex); - /// remove first item matching this value - void Remove(long lItem); - /// remove item by index - void Remove(size_t uiIndex); - //@} - - /// sort array elements using given compare function - void Sort(CMPFUNC fnCompare); - -private: - void Grow(); // makes array bigger if needed - - size_t m_nSize, // current size of the array - m_nCount; // current number of elements - - long *m_pItems; // pointer to data -}; - -// ============================================================================ -// template classes -// ============================================================================ - -// ---------------------------------------------------------------------------- -// This macro generates a new array class. It is intended for storage of simple -// types of sizeof()<=sizeof(long) or pointers if sizeof(pointer)<=sizeof(long) -// -// NB: it has only inline functions => takes no space at all -// Mod by JACS: Salford C++ doesn't like 'var->operator=' syntax, as in: -// { ((wxBaseArray *)this)->operator=((const wxBaseArray&)src); -// so using a temporary variable instead. -// ---------------------------------------------------------------------------- -#define _WX_DEFINE_ARRAY(T, name) \ -typedef int (CMPFUNC_CONV *CMPFUNC##T)(T *pItem1, T *pItem2); \ -class WXDLLEXPORT name : public wxBaseArray \ -{ \ -public: \ - name() \ - { \ - size_t type = sizeof(T); \ - size_t sizelong = sizeof(long); \ - if ( type > sizelong ) \ - { wxFAIL_MSG( _T("illegal use of DEFINE_ARRAY") ); } \ - } \ - \ - name& operator=(const name& src) \ - { wxBaseArray* temp = (wxBaseArray*) this; \ - (*temp) = ((const wxBaseArray&)src); \ - return *this; } \ - \ - T& operator[](size_t uiIndex) const \ - { return (T&)(wxBaseArray::Item(uiIndex)); } \ - T& Item(size_t uiIndex) const \ - { return (T&)(wxBaseArray::Item(uiIndex)); } \ - T& Last() const \ - { return (T&)(wxBaseArray::Item(Count() - 1)); } \ - \ - int Index(T Item, bool bFromEnd = FALSE) const \ - { return wxBaseArray::Index((long)Item, bFromEnd); } \ - \ - void Add(T Item) \ - { wxBaseArray::Add((long)Item); } \ - void Insert(T Item, size_t uiIndex) \ - { wxBaseArray::Insert((long)Item, uiIndex) ; } \ - \ - void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \ - void Remove(T Item) \ - { int iIndex = Index(Item); \ - wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \ - _T("removing inexisting element in wxArray::Remove") ); \ - wxBaseArray::Remove((size_t)iIndex); } \ - \ - void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \ -} - -// ---------------------------------------------------------------------------- -// This is the same as the previous macro, but it defines a sorted array. -// Differences: -// 1) it must be given a COMPARE function in ctor which takes 2 items of type -// T* and should return -1, 0 or +1 if the first one is less/greater -// than/equal to the second one. -// 2) the Add() method inserts the item in such was that the array is always -// sorted (it uses the COMPARE function) -// 3) it has no Sort() method because it's always sorted -// 4) Index() method is much faster (the sorted arrays use binary search -// instead of linear one), but Add() is slower. -// -// Summary: use this class when the speed of Index() function is important, use -// the normal arrays otherwise. -// -// NB: it has only inline functions => takes no space at all -// Mod by JACS: Salford C++ doesn't like 'var->operator=' syntax, as in: -// { ((wxBaseArray *)this)->operator=((const wxBaseArray&)src); -// so using a temporary variable instead. -// ---------------------------------------------------------------------------- -#define _WX_DEFINE_SORTED_ARRAY(T, name) \ -typedef int (CMPFUNC_CONV *SCMPFUNC##T)(T pItem1, T pItem2); \ -class WXDLLEXPORT name : public wxBaseArray \ -{ \ -public: \ - name(SCMPFUNC##T fn) \ - { size_t type = sizeof(T); \ - size_t sizelong = sizeof(long); \ - if ( type > sizelong ) \ - { wxFAIL_MSG( _T("illegal use of DEFINE_ARRAY") ); } \ - m_fnCompare = fn; \ - } \ - \ - name& operator=(const name& src) \ - { wxBaseArray* temp = (wxBaseArray*) this; \ - (*temp) = ((const wxBaseArray&)src); \ - m_fnCompare = src.m_fnCompare; \ - return *this; } \ - \ - T& operator[](size_t uiIndex) const \ - { return (T&)(wxBaseArray::Item(uiIndex)); } \ - T& Item(size_t uiIndex) const \ - { return (T&)(wxBaseArray::Item(uiIndex)); } \ - T& Last() const \ - { return (T&)(wxBaseArray::Item(Count() - 1)); } \ - \ - int Index(T Item) const \ - { return wxBaseArray::Index((long)Item, (CMPFUNC)m_fnCompare); }\ - \ - void Add(T Item) \ - { wxBaseArray::Add((long)Item, (CMPFUNC)m_fnCompare); } \ - \ - void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \ - void Remove(T Item) \ - { int iIndex = Index(Item); \ - wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \ - _T("removing inexisting element in wxArray::Remove") ); \ - wxBaseArray::Remove((size_t)iIndex); } \ - \ -private: \ - SCMPFUNC##T m_fnCompare; \ -} - -// ---------------------------------------------------------------------------- -// see WX_DECLARE_OBJARRAY and WX_DEFINE_OBJARRAY -// ---------------------------------------------------------------------------- -#define _WX_DECLARE_OBJARRAY(T, name) \ -typedef int (CMPFUNC_CONV *CMPFUNC##T)(T** pItem1, T** pItem2); \ -class WXDLLEXPORT name : public wxBaseArray \ -{ \ -public: \ - name() { } \ - name(const name& src); \ - name& operator=(const name& src); \ - \ - ~name(); \ - \ - T& operator[](size_t uiIndex) const \ - { return *(T*)wxBaseArray::Item(uiIndex); } \ - T& Item(size_t uiIndex) const \ - { return *(T*)wxBaseArray::Item(uiIndex); } \ - T& Last() const \ - { return *(T*)(wxBaseArray::Item(Count() - 1)); } \ - \ - int Index(const T& Item, bool bFromEnd = FALSE) const; \ - \ - void Add(const T& Item); \ - void Add(const T* pItem) \ - { wxBaseArray::Add((long)pItem); } \ - \ - void Insert(const T& Item, size_t uiIndex); \ - void Insert(const T* pItem, size_t uiIndex) \ - { wxBaseArray::Insert((long)pItem, uiIndex); } \ - \ - void Empty(); \ - \ - T* Detach(size_t uiIndex) \ - { T* p = (T*)wxBaseArray::Item(uiIndex); \ - wxBaseArray::Remove(uiIndex); return p; } \ - void Remove(size_t uiIndex); \ - \ - void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \ - \ -private: \ - void DoCopy(const name& src); \ -} - -// ---------------------------------------------------------------------------- -/** @name Macros for definition of dynamic arrays and objarrays - - These macros are ugly (especially if you look in the sources ;-), but they - allow us to define 'template' classes without actually using templates. -
-
- Range checking is performed in debug build for both arrays and objarrays. - Type checking is done at compile-time. Warning: arrays never shrink, - they only grow, so loading 10 millions in an array only to delete them 2 - lines below is not recommended. However, it does free memory when - it's destroyed, so if you destroy array also, it's ok. - */ -// ---------------------------------------------------------------------------- - -//@{ - /** - This macro generates a new array class. It is intended for storage of simple - types of sizeof()<=sizeof(long) or pointers if sizeof(pointer)<=sizeof(long) -
- NB: it has only inline functions => takes no space at all -
- - @memo declare and define array class 'name' containing elements of type 'T' - */ -#define WX_DEFINE_ARRAY(T, name) typedef T _A##name; \ - _WX_DEFINE_ARRAY(_A##name, name) - - /** - This macro does the same as WX_DEFINE_ARRAY except that the array will be - sorted with the specified compare function. - */ -#define WX_DEFINE_SORTED_ARRAY(T, name) typedef T _A##name; \ - _WX_DEFINE_SORTED_ARRAY(_A##name, name) - - /** - This macro generates a new objarrays class which owns the objects it - contains, i.e. it will delete them when it is destroyed. An element is of - type T*, but arguments of type T& are taken (see below!) and T& is - returned.
- Don't use this for simple types such as "int" or "long"! - You _may_ use it for "double" but it's awfully inefficient. -
-
- Note on Add/Insert functions: -
- 1) function(T*) gives the object to the array, i.e. it will delete the - object when it's removed or in the array's dtor -
- 2) function(T&) will create a copy of the object and work with it -
-
- Also: -
- 1) Remove() will delete the object after removing it from the array -
- 2) Detach() just removes the object from the array (returning pointer to it) -
-
- NB1: Base type T should have an accessible copy ctor if Add(T&) is used, -
- NB2: Never ever cast a array to it's base type: as dtor is not virtual - it will provoke memory leaks -
-
- some functions of this class are not inline, so it takes some space to - define new class from this template. - - @memo declare objarray class 'name' containing elements of type 'T' - */ -#define WX_DECLARE_OBJARRAY(T, name) typedef T _L##name; \ - _WX_DECLARE_OBJARRAY(_L##name, name) - /** - To use an objarray class you must - -
  • #include "dynarray.h" -
  • WX_DECLARE_OBJARRAY(element_type, list_class_name) -
  • #include "arrimpl.cpp" -
  • WX_DEFINE_OBJARRAY(list_class_name) // same as above! - -

    - This is necessary because at the moment of DEFINE_OBJARRAY class - element_type must be fully defined (i.e. forward declaration is not - enough), while WX_DECLARE_OBJARRAY may be done anywhere. The separation of - two allows to break cicrcular dependencies with classes which have member - variables of objarray type. - - @memo define (must include arrimpl.cpp!) objarray class 'name' - */ -#define WX_DEFINE_OBJARRAY(name) "don't forget to include arrimpl.cpp!" -//@} - -// ---------------------------------------------------------------------------- -/** @name Some commonly used predefined arrays */ -// # overhead if not used? -// ---------------------------------------------------------------------------- - -//@{ - /** @name ArrayInt */ -WX_DEFINE_ARRAY(int, wxArrayInt); - /** @name ArrayLong */ -WX_DEFINE_ARRAY(long, wxArrayLong); - /** @name ArrayPtrVoid */ -WX_DEFINE_ARRAY(void *, wxArrayPtrVoid); -//@} - -//@} - -// ----------------------------------------------------------------------------- -// convinience macros -// ----------------------------------------------------------------------------- - -// delete all array elements -// -// NB: the class declaration of the array elements must be visible from the -// place where you use this macro, otherwise the proper destructor may not -// be called (a decent compiler should give a warning about it, but don't -// count on it)! -#define WX_CLEAR_ARRAY(array) \ - { \ - size_t count = array.Count(); \ - for ( size_t n = 0; n < count; n++ ) \ - { \ - delete array[n]; \ - } \ - \ - array.Empty(); \ - } -#endif // _DYNARRAY_H - diff --git a/include/wx/dynlib.h b/include/wx/dynlib.h deleted file mode 100644 index 0802665377..0000000000 --- a/include/wx/dynlib.h +++ /dev/null @@ -1,162 +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(__OS2__) -# define INCL_DOS -# include - typedef HMODULE wxDllType; -#elif defined(__WXMAC__) - typedef CFragConnectionID wxDllType; -#else -# error "wxLibrary can't be compiled on this platform, sorry." -#endif // OS - -// LoadLibrary is defined in windows.h as LoadLibraryA, but wxDllLoader method -// should be called LoadLibrary, not LoadLibraryA or LoadLibraryW! -#if defined(__WIN32__) && defined(LoadLibrary) -# include "wx/msw/winundef.h" -#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 = NULL); - /** This function unloads the shared library. */ - static void UnloadLibrary(wxDllType dll); - /** This function returns a valid handle for the main program - itself. */ - static wxDllType GetProgramHandle(void); - /** 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 5598cf8d25..0000000000 --- a/include/wx/event.h +++ /dev/null @@ -1,1615 +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; - - /* Dial up events */ -const wxEventType wxEVT_DIALUP_CONNECTED = wxEVT_FIRST + 450; -const wxEventType wxEVT_DIALUP_DISCONNECTED = wxEVT_FIRST + 451; - - /* 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; - -/* Wizard events */ -const wxEventType wxEVT_WIZARD_PAGE_CHANGED = wxEVT_FIRST + 900; -const wxEventType wxEVT_WIZARD_PAGE_CHANGING = wxEVT_FIRST + 901; -const wxEventType wxEVT_WIZARD_CANCEL = wxEVT_FIRST + 902; - -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 - */ - -#if defined(__WXDEBUG__) && defined(__WXMSW__) - // see comments in src/msw/dcclient.cpp where g_isPainting is defined - extern int g_isPainting; -#endif // debug - -class WXDLLEXPORT wxPaintEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxPaintEvent) - -public: - wxPaintEvent(int Id = 0) - { - m_eventType = wxEVT_PAINT; - m_id = Id; - -#if defined(__WXDEBUG__) && defined(__WXMSW__) - // set the internal flag for the duration of processing of WM_PAINT - g_isPainting++; -#endif // debug - } - -#if defined(__WXDEBUG__) && defined(__WXMSW__) - ~wxPaintEvent() - { - g_isPainting--; - } -#endif // debug -}; - -// 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)) - { - wxFAIL_MSG(_T("shouldn't be called any more")); - } - - // Called if child control has no callback function - 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 4555550dce..0000000000 --- a/include/wx/expr.h +++ /dev/null @@ -1,127 +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 defined(__BORLANDC__) || defined(__VISAGECPP__) -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 *); -int lex_input(void); -#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/ffile.h b/include/wx/ffile.h deleted file mode 100644 index 6a3f6fdb9e..0000000000 --- a/include/wx/ffile.h +++ /dev/null @@ -1,114 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ffile.h -// Purpose: wxFFile - encapsulates "FILE *" stream -// Author: Vadim Zeitlin -// Modified by: -// Created: 14.07.99 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FFILE_H_ -#define _WX_FFILE_H_ - -#ifdef __GNUG__ - #pragma interface "ffile.h" -#endif - -#if wxUSE_FILE - -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/filefn.h" -#endif - -#include - -// ---------------------------------------------------------------------------- -// class wxFFile: standard C stream library 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 wxFFile -{ -public: - // ctors - // ----- - // def ctor - wxFFile() { m_fp = NULL; } - // open specified file (may fail, use IsOpened()) - wxFFile(const wxChar *filename, const char *mode = "r"); - // attach to (already opened) file - wxFFile(FILE *fp) { m_fp = fp; } - - // open/close - // open a file (existing or not - the mode controls what happens) - bool Open(const wxChar *filename, const char *mode = "r"); - // closes the opened file (this is a NOP if not opened) - bool Close(); - - // assign an existing file descriptor and get it back from wxFFile object - void Attach(FILE *fp, const wxString& name = _T("")) - { Close(); m_fp = fp; m_name = name; } - void Detach() { m_fp = NULL; } - FILE *fp() const { return m_fp; } - - // read/write (unbuffered) - // read all data from the file into a string (useful for text files) - bool ReadAll(wxString *str); - // returns number of bytes read - use Eof() and Error() to see if an error - // occured or not - size_t Read(void *pBuf, size_t nCount); - // returns the number of bytes written - size_t Write(const void *pBuf, size_t nCount); - // returns true on success - bool Write(const wxString& s) - { - size_t size = s.Len()*sizeof(wxChar); - return Write(s.c_str(), size) == size; - } - // flush data not yet written - bool Flush(); - - // file pointer operations (return ofsInvalid on failure) - // move ptr ofs bytes related to start/current pos/end of file - bool Seek(long ofs, wxSeekMode mode = wxFromStart); - // move ptr to ofs bytes before the end - bool SeekEnd(long ofs = 0) { return Seek(ofs, wxFromEnd); } - // get current position in the file - size_t Tell() const; - // get current file length - size_t Length() const; - - // simple accessors - // is file opened? - bool IsOpened() const { return m_fp != NULL; } - // is end of file reached? - bool Eof() const { return feof(m_fp) != 0; } - // is an error occured? - bool Error() const { return ferror(m_fp) != 0; } - // get the file name - const wxString& GetName() const { return m_name; } - - // dtor closes the file if opened - ~wxFFile() { Close(); } - -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. - wxFFile(const wxFFile&); - wxFFile& operator=(const wxFFile&); - - FILE *m_fp; // IO stream or NULL if not opened - - wxString m_name; // the name of the file (for diagnostic messages) -}; - -#endif // wxUSE_FILE - -#endif // _WX_FFILE_H_ - diff --git a/include/wx/file.h b/include/wx/file.h deleted file mode 100644 index 89718b6120..0000000000 --- a/include/wx/file.h +++ /dev/null @@ -1,189 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: file.h -// 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 _WX_FILEH__ -#define _WX_FILEH__ - -#ifdef __GNUG__ -#pragma interface "file.h" -#endif - -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/filefn.h" -#endif - -#if wxUSE_FILE - -// ---------------------------------------------------------------------------- -// 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 the number of bytes written - size_t Write(const void *pBuf, size_t nCount); - // returns true on success - bool Write(const wxString& s) - { - size_t size = s.Len()*sizeof(wxChar); - return Write(s.c_str(), size) == size; - } - // 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; - // has an error occured? - bool Error() const { return m_error; } - - // dtor closes the file if opened - ~wxFile() { Close(); } - -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 // wxUSE_FILE - -#endif // _WX_FILEH__ diff --git a/include/wx/fileconf.h b/include/wx/fileconf.h deleted file mode 100644 index f6c4718919..0000000000 --- a/include/wx/fileconf.h +++ /dev/null @@ -1,351 +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" - -#if wxUSE_CONFIG - -#include "wx/textfile.h" -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// 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 - // wxUSE_CONFIG - -#endif - //_FILECONF_H - diff --git a/include/wx/filedlg.h b/include/wx/filedlg.h deleted file mode 100644 index 14b0010184..0000000000 --- a/include/wx/filedlg.h +++ /dev/null @@ -1,22 +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/generic/filedlgg.h" -#elif defined(__WXQT__) -#include "wx/qt/filedlg.h" -#elif defined(__WXMAC__) -#include "wx/mac/filedlg.h" -#elif defined(__WXPM__) -#include "wx/os2/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 b7455424ad..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 and OS/2 - #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 and OS/2 - #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/filesys.h b/include/wx/filesys.h deleted file mode 100644 index d381956e29..0000000000 --- a/include/wx/filesys.h +++ /dev/null @@ -1,208 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filesys.h -// Purpose: class for opening files - virtual file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __FILESYS_H__ -#define __FILESYS_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/setup.h" - -#if (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS - -#include "wx/stream.h" -#include "wx/mimetype.h" -#include "wx/url.h" - - -class wxFSFile; -class wxFileSystemHandler; -class wxFileSystem; - -//-------------------------------------------------------------------------------- -// wxFSFile -// This class is a file opened using wxFileSystem. It consists of -// input stream, location, mime type & optional anchor -// (in 'index.htm#chapter2', 'chapter2' is anchor) -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxFSFile : public wxObject -{ - private: - wxInputStream *m_Stream; - wxString m_Location; - wxString m_MimeType; - wxString m_Anchor; - - public: - wxFSFile(wxInputStream *stream, const wxString& loc, const wxString& mimetype, const wxString& anchor) - { - m_Stream = stream; - m_Location = loc; - m_MimeType = mimetype; m_MimeType.MakeLower(); - m_Anchor = anchor; - } - virtual ~wxFSFile() - { - if (m_Stream) delete m_Stream; - } - - wxInputStream *GetStream() const {return m_Stream;} - // returns stream. This doesn't _create_ stream, it only returns - // pointer to it!! - - const wxString& GetMimeType() const {return m_MimeType;} - // returns file's mime type - - const wxString& GetLocation() const {return m_Location;} - // returns the original location (aka filename) of the file - - const wxString& GetAnchor() const {return m_Anchor;} -}; - - - - - -//-------------------------------------------------------------------------------- -// wxFileSystemHandler -// This class is FS handler for wxFileSystem. It provides -// interface to access certain -// kinds of files (HTPP, FTP, local, tar.gz etc..) -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileSystemHandler : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxFileSystemHandler) - - public: - wxFileSystemHandler() : wxObject() {} - - virtual bool CanOpen(const wxString& location) = 0; - // returns TRUE if this handler is able to open given location - - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) = 0; - // opens given file and returns pointer to input stream. - // Returns NULL if opening failed. - // The location is always absolute path. - - protected: - wxString GetProtocol(const wxString& location) const; - // returns protocol ("file", "http", "tar" etc.) The last (most right) - // protocol is used: - // {it returns "tar" for "file:subdir/archive.tar.gz#tar:/README.txt"} - - wxString GetLeftLocation(const wxString& location) const; - // returns left part of address: - // {it returns "file:subdir/archive.tar.gz" for "file:subdir/archive.tar.gz#tar:/README.txt"} - - wxString GetAnchor(const wxString& location) const; - // returns anchor part of address: - // {it returns "anchor" for "file:subdir/archive.tar.gz#tar:/README.txt#anchor"} - // NOTE: anchor is NOT a part of GetLeftLocation()'s return value - - wxString GetRightLocation(const wxString& location) const; - // returns right part of address: - // {it returns "/README.txt" for "file:subdir/archive.tar.gz#tar:/README.txt"} - - wxString GetMimeTypeFromExt(const wxString& location); - // Returns MIME type of the file - w/o need to open it - // (default behaviour is that it returns type based on extension) - - public: - static void CleanUpStatics(); - // deletes static members (m_MimeMng). It can be called - // as many times as you wish because m_MimeMng is created - // on demand - - private: - static wxMimeTypesManager *m_MimeMng; - // MIME manager - // (it's static and thus shared by all instances and derived classes) -}; - - - - -//-------------------------------------------------------------------------------- -// wxFileSystem -// This class provides simple interface for opening various -// kinds of files (HTPP, FTP, local, tar.gz etc..) -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileSystem : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFileSystem) - - private: - wxString m_Path; - // the path (location) we are currently in - // this is path, not file! - // (so if you opened test/demo.htm, it is - // "test/", not "test/demo.htm") - wxString m_LastName; - // name of last opened file (full path) - static wxList m_Handlers; - // list of FS handlers - - public: - wxFileSystem() : wxObject() {m_Path = m_LastName = wxEmptyString; m_Handlers.DeleteContents(TRUE);} - - void ChangePathTo(const wxString& location, bool is_dir = FALSE); - // sets the current location. Every call to OpenFile is - // relative to this location. - // NOTE !! - // unless is_dir = TRUE 'location' is *not* the directory but - // file contained in this directory - // (so ChangePathTo("dir/subdir/xh.htm") sets m_Path to "dir/subdir/") - - wxString GetPath() const {return m_Path;} - - wxFSFile* OpenFile(const wxString& location); - // opens given file and returns pointer to input stream. - // Returns NULL if opening failed. - // It first tries to open the file in relative scope - // (based on ChangePathTo()'s value) and then as an absolute - // path. - - static void AddHandler(wxFileSystemHandler *handler); - // Adds FS handler. - // In fact, this class is only front-end to the FS hanlers :-) -}; - - -/* - -'location' syntax: - -To determine FS type, we're using standard KDE notation: -file:/absolute/path/file.htm -file:relative_path/xxxxx.html -/some/path/x.file ('file:' is default) -http://www.gnome.org -file:subdir/archive.tar.gz#tar:/README.txt - -special characters : - ':' - FS identificator is before this char - '#' - separator. It can be either HTML anchor ("index.html#news") - (in case there is no ':' in the string to the right from it) - or FS separator - (example : http://www.wxhtml.org/wxhtml-0.1.tar.gz#tar:/include/wxhtml/filesys.h" - this would access tgz archive stored on web) - '/' - directory (path) separator. It is used to determine upper-level path. - HEY! Don't use \ even if you're on Windows! - -*/ - -#endif - // (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS - -#endif - // __FILESYS_H__ diff --git a/include/wx/font.h b/include/wx/font.h deleted file mode 100644 index fdd9d9d8c6..0000000000 --- a/include/wx/font.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 559d903ec2..0000000000 --- a/include/wx/fontdlg.h +++ /dev/null @@ -1,33 +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(__WXPM__) -#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 89171ced45..0000000000 --- a/include/wx/frame.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/frame.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/frame.h" -#endif - -#endif - // _WX_FRAME_H_BASE_ diff --git a/include/wx/fs_inet.h b/include/wx/fs_inet.h deleted file mode 100644 index ccf2a71915..0000000000 --- a/include/wx/fs_inet.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fs_inet.h -// Purpose: HTTP and FTP file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -/* - -REMARKS : - -This FS creates local cache (in /tmp directory). The cache is freed -on program exit. - -Size of cache is limited to cca 1000 items (due to GetTempFileName -limitation) - - -*/ - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_FS_INET && wxUSE_STREAMS && wxUSE_SOCKETS - -#ifndef WXPRECOMP -#include -#endif - -#include - - - -//-------------------------------------------------------------------------------- -// wxInternetFSHandler -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxInternetFSHandler : public wxFileSystemHandler -{ - private: - wxHashTable m_Cache; - - public: - virtual bool CanOpen(const wxString& location); - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); - ~wxInternetFSHandler(); -}; - -#endif - // wxUSE_FS_INET && wxUSE_STREAMS && wxUSE_SOCKETS - diff --git a/include/wx/fs_zip.h b/include/wx/fs_zip.h deleted file mode 100644 index f891349cbf..0000000000 --- a/include/wx/fs_zip.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fs_zip.h -// Purpose: ZIP file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_FS_ZIP && wxUSE_STREAMS - - -#ifndef WXPRECOMP -#include -#endif - -#include - - - -//-------------------------------------------------------------------------------- -// wxZipFSHandler -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxZipFSHandler : public wxFileSystemHandler -{ - public: - virtual bool CanOpen(const wxString& location); - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); - ~wxZipFSHandler(); -}; - - -#endif - // wxUSE_FS_ZIP && wxUSE_STREAMS - diff --git a/include/wx/gauge.h b/include/wx/gauge.h deleted file mode 100644 index cffbc7c0d7..0000000000 --- a/include/wx/gauge.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 d19e021358..0000000000 --- a/include/wx/gdicmn.h +++ /dev/null @@ -1,475 +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_PNM, - wxBITMAP_TYPE_PNM_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 __WXGTK__ - wxCURSOR_DEFAULT, // standard X11 cursor -#endif -#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(__WXPM__) - // 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 (don't use them directly, - // especially that there names were chosen very unfortunately - they should - // have been called width and height) - 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); } - - // accessors - void Set(long xx, long yy) { x = xx; y = yy; } - void SetWidth(long w) { x = w; } - void SetHeight(long h) { y = h; } - - long GetWidth() const { return x; } - long GetHeight() const { return y; } - - // compatibility - 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); } - - // MFC-like functions - - long GetLeft() const { return x; } - long GetTop() const { return y; } - long GetBottom() const { return y + height - 1; } - long GetRight() const { return x + width - 1; } - - void SetLeft(long left) { x = left; } - void SetRight(long right) { width = right - x + 1; } - void SetTop(long top) { y = top; } - void SetBottom(long bottom) { height = bottom - y + 1; } - - 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 4ab7c5ad81..0000000000 --- a/include/wx/gdiobj.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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/caret.h b/include/wx/generic/caret.h deleted file mode 100644 index ffb95c3422..0000000000 --- a/include/wx/generic/caret.h +++ /dev/null @@ -1,70 +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 -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CARET_H_ -#define _WX_CARET_H_ - -#ifdef __GNUG__ -#pragma interface "caret.h" -#endif - -#include "wx/timer.h" - -class wxCaret; - -class wxCaretTimer : public wxTimer -{ -public: - wxCaretTimer(wxCaret *caret); - virtual void Notify(); - -private: - wxCaret *m_caret; -}; - -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(); - - wxCaretTimer 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 017ec2a43b..0000000000 --- a/include/wx/generic/choicdgg.h +++ /dev/null @@ -1,135 +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" -#include "wx/listbox.h" - -#define wxCHOICE_HEIGHT 150 -#define wxCHOICE_WIDTH 200 - -#define wxCHOICEDLG_STYLE (wxDEFAULT_DIALOG_STYLE|wxOK | wxCANCEL | wxCENTRE) - -class WXDLLEXPORT wxSingleChoiceDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxSingleChoiceDialog) - -public: - wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - char **clientData = (char **)NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - - wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxStringList& choices, - char **clientData = (char **)NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - char **clientData = (char **)NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxStringList& choices, - char **clientData = (char **)NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - - void SetSelection(int sel) ; - int GetSelection() const { return m_selection; } - wxString GetStringSelection() const { return m_stringSelection; } - - // get client data associated with selection - void *GetClientData() const { return m_clientData; } - - // obsolete function (NB: no need to make it return wxChar, it's untyped) - char *GetSelectionClientData() const { return (char *)m_clientData; } - - // implementation from now on - void OnOK(wxCommandEvent& event); - void OnListBoxDClick(wxCommandEvent& event); - -protected: - int m_selection; - int m_dialogStyle; - wxString m_stringSelection; - wxListBox *m_listbox; - -private: - DECLARE_EVENT_TABLE() -}; - -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 -// FIXME: this is horrible, using "char *" instead of "void *" belongs to the 70s! -WXDLLEXPORT wxChar* wxGetSingleChoiceData(const wxString& message, const wxString& caption, - int n, const wxString *choices, char **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[], char **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/cross.xpm b/include/wx/generic/cross.xpm deleted file mode 100644 index 5192b65cc0..0000000000 --- a/include/wx/generic/cross.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char *cross_xpm[] = { -/* columns rows colors chars-per-pixel */ -"10 10 16 1", -" c Gray0", -". c #bf0000", -"X c #00bf00", -"o c #bfbf00", -"O c #0000bf", -"+ c #bf00bf", -"@ c #00bfbf", -"# c None", -"$ c #808080", -"% c Red", -"& c Green", -"* c Yellow", -"= c Blue", -"- c Magenta", -"; c Cyan", -": c Gray100", -/* pixels */ -" ######## ", -" #### ", -"# ## #", -"## ##", -"### ###", -"### ###", -"## ##", -"# ## #", -" #### ", -" ###### " -}; diff --git a/include/wx/generic/dcpsg.h b/include/wx/generic/dcpsg.h deleted file mode 100644 index fba5f2cb57..0000000000 --- a/include/wx/generic/dcpsg.h +++ /dev/null @@ -1,281 +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_PRINTING_ARCHITECTURE - -#if wxUSE_POSTSCRIPT - -#include "wx/dialog.h" -#include "wx/module.h" -#include "wx/cmndata.h" - -//----------------------------------------------------------------------------- -// 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)) {} - - wxPrintData& GetPrintData() { return m_printData; } - void SetPrintData(const wxPrintData& data) { m_printData = data; } - - virtual int GetDepth() const { return 24; } - -protected: - - FILE* 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 - // wxUSE_PRINTING_ARCHITECTURE - -#endif - // _WX_DCPSG_H_ diff --git a/include/wx/generic/dir_up.xpm b/include/wx/generic/dir_up.xpm deleted file mode 100644 index 610339e2a2..0000000000 --- a/include/wx/generic/dir_up.xpm +++ /dev/null @@ -1,42 +0,0 @@ -/* XPM */ -static char *dir_up_xpm[] = { -/* columns rows colors chars-per-pixel */ -"20 20 16 1", -" c Gray0", -". c #800000", -"X c #008000", -"o c #808000", -"O c #000080", -"+ c #800080", -"@ c #008080", -"# c None", -"$ c #808080", -"% c Red", -"& c Green", -"* c Yellow", -"= c Blue", -"- c Magenta", -"; c Cyan", -": c Gray100", -/* pixels */ -"####################", -"####################", -"####################", -"#### ###########", -"### *:*:* ##########", -"## ####", -"## :*:*:*:*:*:*: ###", -"## *:*: :*:*:*:* ###", -"## :*: :*:*:*: ###", -"## *: :*:*:* ###", -"## :*:* *:*:*:*: ###", -"## *:*: :*:*:*:* ###", -"## :*:* :*: ###", -"## *:*:*:*:*:*:* ###", -"## :*:*:*:*:*:*: ###", -"## ###", -"####################", -"####################", -"####################", -"####################", -}; diff --git a/include/wx/generic/dirdlgg.h b/include/wx/generic/dirdlgg.h deleted file mode 100644 index 27ea3c4e69..0000000000 --- a/include/wx/generic/dirdlgg.h +++ /dev/null @@ -1,176 +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 -// RCS-ID: $Id$ -// 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/defs.h" - -#if wxUSE_DIRDLG - -#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; - -//----------------------------------------------------------------------------- -// wxDirItemData -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDirItemData : public wxTreeItemData -{ -public: - wxDirItemData(wxString& path, wxString& name); - ~wxDirItemData(); - bool HasSubDirs(); - void SetNewDirName( wxString path ); - wxString m_path, m_name; - bool m_isHidden; - bool m_hasSubDirs; -}; - -//----------------------------------------------------------------------------- -// wxDirCtrl -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDirCtrl: public wxTreeCtrl -{ -public: - bool m_showHidden; - wxTreeItemId m_rootId; - - wxDirCtrl(); - 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 ShowHidden( const bool yesno ); - void OnExpandItem(wxTreeEvent &event ); - void OnCollapseItem(wxTreeEvent &event ); - void OnBeginEditItem(wxTreeEvent &event ); - void OnEndEditItem(wxTreeEvent &event ); - -protected: - void CreateItems(const wxTreeItemId &parent); - void SetupSections(); - wxArrayString m_paths, m_names; - -private: - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxDirCtrl) -}; - -//----------------------------------------------------------------------------- -// wxDirDialog -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDirDialog: public wxDialog -{ -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 OnOK(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - void OnNew(wxCommandEvent& event); - // void OnCheck(wxCommandEvent& event); - -protected: - // implementation - wxString m_message; - long m_dialogStyle; - wxString m_path; - wxDirCtrl *m_dir; - wxTextCtrl *m_input; - wxCheckBox *m_check; // not yet used - wxButton *m_ok, *m_cancel, *m_new; - -private: - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxDirDialog) -}; - -#endif - -#endif - // _WX_DIRDLGG_H_ - diff --git a/include/wx/generic/error.xpm b/include/wx/generic/error.xpm deleted file mode 100644 index 4e9f8b0c22..0000000000 --- a/include/wx/generic/error.xpm +++ /dev/null @@ -1,129 +0,0 @@ -/* XPM */ -static char * error_xpm[] = { -"48 48 78 1", -" c None", -". c #000000", -"+ c #200000", -"@ c #4A0000", -"# c #6B0000", -"$ c #8F0000", -"% c #890000", -"& c #5F0000", -"* c #380000", -"= c #0E0000", -"- c #030000", -"; c #480000", -"> c #9C0000", -", c #E40000", -"' c #FE0000", -") c #FF0000", -"! c #C90000", -"~ c #7E0000", -"{ c #250000", -"] c #090000", -"^ c #700000", -"/ c #DE0000", -"( c #FB0000", -"_ c #BB0000", -": c #410000", -"< c #500000", -"[ c #DF0000", -"} c #B00000", -"| c #0D0000", -"1 c #AB0000", -"2 c #F60000", -"3 c #600000", -"4 c #010000", -"5 c #220000", -"6 c #DA0000", -"7 c #950000", -"8 c #070000", -"9 c #350000", -"0 c #F00000", -"a c #BD0000", -"b c #080000", -"c c #B10000", -"d c #880000", -"e c #FD0000", -"f c #4D0000", -"g c #0B0000", -"h c #F50000", -"i c #1A0000", -"j c #820000", -"k c #E30000", -"l c #040000", -"m c #3C0000", -"n c #FEAFAF", -"o c #FFFEFE", -"p c #FEFEFE", -"q c #FF7F7F", -"r c #840000", -"s c #FFAFAF", -"t c #FFFFFF", -"u c #C00000", -"v c #EA0000", -"w c #2F0000", -"x c #290000", -"y c #D80000", -"z c #AE0000", -"A c #FE6D6D", -"B c #FF9F9F", -"C c #FE9F9F", -"D c #FF4F4F", -"E c #690000", -"F c #C10000", -"G c #5B0000", -"H c #050000", -"I c #B70000", -"J c #E50000", -"K c #F40000", -"L c #420000", -"M c #650000", -" ", -" ", -" ..+@#$$$%&*=. ", -" -;>,''''''))))!~{. ", -" ]^/'''''''''))))))(_:. ", -" .<['''''''''''))))))))'}+. ", -" |1'''''''''''''))))))))))234 ", -" 56)'''''''''''''))))))))))))78 ", -" 90))''''''''''''')))))))))))))ab ", -" 50)))'''''''''''''))))))))))))))c4 ", -" |6))))''''''''''''')))))))))))))))d. ", -" .1'))))''''''''''''')))))))))))))))ef ", -" <''))))''''''''''''')))))))))))))))),g ", -" ][')))))''''''''''''')))))))))))))))))%. ", -" ^'''))))''''''''''''')))))))))))))))))hi ", -" -/'''))))'''''''''''''))))))))))))))))))j ", -" ;)'')))))'''''''''''''))))))))))))))))))kl ", -" >''''))))''''''''''''')))))))))))))))))))m ", -" .,'''noooopppppppppppppoooooooooooooooq)))r ", -" +))')sttttppppppppppppptttttttttttttttq)))u. ", -" @''''nttttppppppppppppptttttttttttttttq)))v. ", -" #))''nttttppppppppppppptttttttttttttttq))))g ", -" $)'''nttttppppppppppppptttttttttttttttq))))w ", -" $''''nttttppppppppppppptttttttttttttttq))))w ", -" $)'''nttttppppppppppppptttttttttttttttq))))w ", -" %)'''nttttppppppppppppptttttttttttttttq))))x ", -" &''''nttttppppppppppppptttttttttttttttq)))). ", -" *)'''nttttppppppppppppptttttttttttttttq)))y. ", -" =))''sttttppppppppppppptttttttttttttttq)))z ", -" .!'''ABBBBCCCCCCCCCCCCCBBBBBBBBBBBBBBBD)))E ", -" ~''''))))'''''''''''''))))))))))))))))))e+ ", -" {('))))))'''''''''''''))))))))))))))))))F. ", -" ._'''))))'''''''''''''))))))))))))))))))G ", -" :'''))))''''''''''''')))))))))))))))))6H ", -" .}))))))''''''''''''')))))))))))))))))< ", -" +2'))))'''''''''''''))))))))))))))))I. ", -" .3)))))''''''''''''')))))))))))))))Ji ", -" 47))))'''''''''''''))))))))))))))KL ", -" 8a)))'''''''''''''))))))))))))))M. ", -" bc))'''''''''''''))))))))))))KM. ", -" 4de''''''''''''')))))))))))JL. ", -" .f,''''''''''''))))))))))Ii ", -" g%h''''''''''))))))))6<. ", -" .ijk'''''''')))))eFGH ", -" .lmruv''''))yzE+. ", -" ..gwwwx... ", -" ", -" "}; diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h deleted file mode 100644 index 6df5bcf051..0000000000 --- a/include/wx/generic/filedlgg.h +++ /dev/null @@ -1,227 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlgg.h -// Purpose: wxFileDialog -// Author: Robert Roebling -// Modified by: -// Created: 8/17/99 -// Copyright: (c) Robert Roebling -// RCS-ID: $Id$ -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLGG_H_ -#define _WX_FILEDLGG_H_ - -#ifdef __GNUG__ -#pragma interface "filedlgg.h" -#endif - -#include "wx/defs.h" - -#include "wx/dialog.h" -#include "wx/checkbox.h" -#include "wx/listctrl.h" -#include "wx/textctrl.h" -#include "wx/choice.h" - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorDefaultWildcardStr; - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxFileData; -class wxFileCtrl; -class wxFileDialog; - -//----------------------------------------------------------------------------- -// wxFileData -//----------------------------------------------------------------------------- - -class wxFileData : public wxObject -{ -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() {} - wxFileData( const wxString &name, const wxString &fname ); - wxString GetName() const; - wxString GetFullName() const; - wxString GetHint() const; - wxString GetEntry( const int num ); - bool IsDir(); - bool IsLink(); - bool IsExe(); - long GetSize(); - void MakeItem( wxListItem &item ); - void SetNewName( const wxString &name, const wxString &fname ); - -private: - DECLARE_DYNAMIC_CLASS(wxFileData); -}; - -//----------------------------------------------------------------------------- -// wxFileCtrl -//----------------------------------------------------------------------------- - -class wxFileCtrl : public wxListCtrl -{ -private: - wxString m_dirName; - bool m_showHidden; - wxString m_wild; - -public: - wxFileCtrl(); - wxFileCtrl( wxWindow *win, const wxWindowID id, - const wxString &dirName, const wxString &wild, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - const long style = wxLC_LIST, const wxValidator &validator = wxDefaultValidator, - const wxString &name = _T("filelist") ); - void ChangeToListMode(); - void ChangeToReportMode(); - void ChangeToIconMode(); - void ShowHidden( bool show = TRUE ); - long Add( wxFileData *fd, wxListItem &item ); - void Update(); - virtual void StatusbarText( char *WXUNUSED(text) ) {}; - void MakeDir(); - void GoToParentDir(); - void GoToHomeDir(); - void GoToDir( const wxString &dir ); - void SetWild( const wxString &wild ); - void GetDir( wxString &dir ); - void OnListDeleteItem( wxListEvent &event ); - void OnListEndLabelEdit( wxListEvent &event ); - -private: - DECLARE_DYNAMIC_CLASS(wxFileCtrl); - DECLARE_EVENT_TABLE() -}; - -//------------------------------------------------------------------------- -// File selector -//------------------------------------------------------------------------- - -class wxFileDialog: public wxDialog -{ -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); - ~wxFileDialog(); - - 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 ; } - - void OnSelected( wxListEvent &event ); - void OnActivated( wxListEvent &event ); - void OnList( wxCommandEvent &event ); - void OnReport( wxCommandEvent &event ); - void OnUp( wxCommandEvent &event ); - void OnHome( wxCommandEvent &event ); - void OnListOk( wxCommandEvent &event ); - void OnNew( wxCommandEvent &event ); - void OnChoice( wxCommandEvent &event ); - void OnTextEnter( wxCommandEvent &event ); - -protected: - wxString m_message; - long m_dialogStyle; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; - wxChoice *m_choice; - wxTextCtrl *m_text; - wxFileCtrl *m_list; - -private: - DECLARE_DYNAMIC_CLASS(wxFileDialog) - DECLARE_EVENT_TABLE() -}; - -#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 - // _WX_DIRDLGG_H_ - 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 943f846508..0000000000 --- a/include/wx/generic/gridg.h +++ /dev/null @@ -1,418 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gridg.h -// Purpose: wxGenericGrid -// Author: Julian Smart -// Modified by: Michael Bedward -// Added edit in place facility, 20 April 1999 -// Added cursor key control, 29 Jun 1999 -// 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 - -#define WXGENERIC_GRID_VERSION 0.5 - -class WXDLLEXPORT wxGridEvent; -class WXDLLEXPORT wxGridCell; - -class WXDLLEXPORT wxGenericGrid : public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxGenericGrid) - -public: - wxGenericGrid(); - - 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); - } - 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(); - - 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(); - virtual wxGridCell *GetCell(int row, int col) const; - wxGridCell ***GetCells() 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() const; - void SetCellTextColour(const wxColour& val, int row, int col); - void SetCellTextColour(const wxColour& col); - wxColour& GetCellTextColour(int row, int col) const; - wxColour& GetCellTextColour() const { return (wxColour&) m_cellTextColour; } - void SetCellBackgroundColour(const wxColour& col); - void SetCellBackgroundColour(const wxColour& colour, int row, int col); - wxColour& GetCellBackgroundColour() const { return (wxColour&) m_cellBackgroundColour; } - wxColour& GetCellBackgroundColour(int row, int col) const; - wxFont& GetCellTextFont() 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); - void *SetCellData(void *data, int row, int col); - void *GetCellData(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; - int GetViewHeight() const { return m_viewHeight; } - int GetViewWidth() const { return m_viewWidth; } - - // 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); - wxColour& GetLabelTextColour() const { return (wxColour&) m_labelTextColour; } - wxColour& GetLabelBackgroundColour() { return (wxColour&) m_labelBackgroundColour; } - wxFont& GetLabelTextFont() { return (wxFont&) m_labelTextFont; } - void SetLabelTextFont(const wxFont& fnt) { m_labelTextFont = fnt; } - - // Miscellaneous accessors - int GetCursorRow() const { return m_wCursorRow; } - int GetCursorColumn() const { return m_wCursorColumn; } - void SetGridCursor(int row, int col); - int GetRows() const { return m_totalRows; } - int GetCols() const { return m_totalCols; } - int GetScrollPosX() const { return m_scrollPosX; } - int GetScrollPosY() const { return m_scrollPosY; } - void SetScrollPosX(int pos) { m_scrollPosX = pos; } - void SetScrollPosY(int pos) { m_scrollPosY = pos; } - wxTextCtrl *GetTextItem() const { return m_textItem; } - wxScrollBar *GetHorizScrollBar() const { return m_hScrollBar; } - wxScrollBar *GetVertScrollBar() const { return m_vScrollBar; } - bool GetEditable() const { return m_editable; } - void SetEditable(bool edit); - - bool GetEditInPlace() const { return m_editInPlace; } - void SetEditInPlace(bool edit = TRUE); - - wxRect& GetCurrentRect() const { return (wxRect&) m_currentRect; } - bool CurrentCellVisible() const { return m_currentRectVisible; } - void SetDividerPen(const wxPen& pen) { m_divisionPen = pen; } - wxPen& GetDividerPen() 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 _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 _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 _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 UpdateDimensions(); - - void SetCurrentRect (int Row, int Column, int canvasW = -1, int canvasH = -1); - void HighlightCell(wxDC *dc, bool doHighlight); - void DrawCellText(); - 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. - void BeginBatch() { m_batchCount ++; } - void EndBatch() { m_batchCount --; } - int GetBatchCount() { return m_batchCount; } - - // implementation from now on - - void OnPaint(wxPaintEvent& event); - void OnEraseBackground(wxEraseEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnSize(wxSizeEvent& event); - void OnText(wxCommandEvent& ev); - void OnTextEnter(wxCommandEvent& ev); - void OnTextInPlace(wxCommandEvent& ev); - void OnTextInPlaceEnter(wxCommandEvent& ev); - void OnGridScroll(wxScrollEvent& ev); - -protected: - wxPanel* m_editingPanel; // Contains the text control - wxTextCtrl* m_textItem; - wxTextCtrl* m_inPlaceTextItem; - - 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; - bool m_editInPlace; - bool m_inOnTextInPlace; - bool m_inScroll; - - 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_viewHeight; // Number of rows displayed - int m_viewWidth; // Number of columns displayed - 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; - wxPen m_highlightPen; - 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 -#define wxGRID_EDIT_IN_PLACE_TEXT_CTRL 2003 - -class WXDLLEXPORT wxGridCell : public wxObject -{ -public: - wxString textValue; - wxFont font; - wxColour textColour; - wxColour backgroundColour; - wxBrush backgroundBrush; - wxBitmap* cellBitmap; - void* cellData; // intended for additional data associated with a cell - int alignment; - - wxGridCell(wxGenericGrid *window = (wxGenericGrid *) NULL); - ~wxGridCell(); - - virtual wxString& GetTextValue() const { return (wxString&) textValue; } - virtual void SetTextValue(const wxString& str) { textValue = str; } - wxFont& GetFont() const { return (wxFont&) font; } - void SetFont(const wxFont& f) { font = f; } - wxColour& GetTextColour() const { return (wxColour&) textColour; } - void SetTextColour(const wxColour& colour) { textColour = colour; } - wxColour& GetBackgroundColour() const { return (wxColour&) backgroundColour; } - void SetBackgroundColour(const wxColour& colour); - wxBrush& GetBackgroundBrush() const { return (wxBrush&) backgroundBrush; } - void SetBackgroundBrush(const wxBrush& brush) { backgroundBrush = brush; } - int GetAlignment() const { return alignment; } - void SetAlignment(int align) { alignment = align; } - wxBitmap *GetCellBitmap() const { return cellBitmap; } - void SetCellBitmap(wxBitmap *bitmap) { cellBitmap = bitmap; } - - void *SetCellData(void *data) { void *rc = cellData; cellData = data; return rc; } - void *GetCellData() const { return cellData; } -}; - -class WXDLLEXPORT wxGrid : public wxGenericGrid -{ -public: - wxGrid() : 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); - } - -//private: - int m_row; - int m_col; - int m_x; - int m_y; - bool m_control; - bool m_shift; - wxGridCell* m_cell; - - int GetRow() const { return m_row; } - int GetCol() const { return m_col; } - wxPoint GetPosition() const { return wxPoint( m_x, m_y ); } - wxGridCell* GetCell() const { return m_cell; } - bool ControlDown() const { return m_control; } - bool ShiftDown() const { return m_shift; } -}; - -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 // __GRIDH_G__ - diff --git a/include/wx/generic/helpext.h b/include/wx/generic/helpext.h deleted file mode 100644 index 3c0b0c0360..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. - virtual 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 68bdd47de5..0000000000 --- a/include/wx/generic/helphtml.h +++ /dev/null @@ -1,152 +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" -#include "wx/frame.h" - -/// Name for map file. -#define WXEXTHELP_MAPFILE "wxhelp.map" -/// Path separator. -#ifdef __WXMSW__ -#define WXEXTHELP_SEPARATOR '\\' -#else -#define WXEXTHELP_SEPARATOR '/' -#endif -/// 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; - - /// Allows one to override the default settings for the help frame. - virtual void SetFrameParameters(const wxString &title, - const wxSize &size, - const wxPoint &pos = wxDefaultPosition, - bool newFrameEachTime = FALSE) - { - // does nothing by default - } - /// Obtains the latest settings used by the help frame and the help - /// frame. - virtual wxFrame *GetFrameParameters(wxSize *size = NULL, - wxPoint *pos = NULL, - bool *newFrameEachTime = NULL) - { - return (wxFrame*) NULL;// does nothing by default - } - - 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/helpwxht.h b/include/wx/generic/helpwxht.h deleted file mode 100644 index 9f1f8f9fca..0000000000 --- a/include/wx/generic/helpwxht.h +++ /dev/null @@ -1,75 +0,0 @@ -/*-*- c++ -*-******************************************************** - * helpwxht.h - a help controller using wxHTML * - * * - * (C) 1999 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ - *******************************************************************/ - -#ifndef __WX_HELPWXHT_H_ -#define __WX_HELPWXHT_H_ - -#if wxUSE_HELP -#if wxUSE_HTML - -#ifdef __GNUG__ -# pragma interface "helpwxht.h" -#endif - -#include "wx/generic/helphtml.h" - - -/** - This class implements help via wxHTML. - 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 wxHelpControllerHtml : public wxHTMLHelpControllerBase -{ -DECLARE_CLASS(wxHelpControllerHtml) - public: - wxHelpControllerHtml(void); - ~wxHelpControllerHtml(void); - - /// Allows one to override the default settings for the help frame. - virtual void SetFrameParameters(const wxString &title, - const wxSize &size, - const wxPoint &pos = wxDefaultPosition, - bool newFrameEachTime = FALSE); - /// Obtains the latest settings used by the help frame. - virtual wxFrame * GetFrameParameters(wxSize *size = NULL, - wxPoint *pos = NULL, - bool *newFrameEachTime = NULL); - - -private: - /// Call the browser using a relative URL. - virtual bool DisplayHelp(wxString const &); -protected: - friend class wxHelpFrame; - class wxHelpFrame *m_Frame; - wxString m_FrameTitle; - wxPoint m_FramePosition; - wxSize m_FrameSize; - bool m_NewFrameEachTime; - size_t m_offset; -}; - -#endif // wxUSE_HELP -#endif // wxUSE_HTML - -#endif // __WX_HELPEXT_H_ diff --git a/include/wx/generic/helpxlp.h b/include/wx/generic/helpxlp.h deleted file mode 100644 index 823b5b936f..0000000000 --- a/include/wx/generic/helpxlp.h +++ /dev/null @@ -1,126 +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 -///////////////////////////////////////////////////////////////////////////// - -#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 - #include "wx/sckipc.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; -private: - virtual bool Initialize(const wxString& file) { return(wxHelpControllerBase::Initialize(file)); }; -}; - -#endif // wxUSE_HELP -#endif - // __HELPXLPH__ diff --git a/include/wx/generic/home.xpm b/include/wx/generic/home.xpm deleted file mode 100644 index 2a16ace29e..0000000000 --- a/include/wx/generic/home.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char * home_xpm[] = { -"20 20 3 1", -" c None", -". c #000000000000", -"X c #FFFFFFFFFFFF", -" ", -" ", -" .. ", -" . .... ", -" . .XX . ", -" . .XXXX . ", -" ..XXXXXX . ", -" .XXXXXXXX . ", -" .XXXXXXXXX . ", -" ...XXXXXXXX ... ", -" .XXXXXXXX . ", -" .XXX...XX . ", -" .XXX. .XX . ", -" .XXX. .XX . ", -" .XXX. .XX . ", -" .XXX. .XX . ", -" ..... ...... ", -" ", -" ", -" "}; 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 8fb53a9db8..0000000000 --- a/include/wx/generic/info.xpm +++ /dev/null @@ -1,210 +0,0 @@ -/* XPM */ -static char * info_xpm[] = { -"48 48 159 2", -" c None", -". c #12165C", -"+ c #9E9EC4", -"@ c #565294", -"# c #2E3274", -"$ c #1A227C", -"% c #16229C", -"& c #262274", -"* c #362E8C", -"= c #262A9C", -"- c #121E7C", -"; c #1A2AAC", -"> c #162284", -", c #262EA4", -"' c #2A2A84", -") c #1E1E6C", -"! c #3E3A84", -"~ c #7A72B4", -"{ c #121E74", -"] c #1E2284", -"^ c #2A2E9C", -"/ c #362E9C", -"( c #D2D2E4", -"_ c #62669C", -": c #1E269C", -"< c #1A2AB4", -"[ c #6A6EAC", -"} c #121A6C", -"| c #2E2A84", -"1 c #26268C", -"2 c #3E328C", -"3 c #322E9C", -"4 c #B6B6CC", -"5 c #1626AC", -"6 c #1E268C", -"7 c #2E267C", -"8 c #363294", -"9 c #1A2694", -"0 c #22226C", -"a c #26267C", -"b c #2E2A9C", -"c c #1A1E7C", -"d c #222A9C", -"e c #162294", -"f c #1E2EBC", -"g c #2A2EAC", -"h c #6A6A9C", -"i c #2E2A94", -"j c #CACADC", -"k c #1A1A64", -"l c #16269C", -"m c #262AAC", -"n c #161E8C", -"o c #464294", -"p c #8286C4", -"q c #1A1E64", -"r c #222AB4", -"s c #6A6EB4", -"t c #1A1A6C", -"u c #BABAD4", -"v c #1E2694", -"w c #121A64", -"x c #2E2E94", -"y c #3A2E8C", -"z c #2A2A9C", -"A c #161E7C", -"B c #1A2284", -"C c #262A94", -"D c #2E2E9C", -"E c #36329C", -"F c #FEFEFC", -"G c #666AA4", -"H c #1E2AB4", -"I c #161A6C", -"J c #322A84", -"K c #2A267C", -"L c #262EB4", -"M c #1A269C", -"N c #1E2274", -"O c #1E2AA4", -"P c #221E6C", -"Q c #423E8C", -"R c #222284", -"S c #E6E6EC", -"T c #22269C", -"U c #6E6EA4", -"V c #3232A4", -"W c #BAB6D4", -"X c #1A26AC", -"Y c #222684", -"Z c #3A328C", -"` c #22227C", -" . c #222AAC", -".. c #222EB4", -"+. c #8A86BC", -"@. c #1A1E74", -"#. c #161A5C", -"$. c #322E8C", -"%. c #3A329C", -"&. c #A29ECC", -"*. c #26227C", -"=. c #362E94", -"-. c #262AA4", -";. c #121E84", -">. c #16228C", -",. c #262EAC", -"'. c #2A2A8C", -"). c #1E1E74", -"!. c #7A76B4", -"~. c #161E74", -"{. c #1E228C", -"]. c #2A2EA4", -"^. c #6266A4", -"/. c #1E26A4", -"(. c #1A2ABC", -"_. c #121A74", -":. c #2E2A8C", -"<. c #262694", -"[. c #3E3294", -"}. c #322EA4", -"|. c #B6B6D4", -"1. c #222274", -"2. c #262684", -"3. c #222AA4", -"4. c #1A2294", -"5. c #2E2EAC", -"6. c #6E6AA4", -"7. c #322A94", -"8. c #1626A4", -"9. c #8E8ABC", -"0. c #4A429C", -"a. c #6E6EBC", -"b. c #222694", -"c. c #2A2A94", -"d. c #1A1E6C", -"e. c #BABADC", -"f. c #3A2E94", -"g. c #2A2AA4", -"h. c #161E84", -"i. c #1A228C", -"j. c #2E2EA4", -"k. c #3632A4", -"l. c #666AAC", -"m. c #1E2ABC", -"n. c #161A74", -"o. c #322A8C", -"p. c #2A2684", -"q. c #1A26A4", -"r. c #1E227C", -"s. c #1E2AAC", -"t. c #423E94", -"u. c #E6E6F4", -"v. c #6E6EAC", -"w. c #1A26B4", -"x. c #22268C", -"y. c #3A3294", -"z. c #222EBC", -"A. c #161A64", -"B. c #322E94", -" ", -" ", -" ", -" ", -" 7 7 7 7 7 7 7 7 & ", -" 2 2 2 2 2 2 y y y f.f.[.y 7 *. ", -" J y 2 2 2 2 2 [.[.[.[.y.=.=.f.=./ B.p. ", -" 2 2 2 2 [.2 [.[.f.y y y * * =.=.B./ B.3 o.*.*. ", -" y 2 2 [.2 [.2 2 y [.[.f.f.o.* $.$.B.B.7.D 3 D }.D ", -" 2 2 [.[.2 [.2 [.f.[.y ~ ( F F W 0.$.:.i x 7.3 D D <.R ", -" y 2 [.[.[.2 [.2 2 y y ~ F F F F F u.o :.:.c.c.b b D }.}.g. ", -" 2 [.[.2 [.2 [.2 [.y 2 Z ( F F F F F F +.7 '.:.:.i D b ].].z R ", -" y 2 2 [.[.[.[.[.2 f.y y y F F F F F F F |.p.p.'.'.<.z z g.].].5.m ", -" 2 2 [.t.[.[.2 2 2 f.2 f.* * u.F F F F F F + *.2.2.C '.c.z ^ ].g m = n ", -" y 2 [.2 [.[.[.[.2 f.2 f.* * &.F F F F F F @ a *.2.2.C C z = g.].,.g. . ", -" 2 2 [.[.[.[.[.2 [.[.[.f.* o.J $.u F F F u.U 1.0 Y *.2.1 <.C ^ -.m g.L = n ", -" 2 2 2 [.2 t.[.[.f.[.Z y.* $.J 7 | Q U 6.P 1.P P ` ` 2.1 <.= = , ,.,.m m . ", -" 2 [.[.[.[.[.[.2 f.2 f.f.* =.o.:.| K & & 0 0 P N 1.1.` R 2.d <.= -.-.m ..../.n ", -" 2 2 [.2 [.2 [.[.[.[.y.=.=.* o.:.p.K ! 6.h 4 4 ) ) ).r.6 Y b.= = , ,.,.m ..r r ", -" [.2 t.[.[.[.[.[.f.y.8 y.* B.9.W S F F F F F F ) ) N 1.R R x.b.= 3.m m ..m ..s. ", -" 7 [.2 [.2 [.[.[.[.[.f.=.=.=.o.e.F F F F F F F F ) ) ).N R x.b.T 3.3. .m ..r H m.H ", -" 2 [.[.[.[.[.[.[.[.f.%.=.=.$.B.:.o W F F F F F F k q N r.] R b.d T , . .r ....s.n ", -" y 2 2 [.[.[.[.[.%.f.%.=.=.B.$.:.'.v.F F F F F F t k ) N ] 6 x.d T 3... .H r H m.< ", -" 2 [.[.[.[.[.[.%.y.%.=.E / 7.7.p.p.v.F F F F F F q d.t @.r.R v T O . .....f r X n ", -" y 2 2 [.[.[.[.%.=.%.=.B.B.x B.:.| v.F F F F F F k d.d.c $ {.6 T d O .r r f f m.(. ", -" 2 [.[.[.[.[.%.%.%./ E / 3 7.i '.2.v.F F F F F F A.A.t @.r.] b.: /. .s.H H H m.5 ;. ", -" J 2 [.[.[.[.f.%.8 / E 8 3 i i :.p.v.F F F F F F k A.d.~.$ B 6 : : /.s.H m.m.f (.(. ", -" [.[.[.%.[.%.%./ f.E / 3 3 B.i p.1 v.F F F F F F . A.I @.c {.{.: O s. .H H m.(.w.;. ", -" 7 [.[.%.f.%.%.E / V =.3 D D ^ '.1 v.F F F F F F #.A.I @.A i.9 : O s.s.H f m.(.(.w. ", -" [.[.[.[.%.%.E E E / 3 3 7.i i c.2.v.F F F F F F . . A.~.c B {.M /.X H H (.(.(.w.;. ", -" [.%.%./ %.f./ V 3 3 D D c.c.<.Y v.F F F F F F #.A.A.~.A B 4.9 /.X ; < f f (.(. ", -" %.f.E %./ k.k./ V }.}.D D c.'.1 [ F F F F F F . . } I c >.i.M q.; H < (.(.(.5 ", -" J f.k.E E E / / 3 V 3 D b z 1 x.v.F F F F F F #.. A.} c B 4.M /.X < (.(.(.(.(. ", -" %.%.%.E / V }.V D j.z z c.C 1 [ F F F F F F . A.} ~.A h.4.4.q.; w.(.(.(.5 ", -" 7 k./ V / V D }.j.j.^ z z <.x.[ F F F F F F . . . _.A h.4.% q.; 5 w.w.(.(. ", -" / k./ V }.}.j.j.j.b z C C R l.F F F F F F . } I ~.A >.e M 5 5 (.(.(.5 ", -" 7 V 3 V V V }.j.].].g.= C <.s F F F F F F # w } n.A >.e 4.X 5 < (.w.(. ", -" / k.}.}.j.j.j.j.g.z = a.p u.F F F F F F j _ _ - - n e 8.5 5 w.w.5 ", -" V V j.j.j.].].].z = F F F F F F F F F F F F n.;.n e % X 5 (.(. ", -" j.V j.j.j.].-.-.<.a.a.s [ l.G G _ _ _ ^.^.- h.e % 8.5 < 5 ", -" 5.].g j.]., , d T b.{.{.c A ~._.} } _.n.;.;.e % % 5 5 ", -" 5.j.].g g.-.-.d : v i.> A A ~._.- - - >.e e % 5 % ", -" g g.g -., 3.d : v v i.B h.A n.h.;.;.;.n % 8.% ", -" -.,. .-.3.T : 4.{.>.>.>.>.;.>.n % % % ", -" 3.-.3.3.O M 4.4.i.n e n e e e ", -" : : : /.4.% e n ;. ", -" ", -" "}; 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 3c96f03a7a..0000000000 --- a/include/wx/generic/listctrl.h +++ /dev/null @@ -1,618 +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 WXDLLEXPORT 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, // width of longest item - wxLIST_AUTOSIZE_USEHEADER = -2 // always 80 in wxGLC -}; - -// 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(); -}; - -//----------------------------------------------------------------------------- -// wxListItemData (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListItemData : public wxObject -{ -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(); - 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() const; - bool HasText() const; - bool IsHit( int x, int y ) const; - void GetText( wxString &s ); - int GetX( void ) const; - int GetY( void ) const; - int GetWidth() const; - int GetHeight() const; - int GetImage() const; - void GetItem( wxListItem &info ); - wxColour *GetColour(); - -private: - DECLARE_DYNAMIC_CLASS(wxListItemData); -}; - -//----------------------------------------------------------------------------- -// 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(); - 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() const; - bool HasText() const; - bool IsHit( int x, int y ) const; - void GetItem( wxListItem &item ); - void GetText( wxString &s ); - int GetImage() const; - int GetWidth() const; - int GetFormat() 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() {}; - 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 DrawRubberBand( wxDC *dc, bool on ); - void Draw( wxDC *dc ); - bool IsInRect( int x, int y, const wxRect &rect ); - bool IsHilighted(); - 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(); - ~wxListHeaderWindow(); - 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; - wxString m_startValue; - - public: - wxListTextCtrl() {}; - 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; - wxListLineData *m_currentEdit; - 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; - bool m_renameAccept; - wxString m_renameRes; - bool m_isCreated; - int m_dragCount; - wxPoint m_dragStart; - - public: - wxListMainWindow(); - wxListMainWindow( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = "listctrl" ); - ~wxListMainWindow(); - 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 EditLabel( long item ); - void Edit( long item ) { EditLabel(item); } // deprecated - void OnRenameTimer(); - void OnRenameAccept(); - - void OnMouse( wxMouseEvent &event ); - void MoveToFocus(); - 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(); - int GetCountPerPage(); - 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 GetItemRect( long index, wxRect &rect ); - bool GetItemPosition( long item, wxPoint& pos ); - int GetSelectedItemCount(); - void SetMode( long mode ); - long GetMode() const; - void CalculatePositions(); - void RealizeChanges(); - long GetNextItem( long item, int geometry, int state ); - void DeleteItem( long index ); - void DeleteAllItems(); - void DeleteColumn( int col ); - void DeleteEverything(); - 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(); - 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 = "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() const; // not the same in wxGLC as in Windows, I think - 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() const; - int GetColumnCount() const; - void SetItemSpacing( int spacing, bool isSmall = FALSE ); - int GetItemSpacing( bool isSmall ) const; - int GetSelectedItemCount() const; -// wxColour GetTextColour() const; // wxGLC has colours for every Item (see wxListItem) -// void SetTextColour(const wxColour& col); - long GetTopItem() const; - void SetSingleStyle( long style, bool add = TRUE ) ; - void SetWindowStyleFlag( long style ); - void RecreateWindow() {} - 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(); - bool DeleteAllColumns(); - bool DeleteColumn( int col ); - - void EditLabel( long item ) { Edit(item); } - void Edit( long item ); - - 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 DoPopupMenu( wxMenu *menu, int x, int y ) - { return m_mainWin->PopupMenu( menu, x, y ); } - void SetFocus() - { m_mainWin->SetFocus(); } - - // implementation - - 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/listview.xpm b/include/wx/generic/listview.xpm deleted file mode 100644 index 56b61c1bc6..0000000000 --- a/include/wx/generic/listview.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * listview_xpm[] = { -"20 20 3 1", -" c None", -". c #000000000000", -"X c #FFFFFFFFFFFF", -" ", -" ", -" ", -" ................. ", -" .XXXXXXXXXXXXXXX. ", -" .XX.....XXX....X. ", -" .XXXXXXXXXXXXXXX. ", -" .XX...XXXXX..XXX. ", -" .XXXXXXXXXXXXXXX. ", -" .XX..XXXXXX...XX. ", -" .XXXXXXXXXXXXXXX. ", -" .XX.....XXX...XX. ", -" .XXXXXXXXXXXXXXX. ", -" .XX...XXXXXXXXXX. ", -" .XXXXXXXXXXXXXXX. ", -" ................. ", -" ", -" ", -" ", -" "}; - - diff --git a/include/wx/generic/msgdlgg.h b/include/wx/generic/msgdlgg.h deleted file mode 100644 index f5a75bf124..0000000000 --- a/include/wx/generic/msgdlgg.h +++ /dev/null @@ -1,60 +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: - int m_dialogStyle; - -DECLARE_EVENT_TABLE() -}; - -#if !defined( __WXMSW__ ) && !defined( __WXMAC__) && !defined(__WXPM__) -#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/new_dir.xpm b/include/wx/generic/new_dir.xpm deleted file mode 100644 index 86a1085e53..0000000000 --- a/include/wx/generic/new_dir.xpm +++ /dev/null @@ -1,42 +0,0 @@ -/* XPM */ -static char *new_dir_xpm[] = { -/* columns rows colors chars-per-pixel */ -"20 20 16 1", -" c Gray0", -". c #800000", -"X c #008000", -"o c #808000", -"O c #000080", -"+ c #800080", -"@ c #008080", -"# c None", -"$ c #808080", -"% c Red", -"& c Green", -"* c Yellow", -"= c Blue", -"- c Magenta", -"; c Cyan", -": c Gray100", -/* pixels */ -"####################", -"####################", -"############# ######", -"####################", -"############# ######", -"########## ##### ###", -"##### ## # # ####", -"#### *:*: ## # #####", -"### ## # ##", -"### :*:*:*:*: #####", -"### *:*:*:*:* # ####", -"### :*:*:*:*: ## ###", -"### *:*:*:*:* ######", -"### :*:*:*:*: ######", -"### *:*:*:*:* ######", -"### ######", -"####################", -"####################", -"####################", -"####################" -}; 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 f47c9afc41..0000000000 --- a/include/wx/generic/panelg.h +++ /dev/null @@ -1,101 +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" -#include "wx/button.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; - -class WXDLLEXPORT wxPanel : public wxWindow -{ -public: - wxPanel() { Init(); } - - // 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) - { - Init(); - - 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) - { - Init(); - - 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(); - - // a default button is activated when Enter is pressed - wxButton *GetDefaultItem() const { return m_btnDefault; } - void SetDefaultItem(wxButton *btn) { m_btnDefault = btn; } - - // implementation from now on - // -------------------------- - - // 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(wxWindow *win) { m_winLastFocused = win; } - wxWindow *GetLastFocus() const { return m_winLastFocused; } - -protected: - // common part of all ctors - void Init(); - - // the child which had the focus last time this panel was activated - wxWindow *m_winLastFocused; - - // a default button or NULL - wxButton *m_btnDefault; - -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 5934eaf40a..0000000000 --- a/include/wx/generic/printps.h +++ /dev/null @@ -1,70 +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" - -#if wxUSE_PRINTING_ARCHITECTURE - -// ---------------------------------------------------------------------------- -// 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 - -#endif -// __PRINTPSH__ diff --git a/include/wx/generic/prntdlgg.h b/include/wx/generic/prntdlgg.h deleted file mode 100644 index 097ea5403f..0000000000 --- a/include/wx/generic/prntdlgg.h +++ /dev/null @@ -1,196 +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" - -#if wxUSE_PRINTING_ARCHITECTURE - -#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 wxComboBox; -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(); - - wxComboBox *CreatePaperTypeChoice(int* x, int* y); - -public: - wxRadioBox* m_orientationRadioBox; - wxTextCtrl* m_printerCommandText; - wxTextCtrl* m_printerOptionsText; - wxCheckBox* m_colourCheckBox; - wxComboBox* 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); - - wxComboBox *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; - wxComboBox* m_paperTypeChoice; - - static bool m_pageSetupDialogCancelled; - - wxPageSetupData m_pageData; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - -#endif -// __PRINTDLGH_G__ diff --git a/include/wx/generic/progdlgg.h b/include/wx/generic/progdlgg.h deleted file mode 100644 index 7ea2672c35..0000000000 --- a/include/wx/generic/progdlgg.h +++ /dev/null @@ -1,111 +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" - -#if wxUSE_PROGRESSDLG - -#include "wx/dialog.h" - -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxStaticText; - -/* Progress dialog which shows a moving progress bar. - Taken from the Mahogany project.*/ - -class WXDLLEXPORT wxProgressDialog : public wxDialog -{ -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; } - - // implementation from now on - // callback for optional abort button - void OnCancel(wxCommandEvent& event); - // callback to disable "hard" window closing - void OnClose(wxCloseEvent& event); - -private: - // create the label with given text and another one to show the time nearby - // under the lastWindow and modify it to be the same as the control created - // (which is returned) - wxStaticText *CreateLabel(const wxString& text, wxWindow **lastWindow); - - // the status bar - class wxGauge *m_gauge; - // the message displayed - class wxStaticText *m_msg; - // disable all or parent window only - bool m_disableParentOnly; - // auto-hide? - bool m_AutoHide; - // displayed elapsed, estimated, remaining time - class wxStaticText *m_elapsed, - *m_estimated, - *m_remaining; - // time when the dialog was created - unsigned long m_timeStart; - // parent window - 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) - wxButton *m_btnAbort; - // the maximum value - int m_maximum; - - DECLARE_EVENT_TABLE() -}; -#endif - -#endif - // __PROGDLGH_G__ diff --git a/include/wx/generic/question.xpm b/include/wx/generic/question.xpm deleted file mode 100644 index da37081123..0000000000 --- a/include/wx/generic/question.xpm +++ /dev/null @@ -1,216 +0,0 @@ -/* XPM */ -static char * question_xpm[] = { -"48 48 165 2", -" c None", -". c #000000", -"+ c #080808", -"@ c #2A2A2A", -"# c #434343", -"$ c #545454", -"% c #626262", -"& c #6A6A6A", -"* c #6E6E6E", -"= c #424242", -"- c #525252", -"; c #898989", -"> c #DCDCDC", -", c #E5E5E5", -"' c #EDEDED", -") c #F4F4F4", -"! c #F9F9F9", -"~ c #FCFCFC", -"{ c #FFFFFF", -"] c #888888", -"^ c #4F4F4F", -"/ c #050505", -"( c #0F0F0F", -"_ c #9C9C9C", -": c #E6E6E6", -"< c #9B9B9B", -"[ c #1F1F1F", -"} c #A1A1A1", -"| c #E3E3E3", -"1 c #4D4D4D", -"2 c #D6D6D6", -"3 c #ECECEC", -"4 c #D9D9D9", -"5 c #C6C6C6", -"6 c #B0B0B0", -"7 c #848484", -"8 c #D3D3D3", -"9 c #010101", -"0 c #8B8B8B", -"a c #F2F2F2", -"b c #F3F3F3", -"c c #A6A6A6", -"d c #5E5E5E", -"e c #2F2F2F", -"f c #272727", -"g c #202020", -"h c #4E4E4E", -"i c #8A8A8A", -"j c #0B0B0B", -"k c #B6B6B6", -"l c #5D5D5D", -"m c #131313", -"n c #9A9A9A", -"o c #C9C9C9", -"p c #878787", -"q c #0A0A0A", -"r c #373737", -"s c #DADADA", -"t c #B4B4B4", -"u c #B1B1B1", -"v c #030303", -"w c #767676", -"x c #FDFDFD", -"y c #FAFAFA", -"z c #383838", -"A c #F8F8F8", -"B c #AFAFAF", -"C c #070707", -"D c #818181", -"E c #555555", -"F c #BDBDBD", -"G c #7D7D7D", -"H c #3C3C3C", -"I c #F6F6F6", -"J c #535353", -"K c #242424", -"L c #ABABAB", -"M c #393939", -"N c #BBBBBB", -"O c #EAEAEA", -"P c #A3A3A3", -"Q c #4B4B4B", -"R c #616161", -"S c #CFCFCF", -"T c #060606", -"U c #EFEFEF", -"V c #B9B9B9", -"W c #303030", -"X c #161616", -"Y c #2C2C2C", -"Z c #C0C0C0", -"` c #2E2E2E", -" . c #858585", -".. c #E4E4E4", -"+. c #1C1C1C", -"@. c #D4D4D4", -"#. c #828282", -"$. c #C7C7C7", -"%. c #3A3A3A", -"&. c #090909", -"*. c #151515", -"=. c #8E8E8E", -"-. c #F7F7F7", -";. c #C4C4C4", -">. c #EBEBEB", -",. c #CECECE", -"'. c #3D3D3D", -"). c #676767", -"!. c #F1F1F1", -"~. c #FBFBFB", -"{. c #353535", -"]. c #212121", -"^. c #EEEEEE", -"/. c #444444", -"(. c #DEDEDE", -"_. c #020202", -":. c #6B6B6B", -"<. c #E1E1E1", -"[. c #575757", -"}. c #111111", -"|. c #939393", -"1. c #ADADAD", -"2. c #6C6C6C", -"3. c #929292", -"4. c #4A4A4A", -"5. c #1E1E1E", -"6. c #3B3B3B", -"7. c #A0A0A0", -"8. c #696969", -"9. c #FEFEFE", -"0. c #CBCBCB", -"a. c #F0F0F0", -"b. c #0E0E0E", -"c. c #DFDFDF", -"d. c #808080", -"e. c #D0D0D0", -"f. c #636363", -"g. c #323232", -"h. c #D2D2D2", -"i. c #333333", -"j. c #292929", -"k. c #484848", -"l. c #646464", -"m. c #F5F5F5", -"n. c #B2B2B2", -"o. c #494949", -"p. c #E2E2E2", -"q. c #3F3F3F", -"r. c #0D0D0D", -"s. c #E0E0E0", -"t. c #2D2D2D", -"u. c #3E3E3E", -"v. c #C8C8C8", -"w. c #D1D1D1", -"x. c #7C7C7C", -"y. c #141414", -"z. c #A4A4A4", -"A. c #C2C2C2", -"B. c #262626", -"C. c #191919", -"D. c #999999", -"E. c #0C0C0C", -"F. c #101010", -"G. c #787878", -"H. c #797979", -" ", -" ", -" ", -" ", -" ", -" ", -" . . . . . . . . . . . . . . . . ", -" . . . . + @ # $ % & * * & % $ = @ + . . . . ", -" . . . . - ; > , ' ) ! ~ { { ~ ! ) ' , > ] ^ . . . . ", -" . . / ( _ : { { { { { { { { { { { { { { { { { { : < ( / . . ", -" . . [ } | { { { { { { { { { { { { { { { { { { { { { { | } [ . . ", -" . . 1 2 { { { { { { { { 3 4 5 6 7 7 7 < 5 8 : ! { { { { { { 2 1 . . . ", -" . . 9 0 a { { { { { { { b c d e 9 9 9 f 9 9 9 g h i 4 { { { { { { a ; 9 . . ", -" . . j k { { { { { { { { ' l m 9 9 9 9 n o p 9 9 9 9 q r s { { { { { { { t q . . ", -" . . + u { { { { { { { { { # v 9 9 9 9 w x { y z 9 9 9 9 9 @ A { { { { { { { B C . . ", -" . . . D y { { { { { { { { { 9 9 9 9 9 j ' { { { E 9 9 9 9 9 9 F { { { { { { { y G . . . ", -" . . H I { { { { { { { { { { J 9 9 9 9 ^ { { { { K 9 9 9 9 9 9 L { { { { { { { { I M . . . ", -" . . . N { { { { { { { { { { { O P Q Q R S { { { } 9 9 9 9 9 9 T U { { { { { { { { { V . . . ", -" . . W ! { { { { { { { { { { { { { { { { { { A 6 X 9 9 9 9 9 Y Z { { { { { { { { { { ! ` . . ", -" . . .{ { { { { { { { { { { { { { { { { { ..7 ( 9 9 9 9 +.* @.{ { { { { { { { { { { { #.. . . ", -". . . $.{ { { { { { { { { { { { { { { { { < %.&.9 9 9 *.=.5 -.{ { { { { { { { { { { { { ;.. . . ", -". . . >.{ { { { { { { { { { { { { { { ,.'.+ . . . . ).!.~ { { { { { { { { { { { { { { { O . . . ", -". . . ~.{ { { { { { { { { { { { { { O {.. . . . . ].^.{ { { { { { { { { { { { { { { { { ~.. . . ", -". . . A { { { { { { { { { { { { { { k 9 9 9 9 9 9 /.{ { { { { { { { { { { { { { { { { { A . . . ", -". . . (.{ { { { { { { { { { { { { { 5 _.. . . . . q :.4 U U <.{ { { { { { { { { { { { { > . . . ", -". . . 6 { { { { { { { { { { { { { { { [.&.. . . . . . . . }.|.{ { { { { { { { { { { { { 1.. . . ", -". . . 2.{ { { { { { { { { { { { { { { a 3.4.5.9 9 9 5.6.).7.a { { { { { { { { { { { { { 8.. . . ", -" . . ( !.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.<.0.F F F 0.s a.9.9.9.9.9.9.9.9.9.9.9.9.9.9.!.b.. . . ", -" . . . D { { { { { { { { { { { { { { { { { U c.c.c.U { { { { { { { { { { { { { { { { d.. . . ", -" . . . ( 8 { { { { { { { { { { { { { { { e.f.g.g.g.f.;.{ { { { { { { { { { { { { { h.b.. . . ", -" . . . 4.) { { { { { { { { { { { { { ' i.9 9 9 9 9 j.' { { { { { { { { { { { { ) k.. . . ", -" . . . l.m.{ { { { { { { { { { { { n.. . . . . . . n.{ { { { { { { { { { { m.f.. . . . ", -" . . . o.p.{ { { { { { { { { { { F 9 9 9 9 9 9 9 5 { { { { { { { { { { p.k.. . . . ", -" . . . @ 0.{ { { { { { { { { { b q.. . . . . d { { { { { { { { { { b j.. . . . ", -" . . . r.7.{ { { { { { { { { { s.* = t.= < 3 { { { { { { { { { { A e . . . ", -" . . . . u._ >.y { { { { { { { { { { { { { { { { { { { { { { { { a - . . ", -" . . . . . W % v., { { { { { { { { { { { { { { , w.e.>.{ { { { { U x.T ", -" . . . . . y.f D z.A.4 >.-.x x -.>.4 A.z.d.B.C.C.Y i c h.{ { { ) D.. ", -" . . . . . . / &.E.( F.}.}.F.b.E.&./ . . . . . 9 T E.}.] 5 ' ) G.. ", -" . . . . . . . . . . . . . . . . . . . . . . . . . . . . M H.H.. ", -" . . . . . . . . . . . . . . . . . . . . . . . . ", -" . . . . ", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/include/wx/generic/repview.xpm b/include/wx/generic/repview.xpm deleted file mode 100644 index 8f40d3f105..0000000000 --- a/include/wx/generic/repview.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -static char * repview_xpm[] = { -"20 20 3 1", -" c None", -". c #000000000000", -"X c #FFFFFFFFFFFF", -" ", -" ", -" ", -" ................. ", -" .XXXXXXXXXXXXXXX. ", -" ................. ", -" .XXXXXXXXXXXXXXX. ", -" .XX..XXXX.XX..XX. ", -" .XXXXXXXXXXXXXXX. ", -" .XX...XXX.XX..XX. ", -" .XXXXXXXXXXXXXXX. ", -" .XX...XXX.XX..XX. ", -" .XXXXXXXXXXXXXXX. ", -" .XX...XXX.XX..XX. ", -" .XXXXXXXXXXXXXXX. ", -" ................. ", -" ", -" ", -" ", -" "}; - - - 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 cc1f9c3249..0000000000 --- a/include/wx/generic/scrolwin.h +++ /dev/null @@ -1,132 +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; - virtual void CalcUnscrolledPosition(int x, int y, float *xx, float *yy) 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 - void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; } - double GetScaleX() const { return m_scaleX; } - 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, int *xx, int *yy) const ; - - // Adjust the scrollbars - virtual void AdjustScrollbars(void); - - // Override this function to draw the graphic (or just process EVT_PAINT) - 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); - - // implementation from now on - void OnScroll(wxScrollWinEvent& event); - void OnSize(wxSizeEvent& event); - void OnPaint(wxPaintEvent& event); - - // 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/statline.h b/include/wx/generic/statline.h deleted file mode 100644 index 0058ddede8..0000000000 --- a/include/wx/generic/statline.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: generic/statline.h -// Purpose: a generic wxStaticLine class -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Version: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_STATLINE_H_ -#define _WX_GENERIC_STATLINE_H_ - -#ifdef __GNUG__ - #pragma interface -#endif - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxStaticLine : public wxStaticLineBase -{ - DECLARE_DYNAMIC_CLASS(wxStaticLine) - -public: - // constructors and pseudo-constructors - wxStaticLine() { } - - wxStaticLine( wxWindow *parent, - wxWindowID id, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticTextNameStr ) - { - Create(parent, id, pos, size, style, name); - } - - bool Create( wxWindow *parent, - wxWindowID id, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticTextNameStr ); - -protected: - // we implement the static line using a static box - wxStaticBox *m_statbox; -}; - -#endif // _WX_GENERIC_STATLINE_H_ - 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 e95ab6dc2d..0000000000 --- a/include/wx/generic/textdlgg.h +++ /dev/null @@ -1,70 +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/defs.h" - -#include "wx/dialog.h" - -class WXDLLEXPORT wxTextCtrl; - -// Handy dialog functions (will be converted into classes at some point) -WXDLLEXPORT_DATA(extern const wxChar*) wxGetTextFromUserPromptStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -class WXDLLEXPORT wxTextEntryDialog : public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxTextEntryDialog) - -public: - wxTextEntryDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxGetTextFromUserPromptStr, - const wxString& value = wxEmptyString, - long style = wxOK | wxCANCEL | wxCENTRE, - const wxPoint& pos = wxDefaultPosition); - - void SetValue(const wxString& val) { m_value = val; } - wxString GetValue() const { return m_value; } - - // implementation only - void OnOK(wxCommandEvent& event); - -protected: - wxTextCtrl *m_textctrl; - wxString m_value; - int m_dialogStyle; - -private: - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// function to get a string from user -// ---------------------------------------------------------------------------- - -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/tick.xpm b/include/wx/generic/tick.xpm deleted file mode 100644 index 630eaf460f..0000000000 --- a/include/wx/generic/tick.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char *tick_xpm[] = { -/* columns rows colors chars-per-pixel */ -"10 10 16 1", -" c Gray0", -". c #bf0000", -"X c #00bf00", -"o c #bfbf00", -"O c #0000bf", -"+ c #bf00bf", -"@ c #00bfbf", -"# c None", -"$ c #808080", -"% c Red", -"& c Green", -"* c Yellow", -"= c Blue", -"- c Magenta", -"; c Cyan", -": c Gray100", -/* pixels */ -"##########", -"######## #", -"####### ", -"###### ", -"##### #", -" ## ##", -" ###", -"# ####", -"## #####", -"### ######" -}; diff --git a/include/wx/generic/tip.xpm b/include/wx/generic/tip.xpm deleted file mode 100644 index 2aaebfb1a3..0000000000 --- a/include/wx/generic/tip.xpm +++ /dev/null @@ -1,45 +0,0 @@ -/* XPM */ -static char *tipIcon[] = { -/* columns rows colors chars-per-pixel */ -"32 32 7 1", -" c Gray0", -". c Cyan", -"X c Yellow", -"o c #808080808080", -"O c #c0c0c0c0c0c0", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@ @@@@@@@@@@@@@@", -"@@@@@@@@@@ XXXXXX @@@@@@@@@@@@", -"@@@@@@@@@ XXXXXXXXXX @@@@@@@@@@@", -"@@@@@@@@@ XXXXXXXXXX @@@@@@@@@@@", -"@@@@@@@@ XXXXX XXXXX @@@@@@@@@@", -"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@", -"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@", -"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@", -"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@", -"@@@@@@@ XXXXXX XXXXXX @@@@@@@@@", -"@@@@@@@@ XXXXX XXXXX @@@@@@@@@", -"@@@@@@@@oXXXXXXXXXXXX @@@@@@@@@@", -"@@@@@@@o+ XXXX XXXX o@@@@@@@@@@", -"@@@@@@o++ XXXX XXXX +o@@@@@@@@@", -"@@@@@o++++ XXX XXX +++o@@@@@@@@", -"@@@@o++.+.+ XXXXXX .+..+o@@@@@@@", -"@@@o++++++++ XXXX +++++++o@@@@@@", -"@@ +..+.+.+. oooo +.+..+.+ @@@@@", -"@@@ ++++++++ OOOO +++++++ @@@@@@", -"@@@@ ++.+.+. oooo +.+..+ @@@@@@@", -"@@@oo ++++++ OO +++++ oo@@@@@@", -"@@@ooo ++.+.+ ++.++ ooo@@@@@@", -"@@@@ooo +.+.+ ++.+ ooo@@@@@@@", -"@@@@@ooo +++++++++++ ooo@@@@@@@@", -"@@@@@@ooo +.+.+.+.+ ooo@@@@@@@@@", -"@@@@@@@ooo +++++++ ooo@@@@@@@@@@", -"@@@@@@@@ooo +.+.+ ooo@@@@@@@@@@@", -"@@@@@@@@@ooo +++ ooo@@@@@@@@@@@@", -"@@@@@@@@@@ooo + ooo@@@@@@@@@@@@@", -"@@@@@@@@@@@ooo ooo@@@@@@@@@@@@@@", -"@@@@@@@@@@@@ooooo@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@ooo@@@@@@@@@@@@@@@@" -}; diff --git a/include/wx/generic/treectrl.h b/include/wx/generic/treectrl.h deleted file mode 100644 index 92a3cc5dbb..0000000000 --- a/include/wx/generic/treectrl.h +++ /dev/null @@ -1,511 +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" -#include "wx/dynarray.h" -#include "wx/timer.h" - -//those defines should only be done in generic/treectrl.h, -//because wxMSW doesn't allow mutiple selection - -#ifndef wxTR_SINGLE -#define wxTR_SINGLE 0x0000 -#define wxTR_MULTIPLE 0x0020 -#define wxTR_EXTENDED 0x0040 -#define wxTR_HAS_VARIABLE_ROW_HIGHT 0x0080 -#endif - -// ----------------------------------------------------------------------------- -// constants -// ----------------------------------------------------------------------------- - -// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine -// where exactly the specified point is situated: - -static const int wxTREE_HITTEST_ABOVE = 0x0001; -static const int wxTREE_HITTEST_BELOW = 0x0002; -static const int wxTREE_HITTEST_NOWHERE = 0x0004; - // on the button associated with an item. -static const int wxTREE_HITTEST_ONITEMBUTTON = 0x0008; - // on the bitmap associated with an item. -static const int wxTREE_HITTEST_ONITEMICON = 0x0010; - // on the ident associated with an item. -static const int wxTREE_HITTEST_ONITEMIDENT = 0x0020; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMLABEL = 0x0040; - // on the right of the label associated with an item. -static const int wxTREE_HITTEST_ONITEMRIGHT = 0x0080; - // on the label (string) associated with an item. -//static const int wxTREE_HITTEST_ONITEMSTATEICON = 0x0100; - // on the left of the wxTreeCtrl. -static const int wxTREE_HITTEST_TOLEFT = 0x0200; - // on the right of the wxTreeCtrl. -static const int wxTREE_HITTEST_TORIGHT = 0x0400; - // on the upper part (first half) of the item. -static const int wxTREE_HITTEST_ONITEMUPPERPART = 0x0800; - // on the lower part (second half) of the item. -static const int wxTREE_HITTEST_ONITEMLOWERPART = 0x1000; - - // anywhere on the item -static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | - wxTREE_HITTEST_ONITEMLABEL; - -// ----------------------------------------------------------------------------- -// forward declaration -// ----------------------------------------------------------------------------- - -class WXDLLEXPORT wxImageList; -class WXDLLEXPORT wxGenericTreeItem; - -class WXDLLEXPORT wxTreeItemData; - -class WXDLLEXPORT wxTreeRenameTimer; -class WXDLLEXPORT wxTreeTextCtrl; - -// ----------------------------------------------------------------------------- -// 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; -}; - -WX_DECLARE_OBJARRAY(wxTreeItemId, wxArrayTreeItemIds); - -// ---------------------------------------------------------------------------- -// 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; -}; - -//----------------------------------------------------------------------------- -// wxTreeRenameTimer (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxTreeRenameTimer: public wxTimer -{ - private: - wxTreeCtrl *m_owner; - - public: - wxTreeRenameTimer( wxTreeCtrl *owner ); - void Notify(); -}; - -//----------------------------------------------------------------------------- -// wxTreeTextCtrl (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxTreeTextCtrl: public wxTextCtrl -{ - DECLARE_DYNAMIC_CLASS(wxTreeTextCtrl); - - private: - bool *m_accept; - wxString *m_res; - wxTreeCtrl *m_owner; - wxString m_startValue; - - public: - wxTreeTextCtrl(void) {}; - wxTreeTextCtrl( wxWindow *parent, const wxWindowID id, - bool *accept, wxString *res, wxTreeCtrl *owner, - const wxString &value = "", - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - int style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString &name = "wxTreeTextCtrlText" ); - void OnChar( wxKeyEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - - DECLARE_EVENT_TABLE() -}; - -// ----------------------------------------------------------------------------- -// 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(wxArrayTreeItemIds&) 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. - void EditLabel( const wxTreeItemId& item ) { Edit( item ); } - void Edit( const wxTreeItemId& item ); - - // 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); - - // Draw Special Information - void DrawBorder(wxTreeItemId& item); - void DrawLine(wxTreeItemId& item, bool below); - -protected: - friend class wxGenericTreeItem; - friend class wxTreeRenameTimer; - friend class wxTreeTextCtrl; - - wxGenericTreeItem *m_anchor; - wxGenericTreeItem *m_current, *m_key_current, *m_currentEdit; - 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; - wxPoint m_dragStart; - wxTimer *m_renameTimer; - bool m_renameAccept; - wxString m_renameRes; - - // 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(); - int GetLineHeight(wxGenericTreeItem *item) const; - 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 CalculateSize( wxGenericTreeItem *item, wxDC &dc ); - - void RefreshSubtree( wxGenericTreeItem *item ); - void RefreshLine( wxGenericTreeItem *item ); - - void OnRenameTimer(); - void OnRenameAccept(); - - void FillArray(wxGenericTreeItem*, wxArrayTreeItemIds&) const; - 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 f030fa3313..0000000000 --- a/include/wx/generic/warning.xpm +++ /dev/null @@ -1,202 +0,0 @@ -/* XPM */ -static char * warning_xpm[] = { -"48 48 151 2", -" c None", -". c #C70707", -"+ c #F80808", -"@ c #EA0808", -"# c #A50505", -"$ c #E10808", -"% c #F70808", -"& c #E85959", -"* c #F80909", -"= c #F90909", -"- c #CD0707", -"; c #EE0808", -"> c #F12B2B", -", c #F5F4F4", -"' c #DE5F5F", -") c #AE0606", -"! c #D2ACAC", -"~ c #FEFEFE", -"{ c #E5DFDF", -"] c #F91717", -"^ c #E30808", -"/ c #DC4C4C", -"( c #FCFCFC", -"_ c #D68585", -": c #DB0707", -"< c #F80C0C", -"[ c #DECDCD", -"} c #F6F5F5", -"| c #ED2B2B", -"1 c #F50808", -"2 c #D66D6D", -"3 c #FFFFFF", -"4 c #D2A9A9", -"5 c #BB0606", -"6 c #E70808", -"7 c #F11A1A", -"8 c #EDE9E9", -"9 c #E84646", -"0 c #D59696", -"a c #DDCCCC", -"b c #F90E0E", -"c c #CE0707", -"d c #EA3030", -"e c #F8F8F8", -"f c #383838", -"g c #000000", -"h c #555555", -"i c #DE6D6D", -"j c #B20606", -"k c #DAB9B9", -"l c #A9A9A9", -"m c #AAAAAA", -"n c #EAE6E6", -"o c #F81919", -"p c #F30808", -"q c #E05252", -"r c #D58D8D", -"s c #E00808", -"t c #F81111", -"u c #E1D5D5", -"v c #C6C6C6", -"w c #C7C7C7", -"x c #F22F2F", -"y c #CF7979", -"z c #D4B4B4", -"A c #F90A0A", -"B c #C60707", -"C c #EF0808", -"D c #EF2222", -"E c #EEEBEB", -"F c #E14E4E", -"G c #D69E9E", -"H c #E0D2D2", -"I c #F91111", -"J c #D40707", -"K c #E93A3A", -"L c #545454", -"M c #D97373", -"N c #C80707", -"O c #F80A0A", -"P c #DAC3C3", -"Q c #717171", -"R c #727272", -"S c #EFEDED", -"T c #F91F1F", -"U c #E45757", -"V c #CE9999", -"W c #E40808", -"X c #F81313", -"Y c #E3DADA", -"Z c #F9F9F9", -"` c #F13737", -" . c #F60808", -".. c #D37979", -"+. c #D8BDBD", -"@. c #F90B0B", -"#. c #C90707", -"$. c #F12424", -"%. c #F0EFEF", -"&. c #DB5656", -"*. c #D39F9F", -"=. c #1C1C1C", -"-. c #E7E0E0", -";. c #D50707", -">. c #F40808", -",. c #E93F3F", -"'. c #FBFBFB", -"). c #D77575", -"!. c #F90C0C", -"~. c #D9C5C5", -"{. c #F1EEEE", -"]. c #F42121", -"^. c #E60808", -"/. c #F90808", -"(. c #DC5F5F", -"_. c #E2E2E2", -":. c #D19D9D", -"<. c #F91616", -"[. c #E9E3E3", -"}. c #FAFAFA", -"|. c #E33D3D", -"1. c #D58383", -"2. c #8D8D8D", -"3. c #E3E3E3", -"4. c #D9C0C0", -"5. c #F70909", -"6. c #F02C2C", -"7. c #DA5D5D", -"8. c #BC0606", -"9. c #D0A9A9", -"0. c #E8DFDF", -"a. c #F51414", -"b. c #DF0808", -"c. c #E34646", -"d. c #FDFDFD", -"e. c #393939", -"f. c #D57E7E", -"g. c #F80B0B", -"h. c #DDCDCD", -"i. c #F4F3F3", -"j. c #F12626", -"k. c #ED0808", -"l. c #E35D5D", -"m. c #EBE9E9", -"n. c #ECEAEA", -"o. c #D99292", -"p. c #A10505", -"q. c #F80E0E", -"r. c #F80D0D", -"s. c #F90F0F", -"t. c #F20808", -" ", -" ", -" ", -" ", -" ", -" ", -" . + @ ", -" + + + # ", -" $ + + + % ", -" + % & * = - ", -" ; % > , ' = = ", -" ) + + ! ~ { ] = ^ ", -" + + / ( ~ ~ _ * = ", -" : + < [ ~ ~ ~ } | = 1 ", -" + % 2 ~ ~ ~ ~ 3 4 = = 5 ", -" 6 + 7 8 ~ ~ ~ ~ 3 3 9 = = ", -" + % 0 ~ ~ ~ ~ ~ 3 3 a b = c ", -" % % d e ~ f g g g h 3 3 i = = ", -" j + * k ~ l g g g g g m 3 n o = p ", -" + + q ~ ~ l g g g g g m 3 3 r = = ", -" s + t u ~ ~ v g g g g g w 3 3 e x = = ", -" + + y ~ ~ ~ ~ g g g g g 3 3 3 3 z A = B ", -" C + D E ~ ~ ~ ~ g g g g g 3 3 3 3 ~ F = % ", -" + % G ~ ~ ~ ~ ~ f g g g h 3 3 3 3 3 H I = J ", -" + % K ( ~ ~ ~ ~ ~ L g g g h 3 3 3 3 3 3 M = = ", -" N + O P ~ ~ ~ ~ ~ ~ Q g g g R 3 3 3 3 3 3 S T = @ ", -" = % U ~ ~ ~ ~ ~ ~ ~ l g g g m 3 3 3 3 3 3 3 V * = ", -" W = X Y ~ ~ ~ ~ ~ ~ ~ l g g g m 3 3 3 3 3 3 3 Z ` = . ", -" = = ..~ ~ ~ ~ ~ ~ ~ ~ ~ g g g 3 3 3 3 3 3 3 3 3 +.@.= #. ", -" .= $.%.~ ~ ~ ~ ~ ~ ~ ~ ~ g g g 3 3 3 3 3 3 3 3 3 3 &.= = ", -" = * *.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ =.g f 3 3 3 3 3 3 3 3 3 3 -.I = ;. ", -" >.= ,.'.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ L g L 3 3 3 3 3 3 3 3 3 3 3 ).= = ", -" N = !.~.3 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ v l v 3 3 3 3 3 3 3 3 3 3 3 {.].= ^. ", -" /.= (.3 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ v l _.3 3 3 3 3 3 3 3 3 3 3 3 :.= = ", -" : + <.[.3 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ L g g g m 3 3 3 3 3 3 3 3 3 3 3 }.|.= = ", -" = + 1.3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ 2.g g g g g 3.3 3 3 3 3 3 3 3 3 3 3 4.A = - ", -" p 5.6.} 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ L g g g g g m 3 3 3 3 3 3 3 3 3 3 3 3 7.= = ", -" 8.+ * 9.3 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ Q g g g g g w 3 3 3 3 3 3 3 3 3 3 3 3 0.a.= b. ", -" % % c.d.3 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ _.=.g g g e.3 3 3 3 3 3 3 3 3 3 3 3 3 3 f.= = ", -" - * g.h.~ 3 3 3 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ _.Q L Q 3.3 3 3 3 3 3 3 3 3 3 3 3 3 3 i.j.= k. ", -" = = l.m.m.n.n.n.n.m.m.m.m.m.m.m.m.m.m.m.m.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.o.* = p. ", -" ^.* + g.q.r.b s.b s.r.< r.< r.r.< r.< r.< r.r.b s.b s.s.b s.b s.s.b s.b s.s.b b A = = ", -" t.= * + * + = = = = + + + + + + + + + + + + + = = = = = = = = = = = = = = = = = = = = ", -" ", -" ", -" ", -" ", -" "}; diff --git a/include/wx/gifdecod.h b/include/wx/gifdecod.h deleted file mode 100644 index 30fa11cfed..0000000000 --- a/include/wx/gifdecod.h +++ /dev/null @@ -1,121 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gifdecod.h -// Purpose: wxGIFDecoder, GIF reader for wxImage and wxAnimation -// Author: Guillermo Rodriguez Garcia -// Version: 3.0 -// Last rev: 1999/08/10 -// Copyright: (c) Guillermo Rodriguez Garcia -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GIFDECOD_H -#define _WX_GIFDECOD_H - -#ifdef __GNUG__ -#pragma interface "gifdecod.h" -#endif - -#include "wx/setup.h" - -#if wxUSE_STREAMS -#include "wx/stream.h" -#include "wx/image.h" - - -typedef struct _IMAGEN -{ - unsigned int w; /* width */ - unsigned int h; /* height */ - unsigned int left; /* x coord (in logical screen) */ - unsigned int top; /* y coord (in logical screen) */ - int transparent; /* transparent color (-1 = none) */ - int disposal; /* disposal method */ - long delay; /* delay in ms (-1 = unused) */ - unsigned char *p; /* bitmap */ - unsigned char *pal; /* palette */ - struct _IMAGEN *next; /* next image */ - struct _IMAGEN *prev; /* prev image */ -} IMAGEN; - - -/* disposal method */ -#define D_UNSPECIFIED -1 /* not specified */ -#define D_DONOTDISPOSE 0 /* do not dispose */ -#define D_TOBACKGROUND 1 /* restore to background colour */ -#define D_TOPREVIOUS 2 /* restore to previous image */ - -/* 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 */ - - -class wxGIFDecoder -{ -private: - /* logical screen */ - unsigned int m_screenw; /* logical screen width */ - unsigned int m_screenh; /* logical screen height */ - int m_background; /* background color (-1 = none) */ - - /* image data */ - bool m_anim; /* animated GIF */ - int m_nimages; /* number of images */ - int m_image; /* current image */ - IMAGEN *m_pimage; /* pointer to current image */ - IMAGEN *m_pfirst; /* pointer to first image */ - IMAGEN *m_plast; /* pointer to last image */ - - /* decoder state vars */ - int m_restbits; /* remaining valid bits */ - unsigned int m_restbyte; /* remaining bytes in this block */ - unsigned int m_lastbyte; /* last byte read */ - - wxInputStream *m_f; /* input file */ - -private: - int getcode(int bits, int abfin); - int dgif(IMAGEN *img, int interl, int bits); - -public: - // constructor, destructor, etc. - wxGIFDecoder(wxInputStream *s, bool anim = FALSE); - ~wxGIFDecoder(); - int ReadGIF(); - void Destroy(); - - // convert current frame to wxImage - bool ConvertToImage(wxImage *image) const; - - // get data of current frame - int GetFrameIndex() const; - unsigned char* GetData() const; - unsigned char* GetPalette() const; - unsigned int GetWidth() const; - unsigned int GetHeight() const; - unsigned int GetLeft() const; - unsigned int GetTop() const; - int GetDisposalMethod() const; - int GetTransparentColour() const; - long GetDelay() const; - - // get global data - unsigned int GetLogicalScreenWidth() const; - unsigned int GetLogicalScreenHeight() const; - int GetBackgroundColour() const; - int GetNumberOfFrames() const; - bool IsAnimation() const; - - // move through the animation - bool GoFirstFrame(); - bool GoLastFrame(); - bool GoNextFrame(bool cyclic = FALSE); - bool GoPrevFrame(bool cyclic = FALSE); - bool GoFrame(int which); -}; - - -#endif // wxUSE_STREAM -#endif // _WX_GIFDECOD_H - 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/gsocket.h b/include/wx/gsocket.h deleted file mode 100644 index 938b6f0b77..0000000000 --- a/include/wx/gsocket.h +++ /dev/null @@ -1,244 +0,0 @@ -/* ------------------------------------------------------------------------- - * Project: GSocket (Generic Socket) - * Name: gsocket.h - * Purpose: GSocket include file (system independent) - * CVSID: $Id$ - * ------------------------------------------------------------------------- - */ -#ifndef __GSOCKET_H -#define __GSOCKET_H - -#include "wx/setup.h" - -#if wxUSE_SOCKETS - -#include -#include - -#if !defined(__cplusplus) -typedef int bool; -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -typedef struct _GSocket GSocket; -typedef struct _GAddress GAddress; - -typedef enum { - GSOCK_NOFAMILY = 0, - GSOCK_INET, - GSOCK_INET6, - GSOCK_UNIX -} GAddressType; - -typedef enum { - GSOCK_STREAMED, - GSOCK_UNSTREAMED -} GSocketStream; - -typedef enum { - GSOCK_NOERROR = 0, - GSOCK_INVOP, - GSOCK_IOERR, - GSOCK_INVADDR, - GSOCK_INVSOCK, - GSOCK_NOHOST, - GSOCK_INVPORT, - GSOCK_WOULDBLOCK, - GSOCK_TIMEOUT, - GSOCK_MEMERR -} GSocketError; - -typedef enum { - GSOCK_INPUT = 0, - GSOCK_OUTPUT = 1, - GSOCK_CONNECTION = 2, - GSOCK_LOST = 3, - GSOCK_MAX_EVENT = 4 -} GSocketEvent; - -enum { - GSOCK_INPUT_FLAG = 1 << GSOCK_INPUT, - GSOCK_OUTPUT_FLAG = 1 << GSOCK_OUTPUT, - GSOCK_CONNECTION_FLAG = 1 << GSOCK_CONNECTION, - GSOCK_LOST_FLAG = 1 << GSOCK_LOST -}; - -typedef int GSocketEventFlags; - -typedef void (*GSocketCallback)(GSocket *socket, GSocketEvent event, - char *cdata); - -#ifdef __cplusplus -extern "C" { -#endif - -/* Global initialisers */ - -/* GSocket_Init() must be called at the beginning */ -bool GSocket_Init(); -/* GSocket_Cleanup() must be called at the ending */ -void GSocket_Cleanup(); - -/* Constructors / Destructors */ - -GSocket *GSocket_new(); -void GSocket_destroy(GSocket *socket); - -/* This will disable all IO calls to this socket but errors are still available */ -void GSocket_Shutdown(GSocket *socket); - -/* Address handling */ - -GSocketError GSocket_SetLocal(GSocket *socket, GAddress *address); -GSocketError GSocket_SetPeer(GSocket *socket, GAddress *address); -GAddress *GSocket_GetLocal(GSocket *socket); -GAddress *GSocket_GetPeer(GSocket *socket); - -/* Non-oriented connections handlers */ - -GSocketError GSocket_SetNonOriented(GSocket *socket); - -/* Server specific parts */ - -/* - GSocket_SetServer() setups the socket as a server. It uses the "Local" field - of GSocket. "Local" must be set by GSocket_SetLocal() before - GSocket_SetServer() is called. In the other case, it returns GSOCK_INVADDR. -*/ -GSocketError GSocket_SetServer(GSocket *socket); - -/* - GSocket_WaitConnection() waits for an incoming client connection. -*/ -GSocket *GSocket_WaitConnection(GSocket *socket); - -/* Client specific parts */ - -/* - GSocket_Connect() establishes a client connection to a server using the "Peer" - field of GSocket. "Peer" must be set by GSocket_SetPeer() before - GSocket_Connect() is called. In the other case, it returns GSOCK_INVADDR. -*/ -GSocketError GSocket_Connect(GSocket *socket, GSocketStream stream); - -/* Generic IO */ - -/* Like recv(), send(), ... */ -/* - NOTE: In case we read from a non-oriented connection, the incoming (outgoing) - connection address is stored in the "Local" ("Peer") field. -*/ -int GSocket_Read(GSocket *socket, char *buffer, int size); -int GSocket_Write(GSocket *socket, const char *buffer, - int size); -bool GSocket_DataAvailable(GSocket *socket); - -/* Flags/Parameters */ - -/* - GSocket_SetTimeout() sets the timeout for reading and writing IO call. Time - is expressed in milliseconds. - */ -void GSocket_SetTimeout(GSocket *socket, unsigned long millisec); - -/* - GSocket_SetBlocking() puts the socket in non-blocking mode. This is useful - if we don't want to wait. -*/ -void GSocket_SetNonBlocking(GSocket *socket, bool non_block); - -/* - GSocket_GetError() returns the last error occured on the socket stream. -*/ - -GSocketError GSocket_GetError(GSocket *socket); - -/* Callbacks */ - -/* - Only one fallback is possible for each event (INPUT, OUTPUT, CONNECTION, LOST) - INPUT: The function is called when there is at least a byte in the - input buffer - OUTPUT: The function is called when the system is sure the next write call - will not block - CONNECTION: Two cases is possible: - Client socket -> the connection is established - Server socket -> a client request a connection - LOST: the connection is lost - - SetCallback accepts a combination of these flags so a same callback can - receive different events. - - An event is generated only once and its state is reseted when the relative - IO call is requested. - For example: INPUT -> GSocket_Read() - CONNECTION -> GSocket_Accept() -*/ -void GSocket_SetCallback(GSocket *socket, GSocketEventFlags event, - GSocketCallback fallback, char *cdata); - -/* - UnsetCallback will disables all fallbacks specified by "event". - NOTE: event may be a combination of flags -*/ -void GSocket_UnsetCallback(GSocket *socket, GSocketEventFlags event); - -/* GAddress */ - -GAddress *GAddress_new(); -GAddress *GAddress_copy(GAddress *address); -void GAddress_destroy(GAddress *address); - -void GAddress_SetFamily(GAddress *address, GAddressType type); -GAddressType GAddress_GetFamily(GAddress *address); - -/* - The use of any of the next functions will set the address family to the adapted - one. For example if you use GAddress_INET_SetHostName, address family will be AF_INET - implicitely -*/ - -GSocketError GAddress_INET_SetHostName(GAddress *address, const char *hostname); -GSocketError GAddress_INET_SetHostAddress(GAddress *address, - unsigned long hostaddr); -GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port, - const char *protocol); -GSocketError GAddress_INET_SetPort(GAddress *address, unsigned short port); - -GSocketError GAddress_INET_GetHostName(GAddress *address, char *hostname, - size_t sbuf); -unsigned long GAddress_INET_GetHostAddress(GAddress *address); -unsigned short GAddress_INET_GetPort(GAddress *address); - -/* TODO: Define specific parts (INET6, UNIX) */ - -GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path); -GSocketError GAddress_UNIX_GetPath(GAddress *address, char *path, size_t sbuf); - -/* - * System specific functions - */ - -/* On systems needing an event id */ -void GSocket_SetEventID(GSocket *socket, unsigned long evt_id); - -/* On systems which don't have background refresh */ -void GSocket_DoEvent(unsigned long evt_id); - -#ifdef __cplusplus -}; -#endif /* __cplusplus */ - - -#endif - /* wxUSE_SOCKETS */ - -#endif - /* __GSOCKET_H */ 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/accel.h b/include/wx/gtk/accel.h deleted file mode 100644 index 4066849bea..0000000000 --- a/include/wx/gtk/accel.h +++ /dev/null @@ -1,110 +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" - -#if wxUSE_ACCEL - -#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 - -#endif diff --git a/include/wx/gtk/app.h b/include/wx/gtk/app.h deleted file mode 100644 index 056c8c6729..0000000000 --- a/include/wx/gtk/app.h +++ /dev/null @@ -1,88 +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/frame.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxApp; -class wxLog; - -//----------------------------------------------------------------------------- -// wxApp -//----------------------------------------------------------------------------- - -class wxApp: public wxAppBase -{ -DECLARE_DYNAMIC_CLASS(wxApp) - -public: - wxApp(); - ~wxApp(); - - /* 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 base class (pure) virtuals - virtual int MainLoop(); - virtual void ExitMainLoop(); - virtual bool Initialized(); - virtual bool Pending(); - virtual void Dispatch(); - - virtual wxIcon GetStdIcon(int which) const; - - // implementation only from now on - void OnIdle( wxIdleEvent &event ); - bool SendIdleEvents(); - bool SendIdleEvents( wxWindow* win ); - - 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. - void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; } - bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; } - - bool m_initialized; - - gint m_idleTag; -#if wxUSE_THREADS - gint m_wakeUpTimerTag; -#endif - unsigned char *m_colorCube; - -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 b49423e6b1..0000000000 --- a/include/wx/gtk/bitmap.h +++ /dev/null @@ -1,104 +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(); - - bool Create( const wxBitmap& bitmap, const wxColour& colour ); - bool Create( const wxBitmap& bitmap, int paletteIndex ); - bool Create( const wxBitmap& bitmap ); - - // 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 7126dc0675..0000000000 --- a/include/wx/gtk/bmpbuttn.h +++ /dev/null @@ -1,100 +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" - -#if wxUSE_BMPBUTTON - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/button.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBitmapButton; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxButtonNameStr; - -//----------------------------------------------------------------------------- -// wxBitmapButton -//----------------------------------------------------------------------------- - -class wxBitmapButton: public wxButton -{ - 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); - virtual 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(bool enable); - -// 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 - -#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 af4fdac9ee..0000000000 --- a/include/wx/gtk/button.h +++ /dev/null @@ -1,71 +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 wxChar *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); - virtual void SetDefault(); - void SetLabel( const wxString &label ); - bool Enable( bool enable ); - - static wxSize GetDefaultSize(); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKBUTTONH__ diff --git a/include/wx/gtk/checkbox.h b/include/wx/gtk/checkbox.h deleted file mode 100644 index f26be094c8..0000000000 --- a/include/wx/gtk/checkbox.h +++ /dev/null @@ -1,80 +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" - -#if wxUSE_CHECKBOX - -#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(); - - GtkWidget *m_widgetCheckbox; - GtkWidget *m_widgetLabel; -}; - -#endif - -#endif // __GTKCHECKBOXH__ diff --git a/include/wx/gtk/checklst.h b/include/wx/gtk/checklst.h deleted file mode 100644 index 8022f35658..0000000000 --- a/include/wx/gtk/checklst.h +++ /dev/null @@ -1,60 +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" - -#if wxUSE_CHECKLISTBOX - -#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 - -#endif //__GTKCHECKLISTH__ diff --git a/include/wx/gtk/choice.h b/include/wx/gtk/choice.h deleted file mode 100644 index e405f01c72..0000000000 --- a/include/wx/gtk/choice.h +++ /dev/null @@ -1,103 +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 wxChar *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 DisableEvents(); - void EnableEvents(); - 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 4fda5e81b8..0000000000 --- a/include/wx/gtk/combobox.h +++ /dev/null @@ -1,134 +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" - -#if wxUSE_COMBOBOX - -#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 DisableEvents(); - void EnableEvents(); - void AppendCommon( const wxString &item ); - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - DECLARE_EVENT_TABLE() -}; - -#endif - -#endif - - // __GTKCOMBOBOXH__ diff --git a/include/wx/gtk/control.h b/include/wx/gtk/control.h deleted file mode 100644 index f18f219d8c..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 ); - - // this function will filter out '&' characters and will put the accelerator - // char (the one immediately after '&') into m_chAccel (TODO 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/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 cc3cbcac1a..0000000000 --- a/include/wx/gtk/dialog.h +++ /dev/null @@ -1,111 +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 wxDialogBase -{ - 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() { } - - // 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: - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKDIALOGH__ diff --git a/include/wx/gtk/dnd.h b/include/wx/gtk/dnd.h deleted file mode 100644 index 2dba9cef49..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( long x, long 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( long x, long y ); - - /* this gets called once the data has actually arrived. get - it with GetData(). this has to be overridden. */ - virtual bool OnData( long x, long 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( long x, long y ); - virtual bool OnDrop( long x, long y ); - virtual bool OnData( long x, long y ); - - /* you have to override OnDropData to get at the text */ - virtual bool OnDropText( long x, long 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( long x, long y ); - virtual bool OnDrop( long x, long y ); - virtual bool OnData( long x, long y ); - - /* you have to override OnDropData to get at the data */ - virtual bool OnDropData( long x, long 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( long x, long y ); - virtual bool OnDrop( long x, long y ); - virtual bool OnData( long x, long y ); - - /* you have to override OnDropFiles to get at the file names */ - virtual bool OnDropFiles( long x, long 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/error.xpm b/include/wx/gtk/error.xpm deleted file mode 100644 index c7fd8a236e..0000000000 --- a/include/wx/gtk/error.xpm +++ /dev/null @@ -1,591 +0,0 @@ -/* XPM */ -static char *error_xpm[] = { -/* 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/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 4470508567..0000000000 --- a/include/wx/gtk/frame.h +++ /dev/null @@ -1,145 +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 ); - bool Iconized() const { return IsIconized(); } - virtual void Maximize( bool maximize ); - virtual void Restore(); - virtual void Iconize( bool iconize ); - virtual bool IsIconized() const; - - 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; -#if wxUSE_STATUSBAR - wxStatusBar *m_frameStatusBar; -#endif -#if wxUSE_TOOLBAR - wxToolBar *m_frameToolBar; -#endif - 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 479d1d510d..0000000000 --- a/include/wx/gtk/gauge.h +++ /dev/null @@ -1,87 +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" - -#if wxUSE_GAUGE - -#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 - -#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/info.xpm b/include/wx/gtk/info.xpm deleted file mode 100644 index e7a9f5f925..0000000000 --- a/include/wx/gtk/info.xpm +++ /dev/null @@ -1,532 +0,0 @@ -/* XPM */ -static char *info_xpm[] = { -/* 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 None", -"[. 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 None", -",+ 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/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 ea6b058644..0000000000 --- a/include/wx/gtk/listbox.h +++ /dev/null @@ -1,135 +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" - -#if wxUSE_LISTBOX - -#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() const; - int GetSelections( class wxArrayInt &) const; - wxString GetString( int n ) const; - wxString GetStringSelection() 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 DisableEvents(); - void EnableEvents(); - 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 - -#endif // __GTKLISTBOXH__ diff --git a/include/wx/gtk/mdi.h b/include/wx/gtk/mdi.h deleted file mode 100644 index f2a3f7367a..0000000000 --- a/include/wx/gtk/mdi.h +++ /dev/null @@ -1,182 +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(); - 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(); - 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(); - -#if wxUSE_STATUSBAR - // 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)[] ) {} -#endif - - // no size hints - virtual void SetSizeHints( int WXUNUSED(minW), int WXUNUSED(minH), - int WXUNUSED(maxW), int WXUNUSED(maxH), - int WXUNUSED(incW), int WXUNUSED(incH) ) {} - -#if wxUSE_TOOLBAR - // 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; } -#endif - - // 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(); - wxMDIClientWindow( wxMDIParentFrame *parent, long style = 0 ); - ~wxMDIClientWindow(); - 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 038d2e9bff..0000000000 --- a/include/wx/gtk/menu.h +++ /dev/null @@ -1,217 +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; - long m_style; -}; - -//----------------------------------------------------------------------------- -// wxMenu -//----------------------------------------------------------------------------- - -class wxMenu : public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - wxMenu( const wxString& title, const wxFunction func) - { - Init(title, 0, func); - } - wxMenu( long style ) - { - Init( wxEmptyString, style ); - } - wxMenu( const wxString& title = wxEmptyString, long style = 0 ) - { - Init(title, style); - } - - ~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 ); } - - wxFunction GetCallback() const { return m_callback; } - void Callback(const wxFunction func) { m_callback = func; } - wxFunction m_callback; - -#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 - 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; - - // used by wxMenuBar - long GetStyle(void) const { return m_style; } - -private: - // common code for both constructors: - void Init( const wxString& title, - long style, - const wxFunction func = (wxFunction) NULL ); - - wxString m_title; - wxList m_items; - wxWindow *m_invokingWindow; - wxEvtHandler *m_eventHandler; - void *m_clientData; - long m_style; -}; - -#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 f0edcd4b4d..0000000000 --- a/include/wx/gtk/minifram.h +++ /dev/null @@ -1,69 +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" - -#if wxUSE_MINIFRAME - -#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 - -#endif - // __GTKMINIFRAMEH__ diff --git a/include/wx/gtk/notebook.h b/include/wx/gtk/notebook.h deleted file mode 100644 index 3481d3016c..0000000000 --- a/include/wx/gtk/notebook.h +++ /dev/null @@ -1,159 +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" - -#if wxUSE_NOTEBOOK - -#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 - -#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 cbe0cd1ae2..0000000000 --- a/include/wx/gtk/pen.h +++ /dev/null @@ -1,74 +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; - -typedef char wxDash; - -//----------------------------------------------------------------------------- -// 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 ); - void SetDashes( int number_of_dashes, const wxDash *dash ); - - wxColour &GetColour() const; - int GetCap() const; - int GetJoin() const; - int GetStyle() const; - int GetWidth() const; - int GetDashes(wxDash **ptr) const; - int GetDashCount() const; - wxDash* GetDash() const; - - bool Ok() const; - - void Unshare(); - - // no data :-) -}; - -#endif // __GTKPENH__ diff --git a/include/wx/gtk/question.xpm b/include/wx/gtk/question.xpm deleted file mode 100644 index 15ccf8968c..0000000000 --- a/include/wx/gtk/question.xpm +++ /dev/null @@ -1,155 +0,0 @@ -/* XPM */ -static char *question_xpm[] = { -/* 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/gtk/radiobox.h b/include/wx/gtk/radiobox.h deleted file mode 100644 index 0999008254..0000000000 --- a/include/wx/gtk/radiobox.h +++ /dev/null @@ -1,114 +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" - -#if wxUSE_RADIOBOX - -#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 - - void DisableEvents(); - void EnableEvents(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - wxSize LayoutItems(); - - bool m_alreadySent; - int m_majorDim; - wxList m_boxes; - - DECLARE_EVENT_TABLE() -}; - -#endif - -#endif // __GTKRADIOBOXH__ diff --git a/include/wx/gtk/radiobut.h b/include/wx/gtk/radiobut.h deleted file mode 100644 index 16aa5fa328..0000000000 --- a/include/wx/gtk/radiobut.h +++ /dev/null @@ -1,76 +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" - -#if wxUSE_RADIOBOX - -#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 - - GSList *m_radioButtonGroup; - void ApplyWidgetStyle(); -}; - -#endif - -#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 75344cb221..0000000000 --- a/include/wx/gtk/scrolbar.h +++ /dev/null @@ -1,95 +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" - -#if wxUSE_SCROLLBAR - -#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 - -#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/setup0.h b/include/wx/gtk/setup0.h deleted file mode 100644 index 56309bccfa..0000000000 --- a/include/wx/gtk/setup0.h +++ /dev/null @@ -1,671 +0,0 @@ -/* setup.h. Generated automatically by configure. */ -/* setup.h.in. Generated automatically from configure.in by autoheader. */ -/* Generate setup.h.in from this file using autoheader. */ -/* */ -/* Version: $Id$ */ - -/* This define (__WX_SETUP_H__) is used both to insure setup.h is included - * only once and to indicate that we are building using configure. */ -#ifndef __WX_SETUP_H__ -#define __WX_SETUP_H__ - -#ifdef __GNUG__ - #pragma interface -#endif - - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define to `int' if doesn't define. */ -/* #undef gid_t */ - -/* Define if you don't have vprintf but do have _doprnt. */ -/* #undef HAVE_DOPRNT */ - -/* Define if you have the vprintf function. */ -#define HAVE_VPRINTF 1 - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define to `int' if doesn't define. */ -/* #undef mode_t */ - -/* Define to `long' if doesn't define. */ -/* #undef off_t */ - -/* Define to `int' if doesn't define. */ -/* #undef pid_t */ - -/* Define to `unsigned' if doesn't define. */ -/* #undef size_t */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define to `int' if doesn't define. */ -/* #undef uid_t */ - -/* 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 the X Window System is missing or not being used. */ -/* #undef X_DISPLAY_MISSING */ - -/* Define if lex declares yytext as a char * by default, not a char[]. */ -#define YYTEXT_POINTER 1 - -#define __WXGTK12__ 1 - -/* - * Define to 1 for Unix[-like] system - */ -#define wxUSE_UNIX 1 - -#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__ */ -/* #undef __EMX__ */ - -/* #undef __WINDOWS__ */ -/* #undef __WIN95__ */ -/* #undef __WIN32__ */ -/* #undef __GNUWIN32__ */ -/* #undef WINVER */ - -/* - * Supports bool type - */ -#define HAVE_BOOL 1 - -/* - * Use zlib - */ -#define wxUSE_ZLIB 1 -/* - * Use libpng - */ -#define wxUSE_LIBPNG 1 -/* - * Use libjpeg - */ -#define wxUSE_LIBJPEG 1 -/* - * Use libgif - */ -#define wxUSE_LIBGIF 1 -/* - * Use iODBC - */ -#define wxUSE_ODBC 0 -/* - * Use Threads - */ -#define wxUSE_THREADS 1 -/* - * Have glibc2 - */ -#define wxHAVE_GLIBC2 1 -/* - * Use libXpm - */ -#define wxHAVE_LIB_XPM 0 -/* - * Use OpenGL - */ -#define wxUSE_OPENGL 0 - -/* - * Use GUI - */ -#define wxUSE_GUI 1 -/* - * Defined if !wxUSE_GUI - */ -/* #undef wxUSE_NOGUI */ - -/* - * Use constraints mechanism - */ -#define wxUSE_CONSTRAINTS 1 - -/* - * Use validators - */ -#define wxUSE_VALIDATORS 1 - -/* - * Use accelerators - */ -#define wxUSE_ACCEL 1 - -/* - * Use wxTextEntryDialog - */ -#define wxUSE_TEXTDLG 1 - -/* - * Use startup tips - */ -#define wxUSE_STARTUP_TIPS 1 - -/* - * Use progress dialog - */ -#define wxUSE_PROGRESSDLG 1 - -/* - * Use directory chooser dialog - */ -#define wxUSE_DIRDLG 1 - -/* - * Joystick support (Linux/GTK only) - */ -#define wxUSE_JOYSTICK 0 - -/* - * Use this control - */ -#define wxUSE_CARET 1 -/* - * Use this control - */ -#define wxUSE_BMPBUTTON 1 -/* - * Use this control - */ -#define wxUSE_CHECKBOX 1 -/* - * Use this control - */ -#define wxUSE_CHECKLISTBOX 1 -/* - * Use this control - */ -#define wxUSE_COMBOBOX 1 -/* - * Use this control - */ -#define wxUSE_CHOICE 1 -/* - * Use this control - */ -#define wxUSE_GAUGE 1 -/* - * Use this control - */ -#define wxUSE_GRID 1 -/* - * Use this control - */ -#define wxUSE_IMAGLIST 1 -/* - * Use this control - */ -#define wxUSE_LISTBOX 1 -/* - * Use this control - */ -#define wxUSE_LISTCTRL 1 -/* - * Use this control - */ -#define wxUSE_NOTEBOOK 1 -/* - * Use this control - */ -#define wxUSE_RADIOBOX 1 -/* - * Use this control - */ -#define wxUSE_RADIOBTN 1 -/* - * Use this control - */ -#define wxUSE_SASH 1 -/* - * Use this control - */ -#define wxUSE_SCROLLBAR 1 -/* - * Use this control - */ -#define wxUSE_SLIDER 1 -/* - * Use this control - */ -#define wxUSE_SPINBTN 1 -/* - * Use this control - */ -#define wxUSE_SPLITTER 1 -/* - * Use this control - */ -#define wxUSE_STATBMP 1 -/* - * Use this control - */ -#define wxUSE_STATBOX 1 -/* - * Use this control - */ -#define wxUSE_STATLINE 1 -/* - * Use this control - */ -#define wxUSE_STATUSBAR 1 -/* - * 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 1 - -#if defined(__WXWINE__) || defined(__GNUWIN32__) - #if wxUSE_TOOLBAR - #define wxUSE_BUTTONBAR 1 - #endif -#endif - -/* - * Use this control - */ -#define wxUSE_TREECTRL 1 - -/* - * Use wxLongLong (a.k.a. int64) class - */ -#define wxUSE_LONGLONG 0 - -/* - * Use wxFile class - */ -#define wxUSE_FILE 1 -/* - * Use wxTextFile class - */ -#define wxUSE_TEXTFILE 1 -/* - * Use log classes and logging functions - */ -#define wxUSE_LOG 1 -/* - * Use time and date classes - */ -#define wxUSE_TIMEDATE 1 -/* - * Use wave class - */ -#define wxUSE_WAVE 0 -/* - * 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 1 -/* - * Use sockets - */ -#define wxUSE_SOCKETS 1 -/* - * Use standard C++ streams if 1. If 0, use wxWin - * streams implementation. - */ -#define wxUSE_STD_IOSTREAM 0 -/* - * wxLibrary class - */ -#define wxUSE_DYNLIB_CLASS 1 - -/* - * Use font metric files in GetTextExtent for wxPostScriptDC - * Use consistent PostScript fonts for AFM and printing (!) - */ -#define wxUSE_AFM_FOR_POSTSCRIPT 1 -#define wxUSE_NORMALIZED_PS_FONTS 1 - -/* compatibility */ -#define WX_NORMALIZED_PS_FONTS wxUSE_NORMALIZED_PS_FONTS - -/* - * Use PostScript device context - */ -#define wxUSE_POSTSCRIPT 1 - -/* - * 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 - -/* - * Use Interprocess communication - */ -#define wxUSE_IPC 1 -/* - * Use wxGetResource & wxWriteResource (change .Xdefaults) - */ -#define wxUSE_X_RESOURCES 0 -/* - * Use clipboard - */ -#define wxUSE_CLIPBOARD 1 -/* - * Use tooltips - */ -#define wxUSE_TOOLTIPS 1 -/* - * Use dnd - */ -#define wxUSE_DRAG_AND_DROP 1 -/* - * Use spline - */ -#define wxUSE_SPLINES 1 -/* - * Use wxLibrary class - */ -#define wxUSE_DYNLIB_CLASS 1 - -/* - * 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 - -/* - * Use Prolog IO - */ -#define wxUSE_PROLOGIO 1 -/* - * Use wxWindows resource loading (.wxr-files) (Needs wxUSE_PROLOGIO 1) - */ -#define wxUSE_RESOURCES 1 - -/* for compatibility */ -#define wxUSE_WX_RESOURCES wxUSE_RESOURCES - -/* - * 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 -/* - * Compatibility with 2.0 API. - */ -#define WXWIN_COMPATIBILITY_2 1 -/* - * 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 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 1 -/* - * 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 1 - -/* - * wxHTML - */ -#define wxUSE_HTML 1 - -/* - * (virtual) filesystems code - */ -#define wxUSE_FS_INET 1 -#define wxUSE_FS_ZIP 1 - -/* - * A class that shows info window when app is busy - * (works exactly like wxBusyCursor) - */ -#define wxUSE_BUSYINFO 1 - -/* - * Zip stream for accessing files stored inside .zip archives - */ -#define wxUSE_ZIPSTREAM 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 - -/* The type of 3rd argument to getsockname() - usually size_t or int */ -#define SOCKLEN_T socklen_t - -/* Define if you have dlopen() */ -#define HAVE_DLOPEN 1 - -/* Define if you have nanosleep() */ -#define HAVE_NANOSLEEP 1 - -/* 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 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() */ -#define HAVE_VSNPRINTF 1 - -/* Define if you have usleep() */ -/* #undef HAVE_USLEEP */ - -/* Define if you have wcslen function */ -#define HAVE_WCSLEN 1 - -/* The number of bytes in a char. */ -#define SIZEOF_CHAR 1 - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a int *. */ -#define SIZEOF_INT_P 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* The number of bytes in a long long. */ -#define SIZEOF_LONG_LONG 8 - -/* The number of bytes in a short. */ -#define SIZEOF_SHORT 2 - -/* Define if you have the dlopen function. */ -#define HAVE_DLOPEN 1 - -/* Define if you have the gethostname function. */ -/* #undef HAVE_GETHOSTNAME */ - -/* Define if you have the nanosleep function. */ -#define HAVE_NANOSLEEP 1 - -/* Define if you have the shl_load function. */ -/* #undef HAVE_SHL_LOAD */ - -/* Define if you have the uname function. */ -#define HAVE_UNAME 1 - -/* Define if you have the usleep function. */ -/* #undef HAVE_USLEEP */ - -/* Define if you have the vfork function. */ -#define HAVE_VFORK 1 - -/* Define if you have the vsnprintf function. */ -#define HAVE_VSNPRINTF 1 - -/* Define if you have the vsscanf function. */ -#define HAVE_VSSCANF 1 - -/* Define if you have the header file. */ -#define HAVE_X11_XKBLIB_H 1 - -/* Define if you have the header file. */ -#define HAVE_FNMATCH_H 1 - -/* Define if you have the header file. */ -#define HAVE_IOSTREAM 1 - -/* Define if you have the header file. */ -/* #undef HAVE_LINUX_JOYSTICK_H */ - -/* Define if you have the header file. */ -#define HAVE_SCHED_H 1 - -/* Define if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the header file. */ -#define HAVE_WCHAR_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_WCSTR_H */ - -/* Name of package */ -#define PACKAGE "wxWindows" - -/* Version number of package */ -#define VERSION "2.1.0" - - -#endif /* __WX_SETUP_H__ */ diff --git a/include/wx/gtk/slider.h b/include/wx/gtk/slider.h deleted file mode 100644 index aa8f0f969e..0000000000 --- a/include/wx/gtk/slider.h +++ /dev/null @@ -1,97 +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" - -#if wxUSE_SLIDER - -#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 - -#endif // __GTKSLIDERH__ diff --git a/include/wx/gtk/spinbutt.h b/include/wx/gtk/spinbutt.h deleted file mode 100644 index 440c26afe7..0000000000 --- a/include/wx/gtk/spinbutt.h +++ /dev/null @@ -1,60 +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 - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -class wxSpinButton : public wxSpinButtonBase -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - -public: - wxSpinButton() { } - 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" ); - - virtual int GetValue() const; - virtual void SetValue( int value ); - virtual void SetRange( int minVal, int maxVal ); - virtual int GetMin() const; - virtual int GetMax() const; - - // implementation - void OnSize( wxSizeEvent &event ); - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // __GTKSPINBUTTH__ diff --git a/include/wx/gtk/statbmp.h b/include/wx/gtk/statbmp.h deleted file mode 100644 index 0d9bcddfb3..0000000000 --- a/include/wx/gtk/statbmp.h +++ /dev/null @@ -1,92 +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" - -#if wxUSE_STATBMP - -#include "wx/object.h" -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticBitmap; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxStaticBitmapNameStr; - -//----------------------------------------------------------------------------- -// wxStaticBitmap -//----------------------------------------------------------------------------- - -class wxStaticBitmap: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - -public: - wxStaticBitmap(); - 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() { return m_bitmap; } - const wxBitmap& GetBitmap() const { return m_bitmap; } - - // for compatibility with wxMSW - const wxIcon& GetIcon() const - { - // don't use wxDynamicCast, icons and bitmaps are really the same thing - // in wxGTK - return (const wxIcon &)m_bitmap; - } - - // for compatibility with wxMSW - void SetIcon(const wxIcon& icon) - { - SetBitmap( icon ); - } - -private: - // creates the new pixmap widget - void CreatePixmapWidget(); - - wxBitmap m_bitmap; -}; - -#endif - -#endif // __GTKSTATICBITMAPH__ diff --git a/include/wx/gtk/statbox.h b/include/wx/gtk/statbox.h deleted file mode 100644 index 7978dd9bc8..0000000000 --- a/include/wx/gtk/statbox.h +++ /dev/null @@ -1,64 +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" - -#if wxUSE_STATBOX - -#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 - -#endif // __GTKSTATICBOXH__ diff --git a/include/wx/gtk/statline.h b/include/wx/gtk/statline.h deleted file mode 100644 index d892e1ab61..0000000000 --- a/include/wx/gtk/statline.h +++ /dev/null @@ -1,54 +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" - -#if wxUSE_STATLINE - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticLine; - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -class wxStaticLine : public wxStaticLineBase -{ - DECLARE_DYNAMIC_CLASS(wxStaticLine) - -public: - wxStaticLine(); - 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 - // wxUSE_STATLINE - -#endif - // __GTKSTATICLINEH__ diff --git a/include/wx/gtk/stattext.h b/include/wx/gtk/stattext.h deleted file mode 100644 index 0e58cb15ec..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 wxChar *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 5a6f17415d..0000000000 --- a/include/wx/gtk/tbargtk.h +++ /dev/null @@ -1,128 +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" - -#if wxUSE_TOOLBAR - -#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 - -#endif - // __TBARGTKH__ diff --git a/include/wx/gtk/textctrl.h b/include/wx/gtk/textctrl.h deleted file mode 100644 index 8844ee99fe..0000000000 --- a/include/wx/gtk/textctrl.h +++ /dev/null @@ -1,144 +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 "textctrl.h" -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxTextCtrl; - -//----------------------------------------------------------------------------- -// wxTextCtrl -//----------------------------------------------------------------------------- - -class wxTextCtrl: public wxTextCtrlBase -{ -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 ); - - // implement base class pure virtuals - // ---------------------------------- - - 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; - - virtual bool IsModified() const; - virtual bool IsEditable() const; - - // If the return values from and to are the same, there is no selection. - virtual void GetSelection(long* from, long* to) const; - - // operations - // ---------- - - // editing - virtual void Clear(); - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - - // clears the dirty flag - virtual void DiscardEdits(); - - // writing text inserts it at the current position, appending always - // inserts it at the end - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - - // translate between the position (which is just an index in the text ctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const; - virtual bool PositionToXY(long pos, long *x, long *y) const; - - virtual void ShowPosition(long pos); - - // 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; - - // Insertion point - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // Implementation from now on - void OnDropFiles( wxDropFilesEvent &event ); - 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); - - bool SetFont( const wxFont &font ); - bool SetForegroundColour(const wxColour &colour); - bool SetBackgroundColour(const wxColour &colour); - - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - void CalculateScrollbar(); - - void SetModified() { m_modified = TRUE; } - -private: - bool m_modified; - GtkWidget *m_text; - GtkWidget *m_vScrollbar; - bool m_vScrollbarVisible; - - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxTextCtrl); -}; - -#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 b75456a85e..0000000000 --- a/include/wx/gtk/treectrl.h +++ /dev/null @@ -1,410 +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/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) -}; - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/gtk/warning.xpm b/include/wx/gtk/warning.xpm deleted file mode 100644 index 9dfbf97e15..0000000000 --- a/include/wx/gtk/warning.xpm +++ /dev/null @@ -1,324 +0,0 @@ -/* XPM */ -static char *warning_xpm[] = { -/* 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/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 63d0569d6f..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 DoPopupMenu( 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 window classes in the widget creation process */ - bool PreCreation( wxWindow *parent, const wxPoint &pos, const wxSize &size ); - 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_isRadioButton: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/accel.h b/include/wx/gtk1/accel.h deleted file mode 100644 index 4066849bea..0000000000 --- a/include/wx/gtk1/accel.h +++ /dev/null @@ -1,110 +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" - -#if wxUSE_ACCEL - -#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 - -#endif diff --git a/include/wx/gtk1/app.h b/include/wx/gtk1/app.h deleted file mode 100644 index 056c8c6729..0000000000 --- a/include/wx/gtk1/app.h +++ /dev/null @@ -1,88 +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/frame.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxApp; -class wxLog; - -//----------------------------------------------------------------------------- -// wxApp -//----------------------------------------------------------------------------- - -class wxApp: public wxAppBase -{ -DECLARE_DYNAMIC_CLASS(wxApp) - -public: - wxApp(); - ~wxApp(); - - /* 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 base class (pure) virtuals - virtual int MainLoop(); - virtual void ExitMainLoop(); - virtual bool Initialized(); - virtual bool Pending(); - virtual void Dispatch(); - - virtual wxIcon GetStdIcon(int which) const; - - // implementation only from now on - void OnIdle( wxIdleEvent &event ); - bool SendIdleEvents(); - bool SendIdleEvents( wxWindow* win ); - - 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. - void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; } - bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; } - - bool m_initialized; - - gint m_idleTag; -#if wxUSE_THREADS - gint m_wakeUpTimerTag; -#endif - unsigned char *m_colorCube; - -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 b49423e6b1..0000000000 --- a/include/wx/gtk1/bitmap.h +++ /dev/null @@ -1,104 +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(); - - bool Create( const wxBitmap& bitmap, const wxColour& colour ); - bool Create( const wxBitmap& bitmap, int paletteIndex ); - bool Create( const wxBitmap& bitmap ); - - // 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 7126dc0675..0000000000 --- a/include/wx/gtk1/bmpbuttn.h +++ /dev/null @@ -1,100 +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" - -#if wxUSE_BMPBUTTON - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/button.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBitmapButton; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxButtonNameStr; - -//----------------------------------------------------------------------------- -// wxBitmapButton -//----------------------------------------------------------------------------- - -class wxBitmapButton: public wxButton -{ - 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); - virtual 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(bool enable); - -// 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 - -#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 af4fdac9ee..0000000000 --- a/include/wx/gtk1/button.h +++ /dev/null @@ -1,71 +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 wxChar *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); - virtual void SetDefault(); - void SetLabel( const wxString &label ); - bool Enable( bool enable ); - - static wxSize GetDefaultSize(); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKBUTTONH__ diff --git a/include/wx/gtk1/checkbox.h b/include/wx/gtk1/checkbox.h deleted file mode 100644 index f26be094c8..0000000000 --- a/include/wx/gtk1/checkbox.h +++ /dev/null @@ -1,80 +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" - -#if wxUSE_CHECKBOX - -#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(); - - GtkWidget *m_widgetCheckbox; - GtkWidget *m_widgetLabel; -}; - -#endif - -#endif // __GTKCHECKBOXH__ diff --git a/include/wx/gtk1/checklst.h b/include/wx/gtk1/checklst.h deleted file mode 100644 index 8022f35658..0000000000 --- a/include/wx/gtk1/checklst.h +++ /dev/null @@ -1,60 +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" - -#if wxUSE_CHECKLISTBOX - -#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 - -#endif //__GTKCHECKLISTH__ diff --git a/include/wx/gtk1/choice.h b/include/wx/gtk1/choice.h deleted file mode 100644 index e405f01c72..0000000000 --- a/include/wx/gtk1/choice.h +++ /dev/null @@ -1,103 +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 wxChar *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 DisableEvents(); - void EnableEvents(); - 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 4fda5e81b8..0000000000 --- a/include/wx/gtk1/combobox.h +++ /dev/null @@ -1,134 +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" - -#if wxUSE_COMBOBOX - -#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 DisableEvents(); - void EnableEvents(); - void AppendCommon( const wxString &item ); - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - DECLARE_EVENT_TABLE() -}; - -#endif - -#endif - - // __GTKCOMBOBOXH__ diff --git a/include/wx/gtk1/control.h b/include/wx/gtk1/control.h deleted file mode 100644 index f18f219d8c..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 ); - - // this function will filter out '&' characters and will put the accelerator - // char (the one immediately after '&') into m_chAccel (TODO 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/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 cc3cbcac1a..0000000000 --- a/include/wx/gtk1/dialog.h +++ /dev/null @@ -1,111 +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 wxDialogBase -{ - 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() { } - - // 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: - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKDIALOGH__ diff --git a/include/wx/gtk1/dnd.h b/include/wx/gtk1/dnd.h deleted file mode 100644 index 2dba9cef49..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( long x, long 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( long x, long y ); - - /* this gets called once the data has actually arrived. get - it with GetData(). this has to be overridden. */ - virtual bool OnData( long x, long 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( long x, long y ); - virtual bool OnDrop( long x, long y ); - virtual bool OnData( long x, long y ); - - /* you have to override OnDropData to get at the text */ - virtual bool OnDropText( long x, long 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( long x, long y ); - virtual bool OnDrop( long x, long y ); - virtual bool OnData( long x, long y ); - - /* you have to override OnDropData to get at the data */ - virtual bool OnDropData( long x, long 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( long x, long y ); - virtual bool OnDrop( long x, long y ); - virtual bool OnData( long x, long y ); - - /* you have to override OnDropFiles to get at the file names */ - virtual bool OnDropFiles( long x, long 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/error.xpm b/include/wx/gtk1/error.xpm deleted file mode 100644 index c7fd8a236e..0000000000 --- a/include/wx/gtk1/error.xpm +++ /dev/null @@ -1,591 +0,0 @@ -/* XPM */ -static char *error_xpm[] = { -/* 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/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 4470508567..0000000000 --- a/include/wx/gtk1/frame.h +++ /dev/null @@ -1,145 +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 ); - bool Iconized() const { return IsIconized(); } - virtual void Maximize( bool maximize ); - virtual void Restore(); - virtual void Iconize( bool iconize ); - virtual bool IsIconized() const; - - 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; -#if wxUSE_STATUSBAR - wxStatusBar *m_frameStatusBar; -#endif -#if wxUSE_TOOLBAR - wxToolBar *m_frameToolBar; -#endif - 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 479d1d510d..0000000000 --- a/include/wx/gtk1/gauge.h +++ /dev/null @@ -1,87 +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" - -#if wxUSE_GAUGE - -#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 - -#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/info.xpm b/include/wx/gtk1/info.xpm deleted file mode 100644 index e7a9f5f925..0000000000 --- a/include/wx/gtk1/info.xpm +++ /dev/null @@ -1,532 +0,0 @@ -/* XPM */ -static char *info_xpm[] = { -/* 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 None", -"[. 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 None", -",+ 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/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 ea6b058644..0000000000 --- a/include/wx/gtk1/listbox.h +++ /dev/null @@ -1,135 +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" - -#if wxUSE_LISTBOX - -#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() const; - int GetSelections( class wxArrayInt &) const; - wxString GetString( int n ) const; - wxString GetStringSelection() 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 DisableEvents(); - void EnableEvents(); - 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 - -#endif // __GTKLISTBOXH__ diff --git a/include/wx/gtk1/mdi.h b/include/wx/gtk1/mdi.h deleted file mode 100644 index f2a3f7367a..0000000000 --- a/include/wx/gtk1/mdi.h +++ /dev/null @@ -1,182 +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(); - 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(); - 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(); - -#if wxUSE_STATUSBAR - // 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)[] ) {} -#endif - - // no size hints - virtual void SetSizeHints( int WXUNUSED(minW), int WXUNUSED(minH), - int WXUNUSED(maxW), int WXUNUSED(maxH), - int WXUNUSED(incW), int WXUNUSED(incH) ) {} - -#if wxUSE_TOOLBAR - // 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; } -#endif - - // 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(); - wxMDIClientWindow( wxMDIParentFrame *parent, long style = 0 ); - ~wxMDIClientWindow(); - 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 038d2e9bff..0000000000 --- a/include/wx/gtk1/menu.h +++ /dev/null @@ -1,217 +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; - long m_style; -}; - -//----------------------------------------------------------------------------- -// wxMenu -//----------------------------------------------------------------------------- - -class wxMenu : public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - wxMenu( const wxString& title, const wxFunction func) - { - Init(title, 0, func); - } - wxMenu( long style ) - { - Init( wxEmptyString, style ); - } - wxMenu( const wxString& title = wxEmptyString, long style = 0 ) - { - Init(title, style); - } - - ~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 ); } - - wxFunction GetCallback() const { return m_callback; } - void Callback(const wxFunction func) { m_callback = func; } - wxFunction m_callback; - -#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 - 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; - - // used by wxMenuBar - long GetStyle(void) const { return m_style; } - -private: - // common code for both constructors: - void Init( const wxString& title, - long style, - const wxFunction func = (wxFunction) NULL ); - - wxString m_title; - wxList m_items; - wxWindow *m_invokingWindow; - wxEvtHandler *m_eventHandler; - void *m_clientData; - long m_style; -}; - -#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 f0edcd4b4d..0000000000 --- a/include/wx/gtk1/minifram.h +++ /dev/null @@ -1,69 +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" - -#if wxUSE_MINIFRAME - -#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 - -#endif - // __GTKMINIFRAMEH__ diff --git a/include/wx/gtk1/notebook.h b/include/wx/gtk1/notebook.h deleted file mode 100644 index 3481d3016c..0000000000 --- a/include/wx/gtk1/notebook.h +++ /dev/null @@ -1,159 +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" - -#if wxUSE_NOTEBOOK - -#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 - -#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 cbe0cd1ae2..0000000000 --- a/include/wx/gtk1/pen.h +++ /dev/null @@ -1,74 +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; - -typedef char wxDash; - -//----------------------------------------------------------------------------- -// 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 ); - void SetDashes( int number_of_dashes, const wxDash *dash ); - - wxColour &GetColour() const; - int GetCap() const; - int GetJoin() const; - int GetStyle() const; - int GetWidth() const; - int GetDashes(wxDash **ptr) const; - int GetDashCount() const; - wxDash* GetDash() const; - - bool Ok() const; - - void Unshare(); - - // no data :-) -}; - -#endif // __GTKPENH__ diff --git a/include/wx/gtk1/question.xpm b/include/wx/gtk1/question.xpm deleted file mode 100644 index 15ccf8968c..0000000000 --- a/include/wx/gtk1/question.xpm +++ /dev/null @@ -1,155 +0,0 @@ -/* XPM */ -static char *question_xpm[] = { -/* 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/gtk1/radiobox.h b/include/wx/gtk1/radiobox.h deleted file mode 100644 index 0999008254..0000000000 --- a/include/wx/gtk1/radiobox.h +++ /dev/null @@ -1,114 +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" - -#if wxUSE_RADIOBOX - -#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 - - void DisableEvents(); - void EnableEvents(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - wxSize LayoutItems(); - - bool m_alreadySent; - int m_majorDim; - wxList m_boxes; - - DECLARE_EVENT_TABLE() -}; - -#endif - -#endif // __GTKRADIOBOXH__ diff --git a/include/wx/gtk1/radiobut.h b/include/wx/gtk1/radiobut.h deleted file mode 100644 index 16aa5fa328..0000000000 --- a/include/wx/gtk1/radiobut.h +++ /dev/null @@ -1,76 +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" - -#if wxUSE_RADIOBOX - -#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 - - GSList *m_radioButtonGroup; - void ApplyWidgetStyle(); -}; - -#endif - -#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 75344cb221..0000000000 --- a/include/wx/gtk1/scrolbar.h +++ /dev/null @@ -1,95 +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" - -#if wxUSE_SCROLLBAR - -#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 - -#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/setup0.h b/include/wx/gtk1/setup0.h deleted file mode 100644 index 56309bccfa..0000000000 --- a/include/wx/gtk1/setup0.h +++ /dev/null @@ -1,671 +0,0 @@ -/* setup.h. Generated automatically by configure. */ -/* setup.h.in. Generated automatically from configure.in by autoheader. */ -/* Generate setup.h.in from this file using autoheader. */ -/* */ -/* Version: $Id$ */ - -/* This define (__WX_SETUP_H__) is used both to insure setup.h is included - * only once and to indicate that we are building using configure. */ -#ifndef __WX_SETUP_H__ -#define __WX_SETUP_H__ - -#ifdef __GNUG__ - #pragma interface -#endif - - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define to `int' if doesn't define. */ -/* #undef gid_t */ - -/* Define if you don't have vprintf but do have _doprnt. */ -/* #undef HAVE_DOPRNT */ - -/* Define if you have the vprintf function. */ -#define HAVE_VPRINTF 1 - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define to `int' if doesn't define. */ -/* #undef mode_t */ - -/* Define to `long' if doesn't define. */ -/* #undef off_t */ - -/* Define to `int' if doesn't define. */ -/* #undef pid_t */ - -/* Define to `unsigned' if doesn't define. */ -/* #undef size_t */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define to `int' if doesn't define. */ -/* #undef uid_t */ - -/* 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 the X Window System is missing or not being used. */ -/* #undef X_DISPLAY_MISSING */ - -/* Define if lex declares yytext as a char * by default, not a char[]. */ -#define YYTEXT_POINTER 1 - -#define __WXGTK12__ 1 - -/* - * Define to 1 for Unix[-like] system - */ -#define wxUSE_UNIX 1 - -#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__ */ -/* #undef __EMX__ */ - -/* #undef __WINDOWS__ */ -/* #undef __WIN95__ */ -/* #undef __WIN32__ */ -/* #undef __GNUWIN32__ */ -/* #undef WINVER */ - -/* - * Supports bool type - */ -#define HAVE_BOOL 1 - -/* - * Use zlib - */ -#define wxUSE_ZLIB 1 -/* - * Use libpng - */ -#define wxUSE_LIBPNG 1 -/* - * Use libjpeg - */ -#define wxUSE_LIBJPEG 1 -/* - * Use libgif - */ -#define wxUSE_LIBGIF 1 -/* - * Use iODBC - */ -#define wxUSE_ODBC 0 -/* - * Use Threads - */ -#define wxUSE_THREADS 1 -/* - * Have glibc2 - */ -#define wxHAVE_GLIBC2 1 -/* - * Use libXpm - */ -#define wxHAVE_LIB_XPM 0 -/* - * Use OpenGL - */ -#define wxUSE_OPENGL 0 - -/* - * Use GUI - */ -#define wxUSE_GUI 1 -/* - * Defined if !wxUSE_GUI - */ -/* #undef wxUSE_NOGUI */ - -/* - * Use constraints mechanism - */ -#define wxUSE_CONSTRAINTS 1 - -/* - * Use validators - */ -#define wxUSE_VALIDATORS 1 - -/* - * Use accelerators - */ -#define wxUSE_ACCEL 1 - -/* - * Use wxTextEntryDialog - */ -#define wxUSE_TEXTDLG 1 - -/* - * Use startup tips - */ -#define wxUSE_STARTUP_TIPS 1 - -/* - * Use progress dialog - */ -#define wxUSE_PROGRESSDLG 1 - -/* - * Use directory chooser dialog - */ -#define wxUSE_DIRDLG 1 - -/* - * Joystick support (Linux/GTK only) - */ -#define wxUSE_JOYSTICK 0 - -/* - * Use this control - */ -#define wxUSE_CARET 1 -/* - * Use this control - */ -#define wxUSE_BMPBUTTON 1 -/* - * Use this control - */ -#define wxUSE_CHECKBOX 1 -/* - * Use this control - */ -#define wxUSE_CHECKLISTBOX 1 -/* - * Use this control - */ -#define wxUSE_COMBOBOX 1 -/* - * Use this control - */ -#define wxUSE_CHOICE 1 -/* - * Use this control - */ -#define wxUSE_GAUGE 1 -/* - * Use this control - */ -#define wxUSE_GRID 1 -/* - * Use this control - */ -#define wxUSE_IMAGLIST 1 -/* - * Use this control - */ -#define wxUSE_LISTBOX 1 -/* - * Use this control - */ -#define wxUSE_LISTCTRL 1 -/* - * Use this control - */ -#define wxUSE_NOTEBOOK 1 -/* - * Use this control - */ -#define wxUSE_RADIOBOX 1 -/* - * Use this control - */ -#define wxUSE_RADIOBTN 1 -/* - * Use this control - */ -#define wxUSE_SASH 1 -/* - * Use this control - */ -#define wxUSE_SCROLLBAR 1 -/* - * Use this control - */ -#define wxUSE_SLIDER 1 -/* - * Use this control - */ -#define wxUSE_SPINBTN 1 -/* - * Use this control - */ -#define wxUSE_SPLITTER 1 -/* - * Use this control - */ -#define wxUSE_STATBMP 1 -/* - * Use this control - */ -#define wxUSE_STATBOX 1 -/* - * Use this control - */ -#define wxUSE_STATLINE 1 -/* - * Use this control - */ -#define wxUSE_STATUSBAR 1 -/* - * 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 1 - -#if defined(__WXWINE__) || defined(__GNUWIN32__) - #if wxUSE_TOOLBAR - #define wxUSE_BUTTONBAR 1 - #endif -#endif - -/* - * Use this control - */ -#define wxUSE_TREECTRL 1 - -/* - * Use wxLongLong (a.k.a. int64) class - */ -#define wxUSE_LONGLONG 0 - -/* - * Use wxFile class - */ -#define wxUSE_FILE 1 -/* - * Use wxTextFile class - */ -#define wxUSE_TEXTFILE 1 -/* - * Use log classes and logging functions - */ -#define wxUSE_LOG 1 -/* - * Use time and date classes - */ -#define wxUSE_TIMEDATE 1 -/* - * Use wave class - */ -#define wxUSE_WAVE 0 -/* - * 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 1 -/* - * Use sockets - */ -#define wxUSE_SOCKETS 1 -/* - * Use standard C++ streams if 1. If 0, use wxWin - * streams implementation. - */ -#define wxUSE_STD_IOSTREAM 0 -/* - * wxLibrary class - */ -#define wxUSE_DYNLIB_CLASS 1 - -/* - * Use font metric files in GetTextExtent for wxPostScriptDC - * Use consistent PostScript fonts for AFM and printing (!) - */ -#define wxUSE_AFM_FOR_POSTSCRIPT 1 -#define wxUSE_NORMALIZED_PS_FONTS 1 - -/* compatibility */ -#define WX_NORMALIZED_PS_FONTS wxUSE_NORMALIZED_PS_FONTS - -/* - * Use PostScript device context - */ -#define wxUSE_POSTSCRIPT 1 - -/* - * 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 - -/* - * Use Interprocess communication - */ -#define wxUSE_IPC 1 -/* - * Use wxGetResource & wxWriteResource (change .Xdefaults) - */ -#define wxUSE_X_RESOURCES 0 -/* - * Use clipboard - */ -#define wxUSE_CLIPBOARD 1 -/* - * Use tooltips - */ -#define wxUSE_TOOLTIPS 1 -/* - * Use dnd - */ -#define wxUSE_DRAG_AND_DROP 1 -/* - * Use spline - */ -#define wxUSE_SPLINES 1 -/* - * Use wxLibrary class - */ -#define wxUSE_DYNLIB_CLASS 1 - -/* - * 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 - -/* - * Use Prolog IO - */ -#define wxUSE_PROLOGIO 1 -/* - * Use wxWindows resource loading (.wxr-files) (Needs wxUSE_PROLOGIO 1) - */ -#define wxUSE_RESOURCES 1 - -/* for compatibility */ -#define wxUSE_WX_RESOURCES wxUSE_RESOURCES - -/* - * 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 -/* - * Compatibility with 2.0 API. - */ -#define WXWIN_COMPATIBILITY_2 1 -/* - * 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 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 1 -/* - * 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 1 - -/* - * wxHTML - */ -#define wxUSE_HTML 1 - -/* - * (virtual) filesystems code - */ -#define wxUSE_FS_INET 1 -#define wxUSE_FS_ZIP 1 - -/* - * A class that shows info window when app is busy - * (works exactly like wxBusyCursor) - */ -#define wxUSE_BUSYINFO 1 - -/* - * Zip stream for accessing files stored inside .zip archives - */ -#define wxUSE_ZIPSTREAM 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 - -/* The type of 3rd argument to getsockname() - usually size_t or int */ -#define SOCKLEN_T socklen_t - -/* Define if you have dlopen() */ -#define HAVE_DLOPEN 1 - -/* Define if you have nanosleep() */ -#define HAVE_NANOSLEEP 1 - -/* 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 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() */ -#define HAVE_VSNPRINTF 1 - -/* Define if you have usleep() */ -/* #undef HAVE_USLEEP */ - -/* Define if you have wcslen function */ -#define HAVE_WCSLEN 1 - -/* The number of bytes in a char. */ -#define SIZEOF_CHAR 1 - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a int *. */ -#define SIZEOF_INT_P 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* The number of bytes in a long long. */ -#define SIZEOF_LONG_LONG 8 - -/* The number of bytes in a short. */ -#define SIZEOF_SHORT 2 - -/* Define if you have the dlopen function. */ -#define HAVE_DLOPEN 1 - -/* Define if you have the gethostname function. */ -/* #undef HAVE_GETHOSTNAME */ - -/* Define if you have the nanosleep function. */ -#define HAVE_NANOSLEEP 1 - -/* Define if you have the shl_load function. */ -/* #undef HAVE_SHL_LOAD */ - -/* Define if you have the uname function. */ -#define HAVE_UNAME 1 - -/* Define if you have the usleep function. */ -/* #undef HAVE_USLEEP */ - -/* Define if you have the vfork function. */ -#define HAVE_VFORK 1 - -/* Define if you have the vsnprintf function. */ -#define HAVE_VSNPRINTF 1 - -/* Define if you have the vsscanf function. */ -#define HAVE_VSSCANF 1 - -/* Define if you have the header file. */ -#define HAVE_X11_XKBLIB_H 1 - -/* Define if you have the header file. */ -#define HAVE_FNMATCH_H 1 - -/* Define if you have the header file. */ -#define HAVE_IOSTREAM 1 - -/* Define if you have the header file. */ -/* #undef HAVE_LINUX_JOYSTICK_H */ - -/* Define if you have the header file. */ -#define HAVE_SCHED_H 1 - -/* Define if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the header file. */ -#define HAVE_WCHAR_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_WCSTR_H */ - -/* Name of package */ -#define PACKAGE "wxWindows" - -/* Version number of package */ -#define VERSION "2.1.0" - - -#endif /* __WX_SETUP_H__ */ diff --git a/include/wx/gtk1/slider.h b/include/wx/gtk1/slider.h deleted file mode 100644 index aa8f0f969e..0000000000 --- a/include/wx/gtk1/slider.h +++ /dev/null @@ -1,97 +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" - -#if wxUSE_SLIDER - -#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 - -#endif // __GTKSLIDERH__ diff --git a/include/wx/gtk1/spinbutt.h b/include/wx/gtk1/spinbutt.h deleted file mode 100644 index 440c26afe7..0000000000 --- a/include/wx/gtk1/spinbutt.h +++ /dev/null @@ -1,60 +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 - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -class wxSpinButton : public wxSpinButtonBase -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - -public: - wxSpinButton() { } - 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" ); - - virtual int GetValue() const; - virtual void SetValue( int value ); - virtual void SetRange( int minVal, int maxVal ); - virtual int GetMin() const; - virtual int GetMax() const; - - // implementation - void OnSize( wxSizeEvent &event ); - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // __GTKSPINBUTTH__ diff --git a/include/wx/gtk1/statbmp.h b/include/wx/gtk1/statbmp.h deleted file mode 100644 index 0d9bcddfb3..0000000000 --- a/include/wx/gtk1/statbmp.h +++ /dev/null @@ -1,92 +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" - -#if wxUSE_STATBMP - -#include "wx/object.h" -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticBitmap; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxStaticBitmapNameStr; - -//----------------------------------------------------------------------------- -// wxStaticBitmap -//----------------------------------------------------------------------------- - -class wxStaticBitmap: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - -public: - wxStaticBitmap(); - 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() { return m_bitmap; } - const wxBitmap& GetBitmap() const { return m_bitmap; } - - // for compatibility with wxMSW - const wxIcon& GetIcon() const - { - // don't use wxDynamicCast, icons and bitmaps are really the same thing - // in wxGTK - return (const wxIcon &)m_bitmap; - } - - // for compatibility with wxMSW - void SetIcon(const wxIcon& icon) - { - SetBitmap( icon ); - } - -private: - // creates the new pixmap widget - void CreatePixmapWidget(); - - wxBitmap m_bitmap; -}; - -#endif - -#endif // __GTKSTATICBITMAPH__ diff --git a/include/wx/gtk1/statbox.h b/include/wx/gtk1/statbox.h deleted file mode 100644 index 7978dd9bc8..0000000000 --- a/include/wx/gtk1/statbox.h +++ /dev/null @@ -1,64 +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" - -#if wxUSE_STATBOX - -#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 - -#endif // __GTKSTATICBOXH__ diff --git a/include/wx/gtk1/statline.h b/include/wx/gtk1/statline.h deleted file mode 100644 index d892e1ab61..0000000000 --- a/include/wx/gtk1/statline.h +++ /dev/null @@ -1,54 +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" - -#if wxUSE_STATLINE - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticLine; - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -class wxStaticLine : public wxStaticLineBase -{ - DECLARE_DYNAMIC_CLASS(wxStaticLine) - -public: - wxStaticLine(); - 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 - // wxUSE_STATLINE - -#endif - // __GTKSTATICLINEH__ diff --git a/include/wx/gtk1/stattext.h b/include/wx/gtk1/stattext.h deleted file mode 100644 index 0e58cb15ec..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 wxChar *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 5a6f17415d..0000000000 --- a/include/wx/gtk1/tbargtk.h +++ /dev/null @@ -1,128 +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" - -#if wxUSE_TOOLBAR - -#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 - -#endif - // __TBARGTKH__ diff --git a/include/wx/gtk1/textctrl.h b/include/wx/gtk1/textctrl.h deleted file mode 100644 index 8844ee99fe..0000000000 --- a/include/wx/gtk1/textctrl.h +++ /dev/null @@ -1,144 +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 "textctrl.h" -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxTextCtrl; - -//----------------------------------------------------------------------------- -// wxTextCtrl -//----------------------------------------------------------------------------- - -class wxTextCtrl: public wxTextCtrlBase -{ -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 ); - - // implement base class pure virtuals - // ---------------------------------- - - 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; - - virtual bool IsModified() const; - virtual bool IsEditable() const; - - // If the return values from and to are the same, there is no selection. - virtual void GetSelection(long* from, long* to) const; - - // operations - // ---------- - - // editing - virtual void Clear(); - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - - // clears the dirty flag - virtual void DiscardEdits(); - - // writing text inserts it at the current position, appending always - // inserts it at the end - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - - // translate between the position (which is just an index in the text ctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const; - virtual bool PositionToXY(long pos, long *x, long *y) const; - - virtual void ShowPosition(long pos); - - // 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; - - // Insertion point - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // Implementation from now on - void OnDropFiles( wxDropFilesEvent &event ); - 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); - - bool SetFont( const wxFont &font ); - bool SetForegroundColour(const wxColour &colour); - bool SetBackgroundColour(const wxColour &colour); - - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - void CalculateScrollbar(); - - void SetModified() { m_modified = TRUE; } - -private: - bool m_modified; - GtkWidget *m_text; - GtkWidget *m_vScrollbar; - bool m_vScrollbarVisible; - - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxTextCtrl); -}; - -#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 b75456a85e..0000000000 --- a/include/wx/gtk1/treectrl.h +++ /dev/null @@ -1,410 +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/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) -}; - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/gtk1/warning.xpm b/include/wx/gtk1/warning.xpm deleted file mode 100644 index 9dfbf97e15..0000000000 --- a/include/wx/gtk1/warning.xpm +++ /dev/null @@ -1,324 +0,0 @@ -/* XPM */ -static char *warning_xpm[] = { -/* 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/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 63d0569d6f..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 DoPopupMenu( 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 window classes in the widget creation process */ - bool PreCreation( wxWindow *parent, const wxPoint &pos, const wxSize &size ); - 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_isRadioButton: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 98f7cee571..0000000000 --- a/include/wx/help.h +++ /dev/null @@ -1,16 +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/helpbase.h" -#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 32ed2987b0..0000000000 --- a/include/wx/helpbase.h +++ /dev/null @@ -1,94 +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/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdicmn.h" -#include "wx/frame.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() {} - inline ~wxHelpControllerBase() {}; - - // 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; - /// Allows one to override the default settings for the help frame. - virtual void SetFrameParameters(const wxString &title, - const wxSize &size, - const wxPoint &pos = wxDefaultPosition, - bool newFrameEachTime = FALSE) - { - // does nothing by default - } - /// Obtains the latest settings used by the help frame and the help - /// frame. - virtual wxFrame *GetFrameParameters(wxSize *size = NULL, - wxPoint *pos = NULL, - bool *newFrameEachTime = NULL) - { - return (wxFrame*) NULL;// does nothing by default - } - - virtual bool Quit(void) = 0; - virtual void OnQuit(void) {}; -}; - - -/* By default, if wxHTML is compiled in, use the - wxHelpControllerHtml. If not, use the external help controller. - (of course, we shouldn't do it for wxMSW) -*/ -#ifndef __WXMSW__ -#if wxUSE_HTML -# include "wx/generic/helpwxht.h" -# define wxHelpController wxHelpControllerHtml -# define sm_classwxHelpController sm_classwxHelpControllerHtml -#else -# include "wx/generic/helpext.h" -# define wxHelpController wxExtHelpController -# define sm_classwxHelpController sm_classwxExtHelpController -#endif -#endif // wxMSW - -#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 a5b207bb5a..0000000000 --- a/include/wx/helpwin.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _WX_HELPWIN_H_BASE_ -#define _WX_HELPWIN_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/helpwin.h" -#elif defined(__WXPM__) -#include "wx/os2/helpwin.h" -#endif - -#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/html/.cvsignore b/include/wx/html/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/include/wx/html/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/include/wx/html/forcelink.h b/include/wx/html/forcelink.h deleted file mode 100644 index 2be0bc0cf6..0000000000 --- a/include/wx/html/forcelink.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: forcelink.h -// Purpose: see bellow -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -/* - -DESCRPITON: - -mod_*.cpp files contain handlers for tags. These files are modules - they contain -one wxTagModule class and it's OnInit() method is called from wxApp's init method. -The module is called even if you only link it into the executable, so everything -seems wonderful. - -The problem is that we have these modules in LIBRARY and mod_*.cpp files contain -no method nor class which is known out of the module. So the linker won't -link these .o/.obj files into executable because it detected that it is not used -by the program. - -To workaround this I introduced set of macros FORCE_LINK_ME and FORCE_LINK. These -macros are generic and are not limited to mod_*.cpp files. You may find them quite -useful somewhere else... - -How to use them: -let's suppose you want to always link file foo.cpp and that you have module -always.cpp that is certainly always linked (e.g. the one with main() function -or htmlwin.cpp in wxHtml library). - -Place FORCE_LINK_ME(foo) somewhere in foo.cpp and FORCE_LINK(foo) somewhere -in always.cpp -See mod_*.cpp and htmlwin.cpp for example :-) - -*/ - - -#ifndef __FORCELINK_H__ -#define __FORCELINK_H__ - - - -// This must be part of the module you want to force: -#define FORCE_LINK_ME(module_name) \ - int _link_dummy_func_##module_name () \ - { \ - return 1; \ - } - - -// And this must be somewhere where it certainly will be linked: -#define FORCE_LINK(module_name) \ - extern int _link_dummy_func_##module_name (); \ - static int _link_dummy_var_##module_name = \ - _link_dummy_func_##module_name (); - - -#endif // __FORCELINK_H__ diff --git a/include/wx/html/htmlcell.h b/include/wx/html/htmlcell.h deleted file mode 100644 index e413f3764b..0000000000 --- a/include/wx/html/htmlcell.h +++ /dev/null @@ -1,293 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlcell.h -// Purpose: wxHtmlCell class is used by wxHtmlWindow/wxHtmlWinParser -// as a basic visual element of HTML page -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLCELL_H__ -#define __HTMLCELL_H__ - -#ifdef __GNUG__ -#pragma interface "htmlcell.h" -#endif - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/html/htmltag.h" -#include "wx/html/htmldefs.h" -#include "wx/window.h" - -class wxHtmlCell; -class wxHtmlContainerCell; - -//-------------------------------------------------------------------------------- -// wxHtmlCell -// Internal data structure. It represents fragments of parsed HTML -// page - a word, picture, table, horizontal line and so on. -// It is used by wxHtmlWindow to represent HTML page in memory. -//-------------------------------------------------------------------------------- - - -class WXDLLEXPORT wxHtmlCell : public wxObject -{ - protected: - wxHtmlCell *m_Next; - // pointer to the next cell - wxHtmlContainerCell *m_Parent; - // pointer to parent cell - long m_Width, m_Height, m_Descent; - // dimensions of fragment - // m_Descent is used to position text&images.. - long m_PosX, m_PosY; - // position where the fragment is drawn - wxString m_Link; - // destination address if this fragment is hypertext link, "" otherwise - - public: - wxHtmlCell() : wxObject() {m_Next = NULL; m_Parent = NULL; m_Width = m_Height = m_Descent = 0;}; - virtual ~wxHtmlCell() {if (m_Next) delete m_Next;}; - - void SetParent(wxHtmlContainerCell *p) {m_Parent = p;} - wxHtmlContainerCell *GetParent() const {return m_Parent;} - - int GetPosX() const {return m_PosX;} - int GetPosY() const {return m_PosY;} - int GetWidth() const {return m_Width;} - int GetHeight() const {return m_Height;} - int GetDescent() const {return m_Descent;} - virtual wxString GetLink(int x = 0, int y = 0) const {return m_Link;} - // returns the link associated with this cell. The position is position within - // the cell so it varies from 0 to m_Width, from 0 to m_Height - wxHtmlCell *GetNext() const {return m_Next;} - // members access methods - - virtual void SetPos(int x, int y) {m_PosX = x, m_PosY = y;} - void SetLink(const wxString& link) {m_Link = link;} - void SetNext(wxHtmlCell *cell) {m_Next = cell;} - // members writin methods - - virtual void Layout(int w) {SetPos(0, 0); if (m_Next) m_Next -> Layout(w);}; - // 1. adjust cell's width according to the fact that maximal possible width is w. - // (this has sense when working with horizontal lines, tables etc.) - // 2. prepare layout (=fill-in m_PosX, m_PosY (and sometime m_Height) members) - // = place items to fit window, according to the width w - - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) {if (m_Next) m_Next -> Draw(dc, x, y, view_y1, view_y2);} - // renders the cell - - virtual void DrawInvisible(wxDC& dc, int x, int y) {if (m_Next) m_Next -> DrawInvisible(dc, x, y);}; - // proceed drawing actions in case the cell is not visible (scrolled out of screen). - // This is needed to change fonts, colors and so on - - virtual const wxHtmlCell* Find(int condition, const void* param) const {if (m_Next) return m_Next -> Find(condition, param); else return NULL;} - // This method returns pointer to the FIRST cell for that - // the condition - // is true. It first checks if the condition is true for this - // cell and then calls m_Next -> Find(). (Note: it checks - // all subcells if the cell is container) - // Condition is unique condition identifier (see htmldefs.h) - // (user-defined condition IDs should start from 10000) - // and param is optional parameter - // Example : m_Cell -> Find(HTML_COND_ISANCHOR, "news"); - // returns pointer to anchor news - - virtual void OnMouseClick(wxWindow *parent, int x, int y, bool left, bool middle, bool right); - // This function is called when mouse button is clicked over the cell. - // left, middle, right are flags indicating whether the button was or wasn't - // pressed. - // Parent is pointer to wxHtmlWindow that generated the event - // HINT: if this handling is not enough for you you should use - // wxHtmlBinderCell -}; - - - - -//-------------------------------------------------------------------------------- -// Inherited cells: -//-------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------- -// wxHtmlWordCell -// Single word in input stream. -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlWordCell : public wxHtmlCell -{ - protected: - wxString m_Word; - - public: - wxHtmlWordCell(const wxString& word, wxDC& dc); - void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); -}; - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlContainerCell -// Container - it contains other cells. Basic of layout algorithm. -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlContainerCell : public wxHtmlCell -{ - protected: - int m_IndentLeft, m_IndentRight, m_IndentTop, m_IndentBottom; - // indentation of subcells. There is always m_Indent pixels - // big space between given border of the container and the subcells - // it m_Indent < 0 it is in PERCENTS, otherwise it is in pixels - int m_MinHeight, m_MinHeightAlign; - // minimal height. - int m_MaxLineWidth; - // maximal widht of line. Filled during Layout() - wxHtmlCell *m_Cells, *m_LastCell; - // internal cells, m_Cells points to the first of them, m_LastCell to the last one. - // (LastCell is needed only to speed-up InsertCell) - int m_AlignHor, m_AlignVer; - // alignment horizontal and vertical (left, center, right) - int m_WidthFloat, m_WidthFloatUnits; - // width float is used in adjustWidth - bool m_UseBkColour; - wxColour m_BkColour; - // background color of this container - bool m_UseBorder; - wxColour m_BorderColour1, m_BorderColour2; - // borders color of this container - - public: - wxHtmlContainerCell(wxHtmlContainerCell *parent); - ~wxHtmlContainerCell() {if (m_Cells) delete m_Cells;} - - virtual void Layout(int w); - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); - virtual void DrawInvisible(wxDC& dc, int x, int y); - - void InsertCell(wxHtmlCell *cell); - // insert cell at the end of m_Cells list - void SetAlignHor(int al) {m_AlignHor = al;} - int GetAlignHor() const {return m_AlignHor;} - void SetAlignVer(int al) {m_AlignVer = al;} - // sets horizontal/vertical alignment - int GetAlignVer() const {return m_AlignVer;} - void SetIndent(int i, int what, int units = HTML_UNITS_PIXELS); - // sets left-border indentation. units is one of HTML_UNITS_* constants - // what is combination of HTML_INDENT_* - int GetIndent(int ind) const; - // returns the indentation. ind is one of HTML_INDENT_* constants - int GetIndentUnits(int ind) const; - // returns type of value returned by GetIndent(ind) - void SetAlign(const wxHtmlTag& tag); - // sets alignment info based on given tag's params - void SetWidthFloat(int w, int units) {m_WidthFloat = w; m_WidthFloatUnits = units;} - void SetWidthFloat(const wxHtmlTag& tag); - // sets floating width adjustment - // (examples : 32 percent of parent container, - // -15 pixels percent (this means 100 % - 15 pixels) - void SetMinHeight(int h, int align = HTML_ALIGN_TOP) {m_MinHeight = h; m_MinHeightAlign = align;} - // sets minimal height of this container. - int GetMaxLineWidth() const {return m_MaxLineWidth;} - // returns maximal line width in this container. - // Call to this method is valid only after calling - // Layout() - void SetBackgroundColour(const wxColour& clr) {m_UseBkColour = TRUE; m_BkColour = clr;} - void SetBorder(const wxColour& clr1, const wxColour& clr2) {m_UseBorder = TRUE; m_BorderColour1 = clr1, m_BorderColour2 = clr2;} - virtual wxString GetLink(int x = 0, int y = 0) const; - virtual const wxHtmlCell* Find(int condition, const void* param) const; - virtual void OnMouseClick(wxWindow *parent, int x, int y, bool left, bool middle, bool right); - - wxHtmlCell* GetFirstCell() {return m_Cells;} - // returns pointer to the first cell in container or NULL -}; - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlColourCell -// Color changer. -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlColourCell : public wxHtmlCell -{ - public: - wxColour m_Colour; - unsigned m_Flags; - - wxHtmlColourCell(wxColour clr, int flags = HTML_CLR_FOREGROUND) : wxHtmlCell() {m_Colour = clr; m_Flags = flags;} - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); - virtual void DrawInvisible(wxDC& dc, int x, int y); -}; - - - - -//-------------------------------------------------------------------------------- -// wxHtmlFontCell -// Sets actual font used for text rendering -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlFontCell : public wxHtmlCell -{ - public: - wxFont *m_Font; - - wxHtmlFontCell(wxFont *font) : wxHtmlCell() {m_Font = font;}; - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); - virtual void DrawInvisible(wxDC& dc, int x, int y); -}; - - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlwidgetCell -// This cell is connected with wxWindow object -// You can use it to insert windows into HTML page -// (buttons, input boxes etc.) -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlWidgetCell : public wxHtmlCell -{ - protected: - wxWindow* m_Wnd; - int m_WidthFloat; - // width float is used in adjustWidth (it is in percents) - - public: - wxHtmlWidgetCell(wxWindow *wnd, int w = 0); - // !!! wnd must have correct parent! - // if w != 0 then the m_Wnd has 'floating' width - it adjust - // it's width according to parent container's width - // (w is percent of parent's width) - ~wxHtmlWidgetCell() {if (m_Wnd) m_Wnd -> Destroy(); } - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); - virtual void DrawInvisible(wxDC& dc, int x, int y); - virtual void Layout(int w); -}; - - - - -#endif // __HTMLCELL_H__ - -#endif - - - - - - - - diff --git a/include/wx/html/htmldefs.h b/include/wx/html/htmldefs.h deleted file mode 100644 index 955b4456fd..0000000000 --- a/include/wx/html/htmldefs.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmldefs.h -// Purpose: constants for wxhtml library -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLDEFS_H__ -#define __HTMLDEFS_H__ - -#include "wx/defs.h" - -#if wxUSE_HTML - -//-------------------------------------------------------------------------------- -// ALIGNMENTS -// Describes alignment of text etc. in containers -//-------------------------------------------------------------------------------- - -#define HTML_ALIGN_LEFT 0x0000 -#define HTML_ALIGN_RIGHT 0x0002 - -#define HTML_ALIGN_TOP 0x0004 -#define HTML_ALIGN_BOTTOM 0x0008 - -#define HTML_ALIGN_CENTER 0x0001 - - - -//-------------------------------------------------------------------------------- -// COLOR MODES -// Used by wxHtmlColourCell to determine clr of what is changing -//-------------------------------------------------------------------------------- - -#define HTML_CLR_FOREGROUND 0x0001 -#define HTML_CLR_BACKGROUND 0x0002 - - - -//-------------------------------------------------------------------------------- -// UNITS -// Used to specify units -//-------------------------------------------------------------------------------- - -#define HTML_UNITS_PIXELS 0x0001 -#define HTML_UNITS_PERCENT 0x0002 - - - -//-------------------------------------------------------------------------------- -// INDENTS -// Used to specify indetation relatives -//-------------------------------------------------------------------------------- - -#define HTML_INDENT_LEFT 0x0010 -#define HTML_INDENT_RIGHT 0x0020 -#define HTML_INDENT_TOP 0x0040 -#define HTML_INDENT_BOTTOM 0x0080 - -#define HTML_INDENT_HORIZONTAL HTML_INDENT_LEFT | HTML_INDENT_RIGHT -#define HTML_INDENT_VERTICAL HTML_INDENT_TOP | HTML_INDENT_BOTTOM -#define HTML_INDENT_ALL HTML_INDENT_VERTICAL | HTML_INDENT_HORIZONTAL - - - - -//-------------------------------------------------------------------------------- -// FIND CONDITIONS -// Identifiers of wxHtmlCell's Find() conditions -//-------------------------------------------------------------------------------- - -#define HTML_COND_ISANCHOR 1 - // Finds the anchor of 'param' name (pointer to wxString). - -#define HTML_COND_ISIMAGEMAP 2 - // Finds imagemap of 'param' name (pointer to wxString). - // (used exclusively by mod_image.cpp) - -#define HTML_COND_USER 10000 - // User-defined conditions should start from this number - - -//-------------------------------------------------------------------------------- -// INTERNALS -// wxHTML internal constants -//-------------------------------------------------------------------------------- - -#define HTML_SCROLL_STEP 16 - /* size of one scroll step of wxHtmlWindow in pixels */ -#define HTML_BUFLEN 1024 - /* size of temporary buffer used during parsing */ -#define HTML_REALLOC_STEP 32 - /* steps of array reallocation */ - -#endif -#endif \ No newline at end of file diff --git a/include/wx/html/htmlfilter.h b/include/wx/html/htmlfilter.h deleted file mode 100644 index 100b31d8b5..0000000000 --- a/include/wx/html/htmlfilter.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlfilter.h -// Purpose: filters -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLFILTER_H__ -#define __HTMLFILTER_H__ - -#ifdef __GNUG__ -#pragma interface "htmlfilter.h" -#endif - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/filesys.h" - - -//-------------------------------------------------------------------------------- -// wxHtmlFilter -// This class is input filter. It can "translate" files -// in non-HTML format to HTML format -// interface to access certain -// kinds of files (HTPP, FTP, local, tar.gz etc..) -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlFilter : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxHtmlFilter) - - public: - wxHtmlFilter() : wxObject() {} - - virtual bool CanRead(const wxFSFile& file) const = 0; - // returns TRUE if this filter is able to open&read given file - - virtual wxString ReadFile(const wxFSFile& file) const = 0; - // reads given file and returns HTML document. - // Returns empty string if opening failed -}; - - - -//-------------------------------------------------------------------------------- -// wxHtmlFilterPlainText -// This filter is used as default filter if no other can -// be used (= uknown type of file). It is used by -// wxHtmlWindow itself. -//-------------------------------------------------------------------------------- - - -class WXDLLEXPORT wxHtmlFilterPlainText : public wxHtmlFilter -{ - DECLARE_DYNAMIC_CLASS(wxHtmlFilterPlainText) - - public: - virtual bool CanRead(const wxFSFile& file) const; - virtual wxString ReadFile(const wxFSFile& file) const; -}; - - - - -#endif // __HTMLFILTER_H__ - -#endif \ No newline at end of file diff --git a/include/wx/html/htmlhelp.h b/include/wx/html/htmlhelp.h deleted file mode 100644 index 509e363c67..0000000000 --- a/include/wx/html/htmlhelp.h +++ /dev/null @@ -1,224 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlhelp.h -// Purpose: Help controller -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLHELP_H__ -#define __HTMLHELP_H__ - -#ifdef __GNUG__ -#pragma interface "htmlhelp.h" -#endif - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/window.h" -#include "wx/config.h" -#include "wx/splitter.h" -#include "wx/notebook.h" -#include "wx/listctrl.h" -#include "wx/html/htmlwin.h" - - - -//-------------------------------------------------------------------------------- -// helper classes & structs - please ignore 'em -//-------------------------------------------------------------------------------- - - - -class WXDLLEXPORT HtmlBookRecord : public wxObject -{ - public: - wxString m_BasePath; - wxString m_Title; - wxString m_Start; - - HtmlBookRecord(const wxString& basepath, const wxString& title, const wxString& start) {m_BasePath = basepath; m_Title = title; m_Start = start;} - wxString GetTitle() const {return m_Title;} - wxString GetStart() const {return m_Start;} - wxString GetBasePath() const {return m_BasePath;} -}; - - -#undef WXDLLEXPORTLOCAL -#define WXDLLEXPORTLOCAL WXDLLEXPORT - // ?? Don't know why - but Allen Van Sickel reported it to fix problems with DLL -WX_DECLARE_OBJARRAY(HtmlBookRecord, HtmlBookRecArray); - -#undef WXDLLEXPORTLOCAL -#define WXDLLEXPORTLOCAL - - -typedef struct - { - short int m_Level; - int m_ID; - char* m_Name; - char* m_Page; - HtmlBookRecord *m_Book; - } HtmlContentsItem; - - - - -//-------------------------------------------------------------------------------- -// wxHtmlHelpController -// This class ensures dislaying help. -// See documentation for details on its philosophy. -// -// WARNING!! -// This class is not derived from wxHelpController and is not -// compatible with it! -//-------------------------------------------------------------------------------- - - -class WXDLLEXPORT wxHtmlHelpController : public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxHtmlHelpController) - - protected: - wxConfigBase *m_Config; - wxString m_ConfigRoot; - // configuration file/registry used to store custom settings - wxString m_TitleFormat; - // title of the help frame - wxString m_TempPath; - - wxFrame *m_Frame; - wxHtmlWindow *m_HtmlWin; - wxSplitterWindow *m_Splitter; - wxNotebook *m_NavigPan; - wxTreeCtrl *m_ContentsBox; - wxImageList *m_ContentsImageList; - wxListBox *m_IndexBox; - wxTextCtrl *m_SearchText; - wxButton *m_SearchButton; - wxListBox *m_SearchList; - // ...pointers to parts of help window - - struct { - long x, y, w, h; - long sashpos; - bool navig_on; - } m_Cfg; - // settings (window size, position, sash pos etc..) - - HtmlBookRecArray m_BookRecords; - // each book has one record in this array - HtmlContentsItem* m_Contents; - int m_ContentsCnt; - // list of all available books and pages. - HtmlContentsItem* m_Index; - int m_IndexCnt; - // list of index items - - public: - wxHtmlHelpController(); - ~wxHtmlHelpController(); - - void SetTitleFormat(const wxString& format) {m_TitleFormat = format;} - // Sets format of title of the frame. Must contain exactly one "%s" - // (for title of displayed HTML page) - - void SetTempDir(const wxString& path); - // Sets directory where temporary files are stored. - // These temp files are index & contents file in binary (much faster to read) - // form. These files are NOT deleted on program's exit. - - bool AddBook(const wxString& book, bool show_wait_msg = FALSE); - // Adds new book. 'book' is location of .htb file (stands for "html book"). - // See documentation for details on its format. - // Returns success. - // If show_wait_msg == true then message window with "loading book..." is displayed - - void Display(const wxString& x); - // Displays page x. If not found it will offect the user a choice of searching - // books. - // Looking for the page runs in these steps: - // 1. try to locate file named x (if x is for example "doc/howto.htm") - // 2. try to open starting page of book x - // 3. try to find x in contents (if x is for example "How To ...") - // 4. try to find x in index (if x is for example "How To ...") - // 5. offer searching and if the user agree, run KeywordSearch - void Display(const int id); - // Alternative version that works with numeric ID. - // (uses extension to MS format, , see docs) - - void DisplayContents(); - // Displays help window and focuses contents. - - void DisplayIndex(); - // Displays help window and focuses index. - - bool KeywordSearch(const wxString& keyword); - // Searches for keyword. Returns TRUE and display page if found, return - // FALSE otherwise - // Syntax of keyword is Altavista-like: - // * words are separated by spaces - // (but "\"hello world\"" is only one world "hello world") - // * word may be pretended by + or - - // (+ : page must contain the word ; - : page can't contain the word) - // * if there is no + or - before the word, + is default - - void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString) {m_Config = config; m_ConfigRoot = rootpath;} - // Assigns config object to the controller. This config is then - // used in subsequent calls to Read/WriteCustomization of both help - // controller and it's wxHtmlWindow - - void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - // saves custom settings into cfg config. it will use the path 'path' - // if given, otherwise it will save info into currently selected path. - // saved values : things set by SetFonts, SetBorders. - void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - // ... - - protected: - virtual void CreateHelpWindow(); - // Creates frame & html window and sets m_Frame and other variables; - // Do nothing if the window already exists - void RefreshLists(); - // Refreshes Contents and Index tabs - void CreateContents(); - // Adds items to m_Contents tree control - void CreateIndex(); - // Adds items to m_IndexList - - void LoadMSProject(HtmlBookRecord *book, wxFileSystem& fsys, const wxString& indexfile, const wxString& contentsfile, bool show_wait_msg); - // Imports .hhp files (MS HTML Help Workshop) - void LoadCachedBook(HtmlBookRecord *book, wxInputStream *f); - // Reads binary book - void SaveCachedBook(HtmlBookRecord *book, wxOutputStream *f); - // Writes binary book - - void OnToolbar(wxCommandEvent& event); - void OnContentsSel(wxTreeEvent& event); - void OnIndexSel(wxCommandEvent& event); - void OnSearchSel(wxCommandEvent& event); - void OnSearch(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - DECLARE_EVENT_TABLE() -}; - - - -#endif // __HTMLHELP_H__ - -#endif - - - - - - - - - - diff --git a/include/wx/html/htmlparser.h b/include/wx/html/htmlparser.h deleted file mode 100644 index d1c6a65070..0000000000 --- a/include/wx/html/htmlparser.h +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlparser.h -// Purpose: wxHtmlParser class (generic parser) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLPARSER_H__ -#define __HTMLPARSER_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#if wxUSE_HTML - -#include -#include - -class wxHtmlParser; -class wxHtmlTagHandler; - -//-------------------------------------------------------------------------------- -// wxHtmlParser -// This class handles generic parsing of HTML document : it scans -// the document and divide it into blocks of tags (where one block -// consists of starting and ending tag and of text between these -// 2 tags. -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlParser : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxHtmlParser) - - protected: - wxString m_Source; - // source being parsed - wxHtmlTagsCache *m_Cache; - // tags cache, used during parsing. - wxHashTable m_HandlersHash; - wxList m_HandlersList; - // handlers that handle particular tags. The table is accessed by - // key = tag's name. - // This attribute MUST be filled by derived class otherwise it would - // be empty and no tags would be recognized - // (see wxHtmlWinParser for details about filling it) - // m_HandlersHash is for random access based on knowledge of tag name (BR, P, etc.) - // it may (and often does) contain more references to one object - // m_HandlersList is list of all handlers and it is guaranteed to contain - // only one reference to each handler instance. - wxFileSystem *m_FS; - // class for opening files (file system) - - public: - wxHtmlParser() : wxObject(), m_HandlersHash(wxKEY_STRING) {m_FS = NULL; m_Cache = NULL;} - virtual ~wxHtmlParser(); - - void SetFS(wxFileSystem *fs) {m_FS = fs;} - // Sets the class which will be used for opening files - wxFileSystem* GetFS() const {return m_FS;} - - wxObject* Parse(const wxString& source); - // You can simply call this method when you need parsed output. - // This method does these things: - // 1. call InitParser(source); - // 2. call DoParsing(); - // 3. call GetProduct(); (it's return value is then returned) - // 4. call DoneParser(); - - virtual void InitParser(const wxString& source); - // Sets the source. This must be called before running Parse() method. - virtual void DoneParser(); - // This must be called after Parse(). - - void DoParsing(int begin_pos, int end_pos); - inline void DoParsing() {DoParsing(0, m_Source.Length());}; - // Parses the m_Source from begin_pos to end_pos-1. - // (in noparams version it parses whole m_Source) - - virtual wxObject* GetProduct() = 0; - // Returns product of parsing - // Returned value is result of parsing of the part. The type of this result - // depends on internal representation in derived parser - // (see wxHtmlWinParser for details). - - virtual void AddTagHandler(wxHtmlTagHandler *handler); - // adds handler to the list & hash table of handlers. - - wxString* GetSource() {return &m_Source;} - - virtual wxList* GetTempData() {return NULL;} - // this method returns list of wxObjects that represents - // all data allocated by the parser. These can't be freeded - // by destructor because they must be valid as long as - // GetProduct's return value is valid - the caller must - // explicitly call delete MyParser -> GetTempData() to free - // the memory - // (this method always sets the list to delete its contents) - - protected: - - virtual void AddText(const char* txt) = 0; - // Adds text to the output. - // This is called from Parse() and must be overriden in derived classes. - // txt is not guaranteed to be only one word. It is largest continuous part of text - // (= not broken by tags) - // NOTE : using char* because of speed improvements - - virtual void AddTag(const wxHtmlTag& tag); - // Adds tag and proceeds it. Parse() may (and usually is) called from this method. - // This is called from Parse() and may be overriden. - // Default behavior is that it looks for proper handler in m_Handlers. The tag is - // ignored if no hander is found. - // Derived class is *responsible* for filling in m_Handlers table. -}; - - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlTagHandler -// This class (and derived classes) cooperates with wxHtmlParser. -// Each recognized tag is passed to handler which is capable -// of handling it. Each tag is handled in 3 steps: -// 1. Handler will modifies state of parser -// (using it's public methods) -// 2. Parser parses source between starting and ending tag -// 3. Handler restores original state of the parser -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlTagHandler : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxHtmlTagHandler) - - protected: - wxHtmlParser *m_Parser; - - public: - wxHtmlTagHandler() : wxObject () {m_Parser = NULL;}; - - virtual void SetParser(wxHtmlParser *parser) {m_Parser = parser;} - // Sets the parser. - // NOTE : each _instance_ of handler is guaranteed to be called - // only by one parser. This means you don't have to care about - // reentrancy. - - virtual wxString GetSupportedTags() = 0; - // Returns list of supported tags. The list is in uppercase and - // tags are delimited by ','. - // Example : "I,B,FONT,P" - // is capable of handling italic, bold, font and paragraph tags - - virtual bool HandleTag(const wxHtmlTag& tag) = 0; - // This is hadling core method. It does all the Steps 1-3. - // To process step 2, you can call ParseInner() - // returned value : TRUE if it called ParseInner(), - // FALSE etherwise - - protected: - void ParseInner(const wxHtmlTag& tag) {m_Parser -> DoParsing(tag.GetBeginPos(), tag.GetEndPos1());} - // parses input between beginning and ending tag. - // m_Parser must be set. -}; - - - - - -#endif // __HTMLPARSER_H__ - -#endif diff --git a/include/wx/html/htmltag.h b/include/wx/html/htmltag.h deleted file mode 100644 index 2f6a443e58..0000000000 --- a/include/wx/html/htmltag.h +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmltag.h -// Purpose: wxHtmlTag class (represents single tag) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLTAG_H__ -#define __HTMLTAG_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#if wxUSE_HTML - - -//-------------------------------------------------------------------------------- -// wxHtmlTagsCache -// !! INTERNAL STRUCTURE !! Do not use in your program! -// This structure contains information on positions of tags -// in the string being parsed -//-------------------------------------------------------------------------------- - -typedef struct { - int Key; - // this is "pos" value passed to wxHtmlTag's constructor. - // it is position of '<' character of the tag - int End1, End2; - // end positions for the tag: - // end1 is '<' of ending tag, - // end2 is '>' or both are - // -1 if there is no ending tag for this one... - // or -2 if this is ending tag - char *Name; - // name of this tag - } sCacheItem; - - - -class wxHtmlTagsCache : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxHtmlTagsCache) - - private: - sCacheItem *m_Cache; - int m_CacheSize; - int m_CachePos; - - public: - wxHtmlTagsCache() : wxObject() {m_CacheSize = 0; m_Cache = NULL;} - wxHtmlTagsCache(const wxString& source); - ~wxHtmlTagsCache() {free(m_Cache);} - - void QueryTag(int at, int* end1, int* end2); - // Finds parameters for tag starting at at and fills the variables -}; - - - -//-------------------------------------------------------------------------------- -// wxHtmlTag -// This represents single tag. It is used as internal structure -// by wxHtmlParser. -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlTag : public wxObject -{ - DECLARE_CLASS(wxHtmlTag) - - private: - wxString m_Name, m_Params; - int m_Begin, m_End1, m_End2; - bool m_Ending; - - public: - wxHtmlTag(const wxString& source, int pos, int end_pos, wxHtmlTagsCache* cache); - // constructs wxHtmlTag object based on HTML tag. - // The tag begins (with '<' character) at position pos in source - // end_pos is position where parsing ends (usually end of document) - - inline wxString GetName() const {return m_Name;}; - // Returns tag's name in uppercase. - - bool HasParam(const wxString& par) const; - // Returns TRUE if the tag has given parameter. Parameter - // should always be in uppercase. - // Example : HasParam("SRC") returns TRUE - - wxString GetParam(const wxString& par, bool with_commas = FALSE) const; - // Returns value of the param. Value is in uppercase unless it is - // enclosed with " - // Example :

    GetParam("ALIGN") returns (RIGHT) - //

    GetParam("SRC") returns (WhaT.jpg) - // (or ("WhaT.jpg") if with_commas == TRUE) - - void ScanParam(const wxString& par, char *format, ...) const; - // Scans param like scanf() functions family do. - // Example : ScanParam("COLOR", "\"#%X\"", &clr); - // This is always with with_commas=FALSE - - inline const wxString& GetAllParams() const {return m_Params;}; - // Returns string containing all params. - - inline bool IsEnding() const {return m_Ending;}; - // return TRUE if this is ending tag () or FALSE - // if it isn't () - - inline bool HasEnding() const {return m_End1 >= 0;}; - // return TRUE if this is ending tag () or FALSE - // if it isn't () - - inline int GetBeginPos() const {return m_Begin;}; - // returns beginning position of _internal_ block of text - // See explanation (returned value is marked with *): - // bla bla bla * bla bla intenal text bla bla - inline int GetEndPos1() const {return m_End1;}; - // returns ending position of _internal_ block of text. - // bla bla bla bla bla intenal text* bla bla - inline int GetEndPos2() const {return m_End2;}; - // returns end position 2 : - // bla bla bla bla bla internal text* bla bla -}; - - - - - - -#endif // __HTMLTAG_H__ - -#endif diff --git a/include/wx/html/htmlwin.h b/include/wx/html/htmlwin.h deleted file mode 100644 index 89117cec8c..0000000000 --- a/include/wx/html/htmlwin.h +++ /dev/null @@ -1,224 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlwin.h -// Purpose: wxHtmlWindow class for parsing & displaying HTML -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLWIN_H__ -#define __HTMLWIN_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#if wxUSE_HTML - -#include -#include -#include -#include -#include -#include -#include - - -//-------------------------------------------------------------------------------- -// wxHtmlWindow -// (This is probably the only class you will directly use.) -// Purpose of this class is to display HTML page (either local -// file or downloaded via HTTP protocol) in a window. Width -// of window is constant - given in constructor - virtual height -// is changed dynamicly depending on page size. -// Once the window is created you can set it's content by calling -// SetPage(text) or LoadPage(filename). -//-------------------------------------------------------------------------------- - - -// item of history list -class WXDLLEXPORT HtmlHistoryItem : public wxObject -{ - private: - wxString m_Page; - wxString m_Anchor; - int m_Pos; - - public: - HtmlHistoryItem(const wxString& p, const wxString& a) {m_Page = p, m_Anchor = a, m_Pos = 0;} - int GetPos() const {return m_Pos;} - void SetPos(int p) {m_Pos = p;} - const wxString& GetPage() const {return m_Page;} - const wxString& GetAnchor() const {return m_Anchor;} -}; - -#undef WXDLLEXPORTLOCAL -#define WXDLLEXPORTLOCAL WXDLLEXPORT - // ?? Don't know why - but Allen Van Sickel reported it to fix problems with DLL - -WX_DECLARE_OBJARRAY(HtmlHistoryItem, HtmlHistoryArray); - -#undef WXDLLEXPORTLOCAL -#define WXDLLEXPORTLOCAL - - -class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow -{ - DECLARE_DYNAMIC_CLASS(wxHtmlWindow) - - protected: - wxHtmlContainerCell *m_Cell; - // This is pointer to the first cell in parsed data. - // (Note: the first cell is usually top one = all other cells are sub-cells of this one) - wxHtmlWinParser *m_Parser; - // parser which is used to parse HTML input. - // Each wxHtmlWindow has it's own parser because sharing one global - // parser would be problematic (because of reentrancy) - wxString m_OpenedPage; - // contains name of actualy opened page or empty string if no page opened - wxString m_OpenedAnchor; - // contains name of current anchor within m_OpenedPage - wxFileSystem* m_FS; - // class for opening files (file system) - - wxFrame *m_RelatedFrame; - wxString m_TitleFormat; - int m_RelatedStatusBar; - // frame in which page title should be displayed & number of it's statusbar - // reserved for usage with this html window - - int m_Borders; - // borders (free space between text and window borders) - // defaults to 10 pixels. - - int m_Style; - - - private: - bool m_tmpMouseMoved; - // a flag indicated if mouse moved - // (if TRUE we will try to change cursor in last call to OnIdle) - bool m_tmpCanDraw; - // if FALSE contents of the window is not redrawn - // (in order to avoid ugly bliking) - - static wxList m_Filters; - // list of HTML filters - static wxHtmlFilter *m_DefaultFilter; - // this filter is used when no filter is able to read some file - - HtmlHistoryArray m_History; - int m_HistoryPos; - // browser history - bool m_HistoryOn; - // if this FLAG is false, items are not added to history - - public: - wxHtmlWindow() : wxScrolledWindow() {}; - wxHtmlWindow(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxHW_SCROLLBAR_AUTO, - const wxString& name = "htmlWindow"); - ~wxHtmlWindow(); - - bool SetPage(const wxString& source); - // Set HTML page and display it. !! source is HTML document itself, - // it is NOT address/filename of HTML document. If you want to - // specify document location, use LoadPage() istead - // Return value : FALSE if an error occured, TRUE otherwise - - bool LoadPage(const wxString& location); - // Load HTML page from given location. Location can be either - // a) /usr/wxGTK2/docs/html/wx.htm - // b) http://www.somewhere.uk/document.htm - // c) ftp://ftp.somesite.cz/pub/something.htm - // In case there is no prefix (http:,ftp:), the method - // will try to find it itself (1. local file, then http or ftp) - // After the page is loaded, the method calls SetPage() to display it. - // Note : you can also use path relative to previously loaded page - // Return value : same as SetPage - - wxString GetOpenedPage() const {return m_OpenedPage;} - // Returns full location of opened page - - void SetRelatedFrame(wxFrame* frame, const wxString& format); - // sets frame in which page title will be displayed. Format is format of - // frame title, e.g. "HtmlHelp : %s". It must contain exactly one %s - wxFrame* GetRelatedFrame() const {return m_RelatedFrame;} - - void SetRelatedStatusBar(int bar); - // after(!) calling SetRelatedFrame, this sets statusbar slot where messages - // will be displayed. Default is -1 = no messages. - - void SetFonts(wxString normal_face, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, int *sizes); - // sets fonts to be used when displaying HTML page. - // *_italic_mode can be either wxSLANT or wxITALIC - - void SetTitle(const wxString& title); - // Sets the title of the window - // (depending on the information passed to SetRelatedFrame() method) - - void SetBorders(int b) {m_Borders = b;} - // Sets space between text and window borders. - - virtual void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - // saves custom settings into cfg config. it will use the path 'path' - // if given, otherwise it will save info into currently selected path. - // saved values : things set by SetFonts, SetBorders. - virtual void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - // ... - - bool HistoryBack(); - bool HistoryForward(); - // Goes to previous/next page (in browsing history) - // Returns TRUE if successful, FALSE otherwise - void HistoryClear(); - // Resets history - - wxHtmlContainerCell* GetInternalRepresentation() const {return m_Cell;} - // Returns pointer to conteiners/cells structure. - // It should be used ONLY when printing - - static void AddFilter(wxHtmlFilter *filter); - // Adds input filter - - virtual void OnLinkClicked(const wxString& link); - // called when users clicked on hypertext link. Default behavior is to - // call LoadPage(loc) - - static void CleanUpStatics(); - // cleans static variables - - protected: - bool ScrollToAnchor(const wxString& anchor); - // Scrolls to anchor of this name. (Anchor is #news - // or #features etc. it is part of address sometimes: - // http://www.ms.mff.cuni.cz/~vsla8348/wxhtml/index.html#news) - // Return value : TRUE if anchor exists, FALSE otherwise - - void CreateLayout(); - // prepare layout (= fill m_PosX, m_PosY for fragments) based on actual size of - // window. This method also setup scrollbars - - void OnDraw(wxDC& dc); - void OnSize(wxSizeEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnIdle(wxIdleEvent& event); - void OnKeyDown(wxKeyEvent& event); - - virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;} - // returns new filter (will be stored into m_DefaultFilter variable) - - DECLARE_EVENT_TABLE() -}; - - - -#endif // __HTMLWIN_H__ - -#endif - - - diff --git a/include/wx/html/htmlwinparser.h b/include/wx/html/htmlwinparser.h deleted file mode 100644 index fa1769c5ba..0000000000 --- a/include/wx/html/htmlwinparser.h +++ /dev/null @@ -1,219 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlwinparser.h -// Purpose: wxHtmlWinParser class (parser to be used with wxHtmlWindow) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __HTMLWINPARSER_H__ -#define __HTMLWINPARSER_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#if wxUSE_HTML - -#include -#include -#include - -class wxHtmlWinParser; -class wxHtmlWinTagHandler; -class wxHtmlTagsModule; - -//-------------------------------------------------------------------------------- -// wxHtmlWinParser -// This class is derived from wxHtmlParser and its mail goal -// is to parse HTML input so that it can be displayed in -// wxHtmlWindow. It uses special wxHtmlWinTagHandler. -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser -{ - DECLARE_DYNAMIC_CLASS(wxHtmlWinParser) - - friend class wxHtmlWindow; - - private: - wxWindow *m_Window; - // window we're parsing for - wxDC *m_DC; - // Device Context we're parsing for - static wxList m_Modules; - // list of tags modules (see wxHtmlTagsModule for details) - // This list is used to initialize m_Handlers member. - - wxHtmlContainerCell *m_Container; - // actual container. See Open/CloseContainer for details. - - int m_FontBold, m_FontItalic, m_FontUnderlined, m_FontFixed; // this is not TRUE,FALSE but 1,0, we need it for indexing - int m_FontSize; /* -2 to +4, 0 is default */ - wxColour m_LinkColor; - wxColour m_ActualColor; - // basic font parameters. - wxString m_Link; - // actual hypertext link or empty string - bool m_UseLink; - // TRUE if m_Link is not empty - long m_CharHeight, m_CharWidth; - // average height of normal-sized text - int m_Align; - // actual alignment - - wxFont *m_FontsTable[2][2][2][2][7]; - // table of loaded fonts. 1st four indexes are 0 or 1, depending on on/off - // state of these flags (from left to right): - // [bold][italic][underlined][fixed_size] - // last index is font size : from 0 to 7 (remapped from html sizes -2 to +4) - // Note : this table covers all possible combinations of fonts, but not - // all of them are used, so many items in table are usually NULL. - int m_FontsSizes[7]; - wxString m_FontFaceFixed, m_FontFaceNormal; - int m_ItalicModeFixed, m_ItalicModeNormal; - // html font sizes and faces of fixed and proportional fonts - - public: - wxHtmlWinParser() : wxHtmlParser() {wxHtmlWinParser(NULL);} - wxHtmlWinParser(wxWindow *wnd); - - virtual void InitParser(const wxString& source); - virtual void DoneParser(); - virtual wxObject* GetProduct(); - - virtual void SetDC(wxDC *dc) {m_DC = dc;} - // Set's the DC used for parsing. If SetDC() is not called, - // parsing won't proceed - wxDC *GetDC() {return m_DC;} - int GetCharHeight() const {return m_CharHeight;} - int GetCharWidth() const {return m_CharWidth;} - // NOTE : these functions do _not_ return _actual_ - // height/width. They return h/w of default font - // for this DC. If you want actual values, call - // GetDC() -> GetChar...() - wxWindow *GetWindow() {return m_Window;} - // returns associated wxWindow - - void SetFonts(wxString normal_face, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, int *sizes); - // sets fonts to be used when displaying HTML page. - // *_italic_mode can be either wxSLANT or wxITALIC - - virtual wxList* GetTempData(); - - static void AddModule(wxHtmlTagsModule *module); - // Adds tags module. see wxHtmlTagsModule for details. - - // parsing-related methods. These methods are called by tag handlers: - wxHtmlContainerCell *GetContainer() const {return m_Container;} - // Returns pointer to actual container. Common use in tag handler is : - // m_WParser -> GetContainer() -> InsertCell(new ...); - wxHtmlContainerCell *OpenContainer(); - // opens new container. This container is sub-container of opened - // container. Sets GetContainer to newly created container - // and returns it. - wxHtmlContainerCell *SetContainer(wxHtmlContainerCell *c); - // works like OpenContainer except that new container is not created - // but c is used. You can use this to directly set actual container - wxHtmlContainerCell *CloseContainer(); - // closes the container and sets actual Container to upper-level - // container - - int GetFontSize() const {return m_FontSize;} - void SetFontSize(int s) {m_FontSize = s;} - int GetFontBold() const {return m_FontBold;} - void SetFontBold(int x) {m_FontBold = x;} - int GetFontItalic() const {return m_FontItalic;} - void SetFontItalic(int x) {m_FontItalic = x;} - int GetFontUnderlined() const {return m_FontUnderlined;} - void SetFontUnderlined(int x) {m_FontUnderlined = x;} - int GetFontFixed() const {return m_FontFixed;} - void SetFontFixed(int x) {m_FontFixed = x;} - - int GetAlign() const {return m_Align;} - void SetAlign(int a) {m_Align = a;} - const wxColour& GetLinkColor() const {return m_LinkColor;} - void SetLinkColor(const wxColour& clr) {m_LinkColor = clr;} - const wxColour& GetActualColor() const {return m_ActualColor;} - void SetActualColor(const wxColour& clr) {m_ActualColor = clr;} - const wxString& GetLink() const {return m_Link;} - void SetLink(const wxString& link) {m_Link = link; m_UseLink = link.Length() > 0;} - - virtual wxFont* CreateCurrentFont(); - // creates font depending on m_Font* members. - // (note : it calls wxHtmlWindow's CreateCurrentFont...) - - protected: - virtual void AddText(const char *txt); - - private: - bool m_tmpLastWasSpace; - // temporary variable used by AddText -}; - - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlWinTagHandler -// This is basicly wxHtmlTagHandler except -// it is extended with protected member m_Parser pointing to -// the wxHtmlWinParser object -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlWinTagHandler : public wxHtmlTagHandler -{ - DECLARE_ABSTRACT_CLASS(wxHtmlWinTagHandler) - - protected: - wxHtmlWinParser *m_WParser; - // same as m_Parser, but overcasted - - public: - wxHtmlWinTagHandler() : wxHtmlTagHandler() {}; - - virtual void SetParser(wxHtmlParser *parser) {wxHtmlTagHandler::SetParser(parser); m_WParser = (wxHtmlWinParser*) parser;}; -}; - - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlTagsModule -// This is basic of dynamic tag handlers binding. -// The class provides methods for filling parser's handlers -// hash table. -// (See documentation for details) -//-------------------------------------------------------------------------------- - -class WXDLLEXPORT wxHtmlTagsModule : public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxHtmlTagsModule) - - public: - wxHtmlTagsModule() : wxModule() {}; - - virtual bool OnInit(); - virtual void OnExit(); - - virtual void FillHandlersTable(wxHtmlWinParser *parser) {} - // This is called by wxHtmlWinParser. - // The method must simply call parser->AddTagHandler(new ); - // for each handler - -}; - - - -#endif // __HTMLWINPARSER_H__ - -#endif - - - diff --git a/include/wx/html/mod_templ.h b/include/wx/html/mod_templ.h deleted file mode 100644 index cb9f3fadb6..0000000000 --- a/include/wx/html/mod_templ.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_templ.h -// Purpose: wxHtml tags module generic "template" -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -/* - -DESCRIPTION: -This is set of macros for easier writing of tag handlers. How to use it? -See mod_fonts.cpp for example... - -Attention! This is quite strange C++ bastard. Before using it, -I STRONGLY recommend reading and understanding these macros!! - -*/ - - -#ifndef __MOD_TEMPL_H__ -#define __MOD_TEMPL_H__ - -#include "wx/defs.h" -#if wxUSE_HTML - - -#ifdef __GNUG__ -#pragma interface -#pragma implementation -#endif - -#include - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - - - -#include - - -#define TAG_HANDLER_BEGIN(name,tags) \ - class HTML_Handler_##name : public wxHtmlWinTagHandler \ - { \ - public: \ - wxString GetSupportedTags() {return tags;} - - - -#define TAG_HANDLER_VARS \ - private: - -#define TAG_HANDLER_CONSTR(name) \ - public: \ - HTML_Handler_##name () : wxHtmlWinTagHandler() - - -#define TAG_HANDLER_PROC(varib) \ - public: \ - bool HandleTag(const wxHtmlTag& varib) - - - -#define TAG_HANDLER_END(name) \ - }; - - - - -#define TAGS_MODULE_BEGIN(name) \ - class HTML_Module##name : public wxHtmlTagsModule \ - { \ - DECLARE_DYNAMIC_CLASS(HTML_Module##name ) \ - public: \ - void FillHandlersTable(wxHtmlWinParser *parser) \ - { - - - - -#define TAGS_MODULE_ADD(handler) \ - parser -> AddTagHandler(new HTML_Handler_##handler); - - - - -#define TAGS_MODULE_END(name) \ - } \ - }; \ - IMPLEMENT_DYNAMIC_CLASS(HTML_Module##name , wxHtmlTagsModule) - - - -#endif -#endif \ No newline at end of file diff --git a/include/wx/html/msw/back.bmp b/include/wx/html/msw/back.bmp deleted file mode 100644 index a81d37879a..0000000000 Binary files a/include/wx/html/msw/back.bmp and /dev/null differ diff --git a/include/wx/html/msw/book.ico b/include/wx/html/msw/book.ico deleted file mode 100644 index 2b32793135..0000000000 Binary files a/include/wx/html/msw/book.ico and /dev/null differ diff --git a/include/wx/html/msw/folder.ico b/include/wx/html/msw/folder.ico deleted file mode 100644 index ead2829ada..0000000000 Binary files a/include/wx/html/msw/folder.ico and /dev/null differ diff --git a/include/wx/html/msw/forward.bmp b/include/wx/html/msw/forward.bmp deleted file mode 100644 index ec26993fd2..0000000000 Binary files a/include/wx/html/msw/forward.bmp and /dev/null differ diff --git a/include/wx/html/msw/page.ico b/include/wx/html/msw/page.ico deleted file mode 100644 index 46114c9e2a..0000000000 Binary files a/include/wx/html/msw/page.ico and /dev/null differ diff --git a/include/wx/html/msw/panel.bmp b/include/wx/html/msw/panel.bmp deleted file mode 100644 index e735d3584b..0000000000 Binary files a/include/wx/html/msw/panel.bmp and /dev/null differ diff --git a/include/wx/html/msw/wxhtml.rc b/include/wx/html/msw/wxhtml.rc deleted file mode 100644 index 99c310f430..0000000000 --- a/include/wx/html/msw/wxhtml.rc +++ /dev/null @@ -1,16 +0,0 @@ - -// -// This file contains bitmaps used -// by wxHtmlHelpController -// Include it in your .rc file if you're using wxHTML help system -// (#include "wx/html/msw/wxhtml.rc") -// - -back BITMAP "wx/html/msw/back.bmp" -forward BITMAP "wx/html/msw/forward.bmp" -panel BITMAP "wx/html/msw/panel.bmp" - -book ICON "wx/html/msw/book.ico" -folder ICON "wx/html/msw/folder.ico" -page ICON "wx/html/msw/page.ico" - diff --git a/include/wx/html/version.h b/include/wx/html/version.h deleted file mode 100644 index 49ff8aeae8..0000000000 --- a/include/wx/html/version.h +++ /dev/null @@ -1,7 +0,0 @@ - -#define wxHTML_VERSION_MAJOR 0 -#define wxHTML_VERSION_MINOR 2 -#define wxHTML_VERSION_REL 3 - -#define wxHTML_VERSION (wxHTML_VERSION_MAJOR * 1000 + wxHTML_VERSION_MINOR * 100 + wxHTML_VERSION_REL) - diff --git a/include/wx/icon.h b/include/wx/icon.h deleted file mode 100644 index ee304c2b69..0000000000 --- a/include/wx/icon.h +++ /dev/null @@ -1,27 +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(__WXPM__) - #include "wx/os2/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 3b351600e9..0000000000 --- a/include/wx/image.h +++ /dev/null @@ -1,312 +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" -#include "wx/bitmap.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; - -//----------------------------------------------------------------------------- -// 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, bool verbose=TRUE ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); - - virtual bool CanRead( wxInputStream& stream ); - virtual bool CanRead( const wxString& name ); -#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, bool verbose=TRUE ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); - virtual bool CanRead( wxInputStream& 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"; - }; - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); - virtual bool CanRead( wxInputStream& stream ); -#endif -}; -#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, bool verbose=TRUE ); - virtual bool CanRead( wxInputStream& stream ); -#endif -}; - -//----------------------------------------------------------------------------- -// 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"; - }; - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); - virtual bool CanRead( wxInputStream& stream ); -#endif -}; - -//----------------------------------------------------------------------------- -// wxPNMHandler -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPNMHandler : public wxImageHandler -{ - DECLARE_DYNAMIC_CLASS(wxPNMHandler) - -public: - - inline wxPNMHandler() - { - m_name = "PNM file"; - m_extension = "pnm"; - m_type = wxBITMAP_TYPE_PNM; - m_mime = "image/pnm"; - }; - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); - virtual bool CanRead( wxInputStream& stream ); -#endif -}; - -//----------------------------------------------------------------------------- -// 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_ANY ); - wxImage( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY ); - 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 ); - operator wxBitmap() const { return ConvertToBitmap(); } - wxBitmap ConvertToBitmap() const; - - void Create( int width, int height ); - void Destroy(); - - // return the new image with size width*height - wxImage GetSubImage( const wxRect& ) const; - - // return the new image with size width*height - wxImage Scale( int width, int height ) const; - - // rescales the image in place - void Rescale( int width, int height ) { *this = Scale(width, 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_ANY ); - virtual bool LoadFile( const wxString& name, const wxString& mimetype ); - -#if wxUSE_STREAMS - virtual bool LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY ); - 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; - - wxImage& operator = (const wxImage& image) - { - if ( (*this) != image ) - Ref(image); - return *this; - } - - bool operator == (const wxImage& image) - { return m_refData == image.m_refData; } - bool operator != (const wxImage& image) - { return m_refData != image.m_refData; } - - static 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/imaglist.h b/include/wx/imaglist.h deleted file mode 100644 index 32f5922bd7..0000000000 --- a/include/wx/imaglist.h +++ /dev/null @@ -1,25 +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(__WXPM__) -#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 8d2ad899b6..0000000000 --- a/include/wx/ioswrap.h +++ /dev/null @@ -1,26 +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_STD_IOSTREAM - -#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 - -#endif - // wxUSE_STD_IOSTREAM - 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 370ee935c6..0000000000 --- a/include/wx/joystick.h +++ /dev/null @@ -1,19 +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(__WXPM__) -#include "wx/os2/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 e3e5353ce7..0000000000 --- a/include/wx/layout.h +++ /dev/null @@ -1,186 +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 -}; - -// ---------------------------------------------------------------------------- -// 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(); - } -}; - -#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 4960930946..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 (* LINKAGEMODE wxSortCompareFunction)(const void *elem1, const void *elem2); - -// -typedef int (* LINKAGEMODE 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 c104dbeabd..0000000000 --- a/include/wx/listbox.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 0c39419727..0000000000 --- a/include/wx/listctrl.h +++ /dev/null @@ -1,79 +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(__WXPM__) -#include "wx/generic/listctrl.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/listctrl.h" -#endif - -// ---------------------------------------------------------------------------- -// wxListEvent - the event class for the wxListCtrl notifications -// ---------------------------------------------------------------------------- - -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; - - inline int GetCode() { return m_code; } - inline long GetIndex() { return m_itemIndex; } - inline long GetOldIndex() { return m_oldItemIndex; } - inline long GetItem() { return m_itemIndex; } - inline long GetOldItem() { return m_oldItemIndex; } - inline int GetColumn() { return m_col; } - inline bool Cancelled() { return m_cancelled; } - inline wxPoint GetPoint() { return m_pointDrag; } - inline const wxString &GetLabel() const { return m_item.m_text; } - inline const wxString &GetText() const { return m_item.m_text; } - inline int GetImage() { return m_item.m_image; } - inline long GetData() { return m_item.m_data; } - inline long GetMask() { return m_item.m_mask; } - inline const wxListItem &GetItem() const { return m_item; } - -private: - 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_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 6a935070fc..0000000000 --- a/include/wx/log.h +++ /dev/null @@ -1,490 +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 - -#include "wx/setup.h" -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// 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 - -#include "wx/ioswrap.h" - -// ---------------------------------------------------------------------------- -// 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); - - // sets the timestamp string: this is used as strftime() format string - // for the log targets which add time stamps to the messages - set it - // to NULL to disable time stamping completely. - static void SetTimestamp(const wxChar *ts) { ms_timestamp = ts; } - - // 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; } - - // get the current timestamp format string (may be NULL) - static const wxChar *GetTimestamp() { return ms_timestamp; } - - // helpers - // put the time stamp into the string if ms_timestamp != NULL (don't - // change it otherwise) - static void TimeStamp(wxString *str); - - // 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? - - // format string for strftime(), if NULL, time stamping log messages is - // disabled - static const wxChar *ms_timestamp; - - 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 - -// log everything to a text window (GUI only of course) -class WXDLLEXPORT wxLogTextCtrl : public wxLog -{ -public: - wxLogTextCtrl(wxTextCtrl *pTextCtrl); - -private: - // implement sink function - virtual void DoLogString(const wxChar *szString, time_t t); - - // the control we use - wxTextCtrl *m_pTextCtrl; -}; - -// ---------------------------------------------------------------------------- -// 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 7cab45cffa..0000000000 --- a/include/wx/mac/app.h +++ /dev/null @@ -1,178 +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; } - - - /** Returns the standard icons for the msg dialogs, implemented in - src/generic/msgdlgg.cpp and src/gtk/app.cpp. */ - virtual wxIcon GetStdIcon(int which) const; - - 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 40d7abf66c..0000000000 --- a/include/wx/mdi.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 eb6bc59c98..0000000000 --- a/include/wx/menu.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 c19c785ffe..0000000000 --- a/include/wx/menuitem.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 17aebfdcc8..0000000000 --- a/include/wx/metafile.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _WX_METAFILE_H_BASE_ -#define _WX_METAFILE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/metafile.h" -#endif -#if defined(__WXPM__) -#include "wx/os2/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 03445fa3da..0000000000 --- a/include/wx/mimetype.h +++ /dev/null @@ -1,221 +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; - -#include "wx/defs.h" - -#if wxUSE_FILE - -// 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 WXDLLEXPORT 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 is only used wuth wxMimeTypesManager::AddFallbacks() and is meant -// just as the container for the wxFileType data. -class WXDLLEXPORT wxFileTypeInfo -{ -public: - // ctors - // a normal item - wxFileTypeInfo(const char *mimeType, - const char *openCmd, - const char *printCmd, - const char *desc, - // the other parameters form a NULL terminated list of - // extensions - ...); - - // invalid item - use this to terminate the array passed to - // wxMimeTypesManager::AddFallbacks - wxFileTypeInfo() { } - - bool IsValid() const { return !m_mimeType.IsEmpty(); } - - // accessors - // get the MIME type - const wxString& GetMimeType() const { return m_mimeType; } - // get the open command - const wxString& GetOpenCommand() const { return m_openCmd; } - // get the print command - const wxString& GetPrintCommand() const { return m_printCmd; } - // get the description - const wxString& GetDescription() const { return m_desc; } - // get the array of all extensions - const wxArrayString& GetExtensions() const { return m_exts; } - -private: - wxString m_mimeType, // the MIME type in "type/subtype" form - m_openCmd, // command to use for opening the file (%s allowed) - m_printCmd, // command to use for printing the file (%s allowed) - m_desc; // a free form description of this file type - - wxArrayString m_exts; // the extensions which are mapped on this filetype -}; - -// 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 WXDLLEXPORT 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); - - // these functions can be used to provide default values for some of the - // MIME types inside the program itself (you may also use - // ReadMailcap(filenameWithDefaultTypes, TRUE /* use as fallback */) to - // achieve the same goal, but this requires having this info in a file). - // - // It isn't possible (currently) to provide fallback icons using this - // function. - // - // The filetypes array should be terminated by a NULL entry - void AddFallbacks(const wxFileTypeInfo *filetypes); - - // 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 - // wxUSE_FILE - -#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 c8bd992496..0000000000 --- a/include/wx/minifram.h +++ /dev/null @@ -1,19 +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(__WXPM__) -#include "wx/os2/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/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 855a8267da..0000000000 --- a/include/wx/motif/app.h +++ /dev/null @@ -1,133 +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 - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/gdicmn.h" -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -// ---------------------------------------------------------------------------- -// the wxApp class for Motif - see wxAppBase for more details -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxApp : public wxAppBase -{ -DECLARE_DYNAMIC_CLASS(wxApp) - -public: - wxApp(); - ~wxApp() {} - - // override base class (pure) virtuals - // ----------------------------------- - - virtual int MainLoop(); - virtual void ExitMainLoop(); - virtual bool Initialized(); - virtual bool Pending() ; - virtual void Dispatch() ; - - virtual bool OnInitGui(); - - virtual wxIcon GetStdIcon(int which) const; - - // implementation from now on - // -------------------------- - - void OnIdle(wxIdleEvent& event); - - // 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); - - // Motif implementation. - - // Processes an X event. - virtual void ProcessXEvent(WXEvent* event); - - // Returns TRUE if an accelerator has been processed - virtual bool CheckForAccelerator(WXEvent* event); - - // Returns TRUE if a key down event has been processed - virtual bool CheckForKeyDown(WXEvent* event); - - // Returns TRUE if a key up event has been processed - virtual bool CheckForKeyUp(WXEvent* event); - -protected: - bool m_showOnInit; - -public: - // Implementation - static bool Initialize(); - static void CleanUp(); - - void DeletePendingObjects(); - bool ProcessIdle(); -#if wxUSE_THREADS - void ProcessPendingEvents(); -#endif - - // Motif-specific - WXAppContext GetAppContext() const { return m_appContext; } - WXWidget GetTopLevelWidget() const { return m_topLevelWidget; } - WXColormap GetMainColormap(WXDisplay* display) ; - WXDisplay* GetInitialDisplay() const { return m_initialDisplay; } - 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 c872066bb9..0000000000 --- a/include/wx/motif/button.h +++ /dev/null @@ -1,60 +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: - wxButton() { } - 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); - - static wxSize GetDefaultSize(); - - // 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 781a9a0b94..0000000000 --- a/include/wx/motif/clipbrd.h +++ /dev/null @@ -1,176 +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" - -#if wxUSE_CLIPBOARD - -#include "wx/dataobj.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(); - - /// 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; - wxList m_data; - bool m_usePrimary; -}; - -/* 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 // wxUSE_CLIPBOARD - -#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 d96d569a46..0000000000 --- a/include/wx/motif/control.h +++ /dev/null @@ -1,62 +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(); - - // simulates the event, returns TRUE if the event was processed - virtual void Command(wxCommandEvent& WXUNUSED(event)) { } - - // calls the callback and appropriate event handlers, returns TRUE if - // event was processed - virtual bool ProcessCommand(wxCommandEvent& event); - - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - -#if WXWIN_COMPATIBILITY - void Callback(const wxFunction function) { m_callback = function; }; // Adds callback - - wxFunction GetCallback() { return m_callback; } -#endif // WXWIN_COMPATIBILITY - - bool InSetValue() const { return m_inSetValue; } - -protected: -#if WXWIN_COMPATIBILITY - wxFunction m_callback; // Callback associated with the window -#endif // WXWIN_COMPATIBILITY - - 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 fc0c3216af..0000000000 --- a/include/wx/motif/dataobj.h +++ /dev/null @@ -1,149 +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 wxDataFormat; -class wxDataObject; -class wxTextDataObject; - -//------------------------------------------------------------------------- -// wxDataFormat -//------------------------------------------------------------------------- - -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 Atom 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 ); - - Atom GetAtom(); - void SetAtom(Atom 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; - Atom m_atom; -}; - -//---------------------------------------------------------------------------- -// 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; - Atom 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; -}; - - -#endif - //_WX_DATAOBJ_H_ - diff --git a/include/wx/motif/dc.h b/include/wx/motif/dc.h deleted file mode 100644 index 393de86fff..0000000000 --- a/include/wx/motif/dc.h +++ /dev/null @@ -1,181 +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 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); - -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 ddeee5fc41..0000000000 --- a/include/wx/motif/dcclient.h +++ /dev/null @@ -1,180 +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 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 51b16b19c9..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 DoGetSize( 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 1c01f7f4e9..0000000000 --- a/include/wx/motif/dialog.h +++ /dev/null @@ -1,121 +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 - -WXDLLEXPORT_DATA(extern const char*) wxDialogNameStr; - -// Dialog boxes -class WXDLLEXPORT wxDialog : public wxDialogBase -{ -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 SetTitle(const wxString& title); - wxString GetTitle() const ; - - void SetModal(bool flag); - - virtual bool IsModal() const - { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); } - - virtual int ShowModal(); - virtual void EndModal(int retCode); - - // 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; } - - // Standard buttons - void OnOK(wxCommandEvent& event); - void OnApply(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - void OnPaint(wxPaintEvent &event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // bool OnClose(); - void OnCharHook(wxKeyEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - // Responds to size changes - void OnSize(wxSizeEvent& event); - -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 d7585a547e..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, void *clientData); - virtual void Set(int n, const wxString* choices, void **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 void *GetClientData(int n) const ; - virtual void *GetClientData() { return wxWindow::GetClientData(); } - virtual void SetClientData(int n, void *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 d3d4705654..0000000000 --- a/include/wx/motif/menu.h +++ /dev/null @@ -1,277 +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 -#ifdef WXWIN_COMPATIBILITY - wxMenu( const wxString& title, const wxFunction func) - { - Init(title, 0, func); - } -#endif // WXWIN_COMPATIBILITY - wxMenu( const wxString& title = wxEmptyString, long style = 0 ) - { - Init(title, style); - } - virtual ~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; - bool IsEnabled(int id) const { return Enabled(id); }; - void Check(int id, bool Flag); - bool Checked(int id) const; - bool IsChecked(int id) const { return IsChecked(id); }; - - // Client data - void SetClientData(void* clientData) { m_clientData = clientData; } - 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); - -#ifdef WXWIN_COMPATIBILITY - void Callback(const wxFunction func) { m_callback = func; } -#endif // WXWIN_COMPATIBILITY - - virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; } - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - wxList& GetItems() const { return (wxList&) m_menuItems; } - - void SetInvokingWindow(wxWindow *pWin) { m_pInvokingWindow = pWin; } - wxWindow *GetInvokingWindow() const { return m_pInvokingWindow; } - - //// Motif-specific - WXWidget GetButtonWidget() const { return m_buttonWidget; } - void SetButtonWidget(WXWidget buttonWidget) { m_buttonWidget = buttonWidget; } - WXWidget GetMainWidget() const { return m_menuWidget; } - wxMenu* GetParent() const { return m_menuParent; } - int GetId() const { return m_menuId; } - void SetId(int id) { m_menuId = id; } - void SetMenuBar(wxMenuBar* menuBar) { m_menuBar = menuBar; } - 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); - - // implementation from now on - WXWidget GetHandle() const { return m_menuWidget; } - bool IsTearOff() const { return (m_style & wxMENU_TEAROFF) != 0; } - -public: -#ifdef WXWIN_COMPATIBILITY - wxFunction m_callback; -#endif // WXWIN_COMPATIBILITY - - int m_noItems; - wxString m_title; - wxMenuBar * m_menuBar; - wxList m_menuItems; - wxEvtHandler * m_parent; - wxEvtHandler * m_eventHandler; - void* m_clientData; - wxWindow* m_pInvokingWindow; - - long m_style; - - //// 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; - -private: - // common code for both constructors: - void Init( const wxString& title, - long style -#ifdef WXWIN_COMPATIBILITY - , const wxFunction func = (wxFunction) NULL -#endif - ); -}; - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxMenuBar : public wxEvtHandler -{ -DECLARE_DYNAMIC_CLASS(wxMenuBar) - -public: - 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 ; - 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 ; - 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 ; - - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - int GetMenuCount() const { return m_menuCount; } - wxMenu* GetMenu(int i) const { return m_menus[i]; } - - //// Motif-specific - wxFrame* GetMenuBarFrame() const { return m_menuBarFrame; } - void SetMenuBarFrame(wxFrame* frame) { m_menuBarFrame = frame; } - WXWidget GetMainWidget() const { return m_mainWidget; } - 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 4275fa2874..0000000000 --- a/include/wx/motif/msgdlg.h +++ /dev/null @@ -1,62 +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) - -public: - wxMessageDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK | wxCENTRE, - const wxPoint& pos = wxDefaultPosition); - - int ShowModal(); - - // implementation only from now on - // called by the Motif callback - void SetResult(long result) { m_result = result; } - -protected: - wxString m_caption; - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - long m_result; -}; - - -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 4660979bae..0000000000 --- a/include/wx/motif/private.h +++ /dev/null @@ -1,114 +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); - -// ---------------------------------------------------------------------------- -// key events related functions -// ---------------------------------------------------------------------------- - -extern char wxFindMnemonic(const char* s); - -extern char * wxFindAccelerator (const char *s); -extern XmString wxFindAcceleratorText (const 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 - -// ---------------------------------------------------------------------------- -// utility classes -// ---------------------------------------------------------------------------- - -// XmString made easy to use in wxWindows (and has an added benefit of -// cleaning up automatically) -class wxXmString -{ -public: - wxXmString(const wxString& str) - { - m_string = XmStringCreateLtoR((char *)str.c_str(), - XmSTRING_DEFAULT_CHARSET); - } - - ~wxXmString() { XmStringFree(m_string); } - - // semi-implicit conversion to XmString (shouldn't rely on implicit - // conversion because many of Motif functions are macros) - XmString operator()() const { return m_string; } - -private: - XmString m_string; -}; - -// ---------------------------------------------------------------------------- -// macros to avoid casting WXFOO to Foo all the time -// ---------------------------------------------------------------------------- - -// argument is of type "wxWindow *" -#define GetWidget(w) ((Widget)(w)->GetHandle()) - -#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 1731d356ed..0000000000 --- a/include/wx/motif/spinbutt.h +++ /dev/null @@ -1,66 +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 - -class WXDLLEXPORT wxSpinButton : public wxSpinButtonBase -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - -public: - wxSpinButton() { } - - 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"); - - - // accessors - int GetValue() const; - int GetMin() const { return m_min; } - int GetMax() const { return m_max; } - - // operations - void SetValue(int val); - void SetRange(int minVal, int maxVal); - - // Implementation - virtual void Command(wxCommandEvent& event) { (void)ProcessCommand(event); }; - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - -protected: - int m_min; - int m_max; -}; - -#endif - // _WX_SPINBUTT_H_ diff --git a/include/wx/motif/statbmp.h b/include/wx/motif/statbmp.h deleted file mode 100644 index b6674c046b..0000000000 --- a/include/wx/motif/statbmp.h +++ /dev/null @@ -1,84 +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" -#include "wx/icon.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 bool ProcessCommand(wxCommandEvent& WXUNUSED(event)) - { - return FALSE; - } - - wxBitmap& GetBitmap() const { return (wxBitmap&) m_messageBitmap; } - - // for compatibility with wxMSW - const wxIcon& GetIcon() const - { - // don't use wxDynamicCast, icons and bitmaps are really the same thing - return (const wxIcon &)m_messageBitmap; - } - - // for compatibility with wxMSW - void SetIcon(const wxIcon& icon) - { - SetBitmap( icon ); - } - - // 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 99a9b29445..0000000000 --- a/include/wx/motif/statbox.h +++ /dev/null @@ -1,77 +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 bool ProcessCommand(wxCommandEvent& WXUNUSED(event)) - { - return FALSE; - } - - 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 e9f3ca8225..0000000000 --- a/include/wx/motif/stattext.h +++ /dev/null @@ -1,62 +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: - 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); - - // implementation - // -------------- - - // operations - virtual bool ProcessCommand(wxCommandEvent& WXUNUSED(event)) - { - return FALSE; - } - - 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 6d0bb105de..0000000000 --- a/include/wx/motif/textctrl.h +++ /dev/null @@ -1,151 +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 - -WXDLLEXPORT_DATA(extern const char*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Single-line text item -class WXDLLEXPORT wxTextCtrl : public wxTextCtrlBase -{ - 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) - { - 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 ; - - 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 bool 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 77b8625430..0000000000 --- a/include/wx/motif/window.h +++ /dev/null @@ -1,358 +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 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 = -1, int maxH = -1, - int incW = -1, int incH = -1); -#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; } - - // sets the fore/background colour for the given widget - static void DoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour); - static void DoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour = FALSE); - -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; } - -public: - // Change properties - virtual void ChangeFont(bool keepOriginalSize = TRUE); // Change to the current font (often overridden) - - // 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(); - -protected: - // 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. -public: - virtual bool ProcessAccelerator(wxKeyEvent& event); - -protected: - // 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); - virtual bool DoPopupMenu(wxMenu *menu, int x, int y); - -#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 573907b3c6..0000000000 --- a/include/wx/msgdlg.h +++ /dev/null @@ -1,21 +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/motif/msgdlg.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(__WXPM__) -#include "wx/os2/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 61a9df7eff..0000000000 --- a/include/wx/mstream.h +++ /dev/null @@ -1,64 +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 - -#if wxUSE_STREAMS - -class wxMemoryInputStream: public wxInputStream { - private: - size_t m_length; - - public: - wxMemoryInputStream(const char *data, size_t length); - virtual ~wxMemoryInputStream(); - virtual size_t GetSize() const { return m_length; } - - char Peek(); - - wxStreamBuffer *InputStreamBuffer() const { return m_i_streambuf; } - - protected: - wxStreamBuffer *m_i_streambuf; - - protected: - size_t OnSysRead(void *buffer, size_t nbytes); - off_t OnSysSeek(off_t pos, wxSeekMode mode); - off_t OnSysTell() const; -}; - -class wxMemoryOutputStream: public wxOutputStream { - public: - wxMemoryOutputStream(char *data = NULL, size_t length = 0); - virtual ~wxMemoryOutputStream(); - virtual size_t GetSize() const { return m_o_streambuf->GetLastAccess(); } - - wxStreamBuffer *OutputStreamBuffer() const { return m_o_streambuf; } - - size_t CopyTo(char *buffer, size_t len) const; - - protected: - wxStreamBuffer *m_o_streambuf; - - protected: - size_t OnSysWrite(const void *buffer, size_t nbytes); - off_t OnSysSeek(off_t pos, wxSeekMode mode); - off_t OnSysTell() const; -}; - -#endif - // wxUSE_STREAMS - -#endif - // _WX_WXMMSTREAM_H__ - 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 740da653d7..0000000000 --- a/include/wx/msw/Makefile.am +++ /dev/null @@ -1,126 +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 - -# HH: We only go into gnuwin32 and ctl3d now, since ole doesn't work anyway. -SUBDIRS = gnuwin32 ctl3d - -wx_msw_includedir = ${includedir}/wx/msw - -wx_msw_include_HEADERS = \ -accel.h \ -app.h \ -bitmap.h \ -bmpbuttn.h \ -brush.h \ -button.h \ -caret.h \ -checkbox.h \ -checklst.h \ -choice.h \ -clipbrd.h \ -colordlg.h \ -colour.h \ -combobox.h \ -control.h \ -curico.h \ -curicop.h \ -cursor.h \ -dc.h \ -dcclient.h \ -dcmemory.h \ -dcprint.h \ -dcscreen.h \ -dde.h \ -dialog.h \ -dib.h \ -dibutils.h \ -dirdlg.h \ -dragimag.h \ -filedlg.h \ -font.h \ -fontdlg.h \ -frame.h \ -gauge.h \ -gauge95.h \ -gaugemsw.h \ -gdiobj.h \ -helpwin.h \ -icon.h \ -imaglist.h \ -iniconf.h \ -joystick.h \ -listbox.h \ -listctrl.h \ -mdi.h \ -menu.h \ -menuitem.h \ -metafile.h \ -minifram.h \ -msgdlg.h \ -msvcrt.h \ -notebook.h \ -palette.h \ -pen.h \ -pnghand.h \ -pngread.h \ -printdlg.h \ -printwin.h \ -private.h \ -radiobox.h \ -radiobut.h \ -regconf.h \ -region.h \ -registry.h \ -scrolbar.h \ -settings.h \ -setup0.h \ -slider.h \ -slider95.h \ -slidrmsw.h \ -spinbutt.h \ -statbmp.h \ -statbox.h \ -statbr95.h \ -statline.h \ -stattext.h \ -tabctrl.h \ -taskbar.h \ -tbar95.h \ -tbarmsw.h \ -textctrl.h \ -timer.h \ -tooltip.h \ -treectrl.h \ -wave.h \ -window.h \ -winundef.h \ -xpmhand.h \ -blank.cur \ -bullseye.cur \ -child.ico \ -clock.cur \ -error.ico \ -hand.cur \ -heart.cur \ -info.ico \ -magnif1.cur \ -mdi.ico \ -noentry.cur \ -pbrush.cur \ -pencil.cur \ -pntleft.cur \ -pntright.cur \ -query.cur \ -question.ico \ -roller.cur \ -size.cur \ -std.ico \ -tip.ico \ -warning.ico \ -watch1.cur \ -disable.bmp \ -wx.rc - diff --git a/include/wx/msw/accel.h b/include/wx/msw/accel.h deleted file mode 100644 index d985b652ff..0000000000 --- a/include/wx/msw/accel.h +++ /dev/null @@ -1,103 +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; - -// ---------------------------------------------------------------------------- -// 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 - -// ---------------------------------------------------------------------------- -// an entry in wxAcceleratorTable corresponds to one accelerator -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxAcceleratorEntry -{ -public: - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0) - { - Set(flags, keyCode, cmd); - } - - void Set(int flags, int keyCode, int cmd) - { - m_flags = flags; m_keyCode = keyCode; m_command = cmd; - } - - int GetFlags() const { return m_flags; } - int GetKeyCode() const { return m_keyCode; } - int GetCommand() const { return m_command; } - -//private: - int m_flags; - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate -}; - -// ---------------------------------------------------------------------------- -// the accel table has all accelerators for a given window or menu -// ---------------------------------------------------------------------------- - -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 - wxAcceleratorTable(const wxAcceleratorTable& accel) - { Ref(accel); } - - ~wxAcceleratorTable(); - - wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) - { if ( *this != accel ) Ref(accel); return *this; } - - bool operator == (const wxAcceleratorTable& accel) const - { return m_refData == accel.m_refData; } - bool operator != (const wxAcceleratorTable& accel) const - { return m_refData != accel.m_refData; } - - bool Ok() const; - void SetHACCEL(WXHACCEL hAccel); - WXHACCEL GetHACCEL() const; - - // translate the accelerator, return TRUE if done - bool Translate(wxWindow *window, WXMSG *msg) 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 ae15f3f359..0000000000 --- a/include/wx/msw/app.h +++ /dev/null @@ -1,109 +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/event.h" -#include "wx/icon.h" - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLEXPORT wxApp : public wxAppBase -{ - DECLARE_DYNAMIC_CLASS(wxApp) - -public: - wxApp(); - virtual ~wxApp(); - - // override base class (pure) virtuals - virtual int MainLoop(); - virtual void ExitMainLoop(); - virtual bool Initialized(); - virtual bool Pending() ; - virtual void Dispatch() ; - - virtual wxIcon GetStdIcon(int which) const; - - virtual void SetPrintMode(int mode) { m_printMode = mode; } - virtual int GetPrintMode() const { return m_printMode; } - - // implementation only - void OnIdle(wxIdleEvent& event); - void OnEndSession(wxCloseEvent& event); - void OnQueryEndSession(wxCloseEvent& event); - - // 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; } - -protected: - bool m_showOnInit; - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - bool m_auto3D ; // Always use 3D controls, except where overriden - - /* 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 4fb10e6877..0000000000 --- a/include/wx/msw/bitmap.h +++ /dev/null @@ -1,213 +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(); - - // 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); - - // 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(); - ~wxBitmapRefData(); - -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(); // Platform-specific - - // Copy constructors - wxBitmap(const wxBitmap& bitmap); - - // 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(); - - 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(); - static void CleanUpHandlers(); -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 048f06b4ae..0000000000 Binary files a/include/wx/msw/blank.cur and /dev/null differ diff --git a/include/wx/msw/bmpbuttn.h b/include/wx/msw/bmpbuttn.h deleted file mode 100644 index 8630e49ab1..0000000000 --- a/include/wx/msw/bmpbuttn.h +++ /dev/null @@ -1,87 +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: - wxBitmapButton() { m_marginX = wxDEFAULT_BUTTON_MARGIN; m_marginY = wxDEFAULT_BUTTON_MARGIN; } - 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 - wxBitmap *GetBitmap() const { return (wxBitmap *) & m_buttonBitmap; } -#endif - - wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_buttonBitmap; } - wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_buttonBitmapSelected; } - wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_buttonBitmapFocus; } - wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_buttonBitmapDisabled; } - - void SetBitmapSelected(const wxBitmap& sel) { m_buttonBitmapSelected = sel; }; - void SetBitmapFocus(const wxBitmap& focus) { m_buttonBitmapFocus = focus; }; - void SetBitmapDisabled(const wxBitmap& disabled) { m_buttonBitmapDisabled = disabled; }; - - void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } - int GetMarginX() const { return m_marginX; } - int GetMarginY() const { return m_marginY; } - - // Implementation - virtual void SetDefault(); - 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 308c07d332..0000000000 Binary files a/include/wx/msw/bullseye.cur and /dev/null differ diff --git a/include/wx/msw/button.h b/include/wx/msw/button.h deleted file mode 100644 index 6888ee443a..0000000000 --- a/include/wx/msw/button.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.h -// Purpose: wxButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// 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" - -WXDLLEXPORT_DATA(extern const wxChar*) wxButtonNameStr; - -// ---------------------------------------------------------------------------- -// Pushbutton -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxButton : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxButton) - -public: - wxButton() { } - 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 ~wxButton(); - - virtual void SetDefault(); - - static wxSize GetDefaultSize(); - - // implementation from now on - virtual void Command(wxCommandEvent& event); - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, - WXHWND pWnd, - WXUINT nCtlColor, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam); - -protected: - // send a notification event, return TRUE if processed - bool SendClickEvent(); - - virtual wxSize DoGetBestSize(); -}; - -#endif - // _WX_BUTTON_H_ diff --git a/include/wx/msw/caret.h b/include/wx/msw/caret.h deleted file mode 100644 index c42da02842..0000000000 --- a/include/wx/msw/caret.h +++ /dev/null @@ -1,65 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/caret.h -// Purpose: wxCaret class - the MSW implementation 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_ -#define _WX_CARET_H_ - -#ifdef __GNUG__ - #pragma interface "caret.h" -#endif - -class WXDLLEXPORT wxCaret : public wxCaretBase -{ -public: - wxCaret() { Init(); } - // create the caret of given (in pixels) width and height and associate - // with the given window - wxCaret(wxWindow *window, int width, int height) - { - Init(); - - (void)Create(window, width, height); - } - // same as above - wxCaret(wxWindowBase *window, const wxSize& size) - { - wxCaretBase::Init(); - - (void)Create(window, size); - } - - // process wxWindow notifications - virtual void OnSetFocus(); - virtual void OnKillFocus(); - -protected: - void Init() - { - wxCaretBase::Init(); - - m_hasCaret = FALSE; - } - - // override base class virtuals - virtual void DoMove(); - virtual void DoShow(); - virtual void DoHide(); - - // helper function which creates the system caret - bool MSWCreateCaret(); - -private: - bool m_hasCaret; -}; - -#endif // _WX_CARET_H_ - - diff --git a/include/wx/msw/checkbox.h b/include/wx/msw/checkbox.h deleted file mode 100644 index 7bcd8ef308..0000000000 --- a/include/wx/msw/checkbox.h +++ /dev/null @@ -1,86 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.h -// Purpose: wxCheckBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// 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 wxChar*) wxCheckBoxNameStr; - -// Checkbox item (single checkbox) -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT 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); - - virtual void SetValue(bool value); - virtual bool GetValue() const ; - - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual void SetLabel(const wxString& label); - virtual void Command(wxCommandEvent& event); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - -protected: - virtual wxSize DoGetBestSize(); -}; - -class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox -{ -DECLARE_DYNAMIC_CLASS(wxBitmapCheckBox) - -public: - int checkWidth ; - int checkHeight ; - - wxBitmapCheckBox() { checkWidth = -1; checkHeight = -1; } - 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 SetLabel(const wxBitmap& bitmap); -}; -#endif - // _WX_CHECKBOX_H_ diff --git a/include/wx/msw/checklst.h b/include/wx/msw/checklst.h deleted file mode 100644 index df6b479e9c..0000000000 --- a/include/wx/msw/checklst.h +++ /dev/null @@ -1,73 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.h -// Purpose: wxCheckListBox class - a listbox with checkable items -// Author: Vadim Zeitlin -// Modified by: -// Created: 16.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// 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 00c8d8b8a4..0000000000 Binary files a/include/wx/msw/child.ico and /dev/null differ diff --git a/include/wx/msw/choice.h b/include/wx/msw/choice.h deleted file mode 100644 index ca2bb1666d..0000000000 --- a/include/wx/msw/choice.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: wxChoice class -// Author: Julian Smart -// Modified by: Vadim Zeitlin to derive from wxChoiceBase -// 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 - -// ---------------------------------------------------------------------------- -// Choice item -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxChoice : public wxChoiceBase -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - -public: - // ctors - 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); - - // implement base class pure virtuals - virtual void DoAppend(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - - virtual int GetCount() const; - virtual int GetSelection() const; - virtual void SetSelection(int n); - - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const; - - // MSW only - virtual bool MSWCommand(WXUINT param, WXWORD id); - long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - -protected: - virtual void DoSetClientData( int n, void* clientData ); - virtual void* DoGetClientData( int n ) const; - virtual void DoSetClientObject( int n, wxClientData* clientData ); - virtual wxClientData* DoGetClientObject( int n ) const; - - // MSW implementation - virtual wxSize DoGetBestSize(); - 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 c1afb26016..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. - void UsePrimarySelection( bool WXUNUSED(primary) = FALSE ) { } - -}; - -// 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 6693b04d6b..0000000000 Binary files a/include/wx/msw/clock.cur and /dev/null differ diff --git a/include/wx/msw/colordlg.h b/include/wx/msw/colordlg.h deleted file mode 100644 index 5643ef6f2f..0000000000 --- a/include/wx/msw/colordlg.h +++ /dev/null @@ -1,45 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.h -// Purpose: wxColourDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// 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" - -/* - * COLOUR DIALOG - */ - -class WXDLLEXPORT wxColourDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxColourDialog) -public: - wxColourDialog(void); - wxColourDialog(wxWindow *parent, wxColourData *data = NULL); - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - int ShowModal(void); - wxColourData& GetColourData(void) { return m_colourData; } - -protected: - wxColourData m_colourData; - wxWindow* m_dialogParent; -}; - -#endif - // _WX_COLORDLG_H_ diff --git a/include/wx/msw/colour.h b/include/wx/msw/colour.h deleted file mode 100644 index 0c3def2984..0000000000 --- a/include/wx/msw/colour.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.h -// Purpose: wxColour class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// 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 - -// Colour -class WXDLLEXPORT wxColour: public wxObject -{ -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( 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); } - - 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 52e8a9d6db..0000000000 --- a/include/wx/msw/combobox.h +++ /dev/null @@ -1,88 +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 control -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxComboBox: public wxChoice -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - -public: - wxComboBox() { } - - 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 - wxString GetValue() const { return GetLabel(); } - 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); - - virtual bool MSWCommand(WXUINT param, WXWORD id); - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#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 0005193c7c..0000000000 --- a/include/wx/msw/control.h +++ /dev/null @@ -1,96 +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 - -// General item class -class WXDLLEXPORT wxControl : public wxControlBase -{ - DECLARE_ABSTRACT_CLASS(wxControl) - -public: - wxControl(); - virtual ~wxControl(); - - // Simulates an event - virtual void Command(wxCommandEvent& event) { ProcessCommand(event); } - - // implementation from now on - // -------------------------- - - // 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; - - virtual wxSize DoGetBestSize(); - - // create the control of the given class with the given style, returns FALSE - // if creation failed - bool MSWCreateControl(const wxChar *classname, WXDWORD style); - - // determine the extended styles combination for this window (may slightly - // modify styl parameter) - WXDWORD GetExStyle(WXDWORD& style) const; - -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/cross.bmp b/include/wx/msw/cross.bmp deleted file mode 100644 index 079cb0dd58..0000000000 Binary files a/include/wx/msw/cross.bmp and /dev/null differ diff --git a/include/wx/msw/ctl3d/.cvsignore b/include/wx/msw/ctl3d/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/include/wx/msw/ctl3d/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/include/wx/msw/ctl3d/Makefile.am b/include/wx/msw/ctl3d/Makefile.am deleted file mode 100644 index 1ff87e2467..0000000000 --- a/include/wx/msw/ctl3d/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/msw/ctl3d.h subdir) -## -## Process this file with automake to produce Makefile.in - -wx_msw_ctl3d_includedir = ${includedir}/wx/msw/ctl3d - -wx_msw_ctl3d_include_HEADERS = ctl3d.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 8b1d002c3b..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( LPTSTR 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( wxChar *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 54c6302975..0000000000 --- a/include/wx/msw/dc.h +++ /dev/null @@ -1,226 +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 - -#include "wx/defs.h" -#include "wx/dc.h" - -// --------------------------------------------------------------------------- -// 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) - -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/dcclient.h b/include/wx/msw/dcclient.h deleted file mode 100644 index 21d1a42e53..0000000000 --- a/include/wx/msw/dcclient.h +++ /dev/null @@ -1,85 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: wxClientDC 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_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "dcclient.h" -#endif - -#include "wx/dc.h" -#include "wx/dynarray.h" - -// ---------------------------------------------------------------------------- -// array types -// ---------------------------------------------------------------------------- - -// this one if used by wxPaintDC only -struct WXDLLEXPORT wxPaintDCInfo; - -WX_DECLARE_OBJARRAY(wxPaintDCInfo, wxArrayDCInfo); - -// ---------------------------------------------------------------------------- -// DC classes -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindowDC : public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxWindowDC) - -public: - wxWindowDC(); - - // Create a DC corresponding to the whole window - wxWindowDC(wxWindow *win); - - virtual ~wxWindowDC(); -}; - -class WXDLLEXPORT wxClientDC : public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxClientDC) - -public: - wxClientDC(); - - // Create a DC corresponding to the client area of the window - wxClientDC(wxWindow *win); - - virtual ~wxClientDC(); -}; - -class WXDLLEXPORT wxPaintDC : public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxPaintDC) - -public: - wxPaintDC(); - - // Create a DC corresponding for painting the window in OnPaint() - wxPaintDC(wxWindow *win); - - virtual ~wxPaintDC(); - -protected: - static wxArrayDCInfo ms_cache; - - // find the entry for this DC in the cache (keyed by the window) - wxPaintDCInfo *FindInCache(size_t *index = NULL) const; -}; - -#endif - // _WX_DCCLIENT_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 4052a617a1..0000000000 --- a/include/wx/msw/dcprint.h +++ /dev/null @@ -1,58 +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 - -#if wxUSE_PRINTING_ARCHITECTURE - -#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 // wxUSE_PRINTING_ARCHITECTURE - -#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 0e4dce9d62..0000000000 --- a/include/wx/msw/dialog.h +++ /dev/null @@ -1,136 +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 wxDialogBase -{ - 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(); - - 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; - - // 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 - -private: - 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 79cd3d8cbe..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 (LPSTR lpbi); -HPALETTE MakeDIBPalette(LPBITMAPINFOHEADER lpInfo); - diff --git a/include/wx/msw/dibutils.h b/include/wx/msw/dibutils.h deleted file mode 100644 index 152f67a2c7..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(LPTSTR szFile); -int DibWriteFile(LPTSTR 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 8859e1b9ae..0000000000 Binary files a/include/wx/msw/disable.bmp and /dev/null differ diff --git a/include/wx/msw/dragimag.h b/include/wx/msw/dragimag.h deleted file mode 100644 index a7a1fd0988..0000000000 --- a/include/wx/msw/dragimag.h +++ /dev/null @@ -1,189 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dragimag.h -// Purpose: wxDragImage class: a kind of a cursor, that can cope -// with more sophisticated images -// Author: Julian Smart -// Modified by: -// Created: 08/04/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DRAGIMAG_H_ -#define _WX_DRAGIMAG_H_ - -#ifdef __GNUG__ -#pragma interface "dragimag.h" -#endif - -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/treectrl.h" -#include "wx/listctrl.h" - -/* - To use this class, create a wxDragImage when you start dragging, for example: - - void MyTreeCtrl::OnBeginDrag(wxTreeEvent& event) - { -#ifdef __WXMSW__ - ::UpdateWindow((HWND) GetHWND()); // We need to implement this in wxWindows -#endif - - CaptureMouse(); - - m_dragImage = new wxDragImage(* this, itemId); - m_dragImage->BeginDrag(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/error.ico b/include/wx/msw/error.ico deleted file mode 100644 index c540fbb22d..0000000000 Binary files a/include/wx/msw/error.ico and /dev/null differ 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 7dfaf63fc6..0000000000 --- a/include/wx/msw/frame.h +++ /dev/null @@ -1,221 +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 -#if wxUSE_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(); -#endif // wxUSE_TOOLBAR - -#if wxUSE_STATUSBAR - // 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; }; -#endif // wxUSE_STATUSBAR - - // 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 wxChar *wclass, - wxWindow *wx_win, const wxChar *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; - wxIcon m_icon; - bool m_iconized; - WXHICON m_defaultIcon; - -#if wxUSE_STATUSBAR - wxStatusBar * m_frameStatusBar; - - static bool m_useNativeStatusBar; -#endif // wxUSE_STATUSBAR - -#if wxUSE_TOOLBAR - wxToolBar * m_frameToolBar; -#endif // wxUSE_TOOLBAR - -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 11e77bc685..0000000000 --- a/include/wx/msw/gauge95.h +++ /dev/null @@ -1,76 +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; -}; - -#endif - // _GAUGEMSW_H_ diff --git a/include/wx/msw/gaugemsw.h b/include/wx/msw/gaugemsw.h deleted file mode 100644 index 7f0a1f39f3..0000000000 --- a/include/wx/msw/gaugemsw.h +++ /dev/null @@ -1,76 +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; -}; - -#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 ce349aa332..0000000000 Binary files a/include/wx/msw/hand.cur and /dev/null differ diff --git a/include/wx/msw/heart.cur b/include/wx/msw/heart.cur deleted file mode 100644 index 53811dcc55..0000000000 Binary files a/include/wx/msw/heart.cur and /dev/null differ 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/info.ico b/include/wx/msw/info.ico deleted file mode 100644 index 71324fa96a..0000000000 Binary files a/include/wx/msw/info.ico and /dev/null differ 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/listbox.h b/include/wx/msw/listbox.h deleted file mode 100644 index faf42ede5f..0000000000 --- a/include/wx/msw/listbox.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.h -// Purpose: wxListBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// 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 wxChar*) wxListBoxNameStr; - -#if wxUSE_OWNER_DRAWN - class WXDLLEXPORT wxOwnerDrawn; - - // define the array of list box items - #include - - WX_DEFINE_ARRAY(wxOwnerDrawn *, wxListBoxItemsArray); - -#endif - -// forward decl for GetSelections() -class wxArrayInt; - -WXDLLEXPORT_DATA(extern const wxChar*) 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) - { - 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(); - - bool MSWCommand(WXUINT param, WXWORD id); - -#if wxUSE_OWNER_DRAWN - bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item); - bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - - // plug-in for derived classes - virtual wxOwnerDrawn *CreateItem(size_t n); - - // allows to get the item and use SetXXX functions to set it's appearance - wxOwnerDrawn *GetItem(size_t n) const { return m_aItems[n]; } - - // get the index of the given item - int GetItemIndex(wxOwnerDrawn *item) const { return m_aItems.Index(item); } -#endif // wxUSE_OWNER_DRAWN - - virtual void Append(const wxString& item); - virtual void Append(const wxString& item, void *clientData); - virtual void Set(int n, const wxString* choices, void **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 void *GetClientData(int n) const ; - virtual void SetClientData(int n, void *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 ; - - // 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); - - // 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. - virtual void SetHorizontalExtent(const wxString& s = wxEmptyString); - - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - virtual void SetupColours(); - -protected: - int m_noItems; - int m_selected; - - virtual wxSize DoGetBestSize(); - -#if wxUSE_OWNER_DRAWN - // control items - wxListBoxItemsArray m_aItems; -#endif -}; - -#endif - // _WX_LISTBOX_H_ diff --git a/include/wx/msw/listctrl.h b/include/wx/msw/listctrl.h deleted file mode 100644 index 59c882ae76..0000000000 --- a/include/wx/msw/listctrl.h +++ /dev/null @@ -1,436 +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. - - 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); - - // bring the control in sync with current m_windowStyle value - void UpdateStyle(); - - // Add to pool: necessary because Windows needs to have a string - // still exist across 3 callbacks. - wxChar *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 - -private: - bool DoCreateControl(int x, int y, int w, int h); -}; - -#endif - // _WX_LISTCTRL_H_ diff --git a/include/wx/msw/magnif1.cur b/include/wx/msw/magnif1.cur deleted file mode 100644 index bb4c8978d6..0000000000 Binary files a/include/wx/msw/magnif1.cur and /dev/null differ diff --git a/include/wx/msw/mdi.h b/include/wx/msw/mdi.h deleted file mode 100644 index 828df13b23..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(bool maximize = TRUE); - 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 00c8d8b8a4..0000000000 Binary files a/include/wx/msw/mdi.ico and /dev/null differ diff --git a/include/wx/msw/menu.h b/include/wx/msw/menu.h deleted file mode 100644 index 3e6aad81d7..0000000000 --- a/include/wx/msw/menu.h +++ /dev/null @@ -1,300 +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: - // ctors & dtor - wxMenu(const wxString& title, - const wxFunction func) - { - Init(title, func); - } - - wxMenu( long WXUNUSED(style) ) - { - Init( wxEmptyString ); - } - - wxMenu(const wxString& title = wxEmptyString, long WXUNUSED(style) = 0) - { - Init(title); - } - - 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(); - -#if wxUSE_ACCEL - size_t GetAccelCount() const { return m_accelKeyCodes.GetCount(); } - size_t CopyAccels(wxAcceleratorEntry *accels) const; -#endif // wxUSE_ACCEL - - wxFunction GetCallback() const { return m_callback; } - void Callback(const wxFunction func) { m_callback = func; } - wxFunction m_callback; - -#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 - -private: - // common part of all ctors - void Init(const wxString& title, const wxFunction func = NULL ); - - 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; - -#if wxUSE_ACCEL - // the accelerators data - wxArrayInt m_accelKeyCodes, m_accelFlags, m_accelIds; -#endif // wxUSE_ACCEL -}; - -// ---------------------------------------------------------------------------- -// 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 wxChar *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); - -#if wxUSE_ACCEL - // get the accel table for the menus - const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; } -#endif // wxUSE_ACCEL - - // 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; - -#if wxUSE_ACCEL - // the accelerator table for all accelerators in all our menus - wxAcceleratorTable m_accelTable; -#endif // wxUSE_ACCEL -}; - -#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 9d1b228aac..0000000000 --- a/include/wx/msw/minifram.h +++ /dev/null @@ -1,74 +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" - -#ifdef __WIN32__ - -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, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style | wxFRAME_TOOL_WINDOW | wxFRAME_FLOAT_ON_PARENT, name); - } - -protected: -}; - - -#else - -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 - - -#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 b002e96b36..0000000000 Binary files a/include/wx/msw/noentry.cur and /dev/null differ diff --git a/include/wx/msw/notebook.h b/include/wx/msw/notebook.h deleted file mode 100644 index 95a794e6b8..0000000000 --- a/include/wx/msw/notebook.h +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msw/notebook.h -// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) -// Author: Robert Roebling -// Modified by: Vadim Zeitlin for Windows version -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _NOTEBOOK_H -#define _NOTEBOOK_H - -#ifdef __GNUG__ - #pragma interface "notebook.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifndef _DYNARRAY_H - #include -#endif //_DYNARRAY_H - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// fwd declarations -class WXDLLEXPORT wxImageList; -class WXDLLEXPORT wxWindow; - -// array of notebook pages -typedef wxWindow WXDLLEXPORT wxNotebookPage; // so far, any window can be a page - -WX_DEFINE_ARRAY(wxNotebookPage *, wxArrayPages); - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -// FIXME 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 WXDLLEXPORT 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]; } - - // Windows-only at present. Also, you must use the wxNB_FIXEDWIDTH - // style. - void SetTabSize(const wxSize& sz); - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnSelChange(wxNotebookEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // base class virtuals - // ------------------- - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - 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() -}; - -#endif // _NOTEBOOK_H diff --git a/include/wx/msw/ole/automtn.h b/include/wx/msw/ole/automtn.h deleted file mode 100644 index 9e35455a54..0000000000 --- a/include/wx/msw/ole/automtn.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: automtn.h -// 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 interface "automtn.h" -#endif - -#ifndef _WX_AUTOMTN_H_ -#define _WX_AUTOMTN_H_ - -#include "wx/object.h" -#include "wx/variant.h" - -typedef void WXIDISPATCH; -typedef unsigned short* WXBSTR; - -#ifdef GetObject -#undef GetObject -#endif - -/* - * wxAutomationObject - * Wraps up an IDispatch pointer and invocation; does variant conversion. - */ - -class WXDLLEXPORT wxAutomationObject: public wxObject -{ -public: - wxAutomationObject(WXIDISPATCH* dispatchPtr = NULL); - ~wxAutomationObject(); - - // Set/get dispatch pointer - inline void SetDispatchPtr(WXIDISPATCH* dispatchPtr) { m_dispatchPtr = dispatchPtr; }; - inline WXIDISPATCH* GetDispatchPtr() const { return m_dispatchPtr; } - - // Get a dispatch pointer from the current object associated - // with a class id, such as "Excel.Application" - bool GetInstance(const wxString& classId) const; - - // Get a dispatch pointer from a new instance of the the class - bool CreateInstance(const wxString& classId) const; - - // Low-level invocation function. Pass either an array of variants, - // or an array of pointers to variants. - bool Invoke(const wxString& member, int action, - wxVariant& retValue, int noArgs, wxVariant args[], const wxVariant* ptrArgs[] = 0) const; - - // Invoke a member function - wxVariant CallMethod(const wxString& method, int noArgs, wxVariant args[]); - - // Convenience function - wxVariant CallMethod(const wxString& method, - const wxVariant& arg1 = wxNullVariant, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - // Get/Put property - wxVariant GetProperty(const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; - wxVariant GetProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - bool PutProperty(const wxString& property, int noArgs, wxVariant args[]) ; - bool PutProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - // 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* GetDispatchProperty(const wxString& property, int noArgs, wxVariant args[]) const; - - // A way of initialising another wxAutomationObject with a dispatch object, - // without having to deal with nasty IDispatch pointers. - bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; - -public: - WXIDISPATCH* m_dispatchPtr; -}; - - -#endif - // _WX_AUTOMTN_H_ diff --git a/include/wx/msw/ole/dataobj.h b/include/wx/msw/ole/dataobj.h deleted file mode 100644 index 34cd92557a..0000000000 --- a/include/wx/msw/ole/dataobj.h +++ /dev/null @@ -1,180 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ole/dataobj.h -// Purpose: declaration of the wxDataObject class -// Author: Vadim Zeitlin -// Modified by: -// Created: 10.05.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEDATAOBJ_H -#define _WX_OLEDATAOBJ_H - -#include "wx/bitmap.h" -// ---------------------------------------------------------------------------- -// 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; -}; - -// ---------------------------------------------------------------------------- -// 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 6835e0a516..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 -#include "wx/window.h" -#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 d623116b31..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 wxChar *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 wxChar * 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 d20c22c17b..0000000000 --- a/include/wx/msw/ole/oleutils.h +++ /dev/null @@ -1,148 +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" -#ifdef wxUSE_NORLANDER_HEADERS -#include -#endif -// ============================================================================ -// 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 b70672d3e3..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 -#include "wx/wxchar.h" -// ------------------------------------------------------------------ -// 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; - wxUChar *m_pszUuid; // this string is alloc'd and freed by RPC - wxChar *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 wxChar *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 wxChar *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 wxChar*() const { return (wxChar *)(m_pszUuid); } - - // return string representation of the UUID in the C form - // (as in DEFINE_GUID macro) - const wxChar *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 97212e3faa..0000000000 Binary files a/include/wx/msw/pbrush.cur and /dev/null differ 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 231ed1e79f..0000000000 Binary files a/include/wx/msw/pencil.cur and /dev/null differ diff --git a/include/wx/msw/pnghand.h b/include/wx/msw/pnghand.h deleted file mode 100644 index 373ab863d0..0000000000 --- a/include/wx/msw/pnghand.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pnghand.h -// Purpose: PNG bitmap handler -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Microsoft, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "pnghand.h" -#endif - -#ifndef _WX_PNGHAND_H_ -#define _WX_PNGHAND_H_ - -class WXDLLEXPORT wxPNGFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxPNGFileHandler) -public: - inline wxPNGFileHandler(void) - { - m_name = "PNG bitmap file"; - m_extension = "bmp"; - m_type = wxBITMAP_TYPE_PNG; - }; - - 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); -}; - -#endif - // _WX_PNGHAND_H_ - diff --git a/include/wx/msw/pngread.h b/include/wx/msw/pngread.h deleted file mode 100644 index c3326bc411..0000000000 --- a/include/wx/msw/pngread.h +++ /dev/null @@ -1,294 +0,0 @@ -/* - * File: pngread.h - * Purpose: PNG file reader - * Author: Alejandro Aguilar Sierra/Julian Smart - * Created: 1995 - * Copyright: (c) 1995, Alejandro Aguilar Sierra - * - * - */ - -#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; - wxChar 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 (wxChar* ImageFileName); // Read an image file - ~wxPNGReader (); - - void Create(int width, int height, int deep, int colortype=-1); - - bool ReadFile( wxChar* ImageFileName=0 ); - bool SaveFile( wxChar* ImageFileName=0 ); - bool SaveXPM(wxChar *filename, wxChar *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 222b25b864..0000000000 Binary files a/include/wx/msw/pntleft.cur and /dev/null differ diff --git a/include/wx/msw/pntright.cur b/include/wx/msw/pntright.cur deleted file mode 100644 index e9b6b5037e..0000000000 Binary files a/include/wx/msw/pntright.cur and /dev/null differ diff --git a/include/wx/msw/printdlg.h b/include/wx/msw/printdlg.h deleted file mode 100644 index 7704c3f15d..0000000000 --- a/include/wx/msw/printdlg.h +++ /dev/null @@ -1,76 +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 - -#if wxUSE_PRINTING_ARCHITECTURE - -#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 // wxUSE_PRINTING_ARCHITECTURE - -#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 0ff6b1a46d..0000000000 --- a/include/wx/msw/private.h +++ /dev/null @@ -1,281 +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; -class WXDLLEXPORT wxWindow; - -// --------------------------------------------------------------------------- -// 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(wxUSE_NORLANDER_HEADERS) -# 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 -# if defined(__VISUALC__) && defined(STRICT) -# define CASTWNDPROC (WNDPROC) -# else - typedef int (PASCAL * WndProcCast) (); -# define CASTWNDPROC (WndProcCast) -# endif -# 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 -#ifndef STRICT - #define DLGPROC FARPROC -#endif -#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 GetFooOf() takes -// an argument which should be a pointer or reference to the object of the -// corresponding class (this depends on the macro) -// --------------------------------------------------------------------------- - -#define GetHwnd() ((HWND)GetHWND()) -#define GetHwndOf(win) ((HWND)((win)->GetHWND())) -// old name -#define GetWinHwnd GetHwndOf - -#define GetHdc() ((HDC)GetHDC()) -#define GetHdcOf(dc) ((HDC)(dc).GetHDC()) - -#define GetHicon() ((HICON)GetHICON()) -#define GetHiconOf(icon) ((HICON)(icon).GetHICON()) - -#define GetHaccel() ((HACCEL)GetHACCEL()) -#define GetHaccelOf(table) ((HACCEL)((table).GetHACCEL())) - -#define GetHmenu() ((HMENU)GetHMenu()) -#define GetHmenuOf(menu) ((HMENU)menu->GetHMenu()) - -// --------------------------------------------------------------------------- -// 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 3578e90fd9..0000000000 Binary files a/include/wx/msw/query.cur and /dev/null differ diff --git a/include/wx/msw/question.ico b/include/wx/msw/question.ico deleted file mode 100644 index de35b24017..0000000000 Binary files a/include/wx/msw/question.ico and /dev/null differ diff --git a/include/wx/msw/radiobox.h b/include/wx/msw/radiobox.h deleted file mode 100644 index b867313031..0000000000 --- a/include/wx/msw/radiobox.h +++ /dev/null @@ -1,116 +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; - -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); - - 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 only from now on - // ------------------------------- - - WXHWND *GetRadioButtons() const { return m_radioButtons; } - bool ContainsHWND(WXHWND hWnd) const; - void SendNotificationEvent(); - - // get the number of buttons per column/row - int GetNumVer() const; - int GetNumHor() const; - -#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 - -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 958b78c878..0000000000 --- a/include/wx/msw/registry.h +++ /dev/null @@ -1,220 +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) - -#if defined( __GNUWIN32__) && !defined(wxUSE_NORLANDER_HEADERS) - 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; - // return true if any values exist - bool HasValues() const; - // return true if the key is empty (nothing under this key) - bool IsEmpty() const { return !HasSubkeys() && !HasValues(); } - - // 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 bb7f166133..0000000000 Binary files a/include/wx/msw/roller.cur and /dev/null differ 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 a6a024817a..0000000000 --- a/include/wx/msw/setup0.h +++ /dev/null @@ -1,387 +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_CHOICE 1 - // Define 1 to use CHOICE - -#define wxUSE_RADIOBUTTON 1 - // Define 1 to use radio button control -#define wxUSE_RADIOBTN 1 - // Unfortunately someone introduced this one, too - -#define wxUSE_SCROLLBAR 1 - // Define 1 to compile contributed wxScrollBar class - -#define wxUSE_CHECKBOX 1 - // Define 1 to compile checkbox - -#define wxUSE_LISTBOX 1 - // Define 1 to compile listbox - -#define wxUSE_SPINBTN 1 - // Define 1 to compile spin button - -// use wxStaticLine class (separator line in the dialog)? -#define wxUSE_STATLINE 1 - -#define wxUSE_CHECKLISTBOX 1 - // Define 1 to compile check listbox - -#define wxUSE_CHOICE 1 - // Define 1 to compile choice - -#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) - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -// 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_MDI_ARCHITECTURE 1 - // Set to 0 to disable MDI 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 -#define wxUSE_HTML 0 - // Set to 1 to use wxHTML sub-library -#define wxUSE_FS_ZIP 0 -#define wxUSE_FS_INET 0 // Set to 1 to enable virtual file systems - -#define wxUSE_BUSYINFO 0 - // wxBusyInfo displays window with message - // when app is busy. Works in same way as - // wxBusyCursor -#define wxUSE_ZIPSTREAM 0 - // input stream for reading from zip archives - -/* - * 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 - -// use wxFile class - required by i18n code, wxConfig and others - recommended -#define wxUSE_FILE 1 - -// use wxTextFile class: requires wxFile, required by wxConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxFile -#define wxUSE_INTL 1 - -// wxLogXXX functions - highly recommended -#define wxUSE_LOG 1 - -// wxValidator class -#define wxUSE_VALIDATORS 1 - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// wxSashWindow class -#define wxUSE_SASH 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// wxToolBar class -#define wxUSE_TOOLBAR 1 - -// wxStatusBar class -#define wxUSE_STATUSBAR 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -/* - * 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 01a731c1b2..0000000000 Binary files a/include/wx/msw/size.cur and /dev/null differ 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 fc42e4929f..0000000000 --- a/include/wx/msw/spinbutt.h +++ /dev/null @@ -1,70 +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__) - - -class WXDLLEXPORT wxSpinButton : public wxSpinButtonBase -{ -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"); - - - // accessors - virtual int GetValue() const; - virtual void SetValue(int val); - virtual void SetRange(int minVal, int maxVal); - - // implementation - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); -}; - -#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 4da9e6f89d..0000000000 --- a/include/wx/msw/statbmp.h +++ /dev/null @@ -1,90 +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 wxSize DoGetBestSize(); -}; - -#endif - // _WX_STATBMP_H_ diff --git a/include/wx/msw/statbox.h b/include/wx/msw/statbox.h deleted file mode 100644 index acd5511c8c..0000000000 --- a/include/wx/msw/statbox.h +++ /dev/null @@ -1,69 +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); - - // implementation from now on - // -------------------------- - - void OnEraseBackground(wxEraseEvent& event); - - virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - 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 wxSize DoGetBestSize(); - -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/statline.h b/include/wx/msw/statline.h deleted file mode 100644 index 0b4b2d8341..0000000000 --- a/include/wx/msw/statline.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msw/statline.h -// Purpose: MSW version of wxStaticLine class -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Version: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_STATLINE_H_ -#define _WX_MSW_STATLINE_H_ - -#ifdef __GNUG__ - #pragma interface -#endif - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxStaticLine : public wxStaticLineBase -{ - DECLARE_DYNAMIC_CLASS(wxStaticLine) - -public: - // constructors and pseudo-constructors - wxStaticLine() { } - - wxStaticLine( wxWindow *parent, - wxWindowID id, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticTextNameStr ) - { - Create(parent, id, pos, size, style, name); - } - - bool Create( wxWindow *parent, - wxWindowID id, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticTextNameStr ); -}; - -#endif // _WX_MSW_STATLINE_H_ - - diff --git a/include/wx/msw/stattext.h b/include/wx/msw/stattext.h deleted file mode 100644 index f21a4bd3b0..0000000000 --- a/include/wx/msw/stattext.h +++ /dev/null @@ -1,63 +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 wxSize DoGetBestSize(); -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/include/wx/msw/std.ico b/include/wx/msw/std.ico deleted file mode 100644 index 00c8d8b8a4..0000000000 Binary files a/include/wx/msw/std.ico and /dev/null differ 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 14e5eb14c5..0000000000 --- a/include/wx/msw/tbar95.h +++ /dev/null @@ -1,95 +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_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_TOOLBAR - -#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 00675d4c95..0000000000 --- a/include/wx/msw/textctrl.h +++ /dev/null @@ -1,173 +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 - -// can we use RICHEDIT class for wxTextCtrl implementation? -#if defined(__WIN95__) && !defined(__TWIN32__) && !defined(__WXWINE__) - #define wxUSE_RICHEDIT 1 -#else - #define wxUSE_RICHEDIT 0 -#endif - -class WXDLLEXPORT wxTextCtrl : public wxTextCtrlBase -{ -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) - { - 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); - - // implement base class pure virtuals - // ---------------------------------- - - 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; - - virtual bool IsModified() const; - virtual bool IsEditable() const; - - // If the return values from and to are the same, there is no selection. - virtual void GetSelection(long* from, long* to) const; - - // operations - // ---------- - - // editing - virtual void Clear(); - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - - // load the controls contents from the file - virtual bool LoadFile(const wxString& file); - - // clears the dirty flag - virtual void DiscardEdits(); - - // writing text inserts it at the current position, appending always - // inserts it at the end - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - - // translate between the position (which is just an index in the text ctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const; - virtual bool PositionToXY(long pos, long *x, long *y) const; - - virtual void ShowPosition(long pos); - - // 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; - - // Insertion point - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // Implementation from now on - // -------------------------- - - 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 // wxUSE_RICHEDIT - - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, - WXLPARAM lParam); - - virtual void AdoptAttributesFromHWND(); - virtual void SetupColours(); - - virtual bool AcceptsFocus() const; - - // 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); - -protected: -#if wxUSE_RICHEDIT - bool m_isRich; // Are we using rich text edit to implement this? -#endif - - // call this to increase the size limit (will do nothing if the current - // limit is big enough) - void AdjustSpaceLimit(); - - virtual wxSize DoGetBestSize(); - -private: - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxTextCtrl) -}; - -#endif - // _WX_TEXTCTRL_H_ diff --git a/include/wx/msw/tick.bmp b/include/wx/msw/tick.bmp deleted file mode 100644 index 3673eda5de..0000000000 Binary files a/include/wx/msw/tick.bmp and /dev/null differ 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/tip.ico b/include/wx/msw/tip.ico deleted file mode 100644 index 4cdaba021c..0000000000 Binary files a/include/wx/msw/tip.ico and /dev/null differ 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 313018797d..0000000000 --- a/include/wx/msw/treectrl.h +++ /dev/null @@ -1,496 +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/textctrl.h" -#include "wx/dynarray.h" - -#ifdef __GNUWIN32__ - // Cygwin windows.h defines these identifiers - #undef GetFirstChild - #undef GetNextSibling -#endif // Cygwin - -// 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; -}; - -WX_DEFINE_ARRAY(wxTreeItemId, wxArrayTreeItemIds); - -// ---------------------------------------------------------------------------- -// 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) const; - - // 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 items currently selected, return the number of such item - // - // NB: this operation is expensive and can take a long time for a - // control with a lot of items (~ O(number of items)). - size_t GetSelections(wxArrayTreeItemIds& selections) 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(); - // unselect all items (only makes sense for multiple selection control) - void UnselectAll(); - // 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); - - // get/set the check state for the item (only for wxTR_MULTIPLE) - bool IsItemChecked(const wxTreeItemId& item) const; - void SetItemCheck(const wxTreeItemId& item, bool check = TRUE); - -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 DoSetItemImages(const wxTreeItemId& item, int image, int imageSel); - - void DeleteTextCtrl(); - - DECLARE_DYNAMIC_CLASS(wxTreeCtrl) -}; - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/msw/warning.ico b/include/wx/msw/warning.ico deleted file mode 100644 index d1b6481021..0000000000 Binary files a/include/wx/msw/warning.ico and /dev/null differ diff --git a/include/wx/msw/watch1.cur b/include/wx/msw/watch1.cur deleted file mode 100644 index 323f01c3e5..0000000000 Binary files a/include/wx/msw/watch1.cur and /dev/null differ 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 e198301331..0000000000 --- a/include/wx/msw/window.h +++ /dev/null @@ -1,436 +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 DoPopupMenu( 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); - -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 - static WXDWORD MakeExtendedStyle(long style, - bool eliminateBorders = TRUE); - // Determine whether 3D effects are wanted - WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D) const; - - // 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 wxChar *wclass, - wxWindow *wx_win, - const wxChar *title, - int x, int y, int width, int height, - WXDWORD style, - const wxChar *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 - - // the return value of WM_GETDLGCODE handler - long m_lDlgCode; - - // 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); - - // get the size which best suits the window: e.g., for a static text it - // will be the width and height of the text - virtual wxSize DoGetBestSize(); - -#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 6af2f389cc..0000000000 --- a/include/wx/msw/winundef.h +++ /dev/null @@ -1,226 +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 so -// we replace these symbols with the corresponding inline functions and -// undefine the macro. -// -// This looks quite ugly here but allows us to write clear (and correct!) code -// elsewhere because the functions, unlike the macros, respect the scope. -// ---------------------------------------------------------------------------- - -// 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 - -// GetMessage - -#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 - -// LoadLibrary - -#ifdef LoadLibrary - #undef LoadLibrary - inline HINSTANCE LoadLibrary(LPCTSTR lpLibFileName) - { - #ifdef _UNICODE - return LoadLibraryW(lpLibFileName); - #else - return LoadLibraryA(lpLibFileName); - #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 b71f9a0b4c..0000000000 --- a/include/wx/msw/wx.rc +++ /dev/null @@ -1,140 +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. -// -// Version: $Id$ -///////////////////////////////////////////////////////////////////////////// - -#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 -#ifdef __WATCOMC__ - LTEXT "", -1,-2,-2,1,1 -#endif -END - -wxCaptionDialog DIALOG DISCARDABLE 34, 22, 144, 75 -STYLE DS_MODALFRAME | WS_CAPTION | WS_POPUP | WS_SYSMENU -CAPTION "Dummy dialog" -BEGIN -#ifdef __WATCOMC__ - LTEXT "", -1,-2,-2,1,1 -#endif -END - -// -// Dummy dialog for dialog boxes without caption & with thin frame -// -wxNoCaptionDialog DIALOG 34, 22, 144, 75 -STYLE WS_POPUP -BEGIN -#ifdef __WATCOMC__ - LTEXT "", -1,-2,-2,1,1 -#endif -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" - -// Standard icons -wxICON_QUESTION ICON "wx/msw/question.ico" -wxICON_WARNING ICON "wx/msw/warning.ico" -wxICON_ERROR ICON "wx/msw/error.ico" -wxICON_INFO ICON "wx/msw/info.ico" -wxICON_TIP ICON "wx/msw/tip.ico" - -////////////////////////////////////////////////////////////////////////////// -// -// Bitmaps -// - -#ifdef __SALFORDC__ -wxDISABLE_BUTTON_BITMAP BITMAP WXINCDIR"wx/msw/disable.bmp" -#else -wxDISABLE_BUTTON_BITMAP BITMAP "wx/msw/disable.bmp" -#endif - - -// For src/generic/proplist.cpp -tick_bmp BITMAP "wx/msw/tick.bmp" -cross_bmp BITMAP "wx/msw/cross.bmp" - 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 63bbee89ea..0000000000 --- a/include/wx/notebook.h +++ /dev/null @@ -1,113 +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(__WXPM__) - #include "wx/os2/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 1835449082..0000000000 --- a/include/wx/object.h +++ /dev/null @@ -1,283 +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_STD_IOSTREAM && (defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT) - #include "wx/ioswrap.h" -#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 wxUSE_STD_IOSTREAM && (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 8d1970df1f..0000000000 --- a/include/wx/objstrm.h +++ /dev/null @@ -1,90 +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" - -#if wxUSE_STREAMS && wxUSE_SERIAL - -#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 - // wxUSE_STREAMS && wxUSE_SERIAL - -#endif -// _WX_WXOBJSTRM_H__ 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/os2/accel.h b/include/wx/os2/accel.h deleted file mode 100644 index ec39737483..0000000000 --- a/include/wx/os2/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/os2/app.h b/include/wx/os2/app.h deleted file mode 100644 index fba1c3f241..0000000000 --- a/include/wx/os2/app.h +++ /dev/null @@ -1,156 +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; } - - /** Returns the standard icons for the msg dialogs, implemented in - src/generic/msgdlgg.cpp and src/gtk/app.cpp. */ - virtual wxIcon GetStdIcon(int which) const; - - 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/os2/bitmap.h b/include/wx/os2/bitmap.h deleted file mode 100644 index 1d2f5417e5..0000000000 --- a/include/wx/os2/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/os2/bmpbuttn.h b/include/wx/os2/bmpbuttn.h deleted file mode 100644 index ad8c3c25e9..0000000000 --- a/include/wx/os2/bmpbuttn.h +++ /dev/null @@ -1,86 +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; -private: - virtual void SetLabel(const wxString& string) - { wxButton::SetLabel(string); }; -}; - -#endif - // _WX_BMPBUTTN_H_ diff --git a/include/wx/os2/brush.h b/include/wx/os2/brush.h deleted file mode 100644 index a0a1bd7471..0000000000 --- a/include/wx/os2/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/os2/button.h b/include/wx/os2/button.h deleted file mode 100644 index a7dee7609e..0000000000 --- a/include/wx/os2/button.h +++ /dev/null @@ -1,58 +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 ~wxButton(); - - 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 ; - - static wxSize GetDefaultSize(); - - virtual void Command(wxCommandEvent& event); -}; - -#endif - // _WX_BUTTON_H_ diff --git a/include/wx/os2/checkbox.h b/include/wx/os2/checkbox.h deleted file mode 100644 index 31c0a20463..0000000000 --- a/include/wx/os2/checkbox.h +++ /dev/null @@ -1,84 +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); -private: - virtual void SetLabel(const wxString& string) - { wxCheckBox::SetLabel(string); }; -}; -#endif - // _WX_CHECKBOX_H_ diff --git a/include/wx/os2/checklst.h b/include/wx/os2/checklst.h deleted file mode 100644 index 19b4ccb8d3..0000000000 --- a/include/wx/os2/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/os2/choice.h b/include/wx/os2/choice.h deleted file mode 100644 index 7f360ed5cc..0000000000 --- a/include/wx/os2/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/os2/clipbrd.h b/include/wx/os2/clipbrd.h deleted file mode 100644 index 697dc9d939..0000000000 --- a/include/wx/os2/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/os2/colordlg.h b/include/wx/os2/colordlg.h deleted file mode 100644 index 556c2f316e..0000000000 --- a/include/wx/os2/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/os2/colour.h b/include/wx/os2/colour.h deleted file mode 100644 index 24028b6756..0000000000 --- a/include/wx/os2/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/os2/combobox.h b/include/wx/os2/combobox.h deleted file mode 100644 index 07054af74e..0000000000 --- a/include/wx/os2/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/os2/control.h b/include/wx/os2/control.h deleted file mode 100644 index d2aac6bbc7..0000000000 --- a/include/wx/os2/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 wxControlBase -{ - 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/os2/cursor.h b/include/wx/os2/cursor.h deleted file mode 100644 index bc6397069f..0000000000 --- a/include/wx/os2/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/os2/dc.h b/include/wx/os2/dc.h deleted file mode 100644 index 75026782c3..0000000000 --- a/include/wx/os2/dc.h +++ /dev/null @@ -1,199 +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/window.h" -#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 wxDCBase -{ - DECLARE_ABSTRACT_CLASS(wxDC) - - public: - - wxDC(void); - ~wxDC(void); - - virtual void BeginDrawing(void) { }; - virtual void EndDrawing(void) { }; - -//----------------------------------------------------------------------------- -// Pure virtuals from wxDCBase that need defining -//----------------------------------------------------------------------------- - virtual bool CanDrawBitmap(void) const { return TRUE; }; - virtual bool CanGetTextExtent(void) const { return TRUE; }; - virtual int GetDepth(void) const; - virtual wxSize GetPPI(void) const; - virtual void GetTextExtent( const wxString& string - ,long* width - ,long* height - ,long* descent = NULL - ,long* externalLeading = NULL - ,wxFont* theFont = NULL - ) const; - virtual long GetCharWidth(void) const; - virtual long GetCharHeight(void) const; - 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 SetBackgroundMode(int mode); - virtual void SetPalette(const wxPalette& palette); - virtual void SetMapMode(int mode); - virtual void DestroyClippingRegion(void); - virtual void SetUserScale(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 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 - ); - 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 - ); - virtual void DoSetClippingRegionAsRegion(const wxRegion& region); - virtual void DoSetClippingRegion( long x, long y - ,long width, long height - ); -#if wxUSE_SPLINES - virtual void DoDrawSpline(wxList *points); -#endif - -//----------------------------------------------------------------------------- -// Other virtuals from wxDCBase that are overridden here -//----------------------------------------------------------------------------- - - virtual void SetLogicalScale( double x, double y ); - -//----------------------------------------------------------------------------- -// Our own new stuff -//----------------------------------------------------------------------------- - virtual void SetInternalDeviceOrigin( long x, long y ); - virtual void GetInternalDeviceOrigin( long *x, long *y ); - -private: - -#if WXWIN_COMPATIBILITY - // function hiding warning supression - virtual void GetTextExtent( const wxString& string - ,long* width - ,long* height - ,long* descent = NULL - ,long* externalLeading = NULL - ,wxFont* theFont = NULL - ,bool use16 = FALSE - ) const - { wxDCBase::GetTextExtent(string, width, height, descent, externalLeading, theFont, use16); }; -#endif - -protected: - - // ------------------------------------------------------------------------ - // Some additional data we need - // ------------------------------------------------------------------------ - - // Owner canvas and selected in bitmap (if bitmap is GDI object selected) - wxWindow* m_owner; - wxBitmap* m_bitmap; - - // 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/os2/dcclient.h b/include/wx/os2/dcclient.h deleted file mode 100644 index 7d715e9996..0000000000 --- a/include/wx/os2/dcclient.h +++ /dev/null @@ -1,140 +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 ) const; - virtual long GetCharWidth(void) const; - virtual long GetCharHeight(void) const; - - 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 ); -private: - // to supress virtual function hiding, do not use - void DrawEllipticArc(const wxPoint& pt, const wxSize& sz, - double sa, double ea) - { wxDC::DrawEllipticArc(pt, sz, sa, ea); }; - void DrawPoint(wxPoint& pt) - { wxDC:DrawPoint(pt); }; - void DrawSpline(int n, wxPoint points[]) - { wxDC::DrawSpline(n, points); }; - void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3) - { wxDC::DrawSpline(x1, y1, x2, y2, x3, y3); }; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL) const - { GetTextExtent(string, width, height, descent, externalLeading, theFont, FALSE); }; -}; - -//----------------------------------------------------------------------------- -// 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/os2/dcmemory.h b/include/wx/os2/dcmemory.h deleted file mode 100644 index c6c5737642..0000000000 --- a/include/wx/os2/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/os2/dcprint.h b/include/wx/os2/dcprint.h deleted file mode 100644 index 2ea66d15bf..0000000000 --- a/include/wx/os2/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/os2/dcscreen.h b/include/wx/os2/dcscreen.h deleted file mode 100644 index e04b450f69..0000000000 --- a/include/wx/os2/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/os2/dialog.h b/include/wx/os2/dialog.h deleted file mode 100644 index 0571fb5c53..0000000000 --- a/include/wx/os2/dialog.h +++ /dev/null @@ -1,114 +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 wxDialogBase -{ - 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(); - -// --------------------------------------------------------------------------- -// Virtuals -// --------------------------------------------------------------------------- - - virtual bool Destroy(); - virtual bool IsIconized() const; - virtual void Centre(int direction = wxBOTH); - virtual bool IsModal() const { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); } - - virtual int ShowModal(); - virtual void EndModal(int retCode); - - void SetClientSize(int width, int height) { wxWindow::DoSetClientSize(width, height); }; - void SetClientSize( const wxSize& size ) { wxWindow::DoSetClientSize(size.x, size.y); }; - void SetClientSize(const wxRect& rect) { SetClientSize( rect.width, rect.height ); }; - - void GetPosition(int *x, int *y) const; - bool Show(bool show); - void Iconize(bool iconize); - - void Fit(); - - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void OnCharHook(wxKeyEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - void SetModal(bool flag); - - // 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/os2/dirdlg.h b/include/wx/os2/dirdlg.h deleted file mode 100644 index 44f96238e2..0000000000 --- a/include/wx/os2/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/os2/dnd.h b/include/wx/os2/dnd.h deleted file mode 100644 index ce6d0e9d01..0000000000 --- a/include/wx/os2/dnd.h +++ /dev/null @@ -1,322 +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; - -//------------------------------------------------------------------------- -// 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 ); - - 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 ); - - // 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; -}; - -//------------------------------------------------------------------------- -// 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 -//------------------------------------------------------------------------- - -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/os2/filedlg.h b/include/wx/os2/filedlg.h deleted file mode 100644 index bd6075eb15..0000000000 --- a/include/wx/os2/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/os2/font.h b/include/wx/os2/font.h deleted file mode 100644 index aff8fb3a75..0000000000 --- a/include/wx/os2/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/os2/fontdlg.h b/include/wx/os2/fontdlg.h deleted file mode 100644 index 39da6fd967..0000000000 --- a/include/wx/os2/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/os2/frame.h b/include/wx/os2/frame.h deleted file mode 100644 index 408d6bc1a6..0000000000 --- a/include/wx/os2/frame.h +++ /dev/null @@ -1,157 +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" -#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(); - 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/os2/gauge.h b/include/wx/os2/gauge.h deleted file mode 100644 index ce19d9ef1f..0000000000 --- a/include/wx/os2/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/os2/gdiobj.h b/include/wx/os2/gdiobj.h deleted file mode 100644 index 9263d4d6ad..0000000000 --- a/include/wx/os2/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/os2/helpxxxx.h b/include/wx/os2/helpxxxx.h deleted file mode 100644 index d53c28b7e4..0000000000 --- a/include/wx/os2/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/os2/icon.h b/include/wx/os2/icon.h deleted file mode 100644 index 3e0c24729c..0000000000 --- a/include/wx/os2/icon.h +++ /dev/null @@ -1,112 +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) ; } -private: - // supress virtual function hiding warning - virtual bool LoadFile( const wxString& name - ,long type = wxBITMAP_TYPE_BMP_RESOURCE - ) - { return(wxBitmap::LoadFile(name, type)); }; -}; - -/* 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/os2/imaglist.h b/include/wx/os2/imaglist.h deleted file mode 100644 index 7e66ffb36a..0000000000 --- a/include/wx/os2/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/os2/joystick.h b/include/wx/os2/joystick.h deleted file mode 100644 index 30324fc035..0000000000 --- a/include/wx/os2/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/os2/listbox.h b/include/wx/os2/listbox.h deleted file mode 100644 index 967a877cfe..0000000000 --- a/include/wx/os2/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, void *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/os2/listctrl.h b/include/wx/os2/listctrl.h deleted file mode 100644 index 6dfc25df98..0000000000 --- a/include/wx/os2/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/os2/mdi.h b/include/wx/os2/mdi.h deleted file mode 100644 index 841156c16f..0000000000 --- a/include/wx/os2/mdi.h +++ /dev/null @@ -1,167 +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(); -private: - // supress virtual function hiding warning - virtual void Maximize(bool maximize) { wxFrame::Maximize(maximize); }; -}; - -/* 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/os2/menu.h b/include/wx/os2/menu.h deleted file mode 100644 index db15f8fc70..0000000000 --- a/include/wx/os2/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/os2/menuitem.h b/include/wx/os2/menuitem.h deleted file mode 100644 index 9c912967f1..0000000000 --- a/include/wx/os2/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/os2/metafile.h b/include/wx/os2/metafile.h deleted file mode 100644 index e4be296d92..0000000000 --- a/include/wx/os2/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/os2/minifram.h b/include/wx/os2/minifram.h deleted file mode 100644 index 8f1644d558..0000000000 --- a/include/wx/os2/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/os2/msgdlg.h b/include/wx/os2/msgdlg.h deleted file mode 100644 index 58fa8e51ae..0000000000 --- a/include/wx/os2/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/os2/notebook.h b/include/wx/os2/notebook.h deleted file mode 100644 index 18b0793da2..0000000000 --- a/include/wx/os2/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/os2/palette.h b/include/wx/os2/palette.h deleted file mode 100644 index 3482b33934..0000000000 --- a/include/wx/os2/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/os2/pen.h b/include/wx/os2/pen.h deleted file mode 100644 index 938908b56b..0000000000 --- a/include/wx/os2/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/os2/print.h b/include/wx/os2/print.h deleted file mode 100644 index bac3703496..0000000000 --- a/include/wx/os2/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/os2/printdlg.h b/include/wx/os2/printdlg.h deleted file mode 100644 index 7704c3f15d..0000000000 --- a/include/wx/os2/printdlg.h +++ /dev/null @@ -1,76 +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 - -#if wxUSE_PRINTING_ARCHITECTURE - -#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 // wxUSE_PRINTING_ARCHITECTURE - -#endif - // _WX_PRINTDLG_H_ diff --git a/include/wx/os2/private.h b/include/wx/os2/private.h deleted file mode 100644 index 922c172436..0000000000 --- a/include/wx/os2/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/os2/radiobox.h b/include/wx/os2/radiobox.h deleted file mode 100644 index 7150b569f5..0000000000 --- a/include/wx/os2/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(); - bool 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/os2/radiobut.h b/include/wx/os2/radiobut.h deleted file mode 100644 index 8e8bf1313d..0000000000 --- a/include/wx/os2/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/os2/region.h b/include/wx/os2/region.h deleted file mode 100644 index 04d143c2e9..0000000000 --- a/include/wx/os2/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/os2/scrolbar.h b/include/wx/os2/scrolbar.h deleted file mode 100644 index 3ec992e78e..0000000000 --- a/include/wx/os2/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/os2/settings.h b/include/wx/os2/settings.h deleted file mode 100644 index 8ed994f1ba..0000000000 --- a/include/wx/os2/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/os2/setup.h b/include/wx/os2/setup.h deleted file mode 100644 index 7945fcd3e9..0000000000 --- a/include/wx/os2/setup.h +++ /dev/null @@ -1,261 +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 1 - // 0 for no PostScript device context -#define wxUSE_AFM_FOR_POSTSCRIPT 1 - // 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_CHOICE 1 - // Define 1 to use CHOICE - -#define wxUSE_RADIOBUTTON 1 - // Define 1 to use radio button control -#define wxUSE_RADIOBTN 1 - // Unfortunately someone introduced this one, too - -#define wxUSE_SCROLLBAR 1 - // Define 1 to compile contributed wxScrollBar class - -#define wxUSE_CHECKBOX 1 - // Define 1 to compile checkbox - -#define wxUSE_LISTBOX 1 - // Define 1 to compile listbox - -#define wxUSE_SPINBTN 1 - // Define 1 to compile spin button - -// use wxStaticLine class (separator line in the dialog)? -#define wxUSE_STATLINE 1 - -#define wxUSE_CHECKLISTBOX 1 - // Define 1 to compile check listbox - -#define wxUSE_CHOICE 1 - // Define 1 to compile choice - -#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_WX_RESOURCES 1 - // Use .wxr resource mechanism (requires PrologIO library) - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - // Set to 0 to disable document/view architecture -#define wxUSE_MDI_ARCHITECTURE 1 - // Set to 0 to disable MDI document/view architecture -#define wxUSE_PRINTING_ARCHITECTURE 1 - // Set to 0 to disable print/preview architecture code -#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 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_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 1 - // Use JPEG bitmap code -#define wxUSE_SERIAL 1 - // Use serialization (requires utils/serialize) -#define wxUSE_DYNLIB_CLASS 1 - // 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 1 - // Set to 1 to use socket classes -#define wxUSE_HTML 1 - // Set to 1 to use wxHTML sub-library -#define wxUSE_FS_ZIP 1 -#define wxUSE_FS_INET 1 // Set to 1 to enable virtual file systems - -#define wxUSE_BUSYINFO 1 - // wxBusyInfo displays window with message - // when app is busy. Works in same way as - // wxBusyCursor -#define wxUSE_ZIPSTREAM 1 - // input stream for reading from zip archives - -/* - * 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 - -// use wxFile class - required by i18n code, wxConfig and others - recommended -#define wxUSE_FILE 1 - -// use wxTextFile class: requires wxFile, required by wxConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxFile -#define wxUSE_INTL 1 - -// wxLogXXX functions - highly recommended -#define wxUSE_LOG 1 - -// wxValidator class -#define wxUSE_VALIDATORS 1 - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// wxSashWindow class -#define wxUSE_SASH 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// wxToolBar class -#define wxUSE_TOOLBAR 1 - -// wxStatusBar class -#define wxUSE_STATUSBAR 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -#define wxUSE_OWNER_DRAWN 1 - // Owner-drawn menus and listboxes - -/* - * 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. - -#define wxUSE_DRAG_AND_DROP 1 - -#endif - // _WX_SETUP_H_ diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h deleted file mode 100644 index 7945fcd3e9..0000000000 --- a/include/wx/os2/setup0.h +++ /dev/null @@ -1,261 +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 1 - // 0 for no PostScript device context -#define wxUSE_AFM_FOR_POSTSCRIPT 1 - // 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_CHOICE 1 - // Define 1 to use CHOICE - -#define wxUSE_RADIOBUTTON 1 - // Define 1 to use radio button control -#define wxUSE_RADIOBTN 1 - // Unfortunately someone introduced this one, too - -#define wxUSE_SCROLLBAR 1 - // Define 1 to compile contributed wxScrollBar class - -#define wxUSE_CHECKBOX 1 - // Define 1 to compile checkbox - -#define wxUSE_LISTBOX 1 - // Define 1 to compile listbox - -#define wxUSE_SPINBTN 1 - // Define 1 to compile spin button - -// use wxStaticLine class (separator line in the dialog)? -#define wxUSE_STATLINE 1 - -#define wxUSE_CHECKLISTBOX 1 - // Define 1 to compile check listbox - -#define wxUSE_CHOICE 1 - // Define 1 to compile choice - -#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_WX_RESOURCES 1 - // Use .wxr resource mechanism (requires PrologIO library) - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - // Set to 0 to disable document/view architecture -#define wxUSE_MDI_ARCHITECTURE 1 - // Set to 0 to disable MDI document/view architecture -#define wxUSE_PRINTING_ARCHITECTURE 1 - // Set to 0 to disable print/preview architecture code -#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 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_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 1 - // Use JPEG bitmap code -#define wxUSE_SERIAL 1 - // Use serialization (requires utils/serialize) -#define wxUSE_DYNLIB_CLASS 1 - // 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 1 - // Set to 1 to use socket classes -#define wxUSE_HTML 1 - // Set to 1 to use wxHTML sub-library -#define wxUSE_FS_ZIP 1 -#define wxUSE_FS_INET 1 // Set to 1 to enable virtual file systems - -#define wxUSE_BUSYINFO 1 - // wxBusyInfo displays window with message - // when app is busy. Works in same way as - // wxBusyCursor -#define wxUSE_ZIPSTREAM 1 - // input stream for reading from zip archives - -/* - * 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 - -// use wxFile class - required by i18n code, wxConfig and others - recommended -#define wxUSE_FILE 1 - -// use wxTextFile class: requires wxFile, required by wxConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxFile -#define wxUSE_INTL 1 - -// wxLogXXX functions - highly recommended -#define wxUSE_LOG 1 - -// wxValidator class -#define wxUSE_VALIDATORS 1 - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// wxSashWindow class -#define wxUSE_SASH 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// wxToolBar class -#define wxUSE_TOOLBAR 1 - -// wxStatusBar class -#define wxUSE_STATUSBAR 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -#define wxUSE_OWNER_DRAWN 1 - // Owner-drawn menus and listboxes - -/* - * 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. - -#define wxUSE_DRAG_AND_DROP 1 - -#endif - // _WX_SETUP_H_ diff --git a/include/wx/os2/slider.h b/include/wx/os2/slider.h deleted file mode 100644 index 239e914e5c..0000000000 --- a/include/wx/os2/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/os2/spinbutt.h b/include/wx/os2/spinbutt.h deleted file mode 100644 index 7cd3cd7862..0000000000 --- a/include/wx/os2/spinbutt.h +++ /dev/null @@ -1,87 +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; -}; - -// 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/os2/statbmp.h b/include/wx/os2/statbmp.h deleted file mode 100644 index f371fddd2d..0000000000 --- a/include/wx/os2/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/os2/statbox.h b/include/wx/os2/statbox.h deleted file mode 100644 index 1aa4a6f88a..0000000000 --- a/include/wx/os2/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/os2/statline.h b/include/wx/os2/statline.h deleted file mode 100644 index 0b4b2d8341..0000000000 --- a/include/wx/os2/statline.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msw/statline.h -// Purpose: MSW version of wxStaticLine class -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Version: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_STATLINE_H_ -#define _WX_MSW_STATLINE_H_ - -#ifdef __GNUG__ - #pragma interface -#endif - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxStaticLine : public wxStaticLineBase -{ - DECLARE_DYNAMIC_CLASS(wxStaticLine) - -public: - // constructors and pseudo-constructors - wxStaticLine() { } - - wxStaticLine( wxWindow *parent, - wxWindowID id, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticTextNameStr ) - { - Create(parent, id, pos, size, style, name); - } - - bool Create( wxWindow *parent, - wxWindowID id, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticTextNameStr ); -}; - -#endif // _WX_MSW_STATLINE_H_ - - diff --git a/include/wx/os2/stattext.h b/include/wx/os2/stattext.h deleted file mode 100644 index aa8eaf229e..0000000000 --- a/include/wx/os2/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/os2/statusbr.h b/include/wx/os2/statusbr.h deleted file mode 100644 index c5dcc0dc7d..0000000000 --- a/include/wx/os2/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/os2/tabctrl.h b/include/wx/os2/tabctrl.h deleted file mode 100644 index 80740019b4..0000000000 --- a/include/wx/os2/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/os2/taskbar.h b/include/wx/os2/taskbar.h deleted file mode 100644 index 7f4a36b8b4..0000000000 --- a/include/wx/os2/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/os2/textctrl.h b/include/wx/os2/textctrl.h deleted file mode 100644 index 09c11e063e..0000000000 --- a/include/wx/os2/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/os2/timer.h b/include/wx/os2/timer.h deleted file mode 100644 index 953da997c6..0000000000 --- a/include/wx/os2/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/os2/toolbar.h b/include/wx/os2/toolbar.h deleted file mode 100644 index e9fa1e679a..0000000000 --- a/include/wx/os2/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 bool Layout() { return TRUE; } - - // 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/os2/tooltip.h b/include/wx/os2/tooltip.h deleted file mode 100644 index 8b7f805f1a..0000000000 --- a/include/wx/os2/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/os2/treectrl.h b/include/wx/os2/treectrl.h deleted file mode 100644 index cb307ec0e9..0000000000 --- a/include/wx/os2/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/os2/wave.h b/include/wx/os2/wave.h deleted file mode 100644 index e55bd5aa5f..0000000000 --- a/include/wx/os2/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/os2/window.h b/include/wx/os2/window.h deleted file mode 100644 index f4b1798468..0000000000 --- a/include/wx/os2/window.h +++ /dev/null @@ -1,306 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: wxWindow class -// Author: David Webster -// 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 - -#define INCL_DOS -#define INCL_PM -#include - -#define wxKEY_SHIFT 1 -#define wxKEY_CTRL 2 - -// --------------------------------------------------------------------------- -// forward declarations -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxButton; - -#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 wxWindowBase -{ - DECLARE_ABSTRACT_CLASS(wxWindow) - - friend class wxDC; - friend class wxPaintDC; - -public: - wxWindow() { Init(); }; - inline 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 - ); - -// --------------------------------------------------------------------------- -// wxWindowBase pure virtual implementations -// --------------------------------------------------------------------------- - - // Z order - virtual void Raise(); - virtual void Lower(); - // Set the focus to this window - virtual void SetFocus(); - // Warp the pointer the given position - virtual void WarpPointer(int x_pos, int y_pos) ; - // Capture/release mouse - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - // Send the window a refresh event - virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL); - // Clear the window - virtual void Clear(); - // Set window's font - virtual bool SetFont(const wxFont& f); - // Get character size - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - virtual void GetTextExtent( const wxString& string - ,int* x - ,int* y - ,int* descent = NULL - ,int* externalLeading = NULL - ,const wxFont* theFont = NULL - ) const; - - // Configure the window's scrollbar - 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 - ); -#if wxUSE_DRAG_AND_DROP - void SetDropTarget(wxDropTarget *pDropTarget); -#endif - // coordinates translation - virtual void DoClientToScreen( int *x, int *y ) const; - virtual void DoScreenToClient( int *x, int *y ) const; - - // retrieve the position/size of the window - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoGetClientSize( int *width, int *height ) const; - - // 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); - - // same as DoSetSize() for the client size - virtual void DoSetClientSize(int width, int height); - virtual bool DoPopupMenu( wxMenu *menu, int x, int y ); - virtual WXWidget GetHandle() const; - -// --------------------------------------------------------------------------- -// wxWindowBase virtual implementations that need to be overriden -// --------------------------------------------------------------------------- - - // Fit the window around the items - virtual void Fit(); - // Show or hide the window - virtual bool Show(bool show); // check if base implementation is OK - // Enable or disable the window - virtual bool Enable(bool enable); // check if base implementation is OK - // Set the cursor - virtual bool SetCursor(const wxCursor& cursor); // check if base implementation is OK - -// --------------------------------------------------------------------------- -// additional functions -// --------------------------------------------------------------------------- - - // Dialog support: override these and call - // base class members to add functionality - // that can't be done using validators. - 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 ); } - - // 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(); - - - // Get the window with the focus - static wxWindow *FindFocus(); - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept); - - // 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(); } - -#if wxUSE_CARET && WXWIN_COMPATIBILITY - // 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; -#endif - - // Handle a control command - virtual void OnCommand(wxWindow& win, wxCommandEvent& event); - - // 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); - - // EventHandlers - void OnEraseBackground(wxEraseEvent& event); - void OnChar(wxKeyEvent& event); - void OnKeyDown(wxKeyEvent& event); - void OnKeyUp(wxKeyEvent& event); - void OnPaint(wxPaintEvent& event); - void OnIdle(wxIdleEvent& event); - - -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); -*/ - - // Constraint implementation - void UnsetConstraints(wxLayoutConstraints *c); - // Back-pointer to other windows we're involved with, so if we delete - // this window, we must delete any constraints we're involved with. - - wxObject *GetChild(int number) const ; - - // Transfers data to any child controls - void OnInitDialog(wxInitDialogEvent& event); - -protected: - - // Caret data - int m_caretWidth; - int m_caretHeight; - bool m_caretEnabled; - bool m_caretShown; - - wxButton * m_defaultItem; - -public: - int m_returnCode; - bool m_isBeingDeleted; - bool m_isShown; - bool m_winCaptured; - bool m_mouseInWindow; - bool m_backgroundTransparent; - // handles - WXHWND m_hWnd; - WXHMENU m_hMenu; // Menu, if any - - // the size of one page for scrolling - int m_xThumbSize; - int m_yThumbSize; - long m_lDlgCode; - -DECLARE_EVENT_TABLE() -private: - void Init(); - void PMDetachWindowMenu(); - WXHWND GetHwnd() const { return m_hWnd; } - void SetHwnd(WXHWND hWnd) { m_hWnd = hWnd; } -}; - -//////////////////////////////////////////////////////////////////////// -//// INLINES - -inline wxButton *wxWindow::GetDefaultItem() const { return m_defaultItem; } -inline void wxWindow::SetDefaultItem(wxButton *but) { m_defaultItem = but; } -inline void wxWindow::SetReturnCode(int retCode) { m_returnCode = retCode; } -inline int wxWindow::GetReturnCode() { return m_returnCode; } - -// Get the active window. -wxWindow* WXDLLEXPORT wxGetActiveWindow(); - -#endif - // _WX_WINDOW_H_ diff --git a/include/wx/ownerdrw.h b/include/wx/ownerdrw.h deleted file mode 100644 index e92483cc61..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 1c5099ee19..0000000000 --- a/include/wx/palette.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 62bdd7dc6e..0000000000 --- a/include/wx/pen.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 3e6089629c..0000000000 --- a/include/wx/pnghand.h +++ /dev/null @@ -1,19 +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(__WXPM__) -#include "wx/os2/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 9063c3fb0d..0000000000 --- a/include/wx/printdlg.h +++ /dev/null @@ -1,32 +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(__WXPM__) -#include "wx/os2/printdlg.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/prntdlgg.h" -#endif - -#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXPM__) -#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 158019f4ee..0000000000 --- a/include/wx/prntbase.h +++ /dev/null @@ -1,378 +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" - -#if wxUSE_PRINTING_ARCHITECTURE - -#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(); - void OnPrevious(); - void OnNextButton(wxCommandEvent &event) { OnNext(); } - void OnPreviousButton(wxCommandEvent &event) { OnPrevious(); } - void OnChar(wxKeyEvent &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 // wxUSE_PRINTING_ARCHITECTURE - -#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 109b51a4ad..0000000000 --- a/include/wx/prop.h +++ /dev/null @@ -1,338 +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" -#include "wx/sizer.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 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(wxString &stream); // Write this expression as a top-level clause - virtual void WritePropertyType(wxString &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 98ac6d0e9c..0000000000 --- a/include/wx/proplist.h +++ /dev/null @@ -1,562 +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 - wxSizer* m_middleSizer; - - bool m_detailedEditing; // E.g. using listbox for choices - - 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() -private: - virtual void ShowView(wxPropertySheet *propertySheet, wxWindow *window) - { wxPropertyView::ShowView(propertySheet, window); }; -}; - -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/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 5aeea291be..0000000000 --- a/include/wx/protocol/http.h +++ /dev/null @@ -1,51 +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, m_proxy_mode; - 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); - - void SetProxyMode(bool on); - -protected: - typedef enum { - wxHTTP_GET, - wxHTTP_HEAD - } 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 48bf1996af..0000000000 --- a/include/wx/protocol/protocol.h +++ /dev/null @@ -1,94 +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/defs.h" - - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stream.h" - -#if wxUSE_SOCKETS -#include "wx/socket.h" -#endif - -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 -#if wxUSE_SOCKETS - : public wxSocketClient { -#else - : public wxObject { -#endif - DECLARE_ABSTRACT_CLASS(wxProtocol) -public: - wxProtocol(); - -#if wxUSE_SOCKETS - bool Reconnect(); - virtual bool Connect( const wxString& WXUNUSED(host) ) { return FALSE; } - virtual bool Connect( wxSockAddress& addr, bool WXUNUSED(wait) = TRUE) { return wxSocketClient::Connect(addr); } -#endif - - 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) ) {} -}; - -#if wxUSE_SOCKETS -wxProtocolError WXDLLEXPORT GetLine(wxSocketBase *sock, wxString& result); -#endif - -#endif // _WX_PROTOCOL_PROTOCOL_H diff --git a/include/wx/qt/app.h b/include/wx/qt/app.h deleted file mode 100644 index 8535882520..0000000000 --- a/include/wx/qt/app.h +++ /dev/null @@ -1,156 +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; } - /** Returns the standard icons for the msg dialogs, implemented in - src/generic/msgdlgg.cpp and src/gtk/app.cpp. */ - virtual wxIcon GetStdIcon(int which) const; - - 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 dc4b1df2ab..0000000000 --- a/include/wx/radiobox.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 01023e4c17..0000000000 --- a/include/wx/radiobut.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 ee0fd6ac06..0000000000 --- a/include/wx/region.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 bbd5aa1f75..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 wxInt32 GetValue1() const { return m_value1; } - inline wxInt32 GetValue2() const { return m_value2; } - inline wxInt32 GetValue3() const { return m_value3; } - inline wxInt32 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 wxInt32 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 74f0c57a35..0000000000 --- a/include/wx/sckaddr.h +++ /dev/null @@ -1,115 +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 - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" - -#if wxUSE_SOCKETS - -#include "wx/string.h" -#include "wx/gsocket.h" - - -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(); - virtual int Type() = 0; - - GAddress *GetAddress() const { return m_address; } - void SetAddress(GAddress *address); - const wxSockAddress& operator =(const wxSockAddress& addr); - - void CopyObject(wxObject& dest) const; - -protected: - GAddress *m_address; -}; - -class WXDLLEXPORT wxIPV4address : public wxSockAddress { - DECLARE_DYNAMIC_CLASS(wxIPV4address) -public: - wxIPV4address(); - virtual ~wxIPV4address(); - - bool Hostname(const wxString& name); - bool Hostname(unsigned long addr); - bool Service(const wxString& name); - bool Service(unsigned short port); - 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 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(); - - 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; - - inline int Type() { return wxSockAddress::IPV6; } -}; -#endif - -#ifdef __UNIX__ -#include -#include - -class WXDLLEXPORT wxUNIXaddress : public wxSockAddress { - DECLARE_DYNAMIC_CLASS(wxUNIXaddress) -private: - struct sockaddr_un *m_addr; -public: - wxUNIXaddress(); - ~wxUNIXaddress(); - - void Filename(const wxString& name); - wxString Filename(); - - inline int Type() { return wxSockAddress::UNIX; } -}; -#endif - // __UNIX__ - -#endif - // wxUSE_SOCKETS - -#endif - // _WX_NETWORK_ADDRESS_H diff --git a/include/wx/sckipc.h b/include/wx/sckipc.h deleted file mode 100644 index 9cbc4735e5..0000000000 --- a/include/wx/sckipc.h +++ /dev/null @@ -1,136 +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&, - GSocketEvent, char *); - friend void Server_OnRequest(wxSocketServer&, - GSocketEvent, 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); -private: - // to prevent virtual function hiding warnings - virtual bool Execute(const wxString& str) { return(wxConnectionBase::Execute(str)); }; -}; - -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 6ef70e4e91..0000000000 --- a/include/wx/sckstrm.h +++ /dev/null @@ -1,70 +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" - -#if wxUSE_SOCKETS && wxUSE_STREAMS - -#include "wx/socket.h" - -class WXDLLEXPORT wxSocketOutputStream : public wxOutputStream -{ - public: - wxSocketOutputStream(wxSocketBase& s); - ~wxSocketOutputStream(); - - off_t SeekO( off_t WXUNUSED(pos), wxSeekMode WXUNUSED(mode) ) - { return -1; } - off_t TellO() const - { 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(); - - off_t SeekI( off_t WXUNUSED(pos), wxSeekMode WXUNUSED(mode) ) - { return -1; } - off_t TellI() const - { 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 - // wxUSE_SOCKETS && wxUSE_STREAMS - -#endif - // __SCK_STREAM_H__ diff --git a/include/wx/scrolbar.h b/include/wx/scrolbar.h deleted file mode 100644 index 301291e7b2..0000000000 --- a/include/wx/scrolbar.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 0109917b1d..0000000000 --- a/include/wx/settings.h +++ /dev/null @@ -1,125 +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(__WXPM__) -#include "wx/os2/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 076a4d4c78..0000000000 --- a/include/wx/setup.h +++ /dev/null @@ -1,28 +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__) && !defined(__WXPM__) -# error No __WXxxx__ define set! Please define one of __WXGTK__,__WXMSW__,__WXMOTIF__,__WXMAC__,__WXQT__,__WXPM__,__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(__WXPM__) -#include "wx/os2/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/sizer.h b/include/wx/sizer.h deleted file mode 100644 index 5b8af95cdb..0000000000 --- a/include/wx/sizer.h +++ /dev/null @@ -1,172 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sizer.h -// Purpose: provide wxSizer class for layounting -// Author: Robert Roebling and Robin Dunn -// Modified by: -// Created: -// RCS-ID: $Id$ -// Copyright: (c) Robin Dunn, Dirk Holtwick and Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXSIZER_H__ -#define __WXSIZER_H__ - -#ifdef __GNUG__ -#pragma interface "sizer.h" -#endif - -#include "wx/defs.h" - -#include "wx/window.h" -#include "wx/frame.h" -#include "wx/dialog.h" - -//--------------------------------------------------------------------------- -// classes -//--------------------------------------------------------------------------- - -class wxStaticBox; - -class wxSizerItem; -class wxSizer; -class wxBoxSizer; -class wxStaticBoxSizer; - -//--------------------------------------------------------------------------- -// wxSizerItem -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxSizerItem: public wxObject -{ -public: - // spacer - wxSizerItem( int width, int height, int option, int flag, int border ); - - // window - wxSizerItem( wxWindow *window, int option, int flag, int border ); - - // subsizer - wxSizerItem( wxSizer *sizer, int option, int flag, int border ); - - virtual wxSize GetSize(); - virtual wxSize CalcMin(); - virtual void SetDimension( wxPoint pos, wxSize size ); - - bool IsWindow(); - bool IsSizer(); - bool IsSpacer(); - - wxWindow *GetWindow() const - { return m_window; } - wxSizer *GetSizer() const - { return m_sizer; } - int GetOption() const - { return m_option; } - int GetFlag() const - { return m_flag; } - int GetBorder() const - { return m_border; } - -protected: - wxWindow *m_window; - wxSizer *m_sizer; - wxSize m_size; - wxSize m_minSize; - int m_option; - int m_border; - int m_flag; -}; - -//--------------------------------------------------------------------------- -// wxSizer -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxSizer: public wxObject -{ -public: - wxSizer(); - ~wxSizer(); - - virtual void Add( wxWindow *window, int option = 0, int flag = 0, int border = 0 ); - virtual void Add( wxSizer *sizer, int option = 0, int flag = 0, int border = 0 ); - virtual void Add( int width, int height, int option = 0, int flag = 0, int border = 0 ); - - virtual void Prepend( wxWindow *window, int option = 0, int flag = 0, int border = 0 ); - virtual void Prepend( wxSizer *sizer, int option = 0, int flag = 0, int border = 0 ); - virtual void Prepend( int width, int height, int option = 0, int flag = 0, int border = 0 ); - - virtual bool Remove( wxWindow *window ); - virtual bool Remove( wxSizer *sizer ); - virtual bool Remove( int pos ); - - void SetDimension( int x, int y, int width, int height ); - - wxSize GetSize() - { return m_size; } - wxPoint GetPosition() - { return m_position; } - wxSize GetMinSize() - { return CalcMin(); } - - virtual void RecalcSizes() = 0; - virtual wxSize CalcMin() = 0; - - virtual void Layout(); - - void Fit( wxWindow *window ); - void SetSizeHints( wxWindow *window ); - -protected: - wxSize m_size; - wxPoint m_position; - wxList m_children; - - wxSize GetMinWindowSize( wxWindow *window ); -}; - -//--------------------------------------------------------------------------- -// wxBoxSizer -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxBoxSizer: public wxSizer -{ -public: - wxBoxSizer( int orient ); - - void RecalcSizes(); - wxSize CalcMin(); - - int GetOrientation() - { return m_orient; } - -protected: - int m_orient; - int m_stretchable; - int m_minWidth; - int m_minHeight; - int m_fixedWidth; - int m_fixedHeight; -}; - -//--------------------------------------------------------------------------- -// wxStaticBoxSizer -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxStaticBoxSizer: public wxBoxSizer -{ -public: - wxStaticBoxSizer( wxStaticBox *box, int orient ); - - void RecalcSizes(); - wxSize CalcMin(); - - wxStaticBox *GetStaticBox() - { return m_staticBox; } - -protected: - wxStaticBox *m_staticBox; -}; - -#endif - // __WXSIZER_H__ diff --git a/include/wx/slider.h b/include/wx/slider.h deleted file mode 100644 index 772c2e5db4..0000000000 --- a/include/wx/slider.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 762e01c863..0000000000 --- a/include/wx/socket.h +++ /dev/null @@ -1,233 +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 - -#include "wx/defs.h" - -#if wxUSE_SOCKETS - -// --------------------------------------------------------------------------- -// wxSocket headers (generic) -// --------------------------------------------------------------------------- -#ifdef WXPREC -# include -#else -# include -# include -#endif - -#include -#include "wx/gsocket.h" - -class WXDLLEXPORT wxTimer; -class WXDLLEXPORT wxSocketEvent; -class WXDLLEXPORT wxSocketBase : public wxEvtHandler -{ - DECLARE_CLASS(wxSocketBase) -public: - - enum { NONE=0, NOWAIT=1, WAITALL=2, SPEED=4 }; - typedef int wxSockFlags; - // Type of request - - enum wxSockType { SOCK_CLIENT, SOCK_SERVER, SOCK_INTERNAL, SOCK_UNINIT }; - typedef void (*wxSockCbk)(wxSocketBase& sock,GSocketEvent evt,char *cdata); - -protected: - GSocket *m_socket; // wxSocket socket - wxSockFlags m_flags; // wxSocket flags - wxSockType m_type; // wxSocket type - GSocketEventFlags m_neededreq; // Specify which requet signals we need - size_t m_lcount; // Last IO request size - unsigned long m_timeout; // IO timeout value - - char *m_unread; // Pushback buffer - size_t m_unrd_size; // Pushback buffer size - size_t m_unrd_cur; // Pushback pointer - - wxSockCbk m_cbk; // C callback - char *m_cdata; // C callback data - - bool m_connected; // Connected ? - bool m_notify_state; // Notify state - int m_id; // Socket id (for event handler) - - // Defering variables - enum { - DEFER_READ, DEFER_WRITE, NO_DEFER - } m_defering; // Defering state - char *m_defer_buffer; // Defering target buffer - size_t m_defer_nbytes; // Defering buffer size - wxTimer *m_defer_timer; // Timer for defering mode - - wxList m_states; // Stack of states - -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_socket != NULL); }; - inline bool Error() const - { return (GSocket_GetError(m_socket) != GSOCK_NOERROR); }; - inline bool IsConnected() const { return m_connected; }; - inline bool IsDisconnected() const { return !IsConnected(); }; - inline bool IsNoWait() const { return ((m_flags & NOWAIT) != 0); }; - bool IsData() const; - inline size_t LastCount() const { return m_lcount; } - inline GSocketError LastError() const { return GSocket_GetError(m_socket); } - 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(GSocketEventFlags flags); - virtual void OnRequest(GSocketEvent req_evt); - - // Public internal callback - virtual void OldOnNotify(GSocketEvent 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 GSocketEventFlags NeededReq() const { return m_neededreq; } - - static GSocketEventFlags EventToNotify(GSocketEvent 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); - - int DeferRead(char *buffer, size_t nbytes); - int DeferWrite(const char *buffer, size_t nbytes); - void DoDefer(GSocketEvent evt); - - // Pushback library - size_t GetPushback(char *buffer, size_t size, bool peek); -}; - -//////////////////////////////////////////////////////////////////////// - -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(GSocketEvent flags); -}; - -class WXDLLEXPORT wxSocketEvent : public wxEvent { - DECLARE_DYNAMIC_CLASS(wxSocketEvent) -public: - wxSocketEvent(int id = 0); - - GSocketEvent SocketEvent() const { return m_skevt; } - wxSocketBase *Socket() const { return m_socket; } - - void CopyObject(wxObject& obj_d) const; - -public: - GSocketEvent 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 - // wxUSE_SOCKETS - -#endif - // _WX_NETWORK_SOCKET_H diff --git a/include/wx/spinbutt.h b/include/wx/spinbutt.h deleted file mode 100644 index 02f38a74b0..0000000000 --- a/include/wx/spinbutt.h +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/spinbutt.h -// Purpose: wxSpinButtonBase class -// Author: Julian Smart, Vadim Zeitlin -// Modified by: -// Created: 23.07.99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_BASE_ -#define _WX_SPINBUTT_H_BASE_ - -#ifdef __GNUG__ -#pragma interface "spinbutbase.h" -#pragma implementation "spinbutbase.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#ifdef wxUSE_SPINBTN - -#include "wx/control.h" -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// The wxSpinButton is like a small scrollbar than is often placed next -// to a text control. -// -// Styles: -// 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 wxSpinButtonBase : public wxControl -{ -public: - wxSpinButtonBase() { InitBase(); } - - // accessors - virtual int GetValue() const = 0; - virtual int GetMin() const { return m_min; } - virtual int GetMax() const { return m_max; } - - // operations - virtual void SetValue(int val) = 0; - virtual void SetRange(int minVal, int maxVal) - { - m_min = minVal; - m_max = maxVal; - } - -protected: - // init the base part of the control - void InitBase() - { - m_min = 0; - m_max = 100; - } - - // the range value - int m_min; - int m_max; -}; - -// ---------------------------------------------------------------------------- -// include the declaration of the real class -// ---------------------------------------------------------------------------- - -#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(__WXPM__) - #include "wx/os2/spinbutt.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/spinbutt.h" -#endif - -// ---------------------------------------------------------------------------- -// the wxSpinButton event -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxSpinEvent : public wxNotifyEvent -{ - DECLARE_DYNAMIC_CLASS(wxSpinEvent) - -public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0) - : wxNotifyEvent(commandType, id) - { - } - - // get the current value of the control - int GetPosition() const { return m_commandInt; } - void SetPosition(int pos) { m_commandInt = pos; } -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -// macros for handling spin events -#ifndef EVT_SPIN_UP -#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, -#endif -#ifndef EVT_SPIN_DOWN -#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, -#endif -#ifndef EVT_SPIN -#define EVT_SPIN(id, func) { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, -#endif - -#endif // wxUSE_SPINBTN - -#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 764a0fe7e3..0000000000 --- a/include/wx/statbmp.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 e67a1698e3..0000000000 --- a/include/wx/statbox.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 956dc75a68..0000000000 --- a/include/wx/statline.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef _WX_STATLINE_H_BASE_ -#define _WX_STATLINE_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// this defines wxUSE_STATLINE -#include "wx/defs.h" - -#if wxUSE_STATLINE - -// the base class declaration -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -// the default name for objects of class wxStaticLine -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticTextNameStr; - -// ---------------------------------------------------------------------------- -// wxStaticLine - a line in a dialog -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxStaticLineBase : public wxControl -{ -public: - // constructor - wxStaticLineBase() { } - - // is the line vertical? - bool IsVertical() const { return (GetWindowStyle() & wxLI_VERTICAL) != 0; } - - // get the default size for the "lesser" dimension of the static line - static int GetDefaultSize() { return 2; } - -protected: - // set the right size for the right dimension - wxSize AdjustSize(const wxSize& size) - { - wxSize sizeReal(size); - if ( IsVertical() ) - { - if ( size.x == -1 ) - sizeReal.x = GetDefaultSize(); - } - else - { - if ( size.y == -1 ) - sizeReal.y = GetDefaultSize(); - } - - return sizeReal; - } -}; - -// ---------------------------------------------------------------------------- -// now include the actual class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/statline.h" -#elif defined(__WXGTK__) - #include "wx/gtk/statline.h" -#elif defined(__WXPM__) - #include "wx/os2/statline.h" -#else // use generic implementation for all other platforms - #include "wx/generic/statline.h" -#endif - -#endif // wxUSE_STATLINE - -#endif - // _WX_STATLINE_H_BASE_ diff --git a/include/wx/stattext.h b/include/wx/stattext.h deleted file mode 100644 index 48ea950c52..0000000000 --- a/include/wx/stattext.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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/strconv.h b/include/wx/strconv.h deleted file mode 100644 index 3ff2d7a8db..0000000000 --- a/include/wx/strconv.h +++ /dev/null @@ -1,182 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: strconv.h -// Purpose: conversion routines for char sets any Unicode -// Author: Robert Roebling, Ove Kaaven -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Ove Kaaven, Robert Roebling, Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXSTRCONVH__ -#define _WX_WXSTRCONVH__ - -#ifdef __GNUG__ - #pragma interface "strconv.h" -#endif - -#include "wx/defs.h" -#include "wx/wxchar.h" -#include "wx/buffer.h" - -#include - -#if wxUSE_WCHAR_T - -//--------------------------------------------------------------------------- -// wxMBConv (base class for conversions, using libc conversion itself) -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxMBConv -{ -public: - - // the actual conversion takes place here - 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; - -//--------------------------------------------------------------------------- -// wxMBConvFile (for conversion to filenames) -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxMBConvFile: 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 wxMBConvFile) wxConvFile; - -//--------------------------------------------------------------------------- -// wxMBConvUTF7 (for conversion using UTF7 encoding) -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxMBConvUTF7: 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 wxMBConvUTF7) wxConvUTF7; - -//--------------------------------------------------------------------------- -// wxMBConvUTF8 (for conversion using UTF8 encoding) -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxMBConvUTF8: 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 wxMBConvUTF8) wxConvUTF8; - -#ifdef __WXGTK12__ -//--------------------------------------------------------------------------- -// wxMBConvUTF8 (for conversion using GDK's internal converions) -//--------------------------------------------------------------------------- - -class WXDLLEXPORT wxMBConvGdk: 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 wxMBConvGdk) wxConvGdk; -#endif - -//--------------------------------------------------------------------------- -// wxCSConv (for conversion based on laodable char sets) -//--------------------------------------------------------------------------- - -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 - -//--------------------------------------------------------------------------- -// filename conversion macros -//--------------------------------------------------------------------------- - -// 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 - -//--------------------------------------------------------------------------- -// stand-ins in absence of 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; -WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent; - -#define wxFNCONV(name) name -#define FNSTRINGCAST WXSTRINGCAST - -#endif - // wxUSE_WCHAR_T - -#endif - // _WX_WXSTRCONVH__ - diff --git a/include/wx/stream.h b/include/wx/stream.h deleted file mode 100644 index d9fe1b89c0..0000000000 --- a/include/wx/stream.h +++ /dev/null @@ -1,299 +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 "wx/defs.h" - -#if wxUSE_STREAMS - -#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); - -// --------------------------------------------------------------------------- -// wxStream: base classes -// --------------------------------------------------------------------------- - -#define wxStream_NOERROR wxSTREAM_NOERROR -#define wxStream_EOF wxSTREAM_EOF -#define wxStream_WRITE_ERR wxSTREAM_WRITE_ERROR -#define wxStream_READ_ERR wxSTREAM_READ_ERROR - -typedef enum { - wxStream_NOERROR = 0, - wxStream_EOF, - wxStream_WRITE_ERR, - wxStream_READ_ERR -} wxStreamError; - -class WXDLLEXPORT wxStreamBase { - public: - wxStreamBase(); - virtual ~wxStreamBase(); - - bool operator!() const { return (LastError() != wxSTREAM_NOERROR); } - wxStreamError LastError() const { return m_lasterror; } - virtual size_t GetSize() const { return ~((size_t)0); } - size_t StreamSize() const { return GetSize(); } - - protected: - - 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: - friend class wxStreamBuffer; - - size_t m_lastcount; - wxStreamError m_lasterror; -}; - -class WXDLLEXPORT wxInputStream: public wxStreamBase { - public: - wxInputStream(); - virtual ~wxInputStream(); - - // IO functions - virtual char Peek(); - char GetC(); - virtual wxInputStream& Read(void *buffer, size_t size); - wxInputStream& Read(wxOutputStream& stream_out); - - // Position functions - virtual off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart); - virtual off_t TellI() const; - - // State functions - virtual size_t LastRead() { return wxStreamBase::m_lastcount; } - - // Ungetch - size_t Ungetch(const void *buffer, size_t size); - bool Ungetch(char c); - - // Operators - wxInputStream& operator>>(wxOutputStream& out) { return Read(out); } -#if wxUSE_SERIAL - wxInputStream& operator>>(wxObject *& obj); -#endif - wxInputStream& operator>>( __wxInputManip func) { return func(*this); } - - protected: - // Ungetch managers - char *m_wback; - size_t m_wbacksize; - size_t m_wbackcur; - - char *AllocSpaceWBack(size_t needed_size); - size_t GetWBack(char *buf, size_t bsize); - -}; - -class WXDLLEXPORT wxOutputStream: public wxStreamBase { - public: - wxOutputStream(); - virtual ~wxOutputStream(); - - virtual wxOutputStream& Write(const void *buffer, size_t size); - wxOutputStream& Write(wxInputStream& stream_in); - - virtual off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart); - virtual off_t TellO() const; - - virtual size_t LastWrite() const { return wxStreamBase::m_lastcount; } - - virtual void Sync(); - - wxOutputStream& operator<<(wxInputStream& out) { return Write(out); } -#if wxUSE_SERIAL - wxOutputStream& operator<<(wxObject& obj); -#endif - wxOutputStream& operator<<( __wxOutputManip func) { return func(*this); } -}; - -// --------------------------------------------------------------------------- -// "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 GetSize() const { return m_parent_i_stream->GetSize(); } - - 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 GetSize() const { return m_parent_o_stream->GetSize(); } - - protected: - wxOutputStream *m_parent_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); - - 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: - 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; -}; - -// --------------------------------------------------------------------------- -// wxBufferedStreams -// --------------------------------------------------------------------------- - -class wxBufferedInputStream: public wxFilterInputStream { - public: - wxBufferedInputStream(wxInputStream& stream); - ~wxBufferedInputStream(); - - wxInputStream& Read(void *buffer, size_t size); - - // Position functions - off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart); - off_t TellI() const; - - wxStreamBuffer *InputStreamBuffer() const { return m_i_streambuf; } - - protected: - size_t OnSysRead(void *buffer, size_t bufsize); - off_t OnSysSeek(off_t seek, wxSeekMode mode); - off_t OnSysTell() const; - - protected: - wxStreamBuffer *m_i_streambuf; -}; - -class wxBufferedOutputStream: public wxFilterOutputStream { - public: - wxBufferedOutputStream(wxOutputStream& stream); - ~wxBufferedOutputStream(); - - wxOutputStream& Write(const void *buffer, size_t size); - - // Position functions - off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart); - off_t TellO() const; - - void Sync(); - - wxStreamBuffer *OutputStreamBuffer() const { return m_o_streambuf; } - - protected: - size_t OnSysWrite(const void *buffer, size_t bufsize); - off_t OnSysSeek(off_t seek, wxSeekMode mode); - off_t OnSysTell() const; - - protected: - wxStreamBuffer *m_o_streambuf; -}; - -#endif - // wxUSE_STREAMS - -#endif - // _WX_WXSTREAM_H__ diff --git a/include/wx/string.h b/include/wx/string.h deleted file mode 100644 index 993e8a9283..0000000000 --- a/include/wx/string.h +++ /dev/null @@ -1,1004 +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 - -#ifdef __EMX__ - #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() ) - -// include conversion classes -#include "wx/strconv.h" - -// --------------------------------------------------------------------------- -// 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(__EMX__) - return stricmp(psz1, psz2); -#elif defined(__WXPM__) - 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); } -}; - -// --------------------------------------------------------------------------- -// 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; } - // comparison with a signle character: returns TRUE if equal - bool IsSameAs(wxChar c, bool compareWithCase = TRUE) const - { - return (Len() == 1) && (compareWithCase ? GetChar(0u) == c - : wxToupper(GetChar(0u)) == wxToupper(c)); - } - - // 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); } - -// comparison with char -inline bool operator==(wxChar c, const wxString& s) { return s.IsSameAs(c); } -inline bool operator==(const wxString& s, wxChar c) { return s.IsSameAs(c); } -inline bool operator!=(wxChar c, const wxString& s) { return !s.IsSameAs(c); } -inline bool operator!=(const wxString& s, wxChar c) { return !s.IsSameAs(c); } - -#if wxUSE_UNICODE -inline bool operator==(const wxString& s1, const wxWCharBuffer& s2) - { return (s1.Cmp((const wchar_t *)s2) == 0); } -inline bool operator==(const wxWCharBuffer& s1, const wxString& s2) - { return (s2.Cmp((const wchar_t *)s1) == 0); } -#else -inline bool operator==(const wxString& s1, const wxCharBuffer& s2) - { return (s1.Cmp((const char *)s2) == 0); } -inline bool operator==(const wxCharBuffer& s1, const wxString& s2) - { return (s2.Cmp((const char *)s1) == 0); } -#endif - -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 -// --------------------------------------------------------------------------- - -#if defined(wxSTD_STRING_COMPATIBILITY) && wxUSE_STD_IOSTREAM - -#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 fba1c3f241..0000000000 --- a/include/wx/stubs/app.h +++ /dev/null @@ -1,156 +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; } - - /** Returns the standard icons for the msg dialogs, implemented in - src/generic/msgdlgg.cpp and src/gtk/app.cpp. */ - virtual wxIcon GetStdIcon(int which) const; - - 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 baf3850a04..0000000000 --- a/include/wx/tabctrl.h +++ /dev/null @@ -1,18 +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(__WXPM__) -#include "wx/os2/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 3474858a65..0000000000 --- a/include/wx/taskbar.h +++ /dev/null @@ -1,19 +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(__WXPM__) -#include "wx/os2/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 511220e2bd..0000000000 --- a/include/wx/tbar95.h +++ /dev/null @@ -1,15 +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" -#elif defined(__WXPM__) -#include "wx/os2/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 b79f2200c6..0000000000 --- a/include/wx/tbarmsw.h +++ /dev/null @@ -1,15 +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" -#elif defined(__WXPM__) -#include "wx/os2/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 5e7d35a11f..0000000000 --- a/include/wx/textctrl.h +++ /dev/null @@ -1,185 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: wxTextCtrlBase class - the interface of wxTextCtrl -// Author: Vadim Zeitlin -// Modified by: -// Created: 13.07.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_BASE_ -#define _WX_TEXTCTRL_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma interface "textctrlbase.h" -#endif - -#include "wx/defs.h" -#include "wx/control.h" // the base class - -// 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 - #if wxUSE_STD_IOSTREAM - #include "wx/ioswrap.h" // for iostream classes if we need them - #else // !wxUSE_STD_IOSTREAM - // can't compile this feature in if we don't use streams at all - #define NO_TEXT_WINDOW_STREAM - #endif // wxUSE_STD_IOSTREAM/!wxUSE_STD_IOSTREAM -#endif - -class WXDLLEXPORT wxTextCtrl; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern const wxChar*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -// ---------------------------------------------------------------------------- -// wxTextCtrl: a single or multiple line text zone where user can enter and -// edit text -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextCtrlBase : public wxControl -#ifndef NO_TEXT_WINDOW_STREAM - , public streambuf -#endif - -{ -public: - // creation - // -------- - - wxTextCtrlBase(); - - // accessors - // --------- - - virtual wxString GetValue() const = 0; - virtual void SetValue(const wxString& value) = 0; - - virtual int GetLineLength(long lineNo) const = 0; - virtual wxString GetLineText(long lineNo) const = 0; - virtual int GetNumberOfLines() const = 0; - - virtual bool IsModified() const = 0; - virtual bool IsEditable() const = 0; - - // If the return values from and to are the same, there is no selection. - virtual void GetSelection(long* from, long* to) const = 0; - - // operations - // ---------- - - // editing - virtual void Clear() = 0; - virtual void Replace(long from, long to, const wxString& value) = 0; - virtual void Remove(long from, long to) = 0; - - // load/save the controls contents from/to the file - virtual bool LoadFile(const wxString& file); - virtual bool SaveFile(const wxString& file = wxEmptyString); - - // clears the dirty flag - virtual void DiscardEdits() = 0; - - // writing text inserts it at the current position, appending always - // inserts it at the end - virtual void WriteText(const wxString& text) = 0; - virtual void AppendText(const wxString& text) = 0; - - // translate between the position (which is just an index in the text ctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const = 0; - virtual bool PositionToXY(long pos, long *x, long *y) const = 0; - - virtual void ShowPosition(long pos) = 0; - - // Clipboard operations - virtual void Copy() = 0; - virtual void Cut() = 0; - virtual void Paste() = 0; - - virtual bool CanCopy() const = 0; - virtual bool CanCut() const = 0; - virtual bool CanPaste() const = 0; - - // Undo/redo - virtual void Undo() = 0; - virtual void Redo() = 0; - - virtual bool CanUndo() const = 0; - virtual bool CanRedo() const = 0; - - // Insertion point - virtual void SetInsertionPoint(long pos) = 0; - virtual void SetInsertionPointEnd() = 0; - virtual long GetInsertionPoint() const = 0; - virtual long GetLastPosition() const = 0; - - virtual void SetSelection(long from, long to) = 0; - virtual void SetEditable(bool editable) = 0; - - // streambuf methods -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); -#endif // NO_TEXT_WINDOW_STREAM - - // stream-like insertion operators: these are always available, whether we - // were, or not, compiled with streambuf support - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const wxChar c); - - // obsolete functions -#if WXWIN_COMPATIBILITY - bool Modified() const { return IsModified(); } -#endif - -private: - // the name of the last file loaded with LoadFile() which will be used by - // SaveFile() by default - wxString m_filename; -}; - -// ---------------------------------------------------------------------------- -// include the platform-dependent class definition -// ---------------------------------------------------------------------------- - -#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(__WXPM__) - #include "wx/os2/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 9fe13dda44..0000000000 --- a/include/wx/textdlg.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _WX_TEXTDLG_H_BASE_ -#define _WX_TEXTDLG_H_BASE_ - -#include "wx/generic/textdlgg.h" - -// ---------------------------------------------------------------------------- -// function to get a number from user -// ---------------------------------------------------------------------------- - -long WXDLLEXPORT -wxGetNumberFromUser(const wxString& message, - const wxString& prompt, - const wxString& caption, - long value = 0, - long min = 0, - long max = 100, - wxWindow *parent = (wxWindow *)NULL, - const wxPoint& pos = wxDefaultPosition); - -#endif - // _WX_TEXTDLG_H_BASE_ diff --git a/include/wx/textfile.h b/include/wx/textfile.h deleted file mode 100644 index 84042ca019..0000000000 --- a/include/wx/textfile.h +++ /dev/null @@ -1,188 +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 _WX_TEXTFILE_H -#define _WX_TEXTFILE_H - -#ifdef __GNUG__ - #pragma interface "textfile.h" -#endif - -#include "wx/defs.h" - -#if !wxUSE_FILE - #undef wxUSE_TEXTFILE - #define wxUSE_TEXTFILE 0 -#endif // wxUSE_FILE - -#if wxUSE_TEXTFILE - -#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' - wxTextFileType_Os2 // 'CR' 'LF' -}; - -WX_DEFINE_ARRAY(wxTextFileType, ArrayFileType); - -class WXDLLEXPORT wxTextFile -{ -public: - // constants and static functions - // default type for current platform (determined at compile time) - static const wxTextFileType typeDefault; - - // this function returns a string which is identical to "text" passed in - // except that the line terminator characters are changed to correspond the - // given type. Called with the default argument, the function translates - // the string to the native format (Unix for Unix, DOS for Windows, ...). - static wxString Translate(const wxString& text, - wxTextFileType type = typeDefault); - - // get the file termination string - static const wxChar *GetEOL(wxTextFileType type = 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_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); - - // 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 - - bool m_isOpened; // was the file successfully opened the last time? - - wxString m_strFile; // name of the file -}; - -#else // !wxUSE_TEXTFILE - -// these static wxTextFile methods are used internally by wxWindows, so should -// be defined even if we're compiling without wxTextFile at all. - -class WXDLLEXPORT wxTextFile -{ -public: - // default type for current platform (determined at compile time) - static const wxTextFileType typeDefault; - - // this function returns a string which is identical to "text" passed in - // except that the line terminator characters are changed to correspond the - // given type. Called with the default argument, the function translates - // the string to the native format (Unix for Unix, DOS for Windows, ...). - static wxString Translate(const wxString& text, - wxTextFileType type = typeDefault); - - // get the file termination string - static const wxChar *GetEOL(wxTextFileType type = typeDefault); - -private: - // copy ctor/assignment operator not implemented - wxTextFile(const wxTextFile&); - wxTextFile& operator=(const wxTextFile&); -}; - -#endif // wxUSE_TEXTFILE - -#endif // _WX_TEXTFILE_H - diff --git a/include/wx/thread.h b/include/wx/thread.h deleted file mode 100644 index 7e0dc5997f..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 -#if defined(__WXMSW__) || defined(__WXPM__) - 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&); - -#if defined(__WXMSW__) || defined(__WXPM__) - 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 -#if defined(__WXMSW__) || defined(__WXPM__) - // 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 0b86490de6..0000000000 --- a/include/wx/timer.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/timer.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/timer.h" -#endif - -#endif - // _WX_TIMER_H_BASE_ diff --git a/include/wx/tipdlg.h b/include/wx/tipdlg.h deleted file mode 100644 index 9b02046705..0000000000 --- a/include/wx/tipdlg.h +++ /dev/null @@ -1,83 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: tipdlg.h -// Purpose: declaration of wxTipDialog -// Author: Vadim Zeitlin -// Modified by: -// Created: 28.06.99 -// RCS-ID: $Id$ -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIPDLG_H_ -#define _WX_TIPDLG_H_ - -#ifdef __GNUG__ - #pragma interface "tipdlg.h" -#endif - -// ---------------------------------------------------------------------------- -// headers which we must include here -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_STARTUP_TIPS - -#include "wx/textfile.h" - -// ---------------------------------------------------------------------------- -// wxTipProvider - a class which is used by wxTipDialog to get the text of the -// tips -// ---------------------------------------------------------------------------- - -// the abstract base class: it provides the tips, i.e. implements the GetTip() -// function which returns the new tip each time it's called. To support this, -// wxTipProvider evidently needs some internal state which is the tip "index" -// and which should be saved/restored by the program to not always show one and -// the same tip (of course, you may use random starting position as well...) -class WXDLLEXPORT wxTipProvider -{ -public: - wxTipProvider(size_t currentTip) { m_currentTip = currentTip; } - - // get the current tip and update the internal state to return the next tip - // when called for the next time - virtual wxString GetTip() = 0; - - // get the current tip "index" (or whatever allows the tip provider to know - // from where to start the next time) - size_t GetCurrentTip() const { return m_currentTip; } - - // virtual dtor for the base class - virtual ~wxTipProvider() { } - -protected: - size_t m_currentTip; -}; - -// a function which returns an implementation of wxTipProvider using the -// specified text file as the source of tips (each line is a tip). -// -// NB: the caller is responsible for deleting the pointer! -WXDLLEXPORT wxTipProvider *wxCreateFileTipProvider(const wxString& filename, - size_t currentTip); - -// ---------------------------------------------------------------------------- -// wxTipDialog -// ---------------------------------------------------------------------------- - -// A dialog which shows a "tip" - a short and helpful messages describing to -// the user some program characteristic. Many programs show the tips at -// startup, so the dialog has "Show tips on startup" checkbox which allows to -// the user to disable this (however, it's the program which should show, or -// not, the dialog on startup depending on its value, not this class). -// -// The function returns TRUE if this checkbox is checked, FALSE otherwise. -WXDLLEXPORT bool wxShowTip(wxWindow *parent, - wxTipProvider *tipProvider, - bool showAtStartup = TRUE); - -#endif // wxUSE_STARTUP_TIPS - -#endif // _WX_TIPDLG_H_ 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 7dad6add56..0000000000 --- a/include/wx/toolbar.h +++ /dev/null @@ -1,29 +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(__WXPM__) -# include "wx/os2/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 017bed7de1..0000000000 --- a/include/wx/tooltip.h +++ /dev/null @@ -1,21 +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(__WXPM__) -#include "wx/os2/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 799425a95f..0000000000 --- a/include/wx/treectrl.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef _WX_TREECTRL_H_BASE_ -#define _WX_TREECTRL_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/control.h" -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// include the platform-dependent wxTreeCtrl class -// ---------------------------------------------------------------------------- - -#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(__WXPM__) - #include "wx/generic/treectrl.h" -#elif defined(__WXSTUBS__) - #include "wx/generic/treectrl.h" -#endif - -// ---------------------------------------------------------------------------- -// 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; } - - // label (for EVT_TREE_{BEGIN|END}_LABEL_EDIT only) - const wxString& GetLabel() const { return m_label; } - -private: - // TODO we could save some space by using union here - int m_code; - wxTreeItemId m_item, - m_itemOld; - wxPoint m_pointDrag; - wxString m_label; - - 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, GetLabel() returns -// the current item label for BEGIN and the would be new one for END. -// -// Vetoing BEGIN event means that label editing won't happen at all, -// vetoing END means that the new value is discarded and the old one kept -#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_BASE_ diff --git a/include/wx/txtstrm.h b/include/wx/txtstrm.h deleted file mode 100644 index 5586707252..0000000000 --- a/include/wx/txtstrm.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: txtstrm.h -// Purpose: Text stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 28/06/1998 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TXTSTREAM_H_ -#define _WX_TXTSTREAM_H_ - -#ifdef __GNUG__ -#pragma interface "txtstrm.h" -#endif - -#include - -#if wxUSE_STREAMS - -class WXDLLEXPORT wxTextInputStream { -public: - wxTextInputStream(wxInputStream& s); - ~wxTextInputStream(); - - wxUint32 Read32(); - wxUint16 Read16(); - wxUint8 Read8(); - double ReadDouble(); - wxString ReadString(); - - // Operators - wxTextInputStream& operator>>(wxString& line); - wxTextInputStream& operator>>(wxChar& c); - wxTextInputStream& operator>>(wxInt16& i); - wxTextInputStream& operator>>(wxInt32& i); - wxTextInputStream& operator>>(wxUint16& i); - wxTextInputStream& operator>>(wxUint32& i); - wxTextInputStream& operator>>(double& i); - wxTextInputStream& operator>>(float& f); - - protected: - wxInputStream *m_input; - - wxChar NextNonWhiteSpace(); - void SkipIfEndOfLine( wxChar c ); -}; - -class WXDLLEXPORT wxTextOutputStream { - public: - wxTextOutputStream(wxOutputStream& s); - ~wxTextOutputStream(); - - void Write32(wxUint32 i); - void Write16(wxUint16 i); - void Write8(wxUint8 i); - void WriteDouble(double d); - void WriteString(const wxString& string); - - wxTextOutputStream& operator<<(const wxChar *string); - wxTextOutputStream& operator<<(const wxString& string); - wxTextOutputStream& operator<<(wxChar c); - wxTextOutputStream& operator<<(wxInt16 c); - wxTextOutputStream& operator<<(wxInt32 c); - wxTextOutputStream& operator<<(wxUint16 c); - wxTextOutputStream& operator<<(wxUint32 c); - wxTextOutputStream& operator<<(double f); - wxTextOutputStream& operator<<(float f); - - protected: - wxOutputStream *m_output; -}; - -#endif - // wxUSE_STREAMS - -#endif - // _WX_DATSTREAM_H_ 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/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 0b145297ef..0000000000 --- a/include/wx/url.h +++ /dev/null @@ -1,87 +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" - -#if wxUSE_SOCKETS - #include "wx/protocol/http.h" -#endif - -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; -#if wxUSE_SOCKETS - static wxHTTP *g_proxy; -#endif - wxProtoInfo *m_protoinfo; - wxProtocol *m_protocol; -#if wxUSE_SOCKETS - wxHTTP *m_proxy; -#endif - wxURLError m_error; - wxString m_protoname, m_hostname, m_servname, m_path, m_url; - wxString m_user, m_password; - bool m_useProxy; - - 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 wxString GetHostName() const { return m_hostname; } - inline wxString GetURL() const { return m_url; } - inline wxProtocol& GetProtocol() { return *m_protocol; } - inline wxURLError GetError() const { return m_error; } - inline wxString GetPath() const { return m_path; } - - wxInputStream *GetInputStream(); - -#if wxUSE_SOCKETS - static void SetDefaultProxy(const wxString& url_proxy); - void SetProxy(const wxString& url_proxy); -#endif - - static wxString ConvertToValidURI(const wxString& uri); -}; - -#endif diff --git a/include/wx/utils.h b/include/wx/utils.h deleted file mode 100644 index 368b6409bc..0000000000 --- a/include/wx/utils.h +++ /dev/null @@ -1,367 +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/filefn.h" - -#ifdef __X__ - #include - #include -#endif - -#include - -// ---------------------------------------------------------------------------- -// Forward declaration -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxProcess; -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; - -// FIXME should use wxStricmp() instead -#if defined(__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(); -WXDLLEXPORT bool wxGetFullHostName(wxChar *buf, int maxSize); - -// 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 1dbcdb62ec..0000000000 --- a/include/wx/valgen.h +++ /dev/null @@ -1,64 +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" - -#if wxUSE_VALIDATORS - -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 - // wxUSE_VALIDATORS - -#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 942110e65b..0000000000 --- a/include/wx/valtext.h +++ /dev/null @@ -1,85 +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 - -#include "wx/defs.h" - -#if wxUSE_VALIDATORS - -#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 - // wxUSE_VALIDATORS - -#endif - // _WX_VALTEXTH__ diff --git a/include/wx/variant.h b/include/wx/variant.h deleted file mode 100644 index ac685e092c..0000000000 --- a/include/wx/variant.h +++ /dev/null @@ -1,249 +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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const = 0; -#endif - virtual bool Write(wxString& str) const = 0; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str) = 0; -#endif - 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 14c4152056..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 9 -#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 f0756b1cdc..0000000000 --- a/include/wx/wave.h +++ /dev/null @@ -1,15 +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" -#elif defined(__WXPM__) -#include "wx/os2/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 1ab45426e1..0000000000 --- a/include/wx/wfstream.h +++ /dev/null @@ -1,89 +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 "wx/defs.h" - -#if wxUSE_STREAMS && wxUSE_FILE - -#include -#include -#include -#include - -class wxFileInputStream: public wxInputStream { - public: - wxFileInputStream(const wxString& ifileName); - wxFileInputStream(wxFile& file); - wxFileInputStream(int fd); - ~wxFileInputStream(); - - size_t GetSize() 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 GetSize() 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 - // wxUSE_STREAMS && wxUSE_FILE - -#endif - // _WX_WXFSTREAM_H__ - diff --git a/include/wx/window.h b/include/wx/window.h deleted file mode 100644 index cc2212738b..0000000000 --- a/include/wx/window.h +++ /dev/null @@ -1,837 +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_VALIDATORS - #include "wx/validate.h" // defines wxDefaultValidator -#endif // wxUSE_VALIDATORS - -#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 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, -#if wxUSE_VALIDATORS - const wxValidator& validator = wxDefaultValidator, -#endif // wxUSE_VALIDATORS - 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 = wxBOTH ); - void Center( int direction = wxBOTH ) { Centre(direction); } - void CentreOnParent( int dir = wxBOTH ) { Centre(dir | wxCENTER_FRAME); } - void CenterOnParent( int dir = wxBOTH ) { Centre(dir | wxCENTER_FRAME); } - - // 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 - but not both of them - void SetClientObject( wxClientData *data ) { DoSetClientObject(data); } - wxClientData *GetClientObject() const { return DoGetClientObject(); } - - void SetClientData( void *data ) { DoSetClientData(data); } - void *GetClientData() const { return DoGetClientData(); } - - // 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(); - - bool PopupMenu( wxMenu *menu, const wxPoint& pos ) - { return DoPopupMenu(menu, pos.x, pos.y); } - bool PopupMenu( wxMenu *menu, int x, int y ) - { return DoPopupMenu(menu, x, y); } - - // 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 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; } -#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 - only one type of data can be used with the given window - // (i.e. you cannot set the void data and then associate the window with - // wxClientData or vice versa) - union - { - 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 - - virtual bool DoPopupMenu( wxMenu *menu, int x, int y ) = 0; - - // client data accessors - virtual void DoSetClientObject( wxClientData *data ); - virtual wxClientData *DoGetClientObject() const; - - virtual void DoSetClientData( void *data ); - virtual void *DoGetClientData() const; - - // what kind of data do we have? - enum wxClientDataType - { - ClientData_None, // we don't know yet because we don't have it at all - ClientData_Object, // our client data is typed and we own it - ClientData_Void // client data is untyped and we don't own it - } m_clientDataType; - -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" -#elif defined(__WXPM__) - #include "wx/os2/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/wizard.h b/include/wx/wizard.h deleted file mode 100644 index 0c9e577700..0000000000 --- a/include/wx/wizard.h +++ /dev/null @@ -1,97 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wizard.h -// Purpose: wxWizard class: a GUI control presenting the user with a -// sequence of dialogs which allows to simply perform some task -// Author: Vadim Zeitlin (partly based on work by Ron Kuris and Kevin B. -// Smith) -// Modified by: -// Created: 15.08.99 -// RCS-ID: $Id$ -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WIZARD_H_ -#define _WX_WIZARD_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifndef WX_PRECOMP - #include "wx/dialog.h" // the base class - - #include "wx/event.h" // wxEVT_XXX constants -#endif // WX_PRECOMP - -// ---------------------------------------------------------------------------- -// wxWizard -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxWizard : public wxDialog -{ -public: - // create the wizard control - static wxWizard *Create(wxWindow *parent, - int id = -1, - const wxString& title = wxEmptyString, - const wxBitmap& bitmap = wxNullBitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize); - - // wizard construction: add/insert new page into it - // adds a page at the end - virtual void AddPage(wxPanel *page) = 0; - // adds a page before the page nPage (the new page will have this index) - virtual void InsertPage(int nPage, wxPanel *page) = 0; - - // executes the wizard, returns TRUE if it was successfully finished, FALSE - // if user cancelled it - virtual bool RunWizard() = 0; - - // get the current page (NULL if RunWizard() isn't running) - virtual wxPanel *GetCurrentPage() const = 0; - -private: - DECLARE_DYNAMIC_CLASS(wxWizard) -}; - -// ---------------------------------------------------------------------------- -// wxWizardEvent class represents an event generated by the wizard -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxWizardEvent : public wxNotifyEvent -{ -public: - wxWizardEvent(wxEventType type = wxEVT_NULL, int id = 0); - - // get the previously active page or -1 if none - int GetOldPage() const { return m_pageOld; } - - // get the current page or -1 if none - int GetPage() const { return m_page; } - -private: - int m_pageOld, m_page; - - DECLARE_DYNAMIC_CLASS(wxWizardEvent) -}; - -// ---------------------------------------------------------------------------- -// macros for handling wxWizardEvents -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&); - -// notifies that the page has just been changed -#define EVT_WIZARD_PAGE_CHANGED(id, fn) { wxEVT_WIZARD_PAGE_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL }, - -// the user pressed "" button and the page is going to be -// changed - unless the event handler vetoes the event -#define EVT_WIZARD_PAGE_CHANGING(id, fn) { wxEVT_WIZARD_PAGE_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL }, - -// the user pressed "Cancel" button and the wizard is going to be dismissed - -// unless the event handler vetoes the event -#define EVT_WIZARD_CANCEL(id, fn) { wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL }, - -#endif // _WX_WIZARD_H_ diff --git a/include/wx/wx.h b/include/wx/wx.h deleted file mode 100644 index fd1bddc0a1..0000000000 --- a/include/wx/wx.h +++ /dev/null @@ -1,84 +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/sizer.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 48c1fd1c60..0000000000 --- a/include/wx/wxchar.h +++ /dev/null @@ -1,562 +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__) || defined(__VISAGECPP__) || defined(__EMX__) -# 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 FILE * wxFopen(const wxChar *path, const wxChar *mode); -WXDLLEXPORT FILE * wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream); -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 - -#ifdef wxNEED_WX_TIME_H -WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const struct tm *tm); -#endif - -#endif - //_WX_WXCHAR_H_ - diff --git a/include/wx/wxexpr.h b/include/wx/wxexpr.h deleted file mode 100644 index adaaa4c7f5..0000000000 --- a/include/wx/wxexpr.h +++ /dev/null @@ -1,276 +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/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(FILE* stream); // Write this expression as a top-level clause - void WriteExpr(FILE* stream); // Write as any other subexpression - - // 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(FILE* stream); - - // Compatibility - inline bool ReadProlog(wxChar *filename) { return Read(wxString(filename)); } - inline bool ReadPrologFromString(char *buffer) { return ReadFromString(wxString(buffer)); } - inline void WriteProlog(FILE* 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/wxhtml.h b/include/wx/wxhtml.h deleted file mode 100644 index f8082a7aaa..0000000000 --- a/include/wx/wxhtml.h +++ /dev/null @@ -1,27 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxhtml.h -// Purpose: wxHTML library for wxWindows -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXHTML_H__ -#define __WXHTML_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // __WXHTML_H__ diff --git a/include/wx/wxprec.h b/include/wx/wxprec.h deleted file mode 100644 index 6f28387b89..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 -///////////////////////////////////////////////////////////////////////////// - -// compiler detection; includes setup.h -#include "wx/defs.h" - -// check if to use precompiled headers: do it for most Windows compilers unless -// explicitly disabled by defining NOPCH -#if ((defined(__BORLANDC__) || defined(__VISUALC__) || defined(__WATCOMC__)) && defined(__WXMSW__)) || defined(__WXPM__) - #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 - -#ifdef WX_PRECOMP - -// include standard Windows headers -#ifdef __WXMSW__ - #include - #include "wx/msw/winundef.h" -#endif - -// include the most common wx headers -#include "wx/wx.h" - -#endif // WX_PRECOMP diff --git a/include/wx/xpmhand.h b/include/wx/xpmhand.h deleted file mode 100644 index 0d1a9bd10e..0000000000 --- a/include/wx/xpmhand.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _WX_XPMHAND_H_BASE_ -#define _WX_XPMHAND_H_BASE_ - -// Only wxMSW and wxPM currently defines a separate XPM handler, since -// mostly Windows and Presentation Manager apps won't need XPMs. -#if defined(__WXMSW__) -#include "wx/msw/xpmhand.h" -#endif -#if defined(__WXPM__) -#include "wx/os2/xpmhand.h" -#endif - -#endif - // _WX_XPMHAND_H_BASE_ diff --git a/include/wx/zipstrm.h b/include/wx/zipstrm.h deleted file mode 100644 index 1c4be27845..0000000000 --- a/include/wx/zipstrm.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: zipstream.h -// Purpose: wxZipInputStream for reading files from ZIP archive -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __ZIPSTREAM_H__ -#define __ZIPSTREAM_H__ - -#ifdef __GNUG__ -#pragma interface "zipstrm.h" -#endif - -#include "wx/defs.h" - -#if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB - -#include "wx/stream.h" - -//-------------------------------------------------------------------------------- -// wxZipInputStream -// This class is input stream from ZIP archive. The archive -// must be local file (accessible via FILE*) -//-------------------------------------------------------------------------------- - - -class WXDLLEXPORT wxZipInputStream : public wxInputStream -{ - private: - size_t m_Size; - off_t m_Pos; - void *m_Archive; - // this void* is handle of archive . - // I'm sorry it is void and not proper type but I don't want - // to make unzip.h header public. - - public: - wxZipInputStream(const wxString& archive, const wxString& file); - // archive is name of .zip archive, file is name of file to be extracted. - // Remember that archive must be local file accesible via fopen, fread functions! - ~wxZipInputStream(); - - protected: - virtual size_t GetSize() const {return m_Size;} - virtual size_t OnSysRead(void *buffer, size_t bufsize); - virtual off_t OnSysSeek(off_t seek, wxSeekMode mode); - virtual off_t OnSysTell() const {return m_Pos;} -}; - - -#endif - // wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB - -#endif - // __ZIPSTREAM_H__ - - - - - - - - - - - - - - - - - diff --git a/include/wx/zstream.h b/include/wx/zstream.h deleted file mode 100644 index b1cb0f4760..0000000000 --- a/include/wx/zstream.h +++ /dev/null @@ -1,59 +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 && wxUSE_STREAMS - -#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 - // wxUSE_ZLIB && wxUSE_STREAMS - -#endif - // _WX_WXZSTREAM_H__ - 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 2981cf518a..0000000000 Binary files a/locale/cs.mo and /dev/null differ 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 ebceb3394c..0000000000 Binary files a/locale/cz.mo and /dev/null differ diff --git a/locale/cz.po b/locale/cz.po deleted file mode 100644 index 222e88146b..0000000000 --- a/locale/cz.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/de.po b/locale/de.po deleted file mode 100644 index f1488f30a3..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 " B.C." - -#: ../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/fi.po b/locale/fi.po deleted file mode 100644 index 9ca8d1449a..0000000000 --- a/locale/fi.po +++ /dev/null @@ -1,1997 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-07-06 13:24+0100\n" -"PO-Revision-Date: 1999-07-08 14:04+0200\n" -"Last-Translator: Lauri Jutila \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:465 -#: ../src/generic/dirdlgg.cpp:489 ../src/generic/dirdlgg.cpp:493 -#: 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:453 -#: src/generic/dirdlgg.cpp:449 -msgid "" -"\n" -"does not exist\n" -"Create it now?" -msgstr "" -"\n" -"ei ole olemassa.\n" -"Luodaanko?" - -#: ../src/common/log.cpp:223 ../src/common/log.cpp:227 src/common/log.cpp:209 -#, c-format -msgid " (error %ld: %s)" -msgstr " (virhe %ld: %s)" - -#: ../src/common/date.cpp:385 ../src/common/date.cpp:388 -#: ../src/common/date.cpp:400 ../src/common/date.cpp:403 -#: src/common/date.cpp:384 src/common/date.cpp:399 -msgid " B.C." -msgstr " B.C." - -#: ../src/common/resourc2.cpp:265 ../src/common/resourc2.cpp:1334 -#: ../src/common/resource.cpp:1630 ../src/common/resource.cpp:1631 -#: ../src/common/resource.cpp:2704 ../src/common/resource.cpp:2708 -#: 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 pitää olla kokonaisluku" - -#: src/common/valtext.cpp:143 src/common/valtext.cpp:154 -#, c-format -msgid "%s is invalid." -msgstr "%s on virheellinen." - -#: ../src/common/resourc2.cpp:709 ../src/common/resource.cpp:2075 -#: ../src/common/resource.cpp:2079 src/common/resourc2.cpp:709 -#: src/common/resource.cpp:2057 -#, c-format -msgid "%s not a bitmap resource specification." -msgstr "%s " - -#: ../src/common/resourc2.cpp:864 ../src/common/resource.cpp:2230 -#: ../src/common/resource.cpp:2234 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 "%s pitäisi olla numeerinen." - -#: src/common/valtext.cpp:163 -#, c-format -msgid "%s should only contain ASCII characters." -msgstr "%s saisi sisältää vain ASCII-merkkejä." - -#: src/common/valtext.cpp:171 -#, c-format -msgid "%s should only contain alphabetic characters." -msgstr "%s saisi sisältää vain aakkosia." - -#: src/common/valtext.cpp:179 -#, c-format -msgid "%s should only contain alphabetic or numeric characters." -msgstr "%s saisi sisältää vain aakkosia tai numeerisia merkkejä." - -#: ../src/common/resourc2.cpp:357 ../src/common/resourc2.cpp:1430 -#: ../src/common/resource.cpp:1723 ../src/common/resource.cpp:1724 -#: ../src/common/resource.cpp:2801 ../src/common/resource.cpp:2805 -#: 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: " - -#: ../src/common/log.cpp:638 ../src/common/log.cpp:650 -#: ../src/generic/tipdlg.cpp:171 src/common/log.cpp:633 -msgid "&Close" -msgstr "&Sulje" - -#: ../src/common/log.cpp:639 ../src/common/log.cpp:651 src/common/log.cpp:634 -msgid "&Log" -msgstr "&Loki" - -#: ../src/common/docview.cpp:1725 ../src/common/docview.cpp:1729 -#: ../src/common/docview.cpp:1736 ../src/common/docview.cpp:1740 -#: ../src/common/docview.cpp:1756 ../src/common/docview.cpp:1767 -#: src/common/docview.cpp:1687 src/common/docview.cpp:1698 -msgid "&Redo" -msgstr "&Tee uudelleen" - -#: ../src/common/docview.cpp:1719 ../src/common/docview.cpp:1723 -#: ../src/common/docview.cpp:1746 ../src/common/docview.cpp:1750 -#: ../src/common/docview.cpp:1777 src/common/docview.cpp:1681 -#: src/common/docview.cpp:1708 -msgid "&Redo " -msgstr "&Tee uudelleen " - -#: ../src/common/log.cpp:635 ../src/common/log.cpp:646 src/common/log.cpp:630 -msgid "&Save..." -msgstr "&Tallenna..." - -#: ../src/common/docview.cpp:1731 ../src/common/docview.cpp:1735 -#: ../src/common/docview.cpp:1762 src/common/docview.cpp:1693 -msgid "&Undo" -msgstr "&Korjaa" - -#: ../src/common/docview.cpp:1706 ../src/common/docview.cpp:1710 -#: ../src/common/docview.cpp:1737 src/common/docview.cpp:1668 -msgid "&Undo " -msgstr "&Korjaa " - -#: ../src/common/config.cpp:381 ../src/common/config.cpp:382 -#: src/common/config.cpp:393 -#, c-format -msgid "'%s' has extra '..', ignored." -msgstr "'%s' sisältää ylimääräisen '..', ohitettu." - -#: ../src/common/intl.cpp:339 ../src/common/intl.cpp:372 -#: src/common/intl.cpp:338 -#, c-format -msgid "'%s' is not a valid message catalog." -msgstr "'%s' ei ole kelvollinen viestiluettelo." - -#: ../src/common/textfile.cpp:133 ../src/common/textfile.cpp:139 -#: src/common/textfile.cpp:132 -#, c-format -msgid "'%s' is probably a binary file." -msgstr "'%s' on mahdollisesti binäärinen tiedosto." - -#: ../src/common/resourc2.cpp:297 ../src/common/resourc2.cpp:1370 -#: ../src/common/resource.cpp:1662 ../src/common/resource.cpp:1663 -#: ../src/common/resource.cpp:2740 ../src/common/resource.cpp:2744 -#: 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 "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:327 ../src/generic/fontdlgg.cpp:329 -#: src/generic/fontdlgg.cpp:329 -msgid "ABCDEFGabcdefg12345" -msgstr "ABCDEFGabcdefg12345" - -#: ../src/generic/colrdlgg.cpp:236 ../src/generic/colrdlgg.cpp:238 -#: src/generic/colrdlgg.cpp:236 -msgid "Add to custom colours" -msgstr "Lisää muokattuihin väreihin" - -#: ../src/generic/prntdlgg.cpp:140 ../src/generic/prntdlgg.cpp:147 -#: src/generic/prntdlgg.cpp:83 -msgid "All" -msgstr "Kaikki" - -#: ../src/common/log.cpp:675 ../src/common/log.cpp:690 src/common/log.cpp:670 -#, c-format -msgid "Append log to file '%s' (choosing [No] will overwrite it)?" -msgstr "Siirrä loki tiedostoon '%s' (valitse [Ei] korvataksesi sen)?" - -#: src/gtk/window.cpp:2716 -msgid "Application Error" -msgstr "Ohjelmavirhe" - -#: ../src/common/resourc2.cpp:844 ../src/common/resource.cpp:2210 -#: ../src/common/resource.cpp:2214 src/common/resourc2.cpp:844 -#: src/common/resource.cpp:2192 -#, c-format -msgid "Bitmap resource specification %s not found." -msgstr "" - -#: ../src/generic/fontdlgg.cpp:219 ../src/generic/fontdlgg.cpp:221 -#: src/generic/fontdlgg.cpp:221 -msgid "Bold" -msgstr "Lihavoitu" - -#: ../src/generic/prntdlgg.cpp:643 ../src/generic/prntdlgg.cpp:650 -#: src/generic/prntdlgg.cpp:536 -msgid "Bottom margin (mm):" -msgstr "Alamarginaali (mm):" - -#: ../src/common/log.cpp:636 ../src/common/log.cpp:648 src/common/log.cpp:631 -msgid "C&lear" -msgstr "&Tyhjennä" - -#: ../src/msw/thread.cpp:183 src/msw/thread.cpp:183 -msgid "Can not create event object." -msgstr "Tapahtumaobjektin luonti epäonnistui." - -#: ../src/msw/thread.cpp:99 src/msw/thread.cpp:99 -msgid "Can not create mutex." -msgstr "Mutexin luonti epäonnistui" - -#: ../src/msw/tooltip.cpp:199 src/msw/tooltip.cpp:199 -msgid "Can not create tooltip control" -msgstr "Työkaluvihjeiden hallinnan luonti epäonnistui" - -#: ../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 "Hakemiston '%s' tiedostojen luettelu epäonnistui" - -#: ../src/msw/clipbrd.cpp:549 src/msw/clipbrd.cpp:549 -#, c-format -msgid "Can not get data in format '%s' from clipboard." -msgstr "Datan haku leikepöydältä formaatissa '%s' epäonnistui." - -#: 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 "Datan lisäys leikepöydälle formaatissa '%s' epäonnistui." - -#: ../src/msw/thread.cpp:410 src/msw/thread.cpp:410 -#, c-format -msgid "Can not resume thread %x" -msgstr "Säikeen %x jatko epäonnistui" - -#: src/gtk/threadpsx.cpp:442 -msgid "Can not retrieve thread scheduling policy." -msgstr "Säikeiden ajoittamisen haku epäonnistui." - -#: ../src/msw/thread.cpp:330 src/gtk/threadpsx.cpp:270 src/msw/thread.cpp:330 -msgid "Can not start thread: error writing TLS." -msgstr "Säikeen käynnistys epäonnistui: virhe TLS-kirjoituksessa." - -#: ../src/msw/thread.cpp:395 src/msw/thread.cpp:395 -#, c-format -msgid "Can not suspend thread %x" -msgstr "Säikeen %x keskeytys epäonnistui" - -#: ../src/msw/thread.cpp:547 src/msw/thread.cpp:543 -msgid "Can not wait for thread termination" -msgstr "Ei voi odottaa säikeen keskeytystä" - -#: ../src/common/docview.cpp:1708 ../src/common/docview.cpp:1712 -#: ../src/common/docview.cpp:1739 src/common/docview.cpp:1670 -msgid "Can't &Undo " -msgstr "&Korjaus epäonnistui " - -#: ../src/msw/thread.cpp:359 src/msw/thread.cpp:359 -msgid "Can't create thread" -msgstr "Säiettä ei voi luoda" - -#: ../src/msw/iniconf.cpp:453 src/msw/iniconf.cpp:464 -#, c-format -msgid "Can't delete the INI file '%s'" -msgstr "INI-tiedoston '%s' poisto epäonnistui" - -#: ../src/unix/utilsunx.cpp:316 ../src/unix/utilsunx.cpp:327 -#: src/gtk/utilsgtk.cpp:360 -#, c-format -msgid "Can't execute '%s'\n" -msgstr "'%s' prosessia ei voi ajaa\n" - -#: ../src/msw/utilsexc.cpp:208 src/msw/utilsexc.cpp:208 -#, c-format -msgid "Can't execute command '%s'" -msgstr "'%s' komennon ajo epäonnistui" - -#: ../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 "Ei voi ladata wxSerial dynaamista kirjastoa" - -#: ../src/common/log.cpp:722 ../src/common/log.cpp:737 src/common/log.cpp:717 -msgid "Can't save log contents to file." -msgstr "Lokisisällön tallennus tiedostoon epäonnistui." - -#: ../src/msw/thread.cpp:384 src/msw/thread.cpp:384 -msgid "Can't set thread priority" -msgstr "Säikeen priorisointi epäonnistui." - -#: ../src/common/dlgcmn.cpp:121 ../src/common/dlgcmn.cpp:166 -#: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:114 -#: ../src/generic/choicdgg.cpp:306 ../src/generic/colrdlgg.cpp:235 -#: ../src/generic/colrdlgg.cpp:237 ../src/generic/dcpsg.cpp:1917 -#: ../src/generic/dcpsg.cpp:1918 ../src/generic/dcpsg.cpp:2039 -#: ../src/generic/dirdlgg.cpp:341 ../src/generic/dirdlgg.cpp:345 -#: ../src/generic/extdlgg.cpp:142 ../src/generic/fontdlgg.cpp:259 -#: ../src/generic/fontdlgg.cpp:261 ../src/generic/msgdlgg.cpp:123 -#: ../src/generic/msgdlgg.cpp:165 ../src/generic/prntdlgg.cpp:172 -#: ../src/generic/prntdlgg.cpp:179 ../src/generic/prntdlgg.cpp:430 -#: ../src/generic/prntdlgg.cpp:437 ../src/generic/prntdlgg.cpp:580 -#: ../src/generic/prntdlgg.cpp:587 ../src/generic/progdlgg.cpp:94 -#: ../src/generic/progdlgg.cpp:174 ../src/generic/textdlgg.cpp:141 -#: ../src/gtk/choicdlg.cpp:272 ../src/gtk/filedlg.cpp:154 -#: ../src/gtk/msgdlg.cpp:137 ../src/gtk/textdlg.cpp:115 -#: 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 "Peruuta" - -#: ../src/msw/app.cpp:213 ../src/msw/app.cpp:223 src/msw/app.cpp:192 -msgid "Cannot initialize OLE" -msgstr "OLE initialization epäonnistui" - -#: ../src/generic/dcpsg.cpp:1296 src/generic/dcpsg.cpp:1247 -msgid "Cannot open file!" -msgstr "Tiedostoa ei voi avata!" - -#: 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 "Merkki '%c' on virheellinen asetuskohdan nimessä." - -#: ../src/common/log.cpp:636 ../src/common/log.cpp:648 src/common/log.cpp:631 -msgid "Clear the log contents" -msgstr "Tyhjennä lokisisältö" - -#: ../src/common/prntbase.cpp:343 ../src/common/prntbase.cpp:352 -#: ../src/generic/progdlgg.cpp:254 src/common/prntbase.cpp:342 -msgid "Close" -msgstr "Sulje" - -#: ../src/common/log.cpp:638 ../src/common/log.cpp:650 src/common/log.cpp:633 -msgid "Close this window" -msgstr "Sulje ikkuna" - -#: ../src/gtk/filedlg.cpp:71 src/gtk/filedlg.cpp:60 -msgid "Confirm" -msgstr "Varmista" - -#: ../src/generic/helpxlp.cpp:242 src/generic/helpxlp.cpp:242 -#, c-format -msgid "Connection to wxHelp timed out in %d seconds" -msgstr "Yhteys wxHelpiin katkesi %d sekunnin jälkeen" - -#: ../src/generic/prntdlgg.cpp:167 ../src/generic/prntdlgg.cpp:174 -#: src/generic/prntdlgg.cpp:106 -msgid "Copies:" -msgstr "Kopiot:" - -#: ../src/common/resourc2.cpp:287 ../src/common/resource.cpp:1652 -#: ../src/common/resource.cpp:1653 src/common/resourc2.cpp:287 -#: src/common/resource.cpp:1635 -#, c-format -msgid "Could not find resource include file %s." -msgstr "Resurssisisältötiedostoa %s ei löydy." - -#: ../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:754 -#: 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 "" -"Hallintaluokan tai ID:n '%s' selvitys epäonnistui. Käytä (non-zero) kokonais-\n" -"lukua tai anna #define (katso manuaali)" - -#: ../src/common/resource.cpp:1203 ../src/common/resource.cpp:1204 -#: 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 "" -"Valikon ID:n '%s' selvitys epäonnistui. Käytä (non-zero) kokonais-\n" -"lukua tai anna #define (katso manuaali)" - -#: ../src/common/prntbase.cpp:675 ../src/common/prntbase.cpp:685 -#: src/common/prntbase.cpp:673 -msgid "Could not start document preview." -msgstr "Dokumentin esikatselu epäonnistui." - -#: ../src/generic/printps.cpp:189 ../src/generic/printps.cpp:193 -#: ../src/generic/printps.cpp:194 ../src/msw/printwin.cpp:228 -#: ../src/msw/printwin.cpp:232 src/generic/printps.cpp:165 -msgid "Could not start printing." -msgstr "Tulostus ei käynnisty." - -#: ../src/common/wincmn.cpp:598 ../src/common/wincmn.cpp:609 -#: ../src/common/wincmn.cpp:713 src/gtk/window.cpp:2716 -#: src/msw/window.cpp:3756 -msgid "Could not transfer data to window" -msgstr "Tiedonsiirto ikkunaan ei onnistu" - -#: ../src/msw/thread.cpp:127 src/msw/thread.cpp:127 -msgid "Couldn't acquire a mutex lock" -msgstr "Mutex lockin saanti epäonnistui" - -#: ../src/msw/dragimag.cpp:88 ../src/msw/dragimag.cpp:116 -#: ../src/msw/imaglist.cpp:96 ../src/msw/imaglist.cpp:98 -#: src/msw/imaglist.cpp:96 -msgid "Couldn't add an image to the image list." -msgstr "Kuvan lisäys (kuva)listaan epäonnistui." - -#: ../src/msw/thread.cpp:231 src/msw/thread.cpp:231 -msgid "Couldn't change the state of event object." -msgstr "Tapahtumaobjektin tilaa ei voitu vaihtaa." - -#: ../src/msw/timer.cpp:109 ../src/msw/timer.cpp:111 src/msw/timer.cpp:109 -msgid "Couldn't create a timer" -msgstr "Ajastimen luonti epäonnistui" - -#: ../src/msw/thread.cpp:430 src/msw/thread.cpp:430 -msgid "Couldn't get the current thread pointer" -msgstr "Säikeen osoittimen haku epäonnistui" - -#: ../src/common/imagpng.cpp:216 ../src/common/imagpng.cpp:218 -#: src/common/image.cpp:662 -msgid "Couldn't load a PNG image - probably file is corrupted." -msgstr "PNG-kuvan lataus ei onnistu - tiedosto ehkä korruptoitunut." - -#: ../src/msw/thread.cpp:159 src/msw/thread.cpp:159 -msgid "Couldn't release a mutex" -msgstr "Mutexin vapautus ei onnistu" - -#: ../src/msw/listctrl.cpp:526 ../src/msw/listctrl.cpp:534 -#: src/msw/listctrl.cpp:500 -#, c-format -msgid "Couldn't retrieve information about list control item %d." -msgstr "Tiedonhaku listanhallinnasta %d epäonnistui." - -#: ../src/msw/thread.cpp:612 src/msw/thread.cpp:608 -msgid "Couldn't terminate thread" -msgstr "Säiettä ei voi keskeyttää" - -#: ../src/generic/dirdlgg.cpp:478 ../src/generic/dirdlgg.cpp:482 -#: src/generic/dirdlgg.cpp:478 -msgid "Create New Directory" -msgstr "Luo uusi hakemisto" - -#: ../src/common/log.cpp:1041 ../src/common/log.cpp:1057 -#: src/common/log.cpp:1022 -msgid "Debug" -msgstr "Debug" - -#: ../src/generic/fontdlgg.cpp:209 ../src/generic/fontdlgg.cpp:211 -#: src/generic/fontdlgg.cpp:211 -msgid "Decorative" -msgstr "Koristeellinen" - -#: ../src/generic/dirdlgg.cpp:450 ../src/generic/dirdlgg.cpp:454 -#: src/generic/dirdlgg.cpp:450 -msgid "Directory does not exist" -msgstr "Hakemistoa ei ole" - -#: ../src/common/docview.cpp:404 ../src/common/docview.cpp:423 -#: src/common/docview.cpp:371 -#, c-format -msgid "Do you want to save changes to document %s?" -msgstr "Haluatko tallentaa muutokset dokumenttiin %s?" - -#: src/common/log.cpp:368 -msgid "DoLogString must be overrided if it's called." -msgstr "DoLogString täytyy korvata jos sitä kutsutaan." - -#: ../src/generic/dirdlgg.cpp:477 ../src/generic/dirdlgg.cpp:481 -#: src/generic/dirdlgg.cpp:477 -msgid "Enter the name of the directory to create" -msgstr "Anna nimi uudelle hakemistolle" - -#: ../src/generic/helphtml.cpp:260 ../src/generic/helphtml.cpp:277 -#: src/generic/helphtml.cpp:260 -msgid "Entries found" -msgstr "Löydetty kohdat" - -#: src/common/CVS/Base/fileconf.cpp:607 src/common/fileconf.cpp:607 -#, c-format -msgid "Entry name can't start with '%c'." -msgstr "Kohdan nimi ei voi alkaa '%c':lla." - -#: ../src/common/config.cpp:333 ../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/common/log.cpp:478 -#: ../src/generic/dcpsg.cpp:1296 ../src/generic/dcpsg.cpp:1403 -#: ../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 "Virhe" - -#: ../src/generic/dirdlgg.cpp:462 ../src/generic/dirdlgg.cpp:466 -#: ../src/generic/dirdlgg.cpp:490 ../src/generic/dirdlgg.cpp:494 -#: src/generic/dirdlgg.cpp:462 src/generic/dirdlgg.cpp:490 -msgid "Error creating directory" -msgstr "Hakemiston luonnissa virhe" - -#: ../src/common/log.cpp:325 ../src/common/log.cpp:329 src/common/log.cpp:332 -msgid "Error: " -msgstr "Virhe: " - -#: ../src/generic/dirdlgg.cpp:230 ../src/generic/dirdlgg.cpp:234 -#: src/generic/dirdlgg.cpp:230 -msgid "Etcetera" -msgstr "Jne" - -#: ../src/msw/utilsexc.cpp:237 src/msw/utilsexc.cpp:237 -#, c-format -msgid "Execution of command '%s' failed" -msgstr "Komennon '%s' ajo epäonnistui" - -#: ../src/common/resourc2.cpp:326 ../src/common/resourc2.cpp:1399 -#: ../src/common/resource.cpp:1691 ../src/common/resource.cpp:1692 -#: ../src/common/resource.cpp:2769 ../src/common/resource.cpp:2773 -#: 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 "Odotettiin '*' resursseja jäsennellessä." - -#: ../src/common/resourc2.cpp:342 ../src/common/resourc2.cpp:1415 -#: ../src/common/resource.cpp:1708 ../src/common/resource.cpp:1709 -#: ../src/common/resource.cpp:2786 ../src/common/resource.cpp:2790 -#: 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 "Odotettiin '=' resusseja jäsennellessä." - -#: ../src/common/resourc2.cpp:312 ../src/common/resourc2.cpp:1385 -#: ../src/common/resource.cpp:1677 ../src/common/resource.cpp:1678 -#: ../src/common/resource.cpp:2755 ../src/common/resource.cpp:2759 -#: 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 "Odotettiin 'char' resusseja jäsennellessä." - -#: ../src/msw/clipbrd.cpp:106 ../src/msw/clipbrd.cpp:112 -#: src/msw/clipbrd.cpp:106 -msgid "Failed to close the clipboard." -msgstr "Leikepöydän sulkeminen epäonnistui." - -#: ../src/generic/dirdlgg.cpp:460 ../src/generic/dirdlgg.cpp:464 -#: ../src/generic/dirdlgg.cpp:488 ../src/generic/dirdlgg.cpp:492 -#: src/generic/dirdlgg.cpp:460 src/generic/dirdlgg.cpp:488 -msgid "Failed to create directory " -msgstr "Ei voitu luoda hakemistoa " - -#: ../src/msw/tooltip.cpp:260 src/msw/tooltip.cpp:260 -#, c-format -msgid "Failed to create the tooltip '%s'" -msgstr "Työkaluvihjeen '%s' luonti epäonnistui" - -#: src/msw/dialog.cpp:143 -msgid "Failed to created dialog." -msgstr "Dialogin luonti ei onnistunut." - -#: ../src/msw/clipbrd.cpp:118 ../src/msw/clipbrd.cpp:124 -#: src/msw/clipbrd.cpp:118 -msgid "Failed to empty the clipboard." -msgstr "Leikepöydän tyhjennys epäonnistui." - -#: ../src/common/resourc2.cpp:808 ../src/common/resource.cpp:2174 -#: ../src/common/resource.cpp:2178 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 "" -"XBM resurssia %s ei löydy.\n" -"Unohditko käyttää wxResourceLoadBitmapData?" - -#: ../src/common/resourc2.cpp:963 ../src/common/resource.cpp:2329 -#: ../src/common/resource.cpp:2333 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 "" -"XBM resurssia %s ei löydy.\n" -"Unohditko käyttää wxResourceLoadIconData?" - -#: ../src/common/resourc2.cpp:824 ../src/common/resource.cpp:2190 -#: ../src/common/resource.cpp:2194 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 "" -"XBM resurssia %s ei löydy.\n" -"Unohditko käyttää wxResourceLoadBitmapData?" - -#: ../src/msw/clipbrd.cpp:86 ../src/msw/clipbrd.cpp:92 src/msw/clipbrd.cpp:86 -msgid "Failed to open the clipboard." -msgstr "Leikepöydän avaus ei onnistunut." - -#: ../src/msw/clipbrd.cpp:375 ../src/msw/clipbrd.cpp:412 -#: src/msw/clipbrd.cpp:375 -msgid "Failed to retrieve data from the clipboard." -msgstr "Dataa ei voida hakea leikepöydältä." - -#: ../src/msw/clipbrd.cpp:262 ../src/msw/clipbrd.cpp:286 -#: src/msw/clipbrd.cpp:262 -msgid "Failed to set clipboard data." -msgstr "Leikepöydän datan asetus epäonnistui." - -#: ../src/unix/threadpsx.cpp:551 ../src/unix/threadpsx.cpp:592 -#: ../src/unix/threadpsx.cpp:601 src/gtk/threadpsx.cpp:508 -#, c-format -msgid "Failed to set thread priority %d." -msgstr "Säikeen prioriteetin %d asetus epäonnistui." - -#: ../src/unix/threadpsx.cpp:662 ../src/unix/threadpsx.cpp:703 -#: ../src/unix/threadpsx.cpp:713 src/gtk/threadpsx.cpp:611 -msgid "Failed to terminate a thread." -msgstr "Säikeen keskeytys ei onnistunut." - -#: ../src/common/log.cpp:545 ../src/common/log.cpp:551 src/common/log.cpp:543 -msgid "Fatal error" -msgstr "Tuhoisa virhe" - -#: ../src/common/log.cpp:318 ../src/common/log.cpp:322 src/common/log.cpp:325 -msgid "Fatal error: " -msgstr "Tuhoisa virhe: " - -#: ../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 "Tiedosto '%s' on olemassa, haluatko korvata sen?" - -#: ../src/common/docview.cpp:280 ../src/common/docview.cpp:281 -#: ../src/common/docview.cpp:311 ../src/common/docview.cpp:317 -#: src/common/docview.cpp:247 src/common/docview.cpp:278 -msgid "File error" -msgstr "Tiedostovirhe" - -#: ../src/msw/filedlg.cpp:259 src/msw/filedlg.cpp:252 -#, c-format -msgid "Files (%s)|%s" -msgstr "Tiedostot (%s)|%s" - -#: ../src/generic/fontdlgg.cpp:126 src/generic/fontdlgg.cpp:126 -msgid "Font" -msgstr "Kirjasin" - -#: ../src/unix/utilsunx.cpp:276 ../src/unix/utilsunx.cpp:287 -#: src/gtk/utilsgtk.cpp:327 -msgid "Fork failed" -msgstr "Haarukointi epäonnistui" - -#: ../src/common/resourc2.cpp:295 ../src/common/resourc2.cpp:1368 -#: ../src/common/resource.cpp:1660 ../src/common/resource.cpp:1661 -#: ../src/common/resource.cpp:2738 ../src/common/resource.cpp:2742 -#: src/common/resourc2.cpp:295 src/common/resourc2.cpp:1368 -#: src/common/resource.cpp:1643 src/common/resource.cpp:2716 -msgid "Found " -msgstr "Löydetty " - -#: ../src/generic/prntdlgg.cpp:158 ../src/generic/prntdlgg.cpp:165 -#: src/generic/prntdlgg.cpp:97 -msgid "From:" -msgstr "Lähettäjä:" - -#: ../src/generic/helphtml.cpp:259 ../src/generic/helphtml.cpp:260 -#: ../src/generic/helphtml.cpp:276 ../src/generic/helphtml.cpp:277 -#: src/generic/helphtml.cpp:259 src/generic/helphtml.cpp:260 -msgid "Help Index" -msgstr "Help Index" - -#: ../src/common/resourc2.cpp:997 ../src/common/resourc2.cpp:1008 -#: ../src/common/resource.cpp:2363 ../src/common/resource.cpp:2367 -#: ../src/common/resource.cpp:2374 ../src/common/resource.cpp:2378 -#: 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 "Kuvakeresurssin määritelmää %s ei löydy." - -#: ../src/common/resource.cpp:232 ../src/common/resource.cpp:234 -#: src/common/resource.cpp:234 -msgid "Ill-formed resource file syntax." -msgstr "Virheellinen resurssitiedoston syntaksi." - -#: ../src/common/log.cpp:482 ../src/common/log.cpp:486 src/common/log.cpp:477 -msgid "Information" -msgstr "Informaatio" - -#: ../src/generic/fontdlgg.cpp:215 ../src/generic/fontdlgg.cpp:217 -#: src/generic/fontdlgg.cpp:217 -msgid "Italic" -msgstr "Italic" - -#: ../src/generic/dcpsg.cpp:1908 ../src/generic/dcpsg.cpp:1909 -#: ../src/generic/dcpsg.cpp:2030 ../src/generic/prntdlgg.cpp:403 -#: ../src/generic/prntdlgg.cpp:410 ../src/generic/prntdlgg.cpp:606 -#: ../src/generic/prntdlgg.cpp:613 src/generic/dcpsg.cpp:1866 -#: src/generic/prntdlgg.cpp:289 src/generic/prntdlgg.cpp:499 -msgid "Landscape" -msgstr "Landscape" - -#: ../src/generic/prntdlgg.cpp:622 ../src/generic/prntdlgg.cpp:629 -#: src/generic/prntdlgg.cpp:515 -msgid "Left margin (mm):" -msgstr "Vasen marginaali (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:218 ../src/generic/fontdlgg.cpp:220 -#: src/generic/fontdlgg.cpp:220 -msgid "Light" -msgstr "Light" - -#: ../src/gtk/filedlg.cpp:212 ../src/gtk/filedlg.cpp:227 -#: ../src/gtk/filedlg.cpp:231 ../src/msw/filedlg.cpp:359 -#: ../src/msw/filedlg.cpp:360 src/gtk/filedlg.cpp:177 src/msw/filedlg.cpp:352 -#, c-format -msgid "Load %s file" -msgstr "Lataa %s tiedosto" - -#: ../src/common/log.cpp:725 ../src/common/log.cpp:740 src/common/log.cpp:720 -#, c-format -msgid "Log saved to the file '%s'." -msgstr "Loki tallennettu tiedostoon '%s'." - -#: ../src/gtk/mdi.cpp:347 ../src/gtk/mdi.cpp:369 src/gtk/mdi.cpp:321 -msgid "MDI child" -msgstr "MDI child" - -#: ../src/common/mimetype.cpp:1263 ../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 "" -"Mime.types tiedosto %s, rivi %d: ylimääräiset merkit kentän arvon jälkeen ohitettu." - -#: ../src/common/mimetype.cpp:977 ../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 tiedosto %s, rivi %d: keskeyttämätön quotattu merkkijono." - -#: ../src/generic/fontdlgg.cpp:210 ../src/generic/fontdlgg.cpp:212 -#: src/generic/fontdlgg.cpp:212 -msgid "Modern" -msgstr "Moderni" - -#: ../src/generic/dirdlgg.cpp:226 ../src/generic/dirdlgg.cpp:230 -#: src/generic/dirdlgg.cpp:226 -msgid "Mounted Devices" -msgstr "Asennetut laitteet" - -#: ../src/generic/dirdlgg.cpp:225 ../src/generic/dirdlgg.cpp:229 -#: src/generic/dirdlgg.cpp:225 -msgid "My Home" -msgstr "Koti" - -#: ../src/generic/dirdlgg.cpp:342 ../src/generic/dirdlgg.cpp:346 -#: src/generic/dirdlgg.cpp:342 -msgid "New..." -msgstr "Uusi..." - -#: ../src/generic/extdlgg.cpp:103 ../src/generic/extdlgg.cpp:115 -#: ../src/generic/msgdlgg.cpp:111 ../src/generic/msgdlgg.cpp:148 -#: ../src/gtk/msgdlg.cpp:125 src/generic/msgdlgg.cpp:131 -msgid "No" -msgstr "Ei" - -#: ../src/common/resourc2.cpp:814 ../src/common/resourc2.cpp:969 -#: ../src/common/resource.cpp:2180 ../src/common/resource.cpp:2184 -#: ../src/common/resource.cpp:2335 ../src/common/resource.cpp:2339 -#: 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 "XBM laitteistoa ei ole!" - -#: ../src/common/resourc2.cpp:830 ../src/common/resource.cpp:2196 -#: ../src/common/resource.cpp:2200 src/common/resourc2.cpp:830 -#: src/common/resource.cpp:2178 -msgid "No XPM facility available!" -msgstr "XBM laitteistoa ei ole!" - -#: ../src/common/resourc2.cpp:991 ../src/common/resource.cpp:2357 -#: ../src/common/resource.cpp:2361 src/common/resourc2.cpp:991 -#: src/common/resource.cpp:2339 -msgid "No XPM icon facility available!" -msgstr "XBM laitteistoa ei ole!" - -#: ../src/generic/helphtml.cpp:254 ../src/generic/helphtml.cpp:271 -#: src/generic/helphtml.cpp:254 -msgid "No entries found." -msgstr "Kohtia ei löydetty." - -#: ../src/generic/fontdlgg.cpp:214 ../src/generic/fontdlgg.cpp:216 -#: ../src/generic/fontdlgg.cpp:217 ../src/generic/fontdlgg.cpp:219 -#: src/generic/fontdlgg.cpp:216 src/generic/fontdlgg.cpp:219 -msgid "Normal" -msgstr "Tavallinen" - -#: ../src/common/dlgcmn.cpp:116 ../src/common/dlgcmn.cpp:159 -#: ../src/generic/choicdgg.cpp:301 ../src/generic/colrdlgg.cpp:231 -#: ../src/generic/colrdlgg.cpp:233 ../src/generic/dcpsg.cpp:1916 -#: ../src/generic/dcpsg.cpp:1917 ../src/generic/dcpsg.cpp:2038 -#: ../src/generic/dirdlgg.cpp:340 ../src/generic/dirdlgg.cpp:344 -#: ../src/generic/extdlgg.cpp:121 ../src/generic/fontdlgg.cpp:258 -#: ../src/generic/fontdlgg.cpp:260 ../src/generic/msgdlgg.cpp:117 -#: ../src/generic/msgdlgg.cpp:158 ../src/generic/prntdlgg.cpp:171 -#: ../src/generic/prntdlgg.cpp:178 ../src/generic/prntdlgg.cpp:429 -#: ../src/generic/prntdlgg.cpp:436 ../src/generic/prntdlgg.cpp:579 -#: ../src/generic/prntdlgg.cpp:586 ../src/generic/textdlgg.cpp:136 -#: ../src/gtk/choicdlg.cpp:266 ../src/gtk/filedlg.cpp:148 -#: ../src/gtk/msgdlg.cpp:131 ../src/gtk/textdlg.cpp:109 -#: 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:409 ../src/generic/prntdlgg.cpp:416 -#: src/generic/prntdlgg.cpp:295 -msgid "Options" -msgstr "Asetukset" - -#: ../src/generic/prntdlgg.cpp:405 ../src/generic/prntdlgg.cpp:412 -#: ../src/generic/prntdlgg.cpp:607 ../src/generic/prntdlgg.cpp:614 -#: src/generic/prntdlgg.cpp:291 src/generic/prntdlgg.cpp:500 -msgid "Orientation" -msgstr "Orientaatio" - -#: ../src/common/prntbase.cpp:695 ../src/common/prntbase.cpp:705 -#: src/common/prntbase.cpp:693 -#, c-format -msgid "Page %d" -msgstr "Sivu %d" - -#: ../src/common/prntbase.cpp:693 ../src/common/prntbase.cpp:703 -#: src/common/prntbase.cpp:691 -#, c-format -msgid "Page %d of %d" -msgstr "Sivu %d / %d" - -#: ../src/generic/prntdlgg.cpp:564 ../src/generic/prntdlgg.cpp:571 -#: src/generic/prntdlgg.cpp:457 -msgid "Page Setup" -msgstr "Sivun asetukset" - -#: ../src/generic/prntdlgg.cpp:141 ../src/generic/prntdlgg.cpp:148 -#: src/generic/prntdlgg.cpp:84 -msgid "Pages" -msgstr "Sivut" - -#: ../src/generic/prntdlgg.cpp:395 ../src/generic/prntdlgg.cpp:402 -#: ../src/generic/prntdlgg.cpp:756 ../src/generic/prntdlgg.cpp:763 -#: src/generic/prntdlgg.cpp:281 src/generic/prntdlgg.cpp:629 -msgid "Paper size" -msgstr "Paperin koko" - -#: ../src/unix/utilsunx.cpp:259 ../src/unix/utilsunx.cpp:270 -#: src/gtk/utilsgtk.cpp:315 -msgid "Pipe creation failed" -msgstr "Pipe luonti epäonnistui" - -#: ../src/common/prntbase.cpp:107 ../src/common/prntbase.cpp:112 -#: src/common/prntbase.cpp:111 -msgid "Please wait..." -msgstr "Odota..." - -#: ../src/generic/dcpsg.cpp:1907 ../src/generic/dcpsg.cpp:1908 -#: ../src/generic/dcpsg.cpp:2029 ../src/generic/prntdlgg.cpp:402 -#: ../src/generic/prntdlgg.cpp:409 ../src/generic/prntdlgg.cpp:605 -#: ../src/generic/prntdlgg.cpp:612 src/generic/dcpsg.cpp:1865 -#: src/generic/prntdlgg.cpp:288 src/generic/prntdlgg.cpp:498 -msgid "Portrait" -msgstr "Portrait" - -#: ../src/generic/dcpsg.cpp:366 ../src/generic/dcpsg.cpp:372 -#: src/generic/dcpsg.cpp:338 -msgid "PostScript" -msgstr "PostScript" - -#: ../src/generic/prntdlgg.cpp:234 ../src/generic/prntdlgg.cpp:241 -#: src/generic/prntdlgg.cpp:159 -msgid "PostScript file" -msgstr "PostScript tiedosto" - -#: ../src/generic/dcpsg.cpp:1949 ../src/generic/dcpsg.cpp:1950 -#: ../src/generic/dcpsg.cpp:2071 src/generic/dcpsg.cpp:1907 -msgid "PostScript:" -msgstr "PostScript:" - -#: ../src/generic/dcpsg.cpp:1912 ../src/generic/dcpsg.cpp:1913 -#: ../src/generic/dcpsg.cpp:2034 src/generic/dcpsg.cpp:1870 -msgid "Preview Only" -msgstr "Vain esikatselu" - -#: ../src/generic/prntdlgg.cpp:102 ../src/generic/prntdlgg.cpp:109 -#: ../src/generic/prntdlgg.cpp:116 ../src/generic/prntdlgg.cpp:123 -#: src/generic/prntdlgg.cpp:71 -msgid "Print" -msgstr "Tulosta" - -#: ../src/generic/printps.cpp:189 ../src/generic/printps.cpp:193 -#: ../src/generic/printps.cpp:194 src/generic/printps.cpp:165 -msgid "Print Error" -msgstr "Tulostusvirhe" - -#: ../src/common/docview.cpp:831 ../src/common/docview.cpp:857 -#: src/common/docview.cpp:785 -msgid "Print Preview" -msgstr "Tulostuksen esikatselu" - -#: ../src/common/prntbase.cpp:636 ../src/common/prntbase.cpp:646 -#: ../src/common/prntbase.cpp:658 ../src/common/prntbase.cpp:668 -#: ../src/common/prntbase.cpp:675 ../src/common/prntbase.cpp:685 -#: src/common/prntbase.cpp:633 src/common/prntbase.cpp:655 -#: src/common/prntbase.cpp:673 -msgid "Print Preview Failure" -msgstr "Tulostuksen esikatselu epäonnistui" - -#: ../src/generic/prntdlgg.cpp:149 ../src/generic/prntdlgg.cpp:156 -#: src/generic/prntdlgg.cpp:90 -msgid "Print Range" -msgstr "Tulostusalue" - -#: ../src/generic/prntdlgg.cpp:370 ../src/generic/prntdlgg.cpp:377 -#: ../src/generic/prntdlgg.cpp:384 src/generic/prntdlgg.cpp:276 -msgid "Print Setup" -msgstr "Tulostusasetukset" - -#: ../src/generic/prntdlgg.cpp:417 ../src/generic/prntdlgg.cpp:424 -#: src/generic/prntdlgg.cpp:303 -msgid "Print in colour" -msgstr "Tulosta väreissä" - -#: ../src/generic/prntdlgg.cpp:419 ../src/generic/prntdlgg.cpp:426 -#: src/generic/prntdlgg.cpp:306 -msgid "Print spooling" -msgstr "Tulostuksen spoolaus" - -#: ../src/generic/dcpsg.cpp:1911 ../src/generic/dcpsg.cpp:1912 -#: ../src/generic/dcpsg.cpp:2033 ../src/generic/prntdlgg.cpp:135 -#: ../src/generic/prntdlgg.cpp:142 src/generic/dcpsg.cpp:1869 -#: src/generic/prntdlgg.cpp:78 -msgid "Print to File" -msgstr "Tulosta tiedostoon" - -#: ../src/common/prntbase.cpp:350 ../src/common/prntbase.cpp:359 -#: src/common/prntbase.cpp:349 -msgid "Print..." -msgstr "Tulosta..." - -#: ../src/generic/dcpsg.cpp:1922 ../src/generic/dcpsg.cpp:1923 -#: ../src/generic/dcpsg.cpp:2044 src/generic/dcpsg.cpp:1880 -msgid "Printer Command: " -msgstr "Tulostinkomento: " - -#: ../src/generic/dcpsg.cpp:1927 ../src/generic/dcpsg.cpp:1928 -#: ../src/generic/dcpsg.cpp:2049 src/generic/dcpsg.cpp:1885 -msgid "Printer Options: " -msgstr "Tulostimen asetukset: " - -#: ../src/generic/dcpsg.cpp:335 ../src/generic/dcpsg.cpp:341 -#: src/generic/dcpsg.cpp:306 -msgid "Printer Settings" -msgstr "Tulostimen asetukset" - -#: ../src/generic/prntdlgg.cpp:421 ../src/generic/prntdlgg.cpp:428 -#: src/generic/prntdlgg.cpp:308 -msgid "Printer command:" -msgstr "Tulostinkomento:" - -#: ../src/generic/prntdlgg.cpp:133 ../src/generic/prntdlgg.cpp:140 -#: src/generic/prntdlgg.cpp:76 -msgid "Printer options" -msgstr "Tulostimen asetukset" - -#: ../src/generic/prntdlgg.cpp:425 ../src/generic/prntdlgg.cpp:432 -#: src/generic/prntdlgg.cpp:312 -msgid "Printer options:" -msgstr "Tulostimen asetukset:" - -#: ../src/generic/prntdlgg.cpp:582 ../src/generic/prntdlgg.cpp:589 -#: src/generic/prntdlgg.cpp:475 -msgid "Printer..." -msgstr "Tulostin..." - -#: ../src/common/prntbase.cpp:106 ../src/common/prntbase.cpp:111 -#: ../src/common/prntbase.cpp:148 ../src/common/prntbase.cpp:153 -#: src/common/prntbase.cpp:110 src/common/prntbase.cpp:152 -msgid "Printing" -msgstr "Tulostaa" - -#: ../src/common/prntbase.cpp:120 ../src/common/prntbase.cpp:125 -#: src/common/prntbase.cpp:124 -msgid "Printing Error" -msgstr "Tulostusvirhe" - -#: ../src/common/log.cpp:319 ../src/common/log.cpp:323 src/common/log.cpp:326 -msgid "Program aborted." -msgstr "Ohjelma keskeytetty." - -#: ../src/common/log.cpp:677 ../src/common/log.cpp:692 src/common/log.cpp:672 -msgid "Question" -msgstr "Kysymys" - -#: ../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 "" -"Rekisteriavainta '%s' tarvitaan järjestelmän normaaliin\n" -"toimintaan. Poistamalla avaimen saatat järjestelmäsi epä-\n" -"vakaiseen tilaan: ohjelma keskeytetty." - -#: ../src/generic/helphtml.cpp:259 ../src/generic/helphtml.cpp:276 -#: src/generic/helphtml.cpp:259 -msgid "Relevant entries:" -msgstr "Tähdelliset kohdat:" - -#: ../src/msw/filedlg.cpp:336 src/msw/filedlg.cpp:329 -#, c-format -msgid "Replace file '%s'?" -msgstr "Korvaa tiedosto '%s'?" - -#: ../src/generic/prntdlgg.cpp:628 ../src/generic/prntdlgg.cpp:635 -#: src/generic/prntdlgg.cpp:521 -msgid "Right margin (mm):" -msgstr "Oikea marginaali (mm):" - -#: ../src/generic/fontdlgg.cpp:208 ../src/generic/fontdlgg.cpp:210 -#: src/generic/fontdlgg.cpp:210 -msgid "Roman" -msgstr "Roman" - -#: ../src/gtk/filedlg.cpp:228 ../src/gtk/filedlg.cpp:243 -#: ../src/gtk/filedlg.cpp:247 ../src/msw/filedlg.cpp:359 -#: ../src/msw/filedlg.cpp:361 src/gtk/filedlg.cpp:193 src/msw/filedlg.cpp:352 -#, c-format -msgid "Save %s file" -msgstr "Tallenna %s tiedosto" - -#: ../src/common/docview.cpp:231 ../src/common/docview.cpp:234 -#: src/common/docview.cpp:198 -msgid "Save as" -msgstr "Tallenna nimellä" - -#: ../src/common/log.cpp:635 ../src/common/log.cpp:646 src/common/log.cpp:630 -msgid "Save log contents to file" -msgstr "Tallenna lokisisältö tiedostoon" - -#: ../src/generic/fontdlgg.cpp:211 ../src/generic/fontdlgg.cpp:213 -#: src/generic/fontdlgg.cpp:213 -msgid "Script" -msgstr "Skripti" - -#: ../src/common/docview.cpp:1268 ../src/common/docview.cpp:1272 -#: ../src/common/docview.cpp:1299 src/common/docview.cpp:1243 -msgid "Select a document template" -msgstr "Valitse dokumenttipohja" - -#: ../src/common/docview.cpp:1291 ../src/common/docview.cpp:1295 -#: ../src/common/docview.cpp:1322 src/common/docview.cpp:1266 -msgid "Select a document view" -msgstr "Valitse dokumentin näkymä" - -#: ../src/common/docview.cpp:1185 ../src/common/docview.cpp:1189 -#: ../src/common/docview.cpp:1216 ../src/common/docview.cpp:1223 -#: ../src/common/docview.cpp:1227 ../src/common/docview.cpp:1254 -#: src/common/docview.cpp:1168 src/common/docview.cpp:1198 -msgid "Select a file" -msgstr "Valitse tiedosto" - -#: ../src/generic/dcpsg.cpp:1910 ../src/generic/dcpsg.cpp:1911 -#: ../src/generic/dcpsg.cpp:2032 src/generic/dcpsg.cpp:1868 -msgid "Send to Printer" -msgstr "Lähetä tulostimelle" - -#: ../src/generic/prntdlgg.cpp:137 ../src/generic/prntdlgg.cpp:144 -#: src/generic/prntdlgg.cpp:80 -msgid "Setup..." -msgstr "Asetukset..." - -#: ../src/common/layout.cpp:1366 ../src/common/layout.cpp:1371 -#: src/common/layout.cpp:1326 -msgid "Sizer error" -msgstr "Virhe (sizer)" - -#: ../src/generic/fontdlgg.cpp:216 ../src/generic/fontdlgg.cpp:218 -#: src/generic/fontdlgg.cpp:218 -msgid "Slant" -msgstr "Slant" - -#: ../src/common/docview.cpp:285 ../src/common/docview.cpp:291 -#: src/common/docview.cpp:252 -msgid "Sorry, could not open this file for saving." -msgstr "Ei voi avata tiedostoa tallennettavaksi." - -#: ../src/common/docview.cpp:316 ../src/common/docview.cpp:322 -#: ../src/common/docview.cpp:327 ../src/common/docview.cpp:333 -#: src/common/docview.cpp:283 src/common/docview.cpp:289 -msgid "Sorry, could not open this file." -msgstr "Tiedostoa ei voi avata." - -#: ../src/common/docview.cpp:292 ../src/common/docview.cpp:298 -#: src/common/docview.cpp:259 -msgid "Sorry, could not save this file." -msgstr "Tiedostoa ei voi tallentaa." - -#: ../src/common/prntbase.cpp:658 ../src/common/prntbase.cpp:668 -#: src/common/prntbase.cpp:655 -msgid "Sorry, not enough memory to create a preview." -msgstr "Liian vähän muistia esikatseluun." - -#: ../src/common/log.cpp:787 ../src/common/log.cpp:803 src/common/log.cpp:781 -msgid "Status: " -msgstr "Tila: " - -#: ../src/generic/fontdlgg.cpp:212 ../src/generic/fontdlgg.cpp:214 -#: src/generic/fontdlgg.cpp:214 -msgid "Swiss" -msgstr "Swiss" - -#: ../src/generic/fontdlgg.cpp:213 ../src/generic/fontdlgg.cpp:215 -#: src/generic/fontdlgg.cpp:215 -msgid "Teletype" -msgstr "Teletype" - -#: ../src/common/docview.cpp:1268 ../src/common/docview.cpp:1272 -#: ../src/common/docview.cpp:1299 src/common/docview.cpp:1243 -msgid "Templates" -msgstr "Pohjat" - -#: ../src/generic/dirdlgg.cpp:231 ../src/generic/dirdlgg.cpp:235 -#: src/generic/dirdlgg.cpp:231 -msgid "Temporary" -msgstr "Väliaikainen" - -#: ../src/generic/dirdlgg.cpp:223 ../src/generic/dirdlgg.cpp:227 -#: src/generic/dirdlgg.cpp:223 -msgid "The Computer" -msgstr "Tietokone" - -#: ../src/generic/dirdlgg.cpp:447 ../src/generic/dirdlgg.cpp:451 -#: src/generic/dirdlgg.cpp:447 -msgid "The directory " -msgstr "Hakemisto" - -#: ../src/msw/thread.cpp:730 src/msw/thread.cpp:719 -msgid "" -"Thread module initialization failed: can not store value in thread local " -"storage" -msgstr "" -"Säiemoduulin käynnistys epäonnistui: arvoa ei voi tallentaa säikeen muistiin" - -#: src/gtk/threadpsx.cpp:708 -msgid "Thread module initialization failed: failed to create pthread key." -msgstr "Säiemoduulin käynnistys epäonnistui: pthread-avaimen luonti ei onnistu." - -#: ../src/msw/thread.cpp:716 src/msw/thread.cpp:705 -msgid "" -"Thread module initialization failed: impossible to allocate index in thread " -"local storage" -msgstr "" -"Säiemoduulin käynnistys epäonnistui: indexin varaus säikeen muistiin mahdotonta" - -#: ../src/generic/prntdlgg.cpp:162 ../src/generic/prntdlgg.cpp:169 -#: src/generic/prntdlgg.cpp:101 -msgid "To:" -msgstr "Vastaanottaja:" - -#: ../src/generic/prntdlgg.cpp:637 ../src/generic/prntdlgg.cpp:644 -#: src/generic/prntdlgg.cpp:530 -msgid "Top margin (mm):" -msgstr "Ylämarginaali (mm):" - -#: ../src/generic/fontdlgg.cpp:244 ../src/generic/fontdlgg.cpp:246 -#: src/generic/fontdlgg.cpp:246 -msgid "Underline" -msgstr "Alleviivaus" - -#: ../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:1671 -#: ../src/common/resource.cpp:1684 ../src/common/resource.cpp:1685 -#: ../src/common/resource.cpp:1701 ../src/common/resource.cpp:1702 -#: ../src/common/resource.cpp:1715 ../src/common/resource.cpp:1716 -#: ../src/common/resource.cpp:2748 ../src/common/resource.cpp:2752 -#: ../src/common/resource.cpp:2762 ../src/common/resource.cpp:2766 -#: ../src/common/resource.cpp:2779 ../src/common/resource.cpp:2783 -#: ../src/common/resource.cpp:2793 ../src/common/resource.cpp:2797 -#: 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 "Odottamaton tiedoston loppuminen resursseja jäsennellessä." - -#: ../src/common/mimetype.cpp:1019 ../src/common/mimetype.cpp:1021 -#: src/common/mimetype.cpp:985 -#, c-format -msgid "Unknown field in file %s, line %d: '%s'." -msgstr "Tuntematon kenttä tiedostossa %s, rivillä %d: '%s'." - -#: ../src/common/mimetype.cpp:379 ../src/common/mimetype.cpp:381 -#: src/common/mimetype.cpp:363 -#, c-format -msgid "Unmatched '{' in an entry for mime type %s." -msgstr "Sopimaton '{' mime tyypin %s kohdalla." - -#: ../src/common/docview.cpp:1703 ../src/common/docview.cpp:1707 -#: ../src/common/docview.cpp:1718 ../src/common/docview.cpp:1722 -#: ../src/common/docview.cpp:1734 ../src/common/docview.cpp:1745 -#: ../src/common/docview.cpp:1749 ../src/common/docview.cpp:1776 -#: src/common/docview.cpp:1665 src/common/docview.cpp:1680 -#: src/common/docview.cpp:1707 -msgid "Unnamed command" -msgstr "Nimeämätön komento" - -#: ../src/common/resourc2.cpp:687 ../src/common/resource.cpp:2053 -#: ../src/common/resource.cpp:2057 src/common/resourc2.cpp:687 -#: src/common/resource.cpp:2035 -#, c-format -msgid "Unrecognized style %s whilst parsing resource." -msgstr "Tunnistamaton tyyli %s resursseja jäsennellessä." - -#: ../src/msw/clipbrd.cpp:220 ../src/msw/clipbrd.cpp:254 -#: ../src/msw/clipbrd.cpp:330 ../src/msw/clipbrd.cpp:353 -#: src/msw/clipbrd.cpp:220 src/msw/clipbrd.cpp:330 -msgid "Unsupported clipboard format." -msgstr "Leikepöydän formaattia ei ole tuettu." - -#: ../src/generic/dirdlgg.cpp:227 ../src/generic/dirdlgg.cpp:231 -#: src/generic/dirdlgg.cpp:227 -msgid "User" -msgstr "Käyttäjä" - -#: ../src/generic/dirdlgg.cpp:228 ../src/generic/dirdlgg.cpp:232 -#: src/generic/dirdlgg.cpp:228 -msgid "User Local" -msgstr "Paikallinen käyttäjä" - -#: ../src/common/valtext.cpp:188 ../src/common/valtext.cpp:194 -#: 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 "Laillisuuskonflikti" - -#: ../src/generic/dirdlgg.cpp:229 ../src/generic/dirdlgg.cpp:233 -#: src/generic/dirdlgg.cpp:229 -msgid "Variables" -msgstr "Muuttujat" - -#: ../src/common/docview.cpp:1291 ../src/common/docview.cpp:1295 -#: ../src/common/docview.cpp:1322 src/common/docview.cpp:1266 -msgid "Views" -msgstr "Näkymät" - -#: ../src/common/docview.cpp:401 ../src/common/docview.cpp:420 -#: ../src/common/log.cpp:478 ../src/common/log.cpp:482 -#: ../src/common/resource.cpp:119 ../src/common/resource.cpp:121 -#: src/common/docview.cpp:368 src/common/resource.cpp:121 -msgid "Warning" -msgstr "Varoitus" - -#: ../src/common/log.cpp:329 ../src/common/log.cpp:333 src/common/log.cpp:336 -msgid "Warning: " -msgstr "Varoitus: " - -#: ../src/generic/dcpsg.cpp:1967 ../src/generic/dcpsg.cpp:1968 -#: ../src/generic/dcpsg.cpp:2089 src/generic/dcpsg.cpp:1925 -msgid "X Scaling" -msgstr "X skaalaus" - -#: ../src/generic/dcpsg.cpp:1976 ../src/generic/dcpsg.cpp:1977 -#: ../src/generic/dcpsg.cpp:2098 src/generic/dcpsg.cpp:1934 -msgid "X Translation" -msgstr "X käännös" - -#: ../src/generic/dcpsg.cpp:1971 ../src/generic/dcpsg.cpp:1972 -#: ../src/generic/dcpsg.cpp:2093 src/generic/dcpsg.cpp:1929 -msgid "Y Scaling" -msgstr "Y skaalaus" - -#: ../src/generic/dcpsg.cpp:1980 ../src/generic/dcpsg.cpp:1981 -#: ../src/generic/dcpsg.cpp:2102 src/generic/dcpsg.cpp:1938 -msgid "Y Translation" -msgstr "Y käännös" - -#: ../src/generic/extdlgg.cpp:101 ../src/generic/extdlgg.cpp:109 -#: ../src/generic/msgdlgg.cpp:109 ../src/generic/msgdlgg.cpp:147 -#: ../src/gtk/msgdlg.cpp:123 src/generic/msgdlgg.cpp:130 -msgid "Yes" -msgstr "Kyllä" - -#: ../src/common/docview.cpp:1814 ../src/common/docview.cpp:1818 -#: ../src/common/docview.cpp:1845 src/common/docview.cpp:1777 -msgid "[EMPTY]" -msgstr "[TYHJÄ]" - -#: ../src/common/time.cpp:358 src/common/time.cpp:358 -msgid "am" -msgstr "am" - -#: ../src/common/fileconf.cpp:1265 ../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 "muuttumattoman avaimen '%s' muutosyritys ohitettu." - -#: ../src/common/string.cpp:1703 ../src/common/string.cpp:1830 -#: src/common/string.cpp:1430 -msgid "bad index in wxArrayString::Remove" -msgstr "wxArrayString::Remove - väärä indeksi" - -#: ../src/common/file.cpp:273 ../src/common/file.cpp:274 -#: src/common/file.cpp:268 -#, c-format -msgid "can't close file descriptor %d" -msgstr "tiedoston kuvausta %d ei voida sulkea" - -#: ../src/msw/registry.cpp:403 src/msw/registry.cpp:403 -#, c-format -msgid "can't close registry key '%s'" -msgstr "rekisteriavainta '%s' ei voida sulkea" - -#: ../src/common/file.cpp:563 ../src/common/file.cpp:564 -#: src/common/file.cpp:520 -#, c-format -msgid "can't commit changes to file '%s'" -msgstr "muutoksia tiedostoon '%s' ei voi tehdä" - -#: ../src/common/file.cpp:224 ../src/common/file.cpp:225 -#: src/common/file.cpp:215 -#, c-format -msgid "can't create file '%s'" -msgstr "tiedoston '%s' luonti ei onnistu" - -#: ../src/msw/registry.cpp:386 src/msw/registry.cpp:386 -#, c-format -msgid "can't create registry key '%s'" -msgstr "rekisteriavaimen '%s' luonti ei onnistu" - -#: ../src/msw/registry.cpp:467 src/msw/registry.cpp:467 -#, c-format -msgid "can't delete key '%s'" -msgstr "avainta '%s' ei voi poistaa" - -#: ../src/common/fileconf.cpp:735 ../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 "käyttäjän asetustiedostoa '%s' ei voi poistaa" - -#: ../src/msw/registry.cpp:492 src/msw/registry.cpp:492 -#, c-format -msgid "can't delete value '%s' from key '%s'" -msgstr "arvon '%s' poisto avaimesta '%s' ei onnistu" - -#: ../src/msw/registry.cpp:503 src/msw/registry.cpp:503 -#, c-format -msgid "can't delete value of key '%s'" -msgstr "avaimen '%s' arvoa ei voi poistaa" - -#: 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:791 -#: src/msw/registry.cpp:780 -#, c-format -msgid "can't enumerate subkeys of key '%s'" -msgstr "avaimen '%s' ala-avaimia ei voi luetella" - -#: ../src/msw/registry.cpp:735 ../src/msw/registry.cpp:746 -#: src/msw/registry.cpp:735 -#, c-format -msgid "can't enumerate values of key '%s'" -msgstr "avaimen '%s' arvoja ei voi luetella" - -#: ../src/common/file.cpp:418 ../src/common/file.cpp:419 -#: src/common/file.cpp:413 -#, c-format -msgid "can't find length of file on file descriptor %d" -msgstr "tiedoston kokoa ei löydy tiedoston kuvauksesta %d" - -#: ../src/msw/utils.cpp:584 ../src/msw/utils.cpp:622 src/msw/utils.cpp:561 -msgid "can't find user's HOME, using current directory." -msgstr "käyttäjän kotihakemistoa ei löydy, käytetään nykyistä hakemistoa." - -#: ../src/common/file.cpp:332 ../src/common/file.cpp:333 -#: src/common/file.cpp:327 -#, c-format -msgid "can't flush file descriptor %d" -msgstr "tiedoston kuvausta %d ei voida tyhjentää" - -#: ../src/msw/registry.cpp:335 src/msw/registry.cpp:335 -#, c-format -msgid "can't get info about registry key '%s'" -msgstr "tiedon saanti rekisteriavaimesta '%s' ei onnistu" - -#: ../src/common/file.cpp:386 ../src/common/file.cpp:387 -#: src/common/file.cpp:381 -#, c-format -msgid "can't get seek position on file descriptor %d" -msgstr "paikanmääritys tiedoston kuvauksessa %d ei onnistu" - -#: ../src/common/file.cpp:259 ../src/common/file.cpp:260 -#: src/common/file.cpp:254 -#, c-format -msgid "can't open file '%s'" -msgstr "tiedostoa '%s' ei voi avata" - -#: ../src/common/fileconf.cpp:182 ../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 "globaalin asetustiedoston '%s' avaus ei onnistu" - -#: ../src/msw/registry.cpp:361 src/msw/registry.cpp:361 -#, c-format -msgid "can't open registry key '%s'" -msgstr "rekisteriavaimen '%s' avaus ei onnistu" - -#: ../src/common/fileconf.cpp:194 ../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 "käyttäjän asetustiedoston '%s' avaus ei onnistu." - -#: ../src/common/fileconf.cpp:641 ../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 "käyttäjän asetustiedoston avaus ei onnistu." - -#: ../src/common/file.cpp:299 ../src/common/file.cpp:300 -#: src/common/file.cpp:294 -#, c-format -msgid "can't read from file descriptor %d" -msgstr "tiedoston kuvauksen %d luku epäonnistui" - -#: ../src/msw/registry.cpp:658 ../src/msw/registry.cpp:670 -#: src/msw/registry.cpp:658 -#, c-format -msgid "can't read value of '%s'" -msgstr "ei voida lukea arvoa '%s'" - -#: ../src/msw/registry.cpp:569 ../src/msw/registry.cpp:581 -#: ../src/msw/registry.cpp:608 ../src/msw/registry.cpp:620 -#: src/msw/registry.cpp:569 src/msw/registry.cpp:608 -#, c-format -msgid "can't read value of key '%s'" -msgstr "ei voida lukea arvoa avaimesta '%s'" - -#: ../src/common/file.cpp:558 ../src/common/file.cpp:559 -#: src/common/file.cpp:515 -#, c-format -msgid "can't remove file '%s'" -msgstr "tiedoston '%s' poisto ei onnistu" - -#: ../src/common/file.cpp:574 ../src/common/file.cpp:575 -#: src/common/file.cpp:531 -#, c-format -msgid "can't remove temporary file '%s'" -msgstr "väliaikaistiedoston '%s' poisto ei onnistu" - -#: ../src/common/file.cpp:372 ../src/common/file.cpp:373 -#: 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:606 -#: ../src/msw/registry.cpp:682 ../src/msw/registry.cpp:694 -#: src/msw/registry.cpp:594 src/msw/registry.cpp:682 -#, c-format -msgid "can't set value of '%s'" -msgstr "ei voida asettaa arvoa '%s'" - -#: src/common/CVS/Base/fileconf.cpp:594 src/common/fileconf.cpp:594 -msgid "can't set value of a group!" -msgstr "ryhmän arvoa ei voi asettaa!" - -#: ../src/common/textfile.cpp:237 ../src/common/textfile.cpp:243 -#: src/common/textfile.cpp:229 -#, c-format -msgid "can't write file '%s' to disk." -msgstr "tiedostoa '%s' ei voida kirjottaa levylle." - -#: ../src/common/file.cpp:317 ../src/common/file.cpp:318 -#: src/common/file.cpp:312 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "tiedoston kuvaukseen %d kirjoittaminen epäonnistui" - -#: ../src/common/fileconf.cpp:648 ../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 "käyttäjän asetustiedoston kirjoitus epäonnistui." - -#: ../src/common/intl.cpp:301 ../src/common/intl.cpp:334 -#: src/common/intl.cpp:300 -#, c-format -msgid "catalog file for domain '%s' not found." -msgstr "luettelotiedostoa domainille '%s' ei löydy." - -#: ../src/common/filefn.cpp:1527 src/common/filefn.cpp:1497 -msgid "empty file name in wxFindFileInPath" -msgstr "tyhjä tiedostonimi paikassa wxFindFileInPath" - -#: ../src/common/fileconf.cpp:1252 ../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 "kohta '%s' ilmenee useammin kuin kerran ryhmässä '%s'" - -#: ../src/common/fileconf.cpp:334 ../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 "tiedosto '%s', rivi %d: '%s' ohitettu ryhmäotsikon jälkeen." - -#: ../src/common/fileconf.cpp:360 ../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 "tiedosto '%s', rivi %d: '=' odotettu." - -#: ../src/common/fileconf.cpp:387 ../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 "tiedosto '%s', rivi %d: avain '%s' löytyi ensiksi riviltä %d." - -#: ../src/common/fileconf.cpp:376 ../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 "tiedosto '%s', rivi %d: muuttamattoman avaimen '%s' arvo ohitettu." - -#: ../src/common/fileconf.cpp:302 ../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 "tiedosto '%s': odottamaton merkki %c rivillä %d." - -#: ../src/common/date.cpp:374 ../src/common/date.cpp:377 -#: ../src/common/date.cpp:392 ../src/common/date.cpp:395 -#: ../src/common/date.cpp:406 ../src/common/date.cpp:409 -#: src/common/date.cpp:373 src/common/date.cpp:391 src/common/date.cpp:405 -msgid "invalid date" -msgstr "virheellinen päivämäärä" - -#: ../src/common/date.cpp:356 ../src/common/date.cpp:359 -#: src/common/date.cpp:355 -msgid "invalid day" -msgstr "virheellinen päivä" - -#: ../src/common/file.cpp:457 ../src/common/file.cpp:458 -#: src/common/file.cpp:452 -msgid "invalid eof() return value." -msgstr "virheellinen eof() palautusarvo" - -#: ../src/common/log.cpp:690 ../src/common/log.cpp:705 src/common/log.cpp:685 -msgid "invalid message box return value" -msgstr "virheellinen viestilaatikon palautusarvo" - -#: ../src/common/date.cpp:364 ../src/common/date.cpp:367 -#: src/common/date.cpp:363 -msgid "invalid month" -msgstr "virheellinen kuukausi" - -#: ../src/common/intl.cpp:432 ../src/common/intl.cpp:465 -#: src/common/intl.cpp:431 -#, c-format -msgid "locale '%s' can not be set." -msgstr "localea '%s' ei voida asettaa." - -#: ../src/common/intl.cpp:296 ../src/common/intl.cpp:329 -#: src/common/intl.cpp:295 -#, c-format -msgid "looking for catalog '%s' in path '%s'." -msgstr "etsitään luetteloa '%s' polussa '%s'." - -#: ../src/common/time.cpp:360 src/common/time.cpp:360 -msgid "pm" -msgstr "pm" - -#: ../src/common/string.cpp:1719 ../src/common/string.cpp:1846 -#: src/common/string.cpp:1446 -msgid "removing inexistent element in wxArrayString::Remove" -msgstr "poistetaan olematon elementti käskyssä wxArrayString::Remove" - -#: ../src/common/intl.cpp:521 ../src/common/intl.cpp:554 -#: src/common/intl.cpp:519 -#, c-format -msgid "string '%s' not found in domain '%s' for locale '%s'." -msgstr "merkkijonoa '%s' ei löydy domainista '%s' localelle '%s'." - -#: ../src/common/intl.cpp:526 ../src/common/intl.cpp:559 -#: src/common/intl.cpp:524 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "merkkijonoa '%s' ei löydy localelle '%s'." - -#: ../src/common/fileconf.cpp:1372 ../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 "odottamaton \" paikassa %d '%s'." - -#: src/common/log.cpp:362 -msgid "unknown log level in wxLog::DoLog" -msgstr "tuntematon lokitaso käskyssä wxLog::DoLog" - -#: src/common/log.cpp:559 -msgid "unknown log level in wxLogGui::DoLog" -msgstr "tuntematon lokitaso käskyssä wxLogGui::DoLog" - -#: ../src/common/file.cpp:367 ../src/common/file.cpp:368 -#: src/common/file.cpp:362 -msgid "unknown seek origin" -msgstr "" - -#: ../src/common/docview.cpp:370 ../src/common/docview.cpp:389 -#: src/common/docview.cpp:337 -msgid "unnamed" -msgstr "nimeämätön" - -#: ../src/common/docview.cpp:1055 ../src/common/docview.cpp:1082 -#: src/common/docview.cpp:1009 -#, c-format -msgid "unnamed%d" -msgstr "nimeämätön %d" - -#: ../src/common/intl.cpp:306 ../src/common/intl.cpp:339 -#: src/common/intl.cpp:305 -#, c-format -msgid "using catalog '%s' from '%s'." -msgstr "käytössä luettelo '%s' '%s'sta." - -#: ../src/common/layout.cpp:1366 ../src/common/layout.cpp:1371 -#: src/common/layout.cpp:1326 -msgid "wxExpandSizer has no parent!" -msgstr "" - -#: ../src/common/prntbase.cpp:635 ../src/common/prntbase.cpp:645 -#: 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 "wxWindows: virhe väliaikaistiedoston etsinnässä.\n" - -#: ../src/gtk/filedlg.cpp:79 -msgid "Please choose an existing file." -msgstr "Valitse olemassaoleva tiedosto." - -#: ../src/generic/printps.cpp:173 ../src/generic/printps.cpp:177 -#: ../src/generic/printps.cpp:179 -msgid "Printing..." -msgstr "Tulostetaan..." - -#: ../src/generic/printps.cpp:207 ../src/generic/printps.cpp:211 -#: ../src/generic/printps.cpp:212 -#, c-format -msgid "Printing page %d..." -msgstr "Tulostetaan sivua %d..." - -#: ../src/generic/dcpsg.cpp:2188 ../src/generic/dcpsg.cpp:2189 -#: ../src/generic/dcpsg.cpp:2310 -msgid "A4 sheet, 210 x 297 mm" -msgstr "A4 sheet, 210 x 297 mm" - -#: ../src/common/dynlib.cpp:187 ../src/common/dynlib.cpp:254 -#, c-format -msgid "Couldn't find symbol '%s' in a dynamic library" -msgstr "Symbolia '%s' ei löydy dynaamisesta kirjastosta" - -#: ../src/common/dynlib.cpp:215 ../src/common/dynlib.cpp:274 -#, c-format -msgid "Failed to load shared library '%s'" -msgstr "Jaetun kirjaston '%s' lataus epäonnistui" - -#: ../src/common/file.cpp:452 ../src/common/file.cpp:453 -#, c-format -msgid "" -"can't determine if the end of file is reached on descriptor " -"%d" -msgstr "" - -#: ../src/common/fileconf.cpp:610 ../src/common/fileconf.cpp:611 -#, c-format -msgid "Config entry name cannot start with '%c'." -msgstr "Asetuskohdan nimi ei voi alkaa merkillä '%c'." - -#: ../src/common/filefn.cpp:1003 -#, c-format -msgid "Directory '%s' couldn't be created" -msgstr "Hakemistoa '%s' ei onnistuttu luomaan" - -#: ../src/common/string.cpp:1687 ../src/common/string.cpp:1814 -msgid "bad index in wxArrayString::Insert" -msgstr "wxArrayString::Insert - väärä/huono indeksi" - -#: ../src/common/valtext.cpp:140 ../src/common/valtext.cpp:146 -#, c-format -msgid "'%s' is invalid" -msgstr "'%s' on virheellinen" - -#: ../src/common/valtext.cpp:160 ../src/common/valtext.cpp:166 -#, c-format -msgid "'%s' should only contain ASCII characters." -msgstr "'%s' tulisi sisältää vain ASCII-merkkejä." - -#: ../src/common/valtext.cpp:166 ../src/common/valtext.cpp:172 -#, c-format -msgid "'%s' should only contain alphabetic characters." -msgstr "'%s' tulisi sisältää vain aakkosia." - -#: ../src/common/valtext.cpp:172 ../src/common/valtext.cpp:178 -#, c-format -msgid "'%s' should only contain alphabetic or numeric characters." -msgstr "'%s' tulisi sisältää vain aakkosia tai numeerisia merkkejä." - -#: ../src/common/valtext.cpp:178 ../src/common/valtext.cpp:184 -#, c-format -msgid "'%s' should be numeric." -msgstr "'%s' tulisi olla numeerinen." - -#: ../src/common/imagjpeg.cpp:169 ../src/common/imagjpeg.cpp:174 -msgid "Couldn't load a JPEG image - probably file is corrupted." -msgstr "JPEG-kuvatiedostoa ei voi avata - tiedosto ehkä korruptoitunut." - -#: ../src/common/imagjpeg.cpp:282 ../src/common/imagjpeg.cpp:287 -msgid "Couldn't save a JPEG image - probably file is corrupted." -msgstr "JPEG-kuvatiedostoa ei voi tallentaa - tiedosto ehkä korruptoitunut." - -#: ../src/motif/app.cpp:559 -#, c-format -msgid "wxWindows could not open display for '%s': exiting." -msgstr "wxWindows ei voi avata ikkunaa prosessille '%s': lopettaa." - -#: ../src/msw/app.cpp:198 ../src/msw/app.cpp:200 -msgid "Could not initialise Rich Edit DLL" -msgstr "Rich Edit DLL:n käynnistys ei onnistunut" - -#: ../src/msw/app.cpp:653 ../src/msw/app.cpp:698 -msgid "Unrecoverable program error detected: the application will terminate." -msgstr "Peruuttamaton ohjelmavirhe havaittu: ohjelma keskeytetään." - -#: ../src/msw/app.cpp:655 ../src/msw/app.cpp:700 -msgid "Fatal Error" -msgstr "Tuhoisa virhe" - -#: ../src/msw/app.cpp:1125 ../src/msw/app.cpp:1165 -msgid "Fatal error: exiting" -msgstr "Tuhoisa virhe: lopetetaan" - -#: ../src/msw/dialog.cpp:140 ../src/msw/dialog.cpp:142 -#: ../src/msw/dialog.cpp:145 -msgid "Failed to create dialog." -msgstr "Dialogin luonti epäonnistui." - -#: ../src/unix/threadpsx.cpp:296 ../src/unix/threadpsx.cpp:298 -#: ../src/unix/threadpsx.cpp:302 -msgid "Cannot start thread: error writing TLS" -msgstr "Säikeen käynnistys epäonnistui: virhe TLS:n kirjoituksessa" - -#: ../src/unix/threadpsx.cpp:477 ../src/unix/threadpsx.cpp:518 -#: ../src/unix/threadpsx.cpp:527 -msgid "Cannot retrieve thread scheduling policy." -msgstr "" - -#: ../src/unix/threadpsx.cpp:485 ../src/unix/threadpsx.cpp:526 -#: ../src/unix/threadpsx.cpp:535 -#, c-format -msgid "Cannot get priority range for scheduling policy %d." -msgstr "" - -#: ../src/unix/threadpsx.cpp:768 ../src/unix/threadpsx.cpp:813 -#: ../src/unix/threadpsx.cpp:827 -msgid "Thread module initialization failed: failed to create thread key" -msgstr "Säiemoduulin käynnistys epäonnistui: säieavainta ei voi luoda" - -#: ../src/unix/utilsunx.cpp:211 ../src/unix/utilsunx.cpp:222 -msgid "Waiting for subprocess termination failed" -msgstr "Aliprosessin keskeytymisen odotus epäonnistui" - -#: ../src/unix/utilsunx.cpp:449 ../src/unix/utilsunx.cpp:460 -msgid "Cannot get the hostname" -msgstr "Host-nimeä ei onnistuttu saamaan" - -#: ../src/unix/utilsunx.cpp:485 ../src/unix/utilsunx.cpp:496 -msgid "Cannot get the official hostname" -msgstr "Virallista host-nimeä ei onnistuttu saamaan" - -#: ../src/unix/utilsunx.cpp:547 ../src/unix/utilsunx.cpp:555 -#: ../src/unix/utilsunx.cpp:558 ../src/unix/utilsunx.cpp:566 -msgid "Error " -msgstr "Virhe " - -#: ../src/msw/mdi.cpp:352 ../src/msw/mdi.cpp:355 -msgid "Failed to create MDI parent frame." -msgstr "" - -#: ../src/msw/window.cpp:1342 ../src/msw/window.cpp:2225 -msgid "" -"Can't find dummy dialog template!\n" -"Check resource include path for finding wx.rc." -msgstr "" -"Dummy dialog -pohjaa ei löydy!\n" -"Tarkista resurssisisällön polku, jotta wx.rc löytyisi." - -#: ../src/msw/window.cpp:1368 ../src/msw/window.cpp:2266 -#, c-format -msgid "" -"Can't create window of class %s!\n" -"Possible Windows 3.x compatibility problem?" -msgstr "" -"%s luokan ikkunan luonti epäonnistui!\n" -"Mahdollisesti Windows 3.x yhteensopivuusongelma?" - -#: ../src/generic/dcpsg.cpp:1403 -msgid "Cannot open file for PostScript printing!" -msgstr "Tiedoston avaus PostScript-tulostukseen epäonnistui!" - -#: ../src/generic/helpext.cpp:90 -#, c-format -msgid "Cannot open URL '%s'" -msgstr "URL:ää '%s' ei voitu avata" - -#: ../src/generic/extdlgg.cpp:126 -msgid "Forward" -msgstr "Eteenpäin" - -#: ../src/generic/extdlgg.cpp:129 -msgid "Backward" -msgstr "Takaisin" - -#: ../src/generic/extdlgg.cpp:132 -msgid "Setup" -msgstr "Asetukset" - -#: ../src/generic/extdlgg.cpp:135 -msgid "More..." -msgstr "Lisää..." - -#: ../src/generic/extdlgg.cpp:138 -msgid "Help" -msgstr "Apua" - -#: ../src/generic/tipdlg.cpp:137 -msgid "Tips not available, sorry!" -msgstr "Valitettavasti vinkkejä ei ole!" - -#: ../src/generic/tipdlg.cpp:161 -msgid "Tip of the Day" -msgstr "Päivän vinkki" - -#: ../src/generic/tipdlg.cpp:172 -msgid "&Show tips at startup" -msgstr "&Näytä vinkit käynnistyksessä" - -#: ../src/generic/tipdlg.cpp:173 -msgid "&Next" -msgstr "&Seuraava" - -#: ../src/generic/tipdlg.cpp:175 -msgid "Did you know..." -msgstr "Tiesitkö..." - -#: ../src/msw/clipbrd.cpp:149 -#, c-format -msgid "Failed to allocate %dKb of memory for clipboard transfer." -msgstr "%dKb " - -#: ../src/msw/clipbrd.cpp:164 -#, c-format -msgid "Failed to set clipboard data in format %s" -msgstr "Leikepöydän datan formatointi muotoon %s epäonnistui" - -#: ../src/msw/menu.cpp:156 -msgid "ctrl" -msgstr "ctrl" - -#: ../src/msw/menu.cpp:158 -msgid "alt" -msgstr "alt" - -#: ../src/msw/menu.cpp:160 -msgid "shift" -msgstr "shift" - -#: ../src/generic/tipdlg.cpp:161 -msgid "Tip of the Day" -msgstr "P=E4iv=E4n vinkki" - -#: ../src/generic/tipdlg.cpp:172 -msgid "&Show tips at startup" -msgstr "&N=E4yt=E4 vinkit k=E4ynnistyksess=E4" - -#: ../src/generic/tipdlg.cpp:173 -msgid "&Next" -msgstr "&Seuraava" - -#: ../src/generic/tipdlg.cpp:175 -msgid "Did you know..." -msgstr "Tiesitk=F6..." - -#: ../src/msw/clipbrd.cpp:149 -#, c-format -msgid "Failed to allocate %dKb of memory for clipboard transfer." -msgstr "%dKb " - -#: ../src/msw/clipbrd.cpp:164 -#, c-format -msgid "Failed to set clipboard data in format %s" -msgstr "Leikep=F6yd=E4n datan formatointi muotoon %s ep=E4onnistui" - -#: ../src/msw/menu.cpp:156 -msgid "ctrl" -msgstr "ctrl" - -#: ../src/msw/menu.cpp:158 -msgid "alt" -msgstr "alt" - -#: ../src/msw/menu.cpp:160 -msgid "shift" -msgstr "shift" diff --git a/locale/wxstd.po b/locale/wxstd.po deleted file mode 100644 index bb8b2e1770..0000000000 --- a/locale/wxstd.po +++ /dev/null @@ -1,1941 +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-07-06 13: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:465 -#: ../src/generic/dirdlgg.cpp:489 ../src/generic/dirdlgg.cpp:493 -#: 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:453 -#: src/generic/dirdlgg.cpp:449 -msgid "" -"\n" -"does not exist\n" -"Create it now?" -msgstr "" - -#: ../src/common/log.cpp:223 ../src/common/log.cpp:227 src/common/log.cpp:209 -#, c-format -msgid " (error %ld: %s)" -msgstr "" - -#: ../src/common/date.cpp:385 ../src/common/date.cpp:388 -#: ../src/common/date.cpp:400 ../src/common/date.cpp:403 -#: 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:1631 -#: ../src/common/resource.cpp:2704 ../src/common/resource.cpp:2708 -#: 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/resource.cpp:2079 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/resource.cpp:2234 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:1724 -#: ../src/common/resource.cpp:2801 ../src/common/resource.cpp:2805 -#: 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:650 -#: ../src/generic/tipdlg.cpp:171 src/common/log.cpp:633 -msgid "&Close" -msgstr "" - -#: ../src/common/log.cpp:639 ../src/common/log.cpp:651 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:1756 ../src/common/docview.cpp:1767 -#: 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:1777 src/common/docview.cpp:1681 -#: src/common/docview.cpp:1708 -msgid "&Redo " -msgstr "" - -#: ../src/common/log.cpp:635 ../src/common/log.cpp:646 src/common/log.cpp:630 -msgid "&Save..." -msgstr "" - -#: ../src/common/docview.cpp:1731 ../src/common/docview.cpp:1735 -#: ../src/common/docview.cpp:1762 src/common/docview.cpp:1693 -msgid "&Undo" -msgstr "" - -#: ../src/common/docview.cpp:1706 ../src/common/docview.cpp:1710 -#: ../src/common/docview.cpp:1737 src/common/docview.cpp:1668 -msgid "&Undo " -msgstr "" - -#: ../src/common/config.cpp:381 ../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:372 -#: 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:139 -#: 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:1663 -#: ../src/common/resource.cpp:2740 ../src/common/resource.cpp:2744 -#: 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:327 ../src/generic/fontdlgg.cpp:329 -#: src/generic/fontdlgg.cpp:329 -msgid "ABCDEFGabcdefg12345" -msgstr "" - -#: ../src/generic/colrdlgg.cpp:236 ../src/generic/colrdlgg.cpp:238 -#: src/generic/colrdlgg.cpp:236 -msgid "Add to custom colours" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:140 ../src/generic/prntdlgg.cpp:147 -#: src/generic/prntdlgg.cpp:83 -msgid "All" -msgstr "" - -#: ../src/common/log.cpp:675 ../src/common/log.cpp:690 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/resource.cpp:2214 src/common/resourc2.cpp:844 -#: src/common/resource.cpp:2192 -#, c-format -msgid "Bitmap resource specification %s not found." -msgstr "" - -#: ../src/generic/fontdlgg.cpp:219 ../src/generic/fontdlgg.cpp:221 -#: src/generic/fontdlgg.cpp:221 -msgid "Bold" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:643 ../src/generic/prntdlgg.cpp:650 -#: src/generic/prntdlgg.cpp:536 -msgid "Bottom margin (mm):" -msgstr "" - -#: ../src/common/log.cpp:636 ../src/common/log.cpp:648 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:1739 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/unix/utilsunx.cpp:327 -#: 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:737 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/dlgcmn.cpp:121 ../src/common/dlgcmn.cpp:166 -#: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:114 -#: ../src/generic/choicdgg.cpp:306 ../src/generic/colrdlgg.cpp:235 -#: ../src/generic/colrdlgg.cpp:237 ../src/generic/dcpsg.cpp:1917 -#: ../src/generic/dcpsg.cpp:1918 ../src/generic/dcpsg.cpp:2039 -#: ../src/generic/dirdlgg.cpp:341 ../src/generic/dirdlgg.cpp:345 -#: ../src/generic/extdlgg.cpp:142 ../src/generic/fontdlgg.cpp:259 -#: ../src/generic/fontdlgg.cpp:261 ../src/generic/msgdlgg.cpp:123 -#: ../src/generic/msgdlgg.cpp:165 ../src/generic/prntdlgg.cpp:172 -#: ../src/generic/prntdlgg.cpp:179 ../src/generic/prntdlgg.cpp:430 -#: ../src/generic/prntdlgg.cpp:437 ../src/generic/prntdlgg.cpp:580 -#: ../src/generic/prntdlgg.cpp:587 ../src/generic/progdlgg.cpp:94 -#: ../src/generic/progdlgg.cpp:174 ../src/generic/textdlgg.cpp:141 -#: ../src/gtk/choicdlg.cpp:272 ../src/gtk/filedlg.cpp:154 -#: ../src/gtk/msgdlg.cpp:137 ../src/gtk/textdlg.cpp:115 -#: 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:213 ../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:648 src/common/log.cpp:631 -msgid "Clear the log contents" -msgstr "" - -#: ../src/common/prntbase.cpp:343 ../src/common/prntbase.cpp:352 -#: ../src/generic/progdlgg.cpp:254 src/common/prntbase.cpp:342 -msgid "Close" -msgstr "" - -#: ../src/common/log.cpp:638 ../src/common/log.cpp:650 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:174 -#: src/generic/prntdlgg.cpp:106 -msgid "Copies:" -msgstr "" - -#: ../src/common/resourc2.cpp:287 ../src/common/resource.cpp:1652 -#: ../src/common/resource.cpp:1653 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:754 -#: 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:1204 -#: 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:685 -#: src/common/prntbase.cpp:673 -msgid "Could not start document preview." -msgstr "" - -#: ../src/generic/printps.cpp:189 ../src/generic/printps.cpp:193 -#: ../src/generic/printps.cpp:194 ../src/msw/printwin.cpp:228 -#: ../src/msw/printwin.cpp:232 src/generic/printps.cpp:165 -msgid "Could not start printing." -msgstr "" - -#: ../src/common/wincmn.cpp:598 ../src/common/wincmn.cpp:609 -#: ../src/common/wincmn.cpp:713 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:98 -#: 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:111 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:216 ../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:534 -#: 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:482 -#: src/generic/dirdlgg.cpp:478 -msgid "Create New Directory" -msgstr "" - -#: ../src/common/log.cpp:1041 ../src/common/log.cpp:1057 -#: src/common/log.cpp:1022 -msgid "Debug" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:209 ../src/generic/fontdlgg.cpp:211 -#: src/generic/fontdlgg.cpp:211 -msgid "Decorative" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:450 ../src/generic/dirdlgg.cpp:454 -#: src/generic/dirdlgg.cpp:450 -msgid "Directory does not exist" -msgstr "" - -#: ../src/common/docview.cpp:404 ../src/common/docview.cpp:423 -#: 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:481 -#: src/generic/dirdlgg.cpp:477 -msgid "Enter the name of the directory to create" -msgstr "" - -#: ../src/generic/helphtml.cpp:260 ../src/generic/helphtml.cpp:277 -#: 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:333 ../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/common/log.cpp:478 -#: ../src/generic/dcpsg.cpp:1296 ../src/generic/dcpsg.cpp:1403 -#: ../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:466 -#: ../src/generic/dirdlgg.cpp:490 ../src/generic/dirdlgg.cpp:494 -#: src/generic/dirdlgg.cpp:462 src/generic/dirdlgg.cpp:490 -msgid "Error creating directory" -msgstr "" - -#: ../src/common/log.cpp:325 ../src/common/log.cpp:329 src/common/log.cpp:332 -msgid "Error: " -msgstr "" - -#: ../src/generic/dirdlgg.cpp:230 ../src/generic/dirdlgg.cpp:234 -#: 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:1692 -#: ../src/common/resource.cpp:2769 ../src/common/resource.cpp:2773 -#: 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:1709 -#: ../src/common/resource.cpp:2786 ../src/common/resource.cpp:2790 -#: 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:1678 -#: ../src/common/resource.cpp:2755 ../src/common/resource.cpp:2759 -#: 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:112 -#: src/msw/clipbrd.cpp:106 -msgid "Failed to close the clipboard." -msgstr "" - -#: ../src/generic/dirdlgg.cpp:460 ../src/generic/dirdlgg.cpp:464 -#: ../src/generic/dirdlgg.cpp:488 ../src/generic/dirdlgg.cpp:492 -#: 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:124 -#: src/msw/clipbrd.cpp:118 -msgid "Failed to empty the clipboard." -msgstr "" - -#: ../src/common/resourc2.cpp:808 ../src/common/resource.cpp:2174 -#: ../src/common/resource.cpp:2178 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/resource.cpp:2333 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/resource.cpp:2194 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:92 src/msw/clipbrd.cpp:86 -msgid "Failed to open the clipboard." -msgstr "" - -#: ../src/msw/clipbrd.cpp:375 ../src/msw/clipbrd.cpp:412 -#: src/msw/clipbrd.cpp:375 -msgid "Failed to retrieve data from the clipboard." -msgstr "" - -#: ../src/msw/clipbrd.cpp:262 ../src/msw/clipbrd.cpp:286 -#: src/msw/clipbrd.cpp:262 -msgid "Failed to set clipboard data." -msgstr "" - -#: ../src/unix/threadpsx.cpp:551 ../src/unix/threadpsx.cpp:592 -#: ../src/unix/threadpsx.cpp:601 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/unix/threadpsx.cpp:713 src/gtk/threadpsx.cpp:611 -msgid "Failed to terminate a thread." -msgstr "" - -#: ../src/common/log.cpp:545 ../src/common/log.cpp:551 src/common/log.cpp:543 -msgid "Fatal error" -msgstr "" - -#: ../src/common/log.cpp:318 ../src/common/log.cpp:322 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:281 -#: ../src/common/docview.cpp:311 ../src/common/docview.cpp:317 -#: 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/unix/utilsunx.cpp:287 -#: 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:1661 -#: ../src/common/resource.cpp:2738 ../src/common/resource.cpp:2742 -#: 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:165 -#: src/generic/prntdlgg.cpp:97 -msgid "From:" -msgstr "" - -#: ../src/generic/helphtml.cpp:259 ../src/generic/helphtml.cpp:260 -#: ../src/generic/helphtml.cpp:276 ../src/generic/helphtml.cpp:277 -#: 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:2367 -#: ../src/common/resource.cpp:2374 ../src/common/resource.cpp:2378 -#: 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:232 ../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:486 src/common/log.cpp:477 -msgid "Information" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:215 ../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/dcpsg.cpp:2030 ../src/generic/prntdlgg.cpp:403 -#: ../src/generic/prntdlgg.cpp:410 ../src/generic/prntdlgg.cpp:606 -#: ../src/generic/prntdlgg.cpp:613 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:629 -#: 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:218 ../src/generic/fontdlgg.cpp:220 -#: src/generic/fontdlgg.cpp:220 -msgid "Light" -msgstr "" - -#: ../src/gtk/filedlg.cpp:212 ../src/gtk/filedlg.cpp:227 -#: ../src/gtk/filedlg.cpp:231 ../src/msw/filedlg.cpp:359 -#: ../src/msw/filedlg.cpp:360 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:740 src/common/log.cpp:720 -#, c-format -msgid "Log saved to the file '%s'." -msgstr "" - -#: ../src/gtk/mdi.cpp:347 ../src/gtk/mdi.cpp:369 src/gtk/mdi.cpp:321 -msgid "MDI child" -msgstr "" - -#: ../src/common/mimetype.cpp:1263 ../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:977 ../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:210 ../src/generic/fontdlgg.cpp:212 -#: src/generic/fontdlgg.cpp:212 -msgid "Modern" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:226 ../src/generic/dirdlgg.cpp:230 -#: src/generic/dirdlgg.cpp:226 -msgid "Mounted Devices" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:225 ../src/generic/dirdlgg.cpp:229 -#: src/generic/dirdlgg.cpp:225 -msgid "My Home" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:342 ../src/generic/dirdlgg.cpp:346 -#: src/generic/dirdlgg.cpp:342 -msgid "New..." -msgstr "" - -#: ../src/generic/extdlgg.cpp:103 ../src/generic/extdlgg.cpp:115 -#: ../src/generic/msgdlgg.cpp:111 ../src/generic/msgdlgg.cpp:148 -#: ../src/gtk/msgdlg.cpp:125 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:2184 -#: ../src/common/resource.cpp:2335 ../src/common/resource.cpp:2339 -#: 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/resource.cpp:2200 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/resource.cpp:2361 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:271 -#: src/generic/helphtml.cpp:254 -msgid "No entries found." -msgstr "" - -#: ../src/generic/fontdlgg.cpp:214 ../src/generic/fontdlgg.cpp:216 -#: ../src/generic/fontdlgg.cpp:217 ../src/generic/fontdlgg.cpp:219 -#: src/generic/fontdlgg.cpp:216 src/generic/fontdlgg.cpp:219 -msgid "Normal" -msgstr "" - -#: ../src/common/dlgcmn.cpp:116 ../src/common/dlgcmn.cpp:159 -#: ../src/generic/choicdgg.cpp:301 ../src/generic/colrdlgg.cpp:231 -#: ../src/generic/colrdlgg.cpp:233 ../src/generic/dcpsg.cpp:1916 -#: ../src/generic/dcpsg.cpp:1917 ../src/generic/dcpsg.cpp:2038 -#: ../src/generic/dirdlgg.cpp:340 ../src/generic/dirdlgg.cpp:344 -#: ../src/generic/extdlgg.cpp:121 ../src/generic/fontdlgg.cpp:258 -#: ../src/generic/fontdlgg.cpp:260 ../src/generic/msgdlgg.cpp:117 -#: ../src/generic/msgdlgg.cpp:158 ../src/generic/prntdlgg.cpp:171 -#: ../src/generic/prntdlgg.cpp:178 ../src/generic/prntdlgg.cpp:429 -#: ../src/generic/prntdlgg.cpp:436 ../src/generic/prntdlgg.cpp:579 -#: ../src/generic/prntdlgg.cpp:586 ../src/generic/textdlgg.cpp:136 -#: ../src/gtk/choicdlg.cpp:266 ../src/gtk/filedlg.cpp:148 -#: ../src/gtk/msgdlg.cpp:131 ../src/gtk/textdlg.cpp:109 -#: 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:416 -#: src/generic/prntdlgg.cpp:295 -msgid "Options" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:405 ../src/generic/prntdlgg.cpp:412 -#: ../src/generic/prntdlgg.cpp:607 ../src/generic/prntdlgg.cpp:614 -#: src/generic/prntdlgg.cpp:291 src/generic/prntdlgg.cpp:500 -msgid "Orientation" -msgstr "" - -#: ../src/common/prntbase.cpp:695 ../src/common/prntbase.cpp:705 -#: src/common/prntbase.cpp:693 -#, c-format -msgid "Page %d" -msgstr "" - -#: ../src/common/prntbase.cpp:693 ../src/common/prntbase.cpp:703 -#: src/common/prntbase.cpp:691 -#, c-format -msgid "Page %d of %d" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:564 ../src/generic/prntdlgg.cpp:571 -#: src/generic/prntdlgg.cpp:457 -msgid "Page Setup" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:141 ../src/generic/prntdlgg.cpp:148 -#: src/generic/prntdlgg.cpp:84 -msgid "Pages" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:395 ../src/generic/prntdlgg.cpp:402 -#: ../src/generic/prntdlgg.cpp:756 ../src/generic/prntdlgg.cpp:763 -#: src/generic/prntdlgg.cpp:281 src/generic/prntdlgg.cpp:629 -msgid "Paper size" -msgstr "" - -#: ../src/unix/utilsunx.cpp:259 ../src/unix/utilsunx.cpp:270 -#: src/gtk/utilsgtk.cpp:315 -msgid "Pipe creation failed" -msgstr "" - -#: ../src/common/prntbase.cpp:107 ../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/dcpsg.cpp:2029 ../src/generic/prntdlgg.cpp:402 -#: ../src/generic/prntdlgg.cpp:409 ../src/generic/prntdlgg.cpp:605 -#: ../src/generic/prntdlgg.cpp:612 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:372 -#: src/generic/dcpsg.cpp:338 -msgid "PostScript" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:234 ../src/generic/prntdlgg.cpp:241 -#: src/generic/prntdlgg.cpp:159 -msgid "PostScript file" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1949 ../src/generic/dcpsg.cpp:1950 -#: ../src/generic/dcpsg.cpp:2071 src/generic/dcpsg.cpp:1907 -msgid "PostScript:" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1912 ../src/generic/dcpsg.cpp:1913 -#: ../src/generic/dcpsg.cpp:2034 src/generic/dcpsg.cpp:1870 -msgid "Preview Only" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:102 ../src/generic/prntdlgg.cpp:109 -#: ../src/generic/prntdlgg.cpp:116 ../src/generic/prntdlgg.cpp:123 -#: src/generic/prntdlgg.cpp:71 -msgid "Print" -msgstr "" - -#: ../src/generic/printps.cpp:189 ../src/generic/printps.cpp:193 -#: ../src/generic/printps.cpp:194 src/generic/printps.cpp:165 -msgid "Print Error" -msgstr "" - -#: ../src/common/docview.cpp:831 ../src/common/docview.cpp:857 -#: src/common/docview.cpp:785 -msgid "Print Preview" -msgstr "" - -#: ../src/common/prntbase.cpp:636 ../src/common/prntbase.cpp:646 -#: ../src/common/prntbase.cpp:658 ../src/common/prntbase.cpp:668 -#: ../src/common/prntbase.cpp:675 ../src/common/prntbase.cpp:685 -#: 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:156 -#: src/generic/prntdlgg.cpp:90 -msgid "Print Range" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:370 ../src/generic/prntdlgg.cpp:377 -#: ../src/generic/prntdlgg.cpp:384 src/generic/prntdlgg.cpp:276 -msgid "Print Setup" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:417 ../src/generic/prntdlgg.cpp:424 -#: src/generic/prntdlgg.cpp:303 -msgid "Print in colour" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:419 ../src/generic/prntdlgg.cpp:426 -#: src/generic/prntdlgg.cpp:306 -msgid "Print spooling" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1911 ../src/generic/dcpsg.cpp:1912 -#: ../src/generic/dcpsg.cpp:2033 ../src/generic/prntdlgg.cpp:135 -#: ../src/generic/prntdlgg.cpp:142 src/generic/dcpsg.cpp:1869 -#: src/generic/prntdlgg.cpp:78 -msgid "Print to File" -msgstr "" - -#: ../src/common/prntbase.cpp:350 ../src/common/prntbase.cpp:359 -#: src/common/prntbase.cpp:349 -msgid "Print..." -msgstr "" - -#: ../src/generic/dcpsg.cpp:1922 ../src/generic/dcpsg.cpp:1923 -#: ../src/generic/dcpsg.cpp:2044 src/generic/dcpsg.cpp:1880 -msgid "Printer Command: " -msgstr "" - -#: ../src/generic/dcpsg.cpp:1927 ../src/generic/dcpsg.cpp:1928 -#: ../src/generic/dcpsg.cpp:2049 src/generic/dcpsg.cpp:1885 -msgid "Printer Options: " -msgstr "" - -#: ../src/generic/dcpsg.cpp:335 ../src/generic/dcpsg.cpp:341 -#: src/generic/dcpsg.cpp:306 -msgid "Printer Settings" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:421 ../src/generic/prntdlgg.cpp:428 -#: src/generic/prntdlgg.cpp:308 -msgid "Printer command:" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:133 ../src/generic/prntdlgg.cpp:140 -#: src/generic/prntdlgg.cpp:76 -msgid "Printer options" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:425 ../src/generic/prntdlgg.cpp:432 -#: src/generic/prntdlgg.cpp:312 -msgid "Printer options:" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:582 ../src/generic/prntdlgg.cpp:589 -#: src/generic/prntdlgg.cpp:475 -msgid "Printer..." -msgstr "" - -#: ../src/common/prntbase.cpp:106 ../src/common/prntbase.cpp:111 -#: ../src/common/prntbase.cpp:148 ../src/common/prntbase.cpp:153 -#: src/common/prntbase.cpp:110 src/common/prntbase.cpp:152 -msgid "Printing" -msgstr "" - -#: ../src/common/prntbase.cpp:120 ../src/common/prntbase.cpp:125 -#: src/common/prntbase.cpp:124 -msgid "Printing Error" -msgstr "" - -#: ../src/common/log.cpp:319 ../src/common/log.cpp:323 src/common/log.cpp:326 -msgid "Program aborted." -msgstr "" - -#: ../src/common/log.cpp:677 ../src/common/log.cpp:692 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:276 -#: 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:635 -#: src/generic/prntdlgg.cpp:521 -msgid "Right margin (mm):" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:208 ../src/generic/fontdlgg.cpp:210 -#: src/generic/fontdlgg.cpp:210 -msgid "Roman" -msgstr "" - -#: ../src/gtk/filedlg.cpp:228 ../src/gtk/filedlg.cpp:243 -#: ../src/gtk/filedlg.cpp:247 ../src/msw/filedlg.cpp:359 -#: ../src/msw/filedlg.cpp:361 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:234 -#: src/common/docview.cpp:198 -msgid "Save as" -msgstr "" - -#: ../src/common/log.cpp:635 ../src/common/log.cpp:646 src/common/log.cpp:630 -msgid "Save log contents to file" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:211 ../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:1299 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:1322 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:1216 ../src/common/docview.cpp:1223 -#: ../src/common/docview.cpp:1227 ../src/common/docview.cpp:1254 -#: 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:2032 src/generic/dcpsg.cpp:1868 -msgid "Send to Printer" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:137 ../src/generic/prntdlgg.cpp:144 -#: src/generic/prntdlgg.cpp:80 -msgid "Setup..." -msgstr "" - -#: ../src/common/layout.cpp:1366 ../src/common/layout.cpp:1371 -#: src/common/layout.cpp:1326 -msgid "Sizer error" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:216 ../src/generic/fontdlgg.cpp:218 -#: src/generic/fontdlgg.cpp:218 -msgid "Slant" -msgstr "" - -#: ../src/common/docview.cpp:285 ../src/common/docview.cpp:291 -#: 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:327 ../src/common/docview.cpp:333 -#: 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:298 -#: src/common/docview.cpp:259 -msgid "Sorry, could not save this file." -msgstr "" - -#: ../src/common/prntbase.cpp:658 ../src/common/prntbase.cpp:668 -#: src/common/prntbase.cpp:655 -msgid "Sorry, not enough memory to create a preview." -msgstr "" - -#: ../src/common/log.cpp:787 ../src/common/log.cpp:803 src/common/log.cpp:781 -msgid "Status: " -msgstr "" - -#: ../src/generic/fontdlgg.cpp:212 ../src/generic/fontdlgg.cpp:214 -#: src/generic/fontdlgg.cpp:214 -msgid "Swiss" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:213 ../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:1299 src/common/docview.cpp:1243 -msgid "Templates" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:231 ../src/generic/dirdlgg.cpp:235 -#: src/generic/dirdlgg.cpp:231 -msgid "Temporary" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:223 ../src/generic/dirdlgg.cpp:227 -#: src/generic/dirdlgg.cpp:223 -msgid "The Computer" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:447 ../src/generic/dirdlgg.cpp:451 -#: 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:169 -#: src/generic/prntdlgg.cpp:101 -msgid "To:" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:637 ../src/generic/prntdlgg.cpp:644 -#: src/generic/prntdlgg.cpp:530 -msgid "Top margin (mm):" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:244 ../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:1671 -#: ../src/common/resource.cpp:1684 ../src/common/resource.cpp:1685 -#: ../src/common/resource.cpp:1701 ../src/common/resource.cpp:1702 -#: ../src/common/resource.cpp:1715 ../src/common/resource.cpp:1716 -#: ../src/common/resource.cpp:2748 ../src/common/resource.cpp:2752 -#: ../src/common/resource.cpp:2762 ../src/common/resource.cpp:2766 -#: ../src/common/resource.cpp:2779 ../src/common/resource.cpp:2783 -#: ../src/common/resource.cpp:2793 ../src/common/resource.cpp:2797 -#: 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:1019 ../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:379 ../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:1734 ../src/common/docview.cpp:1745 -#: ../src/common/docview.cpp:1749 ../src/common/docview.cpp:1776 -#: 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/resource.cpp:2057 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:254 -#: ../src/msw/clipbrd.cpp:330 ../src/msw/clipbrd.cpp:353 -#: src/msw/clipbrd.cpp:220 src/msw/clipbrd.cpp:330 -msgid "Unsupported clipboard format." -msgstr "" - -#: ../src/generic/dirdlgg.cpp:227 ../src/generic/dirdlgg.cpp:231 -#: src/generic/dirdlgg.cpp:227 -msgid "User" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:228 ../src/generic/dirdlgg.cpp:232 -#: src/generic/dirdlgg.cpp:228 -msgid "User Local" -msgstr "" - -#: ../src/common/valtext.cpp:188 ../src/common/valtext.cpp:194 -#: 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:233 -#: src/generic/dirdlgg.cpp:229 -msgid "Variables" -msgstr "" - -#: ../src/common/docview.cpp:1291 ../src/common/docview.cpp:1295 -#: ../src/common/docview.cpp:1322 src/common/docview.cpp:1266 -msgid "Views" -msgstr "" - -#: ../src/common/docview.cpp:401 ../src/common/docview.cpp:420 -#: ../src/common/log.cpp:478 ../src/common/log.cpp:482 -#: ../src/common/resource.cpp:119 ../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:333 src/common/log.cpp:336 -msgid "Warning: " -msgstr "" - -#: ../src/generic/dcpsg.cpp:1967 ../src/generic/dcpsg.cpp:1968 -#: ../src/generic/dcpsg.cpp:2089 src/generic/dcpsg.cpp:1925 -msgid "X Scaling" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1976 ../src/generic/dcpsg.cpp:1977 -#: ../src/generic/dcpsg.cpp:2098 src/generic/dcpsg.cpp:1934 -msgid "X Translation" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1971 ../src/generic/dcpsg.cpp:1972 -#: ../src/generic/dcpsg.cpp:2093 src/generic/dcpsg.cpp:1929 -msgid "Y Scaling" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1980 ../src/generic/dcpsg.cpp:1981 -#: ../src/generic/dcpsg.cpp:2102 src/generic/dcpsg.cpp:1938 -msgid "Y Translation" -msgstr "" - -#: ../src/generic/extdlgg.cpp:101 ../src/generic/extdlgg.cpp:109 -#: ../src/generic/msgdlgg.cpp:109 ../src/generic/msgdlgg.cpp:147 -#: ../src/gtk/msgdlg.cpp:123 src/generic/msgdlgg.cpp:130 -msgid "Yes" -msgstr "" - -#: ../src/common/docview.cpp:1814 ../src/common/docview.cpp:1818 -#: ../src/common/docview.cpp:1845 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:1265 ../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:1830 -#: src/common/string.cpp:1430 -msgid "bad index in wxArrayString::Remove" -msgstr "" - -#: ../src/common/file.cpp:273 ../src/common/file.cpp:274 -#: 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:564 -#: 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:225 -#: 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:735 ../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:791 -#: 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:746 -#: 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:419 -#: 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:622 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:333 -#: 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:387 -#: 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:260 -#: src/common/file.cpp:254 -#, c-format -msgid "can't open file '%s'" -msgstr "" - -#: ../src/common/fileconf.cpp:182 ../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:194 ../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:641 ../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:300 -#: 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:670 -#: src/msw/registry.cpp:658 -#, c-format -msgid "can't read value of '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:569 ../src/msw/registry.cpp:581 -#: ../src/msw/registry.cpp:608 ../src/msw/registry.cpp:620 -#: 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:559 -#: src/common/file.cpp:515 -#, c-format -msgid "can't remove file '%s'" -msgstr "" - -#: ../src/common/file.cpp:574 ../src/common/file.cpp:575 -#: src/common/file.cpp:531 -#, c-format -msgid "can't remove temporary file '%s'" -msgstr "" - -#: ../src/common/file.cpp:372 ../src/common/file.cpp:373 -#: 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:606 -#: ../src/msw/registry.cpp:682 ../src/msw/registry.cpp:694 -#: 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:243 -#: 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:318 -#: src/common/file.cpp:312 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "" - -#: ../src/common/fileconf.cpp:648 ../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:334 -#: 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:1252 ../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:334 ../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:360 ../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:387 ../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:376 ../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:302 ../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:377 -#: ../src/common/date.cpp:392 ../src/common/date.cpp:395 -#: ../src/common/date.cpp:406 ../src/common/date.cpp:409 -#: 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:359 -#: src/common/date.cpp:355 -msgid "invalid day" -msgstr "" - -#: ../src/common/file.cpp:457 ../src/common/file.cpp:458 -#: src/common/file.cpp:452 -msgid "invalid eof() return value." -msgstr "" - -#: ../src/common/log.cpp:690 ../src/common/log.cpp:705 src/common/log.cpp:685 -msgid "invalid message box return value" -msgstr "" - -#: ../src/common/date.cpp:364 ../src/common/date.cpp:367 -#: src/common/date.cpp:363 -msgid "invalid month" -msgstr "" - -#: ../src/common/intl.cpp:432 ../src/common/intl.cpp:465 -#: src/common/intl.cpp:431 -#, c-format -msgid "locale '%s' can not be set." -msgstr "" - -#: ../src/common/intl.cpp:296 ../src/common/intl.cpp:329 -#: 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:1846 -#: src/common/string.cpp:1446 -msgid "removing inexistent element in wxArrayString::Remove" -msgstr "" - -#: ../src/common/intl.cpp:521 ../src/common/intl.cpp:554 -#: 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:559 -#: src/common/intl.cpp:524 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "" - -#: ../src/common/fileconf.cpp:1372 ../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:368 -#: src/common/file.cpp:362 -msgid "unknown seek origin" -msgstr "" - -#: ../src/common/docview.cpp:370 ../src/common/docview.cpp:389 -#: src/common/docview.cpp:337 -msgid "unnamed" -msgstr "" - -#: ../src/common/docview.cpp:1055 ../src/common/docview.cpp:1082 -#: src/common/docview.cpp:1009 -#, c-format -msgid "unnamed%d" -msgstr "" - -#: ../src/common/intl.cpp:306 ../src/common/intl.cpp:339 -#: src/common/intl.cpp:305 -#, c-format -msgid "using catalog '%s' from '%s'." -msgstr "" - -#: ../src/common/layout.cpp:1366 ../src/common/layout.cpp:1371 -#: src/common/layout.cpp:1326 -msgid "wxExpandSizer has no parent!" -msgstr "" - -#: ../src/common/prntbase.cpp:635 ../src/common/prntbase.cpp:645 -#: 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 -#: ../src/generic/printps.cpp:179 -msgid "Printing..." -msgstr "" - -#: ../src/generic/printps.cpp:207 ../src/generic/printps.cpp:211 -#: ../src/generic/printps.cpp:212 -#, c-format -msgid "Printing page %d..." -msgstr "" - -#: ../src/generic/dcpsg.cpp:2188 ../src/generic/dcpsg.cpp:2189 -#: ../src/generic/dcpsg.cpp:2310 -msgid "A4 sheet, 210 x 297 mm" -msgstr "" - -#: ../src/common/dynlib.cpp:187 ../src/common/dynlib.cpp:254 -#, c-format -msgid "Couldn't find symbol '%s' in a dynamic library" -msgstr "" - -#: ../src/common/dynlib.cpp:215 ../src/common/dynlib.cpp:274 -#, c-format -msgid "Failed to load shared library '%s'" -msgstr "" - -#: ../src/common/file.cpp:452 ../src/common/file.cpp:453 -#, c-format -msgid "" -"can't determine if the end of file is reached on descriptor " -"%d" -msgstr "" - -#: ../src/common/fileconf.cpp:610 ../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 ../src/common/string.cpp:1814 -msgid "bad index in wxArrayString::Insert" -msgstr "" - -#: ../src/common/valtext.cpp:140 ../src/common/valtext.cpp:146 -#, c-format -msgid "'%s' is invalid" -msgstr "" - -#: ../src/common/valtext.cpp:160 ../src/common/valtext.cpp:166 -#, c-format -msgid "'%s' should only contain ASCII characters." -msgstr "" - -#: ../src/common/valtext.cpp:166 ../src/common/valtext.cpp:172 -#, c-format -msgid "'%s' should only contain alphabetic characters." -msgstr "" - -#: ../src/common/valtext.cpp:172 ../src/common/valtext.cpp:178 -#, c-format -msgid "'%s' should only contain alphabetic or numeric characters." -msgstr "" - -#: ../src/common/valtext.cpp:178 ../src/common/valtext.cpp:184 -#, c-format -msgid "'%s' should be numeric." -msgstr "" - -#: ../src/common/imagjpeg.cpp:169 ../src/common/imagjpeg.cpp:174 -msgid "Couldn't load a JPEG image - probably file is corrupted." -msgstr "" - -#: ../src/common/imagjpeg.cpp:282 ../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 ../src/msw/app.cpp:200 -msgid "Could not initialise Rich Edit DLL" -msgstr "" - -#: ../src/msw/app.cpp:653 ../src/msw/app.cpp:698 -msgid "Unrecoverable program error detected: the application will terminate." -msgstr "" - -#: ../src/msw/app.cpp:655 ../src/msw/app.cpp:700 -msgid "Fatal Error" -msgstr "" - -#: ../src/msw/app.cpp:1125 ../src/msw/app.cpp:1165 -msgid "Fatal error: exiting" -msgstr "" - -#: ../src/msw/dialog.cpp:140 ../src/msw/dialog.cpp:142 -#: ../src/msw/dialog.cpp:145 -msgid "Failed to create dialog." -msgstr "" - -#: ../src/unix/threadpsx.cpp:296 ../src/unix/threadpsx.cpp:298 -#: ../src/unix/threadpsx.cpp:302 -msgid "Cannot start thread: error writing TLS" -msgstr "" - -#: ../src/unix/threadpsx.cpp:477 ../src/unix/threadpsx.cpp:518 -#: ../src/unix/threadpsx.cpp:527 -msgid "Cannot retrieve thread scheduling policy." -msgstr "" - -#: ../src/unix/threadpsx.cpp:485 ../src/unix/threadpsx.cpp:526 -#: ../src/unix/threadpsx.cpp:535 -#, c-format -msgid "Cannot get priority range for scheduling policy %d." -msgstr "" - -#: ../src/unix/threadpsx.cpp:768 ../src/unix/threadpsx.cpp:813 -#: ../src/unix/threadpsx.cpp:827 -msgid "Thread module initialization failed: failed to create thread key" -msgstr "" - -#: ../src/unix/utilsunx.cpp:211 ../src/unix/utilsunx.cpp:222 -msgid "Waiting for subprocess termination failed" -msgstr "" - -#: ../src/unix/utilsunx.cpp:449 ../src/unix/utilsunx.cpp:460 -msgid "Cannot get the hostname" -msgstr "" - -#: ../src/unix/utilsunx.cpp:485 ../src/unix/utilsunx.cpp:496 -msgid "Cannot get the official hostname" -msgstr "" - -#: ../src/unix/utilsunx.cpp:547 ../src/unix/utilsunx.cpp:555 -#: ../src/unix/utilsunx.cpp:558 ../src/unix/utilsunx.cpp:566 -msgid "Error " -msgstr "" - -#: ../src/msw/mdi.cpp:352 ../src/msw/mdi.cpp:355 -msgid "Failed to create MDI parent frame." -msgstr "" - -#: ../src/msw/window.cpp:1342 ../src/msw/window.cpp:2225 -msgid "" -"Can't find dummy dialog template!\n" -"Check resource include path for finding wx.rc." -msgstr "" - -#: ../src/msw/window.cpp:1368 ../src/msw/window.cpp:2266 -#, c-format -msgid "" -"Can't create window of class %s!\n" -"Possible Windows 3.x compatibility problem?" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1403 -msgid "Cannot open file for PostScript printing!" -msgstr "" - -#: ../src/generic/helpext.cpp:90 -#, c-format -msgid "Cannot open URL '%s'" -msgstr "" - -#: ../src/generic/extdlgg.cpp:126 -msgid "Forward" -msgstr "" - -#: ../src/generic/extdlgg.cpp:129 -msgid "Backward" -msgstr "" - -#: ../src/generic/extdlgg.cpp:132 -msgid "Setup" -msgstr "" - -#: ../src/generic/extdlgg.cpp:135 -msgid "More..." -msgstr "" - -#: ../src/generic/extdlgg.cpp:138 -msgid "Help" -msgstr "" - -#: ../src/generic/tipdlg.cpp:137 -msgid "Tips not available, sorry!" -msgstr "" - -#: ../src/generic/tipdlg.cpp:161 -msgid "Tip of the Day" -msgstr "" - -#: ../src/generic/tipdlg.cpp:172 -msgid "&Show tips at startup" -msgstr "" - -#: ../src/generic/tipdlg.cpp:173 -msgid "&Next" -msgstr "" - -#: ../src/generic/tipdlg.cpp:175 -msgid "Did you know..." -msgstr "" - -#: ../src/msw/clipbrd.cpp:149 -#, c-format -msgid "Failed to allocate %dKb of memory for clipboard transfer." -msgstr "" - -#: ../src/msw/clipbrd.cpp:164 -#, c-format -msgid "Failed to set clipboard data in format %s" -msgstr "" - -#: ../src/msw/menu.cpp:156 -msgid "ctrl" -msgstr "" - -#: ../src/msw/menu.cpp:158 -msgid "alt" -msgstr "" - -#: ../src/msw/menu.cpp:160 -msgid "shift" -msgstr "" 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/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/modules b/modules deleted file mode 100644 index a8ea3dcec3..0000000000 --- a/modules +++ /dev/null @@ -1,70 +0,0 @@ -wxGTK -a wxWindows !wxWindows/docs/latex \ - !wxWindows/docs/msw !wxWindows/docs/motif \ - !wxWindows/include/wx/msw !wxWindows/include/wx/motif !wxWindows/include/wx/qt \ - !wxWindows/include/wx/stubs !wxWindows/src/msw !wxWindows/src/qt !wxWindows/src/motif \ - !wxWindows/include/wx/mac !wxWindows/src/stubs !wxWindows/misc !wxWindows/user \ - !wxWindows/samples !wxWindows/utils - -wxQt -a wxWindows/Makefile wxWindows/install/unix wxWindows/install-sh \ - wxWindows/template.mak wxWindows/docs !wxWindows/docs/latex !wxWindows/docs/msw \ - !wxWindows/docs/gtk !wxWindows/docs/motif wxWindows/include/wx \ - !wxWindows/include/wx/msw !wxWindows/include/wx/gtk !wxWindows/include/wx/qt \ - !wxWindows/include/wx/stubs !wxWindows/src/stubs wxWindows/src/unix \ - wxWindows/src/Makefile wxWindows/src/Makefile.in wxWindows/src/qt \ - wxWindows/src/gdk_imlib wxWindows/src/generic wxWindows/src/common \ - wxWindows/src/png wxWindows/src/zlib wxWindows/src/mkdirs \ - wxWindows/lib wxWindows/src/qt.inc wxWindows/setup wxWindows/mkinstalldirs \ - wxWindows/misc wxWindows/user wxWindows/samples wxWindows/utils - -wxMac -a wxWindows/include/wx_cw.pch wxWindows/include/wx_cw.pch++ \ - wxWindows/include/wx_cw_d.pch wxWindows/include/wx_cw_d.pch++ \ - wxWindows/include/wx/mac wxWindows/src/mac - -wxMotif -a wxWindows/Makefile wxWindows/install/unix \ - wxWindows/template.mak wxWindows/docs !wxWindows/docs/latex !wxWindows/docs/msw \ - !wxWindows/docs/gtk !wxWindows/docs/qt !wxWindows/docs/word \ - wxWindows/include/wx \ - !wxWindows/include/wx/msw !wxWindows/include/wx/gtk !wxWindows/include/wx/qt \ - !wxWindows/include/wx/stubs \ - wxWindows/src/Makefile wxWindows/src/Makefile.in wxWindows/src/motif \ - wxWindows/src/generic wxWindows/src/common wxWindows/src/unix \ - wxWindows/src/png wxWindows/src/zlib wxWindows/src/mkdirs \ - wxWindows/lib wxWindows/src/motif.inc wxWindows/setup \ - !wxWindows/misc !wxWindows/user !wxWindows/samples !wxWindows/utils \ - wxWindows/configure wxWindows/configure.in wxWindows/wx-config.in \ - wxWindows/install-sh wxWindows/config.sub wxWindows/mkinstalldirs - -wxMSW -a wxWindows/docs !wxWindows/docs/latex !wxWindows/docs/gtk !wxWindows/docs/qt \ - !wxWindows/docs/motif wxWindows/install !wxWindows/install/unix \ - wxWindows/include !wxWindows/include/wx/gtk !wxWindows/include/wx/qt !wxWindows/include/wx/motif \ - wxWindows/src !wxWindows/src/Makefile \ - !wxWindows/src/Makefile.in !wxWindows/src/gtk !wxWindows/src/qt !wxWindows/src/motif \ - !wxWindows/src/gdk_imlib \ - wxWindows/src/png wxWindows/src/zlib !wxWindows/src/mkdirs \ - !wxWindows/include/wx/stubs !wxWindows/src/stubs \ - wxWindows/lib \ - wxWindows/misc !wxWindows/misc/imlib \ - wxWindows/template.mak - -wxEtc -a wxWindows/misc wxWindows/user wxWindows/samples wxWindows/utils - -wxDocs -a wxWindows/docs - -wxDoc -a wxWindows/docs - - -wxOS2 -a wxWindows wxWindows/docs !wxWindows/docs/latex !wxWindows/docs/motif \ - !wxWindows/docs/gtk !wxWindows/docs/motif2 !wxWindows/docs/msw !wxWindows/docs/word \ - wxWindows/include wxWindows/include/wx !wxWindows/include/wx/gtk \ - !wxWindows/include/wx/mac !wxWindows/include/wx/motif !wxWindows/include/wx/msw \ - !wxWindows/include/wx/qt !wxWindows/include/wx/stubs !wxWindows/include/wx/unix \ - wxWindows/include/wx/generic wxWindows/include/wx/os2 wxWindows/include/wx/protocol - wxWindows/include/wx/html \ - wxWindows/src !wxWindows/src/Makefile !wxWindows/src/Makefile.in !wxWindows/src/gdk_implib \ - !wxWindows/src/mac !wxWindows/src/motif !wxWindows/src/msw !wxWindows/src/png \ - !wxWindows/src/qt !wxWindows/src/stubs !wxWindows/src/unix !wxWindows/src/zlib \ - !wxWindows/src/iodbc - wxWindows/src/generic wxWindows/src/html wxWindows/src/common wxWindows/src/os2 \ - wxWindows/src/xpm - wxWindows/lib wxWindows/samples wxWindows/misc !wxWindows/misc/implib \ - wxWindows/testconf diff --git a/samples/.cvsignore b/samples/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/Makefile.in b/samples/Makefile.in deleted file mode 100644 index 0ae941813c..0000000000 --- a/samples/Makefile.in +++ /dev/null @@ -1,71 +0,0 @@ -# -# Makefile : Builds wxWindows samples for Unix. -# - -all: - cd bombs; make - cd checklst; make - cd config; make - cd controls; make - cd dialogs; make - cd docview; make - cd docvwmdi; make - cd dynamic; make - cd fractal; make - cd grid; make - cd help; make - cd image; make - cd internat; make - cd layout; make - cd listctrl; make - cd memcheck; make - cd minifram; make - cd minimal; make - cd notebook; make - cd printing; make - cd proplist; make - cd resource; make - cd sashtest; make - cd splitter; make - cd text; make - cd toolbar; make - cd typetest; make - cd validate; make - cd treectrl; make - cd wxpoem; make - cd dnd; make - cd thread; make - -clean: - cd bombs; make clean - cd checklst; make clean - cd config; make clean - cd controls; make clean - cd dialogs; make clean - cd docview; make clean - cd docvwmdi; make clean - cd dynamic; make clean - cd fractal; make clean - cd grid; make clean - cd help; make clean - cd image; make clean - cd internat; make clean - cd layout; make clean - cd listctrl; make clean - cd memcheck; make clean - cd minifram; make clean - cd minimal; make clean - cd notebook; make clean - cd printing; make clean - cd proplist; make clean - cd resource; make clean - cd sashtest; make clean - cd splitter; make clean - cd toolbar; make clean - cd typetest; make clean - cd validate; make clean - cd treectrl; make clean - cd wxpoem; make clean - cd dnd; make clean - cd thread; make clean - diff --git a/samples/bombs/.cvsignore b/samples/bombs/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/bombs/Makefile.in b/samples/bombs/Makefile.in deleted file mode 100644 index 90ec3d1ea5..0000000000 --- a/samples/bombs/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for bombs example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/bombs - -PROGRAM=bombs - -OBJECTS = bombs.o bombs1.o game.o - -include ../../src/makeprog.env - diff --git a/samples/bombs/bombs.bmp b/samples/bombs/bombs.bmp deleted file mode 100644 index 0fffb1f4d3..0000000000 Binary files a/samples/bombs/bombs.bmp and /dev/null differ 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 249893a7e3..0000000000 Binary files a/samples/bombs/bombs.ico and /dev/null differ 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.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 8b13789179..0000000000 --- a/samples/caret/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/caret/Makefile.in b/samples/caret/Makefile.in deleted file mode 100644 index 24a3b23fe3..0000000000 --- a/samples/caret/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for caret example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/caret - -PROGRAM=caret - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/caret/caret.cpp b/samples/caret/caret.cpp deleted file mode 100644 index 5e41c55f79..0000000000 --- a/samples/caret/caret.cpp +++ /dev/null @@ -1,383 +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 -///////////////////////////////////////////////////////////////////////////// - -// 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(); - - wxChar& 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: - 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 - wxChar *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 = (wxChar *)NULL; - - SetBackgroundColour(* wxWHITE); - - m_font = *wxNORMAL_FONT; - - wxClientDC dc(this); - dc.SetFont( m_font ); - m_heightChar = dc.GetCharHeight(); - m_widthChar = dc.GetCharWidth(); - - wxCaret *caret = new wxCaret(this, m_widthChar, m_heightChar); - SetCaret(caret); - - m_xCaret = m_yCaret = - m_xChars = m_yChars = 0; - - m_xMargin = m_yMargin = 5; - caret->Move(m_xMargin, m_yMargin); - 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 = (wxChar *)calloc(m_xChars * m_yChars, sizeof(wxChar)); - - wxFrame *frame = wxDynamicCast(GetParent(), wxFrame); - - if ( frame && frame->GetStatusBar() ) - { - wxString msg; - msg.Printf(_T("Panel size is (%d, %d)"), m_xChars, m_yChars); - - frame->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++ ) - { - wxChar ch = CharAt(x, y); - if ( !ch ) - ch = _T(' '); - 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 ( wxIsprint(event.KeyCode()) ) - { - CharAt(m_xCaret, m_yCaret) = (wxChar)event.KeyCode(); - NextChar(); - } - else - { - // don't refresh - return; - } - } - - wxLogStatus(_T("Caret is at (%d, %d)"), m_xCaret, m_yCaret); - - GetCaret()->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.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 8b13789179..0000000000 --- a/samples/checklst/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/checklst/Makefile.in b/samples/checklst/Makefile.in deleted file mode 100644 index fec63478bb..0000000000 --- a/samples/checklst/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for checklst example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/checklst - -PROGRAM=checklst - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/checklst/checklst.cpp b/samples/checklst/checklst.cpp deleted file mode 100644 index 9846d2008b..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, _T("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(_T("Demo of wxCheckListBox control\n" - "© Vadim Zeitlin 1998-1999"), - _T("About wxCheckListBox"), - wxICON_INFORMATION, this); -} - -void CheckListBoxFrame::OnListboxSelect(wxCommandEvent& event) -{ - int nSel = event.GetSelection(); - wxLogStatus(this, _T("item %d selected (%schecked)"), nSel, - m_pListBox->IsChecked(nSel) ? _T("") : _T("not ")); -} - -void CheckListBoxFrame::OnListboxDblClick(wxCommandEvent& WXUNUSED(event)) -{ - wxString strSelection; - strSelection.sprintf(_T("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, _T("item %d was %schecked"), nItem, - m_pListBox->IsChecked(nItem) ? _T("") : _T("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, _T("Can't move this item %s"), up ? _T("up") : _T("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, _T("Item moved %s"), up ? _T("up") : _T("down")); - } - } - else - { - wxLogStatus(this, _T("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 8b13789179..0000000000 --- a/samples/config/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/config/Makefile.in b/samples/config/Makefile.in deleted file mode 100644 index f3f1c97904..0000000000 --- a/samples/config/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for config example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/config - -PROGRAM=conftest - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/config/conftest.cpp b/samples/config/conftest.cpp deleted file mode 100644 index 37b8c1f543..0000000000 --- a/samples/config/conftest.cpp +++ /dev/null @@ -1,246 +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") -{ - // submenu - wxMenu *sub_menu = new wxMenu( wxMENU_TEAROFF ); - sub_menu->Append(Minimal_About, "&About", "About this sample"); - sub_menu->Append(Minimal_About, "&About", "About this sample"); - sub_menu->Append(Minimal_About, "&About", "About this sample"); - - // 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(_T("wxConfig demo\n© Vadim Zeitlin 1998"), _T("About"), - wxICON_INFORMATION | wxOK); -} - -void MyFrame::OnDelete(wxCommandEvent&) -{ - if ( wxConfigBase::Get()->DeleteAll() ) { - wxLogMessage(_T("Config file/registry key successfully deleted.")); - - delete wxConfigBase::Set((wxConfigBase *) NULL); - wxConfigBase::DontCreateOnDemand(); - } - else - { - wxLogError(_T("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.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 8b13789179..0000000000 --- a/samples/controls/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/controls/Makefile.in b/samples/controls/Makefile.in deleted file mode 100644 index dd63f87470..0000000000 --- a/samples/controls/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for controls example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/controls - -PROGRAM=controls - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp deleted file mode 100644 index ed3755f463..0000000000 --- a/samples/controls/controls.cpp +++ /dev/null @@ -1,968 +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 OnSpinUp( wxSpinEvent &event ); - void OnSpinDown( wxSpinEvent &event ); - 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("", wxMENU_TEAROFF ); - file_menu->Append(MINIMAL_ABOUT, "&About\tF1"); - file_menu->Append(MINIMAL_QUIT, "E&xit\tAlt-X", "Quit controls sample"); - - wxMenuBar *menu_bar = new wxMenuBar; - 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_SPIN_UP (ID_SPIN, MyPanel::OnSpinUp) -EVT_SPIN_DOWN (ID_SPIN, MyPanel::OnSpinDown) -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), wxRB_GROUP ); - 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(200,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(220,10), wxSize(270,130) ); -#ifdef __WXMOTIF__ - // No wrapping text in wxStaticText yet :-( - (void)new wxStaticText( panel, -1, - "Drag the slider!", - wxPoint(228,30), - wxSize(240, -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(228,25), - wxSize(240, 110) - ); -#endif - int initialSpinValue = -5; - wxString s; - s << initialSpinValue; - m_spintext = new wxTextCtrl( panel, -1, s, 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(initialSpinValue); - - m_btnProgress = new wxButton( panel, ID_BTNPROGRESS, "Show progress dialog", - wxPoint(208, 159) ); -#endif - m_notebook->AddPage(panel, "wxGauge", FALSE, Image_Gauge); - - panel = new wxPanel(m_notebook); - wxIcon icon = wxTheApp->GetStdIcon(wxICON_INFORMATION); - wxStaticBitmap *bmpStatic = new wxStaticBitmap(panel, -1, icon, wxPoint(10, 10)); - - bmpStatic = new wxStaticBitmap(panel, -1, wxNullIcon, wxPoint(50, 10)); - bmpStatic->SetIcon(wxTheApp->GetStdIcon(wxICON_QUESTION)); - - wxBitmap bitmap( 100, 100 ); - wxMemoryDC dc; - dc.SelectObject( bitmap ); - dc.SetPen(*wxGREEN_PEN); - dc.DrawEllipse(5, 5, 90, 90); - dc.DrawText("Bitmap", 20, 20); - dc.SelectObject( wxNullBitmap ); - - wxBitmapButton *bmpBtn = new wxBitmapButton - ( - panel, - -1, - bitmap, - wxPoint(100, 20) - ); - bmpBtn = NULL; // suppress warning - - new wxButton(panel, -1, "Another button", wxPoint(250, 20)); - - m_notebook->AddPage(panel, "wxBitmapXXX"); -} - -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 selOld = event.GetOldSelection(); - if ( selOld == 2 ) - { - if ( wxMessageBox("This demonstrates how a program may prevent the " - "page change from taking place - if you select " - "[No] the current page will stay the third one", - "Control sample", - wxICON_QUESTION | wxYES_NO) != wxYES ) - { - event.Veto(); - - return; - } - } - - *m_text << "Notebook selection is being changed from " << selOld << "\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::OnSpinUp( wxSpinEvent &event ) -{ - wxString value; - value.Printf( _T("Spin control up: current = %d\n"), - m_spinbutton->GetValue()); - - if ( m_spinbutton->GetValue() > 17 ) - { - value += _T("Preventing the spin button from going above 17.\n"); - - event.Veto(); - } - - m_text->AppendText(value); -} - -void MyPanel::OnSpinDown( wxSpinEvent &event ) -{ - wxString value; - value.Printf( _T("Spin control down: current = %d\n"), - m_spinbutton->GetValue()); - - if ( m_spinbutton->GetValue() < -17 ) - { - value += _T("Preventing the spin button from going below -17.\n"); - - event.Veto(); - } - - m_text->AppendText(value); -} - -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 | - wxPD_ELAPSED_TIME | - wxPD_ESTIMATED_TIME | - wxPD_REMAINING_TIME); - - - 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 ac6edb6bba..0000000000 Binary files a/samples/controls/icons/choice.bmp and /dev/null differ diff --git a/samples/controls/icons/choice.xpm b/samples/controls/icons/choice.xpm deleted file mode 100644 index c46aaf5dba..0000000000 --- a/samples/controls/icons/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/samples/controls/icons/combo.bmp b/samples/controls/icons/combo.bmp deleted file mode 100644 index 9690a167b0..0000000000 Binary files a/samples/controls/icons/combo.bmp and /dev/null differ 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 14dd39123e..0000000000 Binary files a/samples/controls/icons/gauge.bmp and /dev/null differ 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 384955d8ab..0000000000 Binary files a/samples/controls/icons/list.bmp and /dev/null differ 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 51b183f68b..0000000000 Binary files a/samples/controls/icons/radio.bmp and /dev/null differ 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 2ae397d694..0000000000 Binary files a/samples/controls/icons/text.bmp and /dev/null differ 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.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 2310c5d275..0000000000 Binary files a/samples/controls/mondrian.ico and /dev/null differ diff --git a/samples/controls/mondrian.xpm b/samples/controls/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/controls/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/db/.cvsignore b/samples/db/.cvsignore deleted file mode 100644 index b97957c729..0000000000 --- a/samples/db/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile.in -database.cfg - diff --git a/samples/db/Makefile.am b/samples/db/Makefile.am deleted file mode 100644 index 43359f6864..0000000000 --- a/samples/db/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = database - -database_SOURCES = dbtest.cpp listdb.cpp diff --git a/samples/db/db.xpm b/samples/db/db.xpm deleted file mode 100644 index 3d54cd4361..0000000000 --- a/samples/db/db.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -static char * db_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 10 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #800000", -"@ c #008000", -"# c #808000", -"$ c #c0c0c0", -"% c #808080", -"& c #ffff00", -"* c #0000ff", -"= c #ffffff", -/* pixels */ -" ", -" .............................. ", -" .****************************. ", -" .*==$=$==$====***************. ", -" .****************************. ", -" .............................. ", -" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%. ", -" .%+++%===%===%===%===%===%===. ", -" .%+++%===%===%===%===%===%===. ", -" .%$$&&&$$$$$$$$$$$$$$$$$$$$$$. ", -" .%===&&&&&===%===%===%===%===. ", -" .%===%=&&&&&=%===%===%===%===. ", -" .%$$$$$$&&&&&&$$$$$$$$$$$$$$$. ", -" .%===%===&&&=&&&&%===%===%===. ", -" .%===%===%&&&&=&&&&==%.....==. ", -" .%$$$$$$$$$$&&&&$&&&&.#####.$. ", -" .%===%===%===&&&&%=&.###.###.. ", -" .%===%===%===%&=&&&=@.#####... ", -" .%$$$$$$$$$$$$$&$&&&@.......@. ", -" .%===%===%===%==&&=&.###.###.. ", -" .%===%===%===%===%&=@.#####.@. ", -" .%$$$$$$$$$$$$$$$$$&@.......@. ", -" .%===%===%===%===%==.###.###.. ", -" .%===%===%===%===%===.#####.=. ", -" .%$$$$$$$$$$$$$$$$$$$$.....$$. ", -" .%===%===%===%===%===%===%===. ", -" .%===%===%===%===%===%===%===. ", -" .%$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", -" .%===%===%===%===%===%===%===. ", -" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%. ", -" .............................. ", -" "}; diff --git a/samples/db/dbtest.cpp b/samples/db/dbtest.cpp deleted file mode 100644 index b5d0cbc3d2..0000000000 --- a/samples/db/dbtest.cpp +++ /dev/null @@ -1,2053 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dbtest.cpp -// Purpose: wxWindows database demo app -// Author: George Tasker -// Modified by: -// Created: 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Remstar International, Inc. -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - * SYNOPSIS START - - This sample program demonstrates the cross-platform ODBC database classes - donated by the development team at Remstar International. - - The table this sample is based on is developer contact table, and shows - some of the simple uses of the database classes wxDB and wxTable. - - - - * SYNOPSIS END - */ - -#ifdef __GNUG__ -#pragma implementation "dbtest.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif //__BORLANDC__ - -#ifndef WX_PRECOMP -#include -#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 c4dbd3f784..0000000000 Binary files a/samples/db/dbtest.ico and /dev/null differ 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 2310c5d275..0000000000 Binary files a/samples/dde/mondrian.ico and /dev/null differ diff --git a/samples/dde/mondrian.xpm b/samples/dde/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/dde/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/dde/server.cpp b/samples/dde/server.cpp deleted file mode 100644 index 864c68afa7..0000000000 --- a/samples/dde/server.cpp +++ /dev/null @@ -1,196 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: server.cpp -// Purpose: DDE sample: server -// 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 "server.h" - -MyFrame *frame = NULL; - -IMPLEMENT_APP(MyApp) - -char ipc_buffer[4000]; -MyConnection *the_connection = NULL; -MyServer *my_server ; - -bool MyApp::OnInit() -{ - // Create the main frame window - frame = new MyFrame(NULL, "Server", wxDefaultPosition, wxSize(400, 500)); - - frame->CreateStatusBar(); - - // 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 8b13789179..0000000000 --- a/samples/dialogs/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/dialogs/Makefile.in b/samples/dialogs/Makefile.in deleted file mode 100644 index ac0f1c29f5..0000000000 --- a/samples/dialogs/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for dialogs example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/dialogs - -PROGRAM=dialogs - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp deleted file mode 100644 index fe0d694bbc..0000000000 --- a/samples/dialogs/dialogs.cpp +++ /dev/null @@ -1,362 +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 "wx/colordlg.h" -#include "wx/filedlg.h" -#include "wx/dirdlg.h" -#include "wx/fontdlg.h" -#include "wx/choicdlg.h" -#include "wx/tipdlg.h" - -#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 = &wxConvLibc; -#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_NUM_ENTRY, "&Numeric entry\tCtrl-N"); - file_menu->Append(DIALOGS_SINGLE_CHOICE, "&Single choice"); - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_TIP, "&Tip of the day"); - 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|wxICON_INFORMATION); - - dialog.ShowModal(); -} - -void MyFrame::NumericEntry(wxCommandEvent& WXUNUSED(event) ) -{ - long res = wxGetNumberFromUser( "This is some text, actually a lot of text.\n" - "Even two rows of text.", - "Enter a number:", "Numeric input test", - 50, 0, 100, this ); - - wxString msg; - int icon; - if ( res == -1 ) - { - msg = "Invalid number entered or dialog cancelled."; - icon = wxICON_HAND; - } - else - { - msg.Printf(_T("You've entered %lu"), res ); - icon = wxICON_INFORMATION; - } - - wxMessageBox(msg, "Numeric test result", wxOK | icon, this); -} - -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::ShowTip(wxCommandEvent& event) -{ -#if wxUSE_STARTUP_TIPS - static size_t s_index = (size_t)-1; - - if ( s_index == (size_t)-1 ) - { - srand(time(NULL)); - - // this is completely bogus, we don't know how many lines are there - // in the file, but who cares, it's a demo only... - s_index = rand() % 5; - } - - wxTipProvider *tipProvider = wxCreateFileTipProvider("tips.txt", s_index); - - bool showAtStartup = wxShowTip(this, tipProvider); - - if ( showAtStartup ) - { - wxMessageBox("Will show tips on startup", "Tips dialog", - wxOK | wxICON_INFORMATION, this); - } - - s_index = tipProvider->GetCurrentTip(); - delete tipProvider; -#endif -} - -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_NUM_ENTRY, MyFrame::NumericEntry) - 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) - EVT_MENU(DIALOGS_TIP, MyFrame::ShowTip) -#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 9c0cc248f5..0000000000 --- a/samples/dialogs/dialogs.h +++ /dev/null @@ -1,79 +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(); - - 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 NumericEntry(wxCommandEvent& event); - void FileOpen(wxCommandEvent& event); - void FileSave(wxCommandEvent& event); - void DirChoose(wxCommandEvent& event); - void ShowTip(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 -#define DIALOGS_TIP 11 -#define DIALOGS_NUM_ENTRY 13 - -#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.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/dialogs/tips.txt b/samples/dialogs/tips.txt deleted file mode 100644 index 3a019d90e4..0000000000 --- a/samples/dialogs/tips.txt +++ /dev/null @@ -1,5 +0,0 @@ -Startup tips are documented in "Startup tips overview" section of wxWindows documentation. -This is the first tip! -And this is another great tip... -And here is a very very very very very very very very very very very long one. -If you have something useful to add to this file, please do. diff --git a/samples/dnd/.cvsignore b/samples/dnd/.cvsignore deleted file mode 100644 index 8b13789179..0000000000 --- a/samples/dnd/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/dnd/Makefile.in b/samples/dnd/Makefile.in deleted file mode 100644 index 7c88bd2be8..0000000000 --- a/samples/dnd/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for dnd example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/dnd - -PROGRAM=dnd - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - 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 046f943199..0000000000 --- a/samples/dnd/dnd.cpp +++ /dev/null @@ -1,444 +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 "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/intl.h" -#include "wx/log.h" - -#include "wx/dnd.h" -#include "wx/dirdlg.h" - -#ifdef __WXMOTIF__ - #error Sorry, drag and drop is not yet implemented on wxMotif. -#endif - -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "mondrian.xpm" -#endif - -#include "wx/clipbrd.h" - -// ---------------------------------------------------------------------------- -// Derive two simple classes which just put in the listbox the strings (text or -// file names) we drop on them -// ---------------------------------------------------------------------------- - -typedef long wxDropPointCoord; - -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 OnCopy(wxCommandEvent& event); - void OnPaste(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, - Menu_Copy, - Menu_Paste -}; - -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_MENU(Menu_Copy, DnDFrame::OnCopy) - EVT_MENU(Menu_Paste, DnDFrame::OnPaste) - - 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-and-Drop/Clipboard wxWindows Sample", - 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 :-)") - -{ - // frame icon and status bar - SetIcon(wxICON(mondrian)); - - 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"); - - wxMenu *clip_menu = new wxMenu; - clip_menu->Append(Menu_Copy, "&Copy\tCtrl+C"); - clip_menu->Append(Menu_Paste, "&Paste\tCtrl+V"); - - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(log_menu, "&Log"); - menu_bar->Append(clip_menu, "&Clipboard"); - 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 ); - -#if wxUSE_STD_IOSTREAM -// 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); -#endif - - // 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 */) -{ - wxMessageBox("Drag-&-Drop Demo\n" - "Please see \"Help|Help...\" for details\n" - "Copyright (c) 1998 Vadim Zeitlin", - "About wxDnD", - wxICON_INFORMATION | wxOK, - this); -} - -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 wxUSE_STD_IOSTREAM - if ( m_pLog != NULL ) { - if ( wxLog::SetActiveTarget(m_pLogPrev) == m_pLog ) - delete m_pLog; - } -#endif -} - -// --------------------------------------------------------------------------- -// clipboard -// --------------------------------------------------------------------------- - -void DnDFrame::OnCopy(wxCommandEvent& WXUNUSED(event)) -{ - if ( !wxTheClipboard->Open() ) - { - wxLogError(_T("Can't open clipboard.")); - - return; - } - - if ( !wxTheClipboard->AddData(new wxTextDataObject(m_strText)) ) - { - wxLogError(_T("Can't copy data to the clipboard")); - } - else - { - wxLogMessage(_T("Text '%s' put on the clipboard"), m_strText.c_str()); - } - - wxTheClipboard->Close(); -} - -void DnDFrame::OnPaste(wxCommandEvent& WXUNUSED(event)) -{ - if ( !wxTheClipboard->Open() ) - { - wxLogError(_T("Can't open clipboard.")); - - return; - } - - if ( !wxTheClipboard->IsSupported(wxDF_TEXT) ) - { - wxLogWarning(_T("No text data on clipboard")); - - return; - } - - wxTextDataObject text; - if ( !wxTheClipboard->GetData(&text) ) - { - wxLogError(_T("Can't paste data from the clipboard")); - } - else - { - wxLogMessage(_T("Text '%s' pasted from the clipboard"), - text.GetText().c_str()); - } - - wxTheClipboard->Close(); -} - -// ---------------------------------------------------------------------------- -// 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.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 2310c5d275..0000000000 Binary files a/samples/dnd/mondrian.ico and /dev/null differ diff --git a/samples/dnd/mondrian.xpm b/samples/dnd/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/dnd/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/dnd/test.dsp b/samples/dnd/test.dsp deleted file mode 100644 index cb7e2871db..0000000000 --- a/samples/dnd/test.dsp +++ /dev/null @@ -1,121 +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 "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 8b13789179..0000000000 --- a/samples/docview/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/docview/Makefile.in b/samples/docview/Makefile.in deleted file mode 100644 index da2e9cb69b..0000000000 --- a/samples/docview/Makefile.in +++ /dev/null @@ -1,22 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for docview example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/docview - -PROGRAM=docview - -OBJECTS=$(PROGRAM).o doc.o view.o - -include ../../src/makeprog.env - - diff --git a/samples/docview/chart.ico b/samples/docview/chart.ico deleted file mode 100644 index d2bcfea7f6..0000000000 Binary files a/samples/docview/chart.ico and /dev/null differ diff --git a/samples/docview/doc.cpp b/samples/docview/doc.cpp deleted file mode 100644 index d679a53221..0000000000 --- a/samples/docview/doc.cpp +++ /dev/null @@ -1,379 +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 -#include "wx/txtstrm.h" - -#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); -} - -#if wxUSE_STD_IOSTREAM -ostream& DrawingDocument::SaveObject(ostream& stream) -{ - wxDocument::SaveObject(stream); - - wxInt32 n = doodleSegments.Number(); - stream << n << '\n'; - - wxNode *node = doodleSegments.First(); - while (node) - { - DoodleSegment *segment = (DoodleSegment *)node->Data(); - segment->SaveObject(stream); - stream << '\n'; - - node = node->Next(); - } - - return stream; -} -#else -wxOutputStream& DrawingDocument::SaveObject(wxOutputStream& stream) -{ - wxDocument::SaveObject(stream); - - wxTextOutputStream text_stream( stream ); - - wxInt32 n = doodleSegments.Number(); - text_stream << n << '\n'; - - wxNode *node = doodleSegments.First(); - while (node) - { - DoodleSegment *segment = (DoodleSegment *)node->Data(); - segment->SaveObject(stream); - text_stream << '\n'; - - node = node->Next(); - } - - return stream; -} -#endif - -#if wxUSE_STD_IOSTREAM -istream& DrawingDocument::LoadObject(istream& stream) -{ - wxDocument::LoadObject(stream); - - wxInt32 n = 0; - stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleSegment *segment = new DoodleSegment; - segment->LoadObject(stream); - doodleSegments.Append(segment); - } - - return stream; -} -#else -wxInputStream& DrawingDocument::LoadObject(wxInputStream& stream) -{ - wxDocument::LoadObject(stream); - - wxTextInputStream text_stream( stream ); - - wxInt32 n = 0; - text_stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleSegment *segment = new DoodleSegment; - segment->LoadObject(stream); - doodleSegments.Append(segment); - } - - return stream; -} -#endif - -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); -} - -#if wxUSE_STD_IOSTREAM -ostream& DoodleSegment::SaveObject(ostream& stream) -{ - wxInt32 n = lines.Number(); - stream << n << '\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; -} -#else -wxOutputStream &DoodleSegment::SaveObject(wxOutputStream& stream) -{ - wxTextOutputStream text_stream( stream ); - - wxInt32 n = lines.Number(); - text_stream << n << '\n'; - - wxNode *node = lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - text_stream << line->x1 << " " << - line->y1 << " " << - line->x2 << " " << - line->y2 << "\n"; - node = node->Next(); - } - - return stream; -} -#endif - -#if wxUSE_STD_IOSTREAM -istream& DoodleSegment::LoadObject(istream& stream) -{ - wxInt32 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; -} -#else -wxInputStream &DoodleSegment::LoadObject(wxInputStream& stream) -{ - wxTextInputStream text_stream( stream ); - - wxInt32 n = 0; - text_stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleLine *line = new DoodleLine; - text_stream >> line->x1 >> - line->y1 >> - line->x2 >> - line->y2; - lines.Append(line); - } - - return stream; -} -#endif - -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 2842a32315..0000000000 --- a/samples/docview/doc.h +++ /dev/null @@ -1,109 +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: - wxInt32 x1; - wxInt32 y1; - wxInt32 x2; - wxInt32 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); -#if wxUSE_STD_IOSTREAM - ostream& SaveObject(ostream& text_stream); - istream& LoadObject(istream& text_stream); -#else - wxOutputStream& SaveObject(wxOutputStream& stream); - wxInputStream& LoadObject(wxInputStream& stream); -#endif - -}; - -class DrawingDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(DrawingDocument) - private: - public: - wxList doodleSegments; - - DrawingDocument(void); - ~DrawingDocument(void); - -#if wxUSE_STD_IOSTREAM - ostream& SaveObject(ostream& text_stream); - istream& LoadObject(istream& text_stream); -#else - wxOutputStream& SaveObject(wxOutputStream& stream); - wxInputStream& LoadObject(wxInputStream& stream); -#endif - - 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 34b1d7bc93..0000000000 Binary files a/samples/docview/doc.ico and /dev/null differ diff --git a/samples/docview/docview.cpp b/samples/docview/docview.cpp deleted file mode 100644 index b142b5f843..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 (wxStrcmp(argv[1], _T("-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.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 2310c5d275..0000000000 Binary files a/samples/docview/mondrian.ico and /dev/null differ diff --git a/samples/docview/mondrian.xpm b/samples/docview/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/docview/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/docview/notepad.ico b/samples/docview/notepad.ico deleted file mode 100644 index 5d07bf79a3..0000000000 Binary files a/samples/docview/notepad.ico and /dev/null differ diff --git a/samples/docview/view.cpp b/samples/docview/view.cpp deleted file mode 100644 index 61cec41421..0000000000 --- a/samples/docview/view.cpp +++ /dev/null @@ -1,286 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.cpp -// 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 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 "docview.h" -#include "doc.h" -#include "view.h" - -IMPLEMENT_DYNAMIC_CLASS(DrawingView, wxView) - -// For drawing lines in a canvas -float xpos = -1; -float ypos = -1; - -BEGIN_EVENT_TABLE(DrawingView, wxView) - EVT_MENU(DOODLE_CUT, DrawingView::OnCut) -END_EVENT_TABLE() - -// What to do when a view is created. Creates actual -// windows for displaying the view. -bool DrawingView::OnCreate(wxDocument *doc, long WXUNUSED(flags) ) -{ - if (!singleWindowMode) - { - // Multiple windows - frame = wxGetApp().CreateChildFrame(doc, this, TRUE); - frame->SetTitle("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 8b13789179..0000000000 --- a/samples/docvwmdi/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/docvwmdi/Makefile.in b/samples/docvwmdi/Makefile.in deleted file mode 100644 index e81864e8e6..0000000000 --- a/samples/docvwmdi/Makefile.in +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for docvwmdi example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/docvwmdi - -PROGRAM=docview - -OBJECTS=$(PROGRAM).o doc.o view.o - -include ../../src/makeprog.env diff --git a/samples/docvwmdi/chart.ico b/samples/docvwmdi/chart.ico deleted file mode 100644 index d2bcfea7f6..0000000000 Binary files a/samples/docvwmdi/chart.ico and /dev/null differ diff --git a/samples/docvwmdi/doc.cpp b/samples/docvwmdi/doc.cpp deleted file mode 100644 index fe26f59bad..0000000000 --- a/samples/docvwmdi/doc.cpp +++ /dev/null @@ -1,377 +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 -#include "wx/txtstrm.h" - -#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); -} - -#if wxUSE_STD_IOSTREAM -ostream& DrawingDocument::SaveObject(ostream& stream) -{ - wxDocument::SaveObject(stream); - - wxInt32 n = doodleSegments.Number(); - stream << n << '\n'; - - wxNode *node = doodleSegments.First(); - while (node) - { - DoodleSegment *segment = (DoodleSegment *)node->Data(); - segment->SaveObject(stream); - stream << '\n'; - - node = node->Next(); - } - - return stream; -} -#else -wxOutputStream& DrawingDocument::SaveObject(wxOutputStream& stream) -{ - wxDocument::SaveObject(stream); - - wxTextOutputStream text_stream( stream ); - - wxInt32 n = doodleSegments.Number(); - text_stream << n << '\n'; - - wxNode *node = doodleSegments.First(); - while (node) - { - DoodleSegment *segment = (DoodleSegment *)node->Data(); - segment->SaveObject(stream); - text_stream << '\n'; - - node = node->Next(); - } - - return stream; -} -#endif - -#if wxUSE_STD_IOSTREAM -istream& DrawingDocument::LoadObject(istream& stream) -{ - wxDocument::LoadObject(stream); - - wxInt32 n = 0; - stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleSegment *segment = new DoodleSegment; - segment->LoadObject(stream); - doodleSegments.Append(segment); - } - - return stream; -} -#else -wxInputStream& DrawingDocument::LoadObject(wxInputStream& stream) -{ - wxDocument::LoadObject(stream); - - wxTextInputStream text_stream( stream ); - - wxInt32 n = 0; - text_stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleSegment *segment = new DoodleSegment; - segment->LoadObject(stream); - doodleSegments.Append(segment); - } - - return stream; -} -#endif -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); -} - -#if wxUSE_STD_IOSTREAM -ostream& DoodleSegment::SaveObject(ostream& stream) -{ - wxInt32 n = lines.Number(); - stream << n << '\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; -} -#else -wxOutputStream &DoodleSegment::SaveObject(wxOutputStream& stream) -{ - wxTextOutputStream text_stream( stream ); - - wxInt32 n = lines.Number(); - text_stream << n << '\n'; - - wxNode *node = lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - text_stream << line->x1 << " " << - line->y1 << " " << - line->x2 << " " << - line->y2 << "\n"; - node = node->Next(); - } - - return stream; -} -#endif - -#if wxUSE_STD_IOSTREAM -istream& DoodleSegment::LoadObject(istream& stream) -{ - wxInt32 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; -} -#else -wxInputStream &DoodleSegment::LoadObject(wxInputStream& stream) -{ - wxTextInputStream text_stream( stream ); - - wxInt32 n = 0; - text_stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleLine *line = new DoodleLine; - text_stream >> line->x1 >> - line->y1 >> - line->x2 >> - line->y2; - lines.Append(line); - } - - return stream; -} -#endif -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 ce250ff742..0000000000 --- a/samples/docvwmdi/doc.h +++ /dev/null @@ -1,109 +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: - wxInt32 x1; - wxInt32 y1; - wxInt32 x2; - wxInt32 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); - -#if wxUSE_STD_IOSTREAM - ostream& SaveObject(ostream& text_stream); - istream& LoadObject(istream& text_stream); -#else - wxOutputStream& SaveObject(wxOutputStream& stream); - wxInputStream& LoadObject(wxInputStream& stream); -#endif -}; - -class DrawingDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(DrawingDocument) - private: - public: - wxList doodleSegments; - - DrawingDocument(void); - ~DrawingDocument(void); - -#if wxUSE_STD_IOSTREAM - ostream& SaveObject(ostream& text_stream); - istream& LoadObject(istream& text_stream); -#else - wxOutputStream& SaveObject(wxOutputStream& stream); - wxInputStream& LoadObject(wxInputStream& stream); -#endif - - 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 34b1d7bc93..0000000000 Binary files a/samples/docvwmdi/doc.ico and /dev/null differ 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.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 5d07bf79a3..0000000000 Binary files a/samples/docvwmdi/notepad.ico and /dev/null differ diff --git a/samples/docvwmdi/view.cpp b/samples/docvwmdi/view.cpp deleted file mode 100644 index 80adc13467..0000000000 --- a/samples/docvwmdi/view.cpp +++ /dev/null @@ -1,264 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.cpp -// 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 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 "docview.h" -#include "doc.h" -#include "view.h" - -IMPLEMENT_DYNAMIC_CLASS(DrawingView, wxView) - -// For drawing lines in a canvas -float xpos = -1; -float ypos = -1; - -BEGIN_EVENT_TABLE(DrawingView, wxView) - EVT_MENU(DOODLE_CUT, DrawingView::OnCut) -END_EVENT_TABLE() - -// What to do when a view is created. Creates actual -// windows for displaying the view. -bool DrawingView::OnCreate(wxDocument *doc, long WXUNUSED(flags) ) -{ - frame = wxGetApp().CreateChildFrame(doc, this, TRUE); - frame->SetTitle("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 8b13789179..0000000000 --- a/samples/drawing/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/drawing/Makefile.in b/samples/drawing/Makefile.in deleted file mode 100644 index 840117f610..0000000000 --- a/samples/drawing/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for drawing example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/drawing - -PROGRAM=drawing - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/drawing/drawing.cpp b/samples/drawing/drawing.cpp deleted file mode 100644 index 8ad6661781..0000000000 --- a/samples/drawing/drawing.cpp +++ /dev/null @@ -1,531 +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(); -}; - -class MyCanvas; - -// 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 OnOption(wxCommandEvent &event); - void OnMouseMove(wxMouseEvent &event); - - wxColour SelectColour(); - void PrepareDC(wxDC& dc); - - 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; - MyCanvas *m_canvas; - -private: - // any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; - -// define a scrollable canvas for drawing onto -class MyCanvas: public wxScrolledWindow -{ -public: - MyCanvas( MyFrame *parent ); - - void DrawTestLines( int x, int y, int width, wxDC &dc ); - void OnPaint(wxPaintEvent &event); - -protected: - MyFrame *m_owner; - -private: - 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 -// ---------------------------------------------------------------------------- - - -// 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(550, 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; -} - -// ---------------------------------------------------------------------------- -// MyCanvas -// ---------------------------------------------------------------------------- - -// the event tables connect the wxWindows events with the functions (event -// handlers) which process them. -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT (MyCanvas::OnPaint) -END_EVENT_TABLE() - -MyCanvas::MyCanvas( MyFrame *parent ) - : wxScrolledWindow( parent ) -{ - m_owner = parent; -} - -void MyCanvas::DrawTestLines( int x, int y, int width, wxDC &dc ) -{ - dc.SetPen( wxPen( "black", width, wxSOLID) ); - dc.SetBrush( *wxRED_BRUSH ); - dc.DrawRectangle( x+10, y+10, 400, 190 ); - - dc.SetPen( wxPen( "black", width, wxSOLID) ); - dc.DrawLine( x+20, y+20, 390, y+20 ); - dc.SetPen( wxPen( "black", width, wxDOT) ); - dc.DrawLine( x+20, y+30, 390, y+30 ); - dc.SetPen( wxPen( "black", width, wxSHORT_DASH) ); - dc.DrawLine( x+20, y+40, 390, y+40 ); - dc.SetPen( wxPen( "black", width, wxLONG_DASH) ); - dc.DrawLine( x+20, y+50, 390, y+50 ); - dc.SetPen( wxPen( "black", width, wxDOT_DASH) ); - dc.DrawLine( x+20, y+60, 390, y+60 ); - - dc.SetPen( wxPen( "black", width, wxBDIAGONAL_HATCH) ); - dc.DrawLine( x+20, y+70, 390, y+70 ); - dc.SetPen( wxPen( "black", width, wxCROSSDIAG_HATCH) ); - dc.DrawLine( x+20, y+80, 390, y+80 ); - dc.SetPen( wxPen( "black", width, wxFDIAGONAL_HATCH) ); - dc.DrawLine( x+20, y+90, 390, y+90 ); - dc.SetPen( wxPen( "black", width, wxCROSS_HATCH) ); - dc.DrawLine( x+20, y+100, 390, y+100 ); - dc.SetPen( wxPen( "black", width, wxHORIZONTAL_HATCH) ); - dc.DrawLine( x+20, y+110, 390, y+110 ); - dc.SetPen( wxPen( "black", width, wxVERTICAL_HATCH) ); - dc.DrawLine( x+20, y+120, 390, y+120 ); - - wxPen ud( "black", width, wxUSER_DASH ); - wxDash dash1[1]; - dash1[0] = 0; - ud.SetDashes( 1, dash1 ); - dc.DrawLine( x+20, y+140, 390, y+140 ); - dash1[0] = 1; - ud.SetDashes( 1, dash1 ); - dc.DrawLine( x+20, y+150, 390, y+150 ); - dash1[0] = 2; - ud.SetDashes( 1, dash1 ); - dc.DrawLine( x+20, y+160, 390, y+160 ); - dash1[0] = 0xFF; - ud.SetDashes( 1, dash1 ); - dc.DrawLine( x+20, y+170, 390, y+170 ); - -} - -void MyCanvas::OnPaint(wxPaintEvent &WXUNUSED(event)) -{ - wxPaintDC dc(this); - PrepareDC(dc); - m_owner->PrepareDC(dc); - - dc.SetBackgroundMode( m_owner->m_backgroundMode ); - if ( m_owner->m_backgroundBrush.Ok() ) - dc.SetBackground( m_owner->m_backgroundBrush ); - if ( m_owner->m_colourForeground.Ok() ) - dc.SetTextForeground( m_owner->m_colourForeground ); - if ( m_owner->m_colourBackground.Ok() ) - dc.SetTextBackground( m_owner->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.DrawText( "This is text", 110, 10 ); - - dc.SetFont( wxFont( 18, wxSWISS, 0, 0 ) ); - - dc.DrawText( "This is Swiss 18pt text.", 110, 40 ); - - long length; - long height; - long descent; - dc.GetTextExtent( "This is Swiss 18pt text.", &length, &height, &descent ); - wxString text; - text.Printf( "Dimensions are length %ld, height %ld, descent %ld", length, height, descent ); - dc.DrawText( text, 110, 80 ); - - dc.DrawRectangle( 100, 40, 4, height ); - - text.Printf( "CharHeight() returns: %d", dc.GetCharHeight() ); - dc.DrawText( text, 110, 120 ); - - - dc.DrawIcon( wxICON(mondrian), 310, 40 ); - - DrawTestLines( 0, 200, 0, dc ); - - DrawTestLines( 0, 400, 1, dc ); - - DrawTestLines( 0, 600, 2, dc ); - - DrawTestLines( 0, 800, 6, dc ); - -} - -// ---------------------------------------------------------------------------- -// MyFrame -// ---------------------------------------------------------------------------- - -// 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_MENU (Minimal_Quit, MyFrame::OnQuit) - EVT_MENU (Minimal_About, MyFrame::OnAbout) - EVT_MENU_RANGE(MenuOption_First, MenuOption_Last, MyFrame::OnOption) -END_EVENT_TABLE() - -// 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; - - m_canvas = new MyCanvas( this ); - m_canvas->SetScrollbars( 10, 10, 100, 200 ); -} - -// 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; - } - - m_canvas->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::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.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 8b13789179..0000000000 --- a/samples/dynamic/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/dynamic/Makefile.in b/samples/dynamic/Makefile.in deleted file mode 100644 index 41692e7ae0..0000000000 --- a/samples/dynamic/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for dynamic example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/dynamic - -PROGRAM=dynamic - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - 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.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 2310c5d275..0000000000 Binary files a/samples/dynamic/mondrian.ico and /dev/null differ diff --git a/samples/dynamic/mondrian.xpm b/samples/dynamic/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/dynamic/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/forty/.cvsignore b/samples/forty/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/forty/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/forty/Makefile.am b/samples/forty/Makefile.am deleted file mode 100644 index 5498126d3c..0000000000 --- a/samples/forty/Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = forty - -forty_SOURCES = \ - forty.cpp canvas.cpp card.cpp game.cpp pile.cpp playerdg.cpp scoredg.cpp \ - scorefil.cpp diff --git a/samples/forty/canvas.cpp b/samples/forty/canvas.cpp deleted file mode 100644 index 384d2bebbe..0000000000 --- a/samples/forty/canvas.cpp +++ /dev/null @@ -1,253 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: canvas.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 "forty.h" -#include "card.h" -#include "game.h" -#include "scorefil.h" -#include "playerdg.h" -#include "canvas.h" - -BEGIN_EVENT_TABLE(FortyCanvas, wxScrolledWindow) - EVT_MOUSE_EVENTS(FortyCanvas::OnMouseEvent) -END_EVENT_TABLE() - -FortyCanvas::FortyCanvas(wxWindow* parent, int x, int y, int w, int h) : - wxScrolledWindow(parent, -1, wxPoint(x, y), wxSize(w, h)), - m_helpingHand(TRUE), - m_rightBtnUndo(TRUE), - m_playerDialog(0), - m_leftBtnDown(FALSE) -{ -#ifdef __WXGTK__ - m_font = wxTheFontList->FindOrCreateFont(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 35c8379526..0000000000 Binary files a/samples/forty/cards.ico and /dev/null differ 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 d8c3345521..0000000000 Binary files a/samples/forty/pictures.bmp and /dev/null differ diff --git a/samples/forty/pictures.xpm b/samples/forty/pictures.xpm deleted file mode 100644 index 31849577c7..0000000000 --- a/samples/forty/pictures.xpm +++ /dev/null @@ -1,60 +0,0 @@ -/* XPM */ -static char *Pictures[] = { -/* width height num_colors chars_per_pixel */ -" 120 45 8 1", -/* colors */ -". c #000000", -"# c #c0c0c0", -"a c #808080", -"b c #ff0000", -"c c #ffff00", -"d c #0000ff", -"e c #00ffff", -"f c #ffffff", -/* pixels */ -"........................................................................................................................", -".fff.fffffff.bb.bb.bb.b.fffffffffffffff..fffffffffff..f..bbc.cc..ffffffffffffff..fff.ffffff.bbccccbcccccbb.ffffffffffff.", -".ff.c.fffffff.bbbbbbbb.ffffffffffffffff..fff.ffffff..f.ff.bbc..c.ffffffffffffff..ff.a.ffffff.bbccbbbcccbb.fffffffffffff.", -".f.cbc.fffffff........fffffffffffffffff..ff.b.fffff.f.ffff.bb..c..fffffffffffff..f.#af.ffffff.bbbbbbbbbb.ffffffffffffff.", -".f.cbc.ffffff.fff.c.c.fffffffffffffffff..ff.b.fffff..f.ff.f.bbc.c.fffffffffffff..f.#af.ffffff............ffffffffffffff.", -".ff.c.fffffff.f..f.c.c.ffffffffffffffff..fff.ffffff.f..ff..f.bb..ffffffffffffff..f.#af.ffffff.a..f.fff.f.ffffffffffffff.", -".f.cbc.ffffff.f.ff.c.c.ffffffffffffffff..ff.c.fffff.fff.ffff..b.fffffffffffffff..f.#af.ffffff.a.f..fff..f.fffffffffffff.", -".f.cbc.fffff.fffff.c.c.ffffffffffffffff..ff.c.fffff.fff.ffff....fffffffffffffff..f.#af.ffffff.a.ffff.ffff.fffffffffffff.", -".ff.c.fffff.ffffff.c.c.ffffffffffffffff..ff.c.fffff.fff..fff.b..fffffffffffffff..f.#af.ffffff.a.fffff.fff.fffffffffffff.", -".f.cbc.ffff..###ff.c.c.ffffffffffffffff..ff.c.fffff.ffffffff..b.fffffffffffffff..f.#af.ffffff.a.ffff..fff.fffffffffffff.", -".f.cbc.ffffff...ff.c.c.ffffffffffffffff..fff.ffffff.ffbbbbff.f...ffffffffffffff..f.#af.fff..f.a..ffffffff.fffffffffffff.", -".ff....ffffff.ffff.c.c.ffffffffffffffff..ff....fffff.ffffff.f.f...fffffffffffff..f.#af.fff....a...f....f..fffffffffffff.", -".f.ffff.fffff.fffff.c.c.fffffffffffffff..f.ffff.ffff..ffff.f.f.f..fffffffffffff..f.#af.ffff.aaa.a..f.f.f...ffffffffffff.", -".f....ff.f.................ffffffffffff..f....ff.f.................ffffffffffff..f.#af.fff...................ffffffffff.", -".ff.fff....eddddddddddddddd.....fffffff..f.fffff...ffffffffff.cdbb......fffffff..f.#af.....c.cc..bbbbbb..c......fffffff.", -".ff....bbbd.dbcbbbbbbbbbcbdedbbb....fff..f....f.bc.fdddddddf.cdbb.d..f.....ffff..f.#af..cbbcc.cc..bbbb..c......b....fff.", -"...bbbb...deedbbcbbcbbcbbbd.dbb.bbbb.....f.fff.fbbc.fffffff.cdbb.d..f..dd.c..ff..........cbbcc.cc......c.....bbbdfff....", -".bb....c.ccdeedbbbcccbbbbdedbb.bbb..cc...ff...c.fbbc.fdddf.cdbb.d..f..dd.cccd.f...ffff...dcbbcc.cc....cc...ddbbbdfddddf.", -"...cc.c....bd.dbcbbcbbcbbd.db.bb..cbc.b..ff.dccc.bbc.ffff.cdbb.dd..ff...cdcdfd.........f.dcbbacc.cccccc..fdcbdbbdffddff.", -"..c....bbbbbdeddddddddddddedbb..cccc.bb..f..fdcdc.bbc.ff.cdbb.dddd..ff.cccdffdc...ffff.f.dcbbcacc.c...c.fdccccdbdffddff.", -"...bb.bb....bbbbbbbbbbbbbbbb..ccbbc.bb....ffdfdccc.bbc..cdbb..........cccdfdfbc........f.dcbbccacc.ccb.fdddbdbdbddffffd.", -".bbb.b..ccc.d.d.d.d.dd.d.d.d.cccbb.bb.b..cbdfffdccc.fdfdfdfdfdfdfdfd.cccdfffbbc...ffff.f.dcbbacca.bcdcc.caddddcddff..ff.", -".bb.bb.ccbcd.d.d.d.ff.d.d.d.dcbcc.bb.bb..cbbddddcdc.dbdbdbdbdbdbdbdb.cdcddddbbc.........ddcddaacc.cdddc.ccaddcdd........", -".b.bb.bbccc.d.d.d.dd.d.d.d.d.ccc.bb.bbb..cbbfffdccc.fdfdfdfdfdfdfdfd.cccdfffdbc..ff..ffddcddddaac.ccdcb.accbbcd.f.ffff..", -"..bb.cbbcc..bbbbbbbbbbbbbbbb....b..bb....cbfdfdccc..........bbdc..cbb.cccdfdff...dffffddcdbdbddaac.bcc.ccacbbcd.f.......", -".bb.cccc..bbdeddddddddddddedbbbbb....c...cdffdccc.ff..dddd.bbdc.ff.cbb.cdcdff.f..ffddffdbdccccdfa.c...c.ccabbcd.f.ffff..", -".b.cbc..bb.bd.dbbcbbcbbcbd.db....c.cc.....dfdcdc...ff..dd.bbdc.ffff.cbb.cccd.ff..ffddffdbbdbcdff..cccccc.ccbbcd.f.......", -"..cc..bbb.bbdedbbbbcccbbbdeedcc.c....bb..f.dccc.dd..f..d.bbdc.fdddf.cbbf.c...ff..fddddfdbbbddf...cc....cc.cbbcd...ffff..", -"....bbbb.bbd.dbbbcbbcbbcbbdeed...bbbb....ff..c.dd..f..d.bbdc.fffffff.cbbf.fff.f.....fffdbbb......c......cc.cbbc.........", -".fff....bbbdedbcbbbbbbbbbcbd.dbbb....ff..ffff.....f..d.bbdc.fdddddddf.cb.f....f..fff....bb......c..bbbb..cc.cbbc..fa#.f.", -".fffffff.....ddddddddddddddde....fff.ff..fffffff......bbdc.ffffffffff...fffff.f..fffffff.......c..bbbbbb..cc......fa#.f.", -".ffffffffffff.................f.ff....f..ffffffffffff.................f.ff....f..ffffffffff...................fff.fa#.f.", -".fffffffffffffff.c.c.fffff.fffff.ffff.f..fffffffffffff..f.f.f.ffff..ffff.ffff.f..ffffffffffff...f.f.f..a.aaa.ffff.fa#.f.", -".ffffffffffffffff.c.c.ffff.ffffff....ff..fffffffffffff...f.f.ffffff.fffff....ff..fffffffffffff..f....f...a....fff.fa#.f.", -".ffffffffffffffff.c.c.ff...ffffff.cbc.f..ffffffffffffff...f.ffbbbbff.ffffff.fff..fffffffffffff.ffffffff..a.f..fff.fa#.f.", -".ffffffffffffffff.c.c.ff###..ffff.cbc.f..fffffffffffffff.b..ffffffff.fffff.c.ff..fffffffffffff.fff..ffff.a.ffffff.fa#.f.", -".ffffffffffffffff.c.c.ffffff.fffff.c.ff..fffffffffffffff..b.fff..fff.fffff.c.ff..fffffffffffff.fff.fffff.a.ffffff.fa#.f.", -".ffffffffffffffff.c.c.fffff.fffff.cbc.f..fffffffffffffff....ffff.fff.fffff.c.ff..fffffffffffff.ffff.ffff.a.ffffff.fa#.f.", -".ffffffffffffffff.c.c.ff.f.ffffff.cbc.f..fffffffffffffff.b..ffff.fff.fffff.c.ff..fffffffffffff.f..fff..f.a.ffffff.fa#.f.", -".ffffffffffffffff.c.c.f..f.fffffff.c.ff..ffffffffffffff..bb.f..ff..f.ffffff.fff..ffffffffffffff.f.fff.ff.a.ffffff.fa#.f.", -".fffffffffffffffff.c.c.fff.ffffff.cbc.f..fffffffffffff.c.cbb.f.ff.f..fffff.b.ff..ffffffffffffff............ffffff.fa#.f.", -".fffffffffffffffff........fffffff.cbc.f..fffffffffffff..c..bb.ffff.f.fffff.b.ff..ffffffffffffff.bbbbbbbbbb.ffffff.fa#.f.", -".ffffffffffffffff.bbbbbbbb.fffffff.c.ff..ffffffffffffff.c..cbb.ff.f..ffffff.fff..fffffffffffff.bbcccbbbccbb.ffffff.a.ff.", -".fffffffffffffff.b.bb.bb.bb.fffffff.fff..ffffffffffffff..cc.cbb..f..fffffffffff..ffffffffffff.bbcccccbccccbb.ffffff.fff.", -"........................................................................................................................" -}; diff --git a/samples/forty/pile.cpp b/samples/forty/pile.cpp deleted file mode 100644 index d92c1d821d..0000000000 --- a/samples/forty/pile.cpp +++ /dev/null @@ -1,305 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pile.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: | -//| The base class for holding piles of playing cards. | -//+-------------------------------------------------------------+ - -#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 __GNUG__ -#pragma implementation -#endif - -#include -#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 59f466cd18..0000000000 Binary files a/samples/forty/symbols.bmp and /dev/null differ 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 a6465467d5..0000000000 --- a/samples/fractal/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -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 2310c5d275..0000000000 Binary files a/samples/fractal/mondrian.ico and /dev/null differ diff --git a/samples/grid/.cvsignore b/samples/grid/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/grid/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/grid/Makefile.am b/samples/grid/Makefile.am deleted file mode 100644 index 3631656b63..0000000000 --- a/samples/grid/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = test - -test_SOURCES = test.cpp diff --git a/samples/grid/bitmap1.bmp b/samples/grid/bitmap1.bmp deleted file mode 100644 index a9a5676133..0000000000 Binary files a/samples/grid/bitmap1.bmp and /dev/null differ diff --git a/samples/grid/bitmap2.bmp b/samples/grid/bitmap2.bmp deleted file mode 100644 index ae825f1bed..0000000000 Binary files a/samples/grid/bitmap2.bmp and /dev/null differ 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 f7cf501a1b..0000000000 --- a/samples/grid/test.cpp +++ /dev/null @@ -1,324 +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 ToggleEditInPlace(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_TOGGLE_EDITINPLACE 22 -#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_EDITINPLACE, "&Toggle edit in place"); - 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_EDITINPLACE, MyFrame::ToggleEditInPlace) - 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::ToggleEditInPlace(wxCommandEvent& WXUNUSED(event)) -{ - grid->SetEditInPlace(!grid->GetEditInPlace()); - 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 aa599b3ae1..0000000000 --- a/samples/help/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -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 a2233f7fa7..0000000000 --- a/samples/help/demo.cpp +++ /dev/null @@ -1,268 +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 -// ---------------------------------------------------------------------------- - -// 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 - -// define this to 1 to use HTML help even under Windows (by default, Windows -// version will HLP-based help) -#define USE_HTML_HELP 1 -#if USE_HTML_HELP -# include "wx/helpbase.h" -#else -# include "wx/help.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 OnHelp(wxCommandEvent& event); - -private: - wxHelpController m_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..."); -#ifndef __WXMSW__ -#ifndef wxUSE_HTML - menuFile->AppendSeparator(); - menuFile->Append(HelpDemo_Help_KDE, "Use &KDE"); - menuFile->Append(HelpDemo_Help_GNOME, "Use &GNOME"); - menuFile->Append(HelpDemo_Help_Netscape, "Use &Netscape"); -#endif -#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: this means that we'll use doc.hlp file under - // Windows and that the HTML docs are in the subdirectory doc for platforms - // using HTML help - m_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: - m_help.DisplaySection(1); - break; - case HelpDemo_Help_Functions: - m_help.DisplaySection(4); - break; - case HelpDemo_Help_Help: - m_help.DisplaySection(5); - break; - - // These three calls are only used by wxExtHelpController - - case HelpDemo_Help_KDE: - m_help.SetViewer("kdehelp"); - break; - case HelpDemo_Help_GNOME: - m_help.SetViewer("gnome-help-browser"); - break; - case HelpDemo_Help_Netscape: - m_help.SetViewer("netscape", wxHELP_NETSCAPE); - break; - - case HelpDemo_Help_Search: - { - wxString key = wxGetTextFromUser("Search for?", - "Search help for keyword", - "", - this); - if(! key.IsEmpty()) - m_help.KeywordSearch(key); - } - break; - case HelpDemo_Help_Index: - default: - m_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 3c6afea844..0000000000 Binary files a/samples/help/doc/ClassGraph.class and /dev/null differ diff --git a/samples/help/doc/ClassGraphPanel.class b/samples/help/doc/ClassGraphPanel.class deleted file mode 100644 index 4e3b5162cb..0000000000 Binary files a/samples/help/doc/ClassGraphPanel.class and /dev/null differ diff --git a/samples/help/doc/ClassLayout.class b/samples/help/doc/ClassLayout.class deleted file mode 100644 index 40eb67e0e9..0000000000 Binary files a/samples/help/doc/ClassLayout.class and /dev/null differ diff --git a/samples/help/doc/HIER.html b/samples/help/doc/HIER.html deleted file mode 100644 index 8f43b7e822..0000000000 --- a/samples/help/doc/HIER.html +++ /dev/null @@ -1,9 +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/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 9f447021d0..0000000000 Binary files a/samples/help/doc/NavigatorButton.class and /dev/null differ 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 fdf028aff3..0000000000 Binary files a/samples/help/doc/down.gif and /dev/null differ 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 f78f30eb98..0000000000 Binary files a/samples/help/doc/icon1.gif and /dev/null differ diff --git a/samples/help/doc/icon2.gif b/samples/help/doc/icon2.gif deleted file mode 100644 index 6cbe01a831..0000000000 Binary files a/samples/help/doc/icon2.gif and /dev/null differ 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 d92bbc60a1..0000000000 Binary files a/samples/help/doc/logo.gif and /dev/null differ diff --git a/samples/help/doc/wx204.htm b/samples/help/doc/wx204.htm deleted file mode 100644 index 47887ec214..0000000000 --- a/samples/help/doc/wx204.htm +++ /dev/null @@ -1,33 +0,0 @@ - -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 2310c5d275..0000000000 Binary files a/samples/help/mondrian.ico and /dev/null differ diff --git a/samples/help/mondrian.xpm b/samples/help/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/help/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/html/.cvsignore b/samples/html/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/Makefile.in b/samples/html/Makefile.in deleted file mode 100644 index f23a6a2937..0000000000 --- a/samples/html/Makefile.in +++ /dev/null @@ -1,10 +0,0 @@ -# -# Makefile : Builds html samples for Unix. -# - -all: - cd about; make - -clean: - cd about; make clean - diff --git a/samples/html/Makefile.vc b/samples/html/Makefile.vc deleted file mode 100644 index 2643a2e0d1..0000000000 --- a/samples/html/Makefile.vc +++ /dev/null @@ -1,55 +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\html\about - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\html\help - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\html\printing - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\html\test - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\html\virtual - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\html\widget - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\html\zip - nmake -f makefile.vc FINAL=$(FINAL) - -clean: - cd $(WXDIR)\samples\html\about - nmake -f makefile.vc clean - cd $(WXDIR)\samples\html\help - nmake -f makefile.vc clean - cd $(WXDIR)\samples\html\printing - nmake -f makefile.vc clean - cd $(WXDIR)\samples\html\test - nmake -f makefile.vc clean - cd $(WXDIR)\samples\html\virtual - nmake -f makefile.vc clean - cd $(WXDIR)\samples\html\widget - nmake -f makefile.vc clean - cd $(WXDIR)\samples\html\zip - nmake -f makefile.vc clean - diff --git a/samples/html/about/.cvsignore b/samples/html/about/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/about/Makefile.g95 b/samples/html/about/Makefile.g95 deleted file mode 100644 index bde3fb1700..0000000000 --- a/samples/html/about/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=about -OBJECTS = $(TARGET).o - -include $(WXDIR)\src\makeprog.g95 - diff --git a/samples/html/about/Makefile.in b/samples/html/about/Makefile.in deleted file mode 100644 index bb935c9cd9..0000000000 --- a/samples/html/about/Makefile.in +++ /dev/null @@ -1,24 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for html about example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. -program_dir = samples/html/about - -DATADIRS = data -DATAFILES = data/about.htm data/logo.png - -PROGRAM=about - -OBJECTS=$(PROGRAM).o - -include ../../../src/makeprog.env - diff --git a/samples/html/about/Makefile.vc b/samples/html/about/Makefile.vc deleted file mode 100644 index 0a6949adc0..0000000000 --- a/samples/html/about/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=about -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/html/about/about.cpp b/samples/html/about/about.cpp deleted file mode 100644 index 2c60e72580..0000000000 --- a/samples/html/about/about.cpp +++ /dev/null @@ -1,178 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxHtml testing example -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "test.cpp" - #pragma interface "test.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 "standard" wxWindows headers -#ifndef WX_PRECOMP - #include -#endif - -#include -#include - -// ---------------------------------------------------------------------------- -// 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_Back, - Minimal_Forward, - - // 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() - { - wxImage::AddHandler(new wxPNGHandler); - // Create the main application window - MyFrame *frame = new MyFrame("wxHtmlWindow testing application", - wxPoint(50, 50), wxSize(150, 50)); - - // 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) - { - // create a menu bar - wxMenu *menuFile = new wxMenu; - - menuFile->Append(Minimal_About, "&About"); - menuFile->Append(Minimal_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); - } - - -// event handlers - - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) - { - // TRUE is to force the frame to close - Close(TRUE); - } - - void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) - { - wxHtmlWindow *html; -#if __WXMSW__ - wxDialog dlg(this, -1, "About", wxDefaultPosition, wxSize(400, 250), wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE); -#else - wxDialog dlg(this, -1, "About", wxDefaultPosition, wxSize(400, 230), wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE); -#endif - - html = new wxHtmlWindow(&dlg, -1, wxPoint(10, 10), wxSize(380, 160), wxHW_SCROLLBAR_NEVER); - html -> SetBorders(0); - html -> LoadPage("data/about.htm"); - wxButton *bu1 = new wxButton(&dlg, wxID_OK, "OK", wxPoint(250, 185), wxSize(100, 30)); - bu1 -> SetDefault(); - dlg.ShowModal(); - } - - - - - - - diff --git a/samples/html/about/about.rc b/samples/html/about/about.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/html/about/about.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/html/about/data/about.htm b/samples/html/about/data/about.htm deleted file mode 100644 index b3bfa67dfc..0000000000 --- a/samples/html/about/data/about.htm +++ /dev/null @@ -1,17 +0,0 @@ - -
    -
    -
    wxHTML Library Sample 0.2.0
    -
    -
    -Copyright (C) 1999 Vaclav Slavik

    - - -
    -Vaclav Slavik (slavik2@czn.cz)
    Someone Else (selse@hell.org)

    -

    -
    - -The wxHTML library is available at http://www.ms.mff.cuni.cz/~vsla8348/wxhtml
    -The library is licenced under wxWindows Library Licence, Version 3. -

    diff --git a/samples/html/about/data/logo.png b/samples/html/about/data/logo.png deleted file mode 100644 index 6c5e312049..0000000000 Binary files a/samples/html/about/data/logo.png and /dev/null differ diff --git a/samples/html/help/.cvsignore b/samples/html/help/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/help/Makefile.in b/samples/html/help/Makefile.in deleted file mode 100644 index e976a8eba4..0000000000 --- a/samples/html/help/Makefile.in +++ /dev/null @@ -1,22 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for html about example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. - -VPATH = :$(top_srcdir)/samples/html/help - -PROGRAM=help - -OBJECTS=$(PROGRAM).o - -include ../../../src/makeprog.env - diff --git a/samples/html/help/Makefile.vc b/samples/html/help/Makefile.vc deleted file mode 100644 index e8c052e81a..0000000000 --- a/samples/html/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=help -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/html/help/help.cpp b/samples/html/help/help.cpp deleted file mode 100644 index 6a0e3d3cdd..0000000000 --- a/samples/html/help/help.cpp +++ /dev/null @@ -1,182 +0,0 @@ - -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxHtml testing example -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "help.cpp" - #pragma interface "help.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 "standard" wxWindows headers -#ifndef WX_PRECOMP - #include -#endif - -#include -#include - -// ---------------------------------------------------------------------------- -// 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: - wxHtmlHelpController help; - wxConfig* config; - - // 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_Help - }; - -// ---------------------------------------------------------------------------- -// 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_Help, 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() - { - #if wxUSE_LIBPNG - wxImage::AddHandler(new wxPNGHandler); - #endif - #if wxUSE_LIBJPEG - wxImage::AddHandler(new wxJPEGHandler); - #endif - - // Create the main application window - MyFrame *frame = new MyFrame("HTML Help Sample", - wxPoint(50, 50), wxSize(150, 50)); - - // 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), help() - { - // create a menu bar - wxMenu *menuFile = new wxMenu; - - menuFile->Append(Minimal_Help, "&Help"); - menuFile->Append(Minimal_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); - - config = new wxConfig("wxHTMLhelp"); - - help.UseConfig(config); - help.AddBook("helpfiles/testing.hhp"); - } - - -// event handlers - - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) - { - // TRUE is to force the frame to close - delete config; - Close(TRUE); - } - - - - - void MyFrame::OnHelp(wxCommandEvent& WXUNUSED(event)) - { - help.Display("Main page"); - } - - - - - - - diff --git a/samples/html/help/help.rc b/samples/html/help/help.rc deleted file mode 100644 index 7fa90c817b..0000000000 --- a/samples/html/help/help.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" -#include "wx/html/msw/wxhtml.rc" diff --git a/samples/html/help/helpfiles/Index.hhk b/samples/html/help/helpfiles/Index.hhk deleted file mode 100644 index a9ab87b4a0..0000000000 --- a/samples/html/help/helpfiles/Index.hhk +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - -

      -
    • - - - - -
    • - - - - -
    • - - - - -
    - diff --git a/samples/html/help/helpfiles/book1.htm b/samples/html/help/helpfiles/book1.htm deleted file mode 100644 index fa470e3ec5..0000000000 --- a/samples/html/help/helpfiles/book1.htm +++ /dev/null @@ -1,4 +0,0 @@ -Book 1 -

    Book 1.

    -How do you enjoy book one?? - diff --git a/samples/html/help/helpfiles/book2.htm b/samples/html/help/helpfiles/book2.htm deleted file mode 100644 index 828723fc65..0000000000 --- a/samples/html/help/helpfiles/book2.htm +++ /dev/null @@ -1,5 +0,0 @@ -Book 1 -

    Book 2.

    -How do you enjoy book two?? -

    Please click HERE - diff --git a/samples/html/help/helpfiles/contents.hhc b/samples/html/help/helpfiles/contents.hhc deleted file mode 100644 index 3eb7c2c974..0000000000 --- a/samples/html/help/helpfiles/contents.hhc +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - -

      -
    • - - - -
        -
      • - - - -
      • - - - - -
          -
        • - - - -
        -
      -
    - diff --git a/samples/html/help/helpfiles/main.htm b/samples/html/help/helpfiles/main.htm deleted file mode 100644 index ca5275bfd7..0000000000 --- a/samples/html/help/helpfiles/main.htm +++ /dev/null @@ -1,5 +0,0 @@ - -

    This is main page.

    -Book 1
    -Book 2
    - diff --git a/samples/html/help/helpfiles/page2-b.htm b/samples/html/help/helpfiles/page2-b.htm deleted file mode 100644 index f51dd6d6d6..0000000000 --- a/samples/html/help/helpfiles/page2-b.htm +++ /dev/null @@ -1,5 +0,0 @@ - - -Hello, you're on sub page of page 2 !!! - - diff --git a/samples/html/help/helpfiles/testing.hhp b/samples/html/help/helpfiles/testing.hhp deleted file mode 100644 index 5cd4d4e87f..0000000000 --- a/samples/html/help/helpfiles/testing.hhp +++ /dev/null @@ -1,15 +0,0 @@ -[OPTIONS] -Compatibility=1.1 -Compiled file=testing.chm -Contents file=contents.hhc -Display compile progress=No -Index file=Index.hhk -Language=0x405 Česky -Title=Testing HELPFILE :-) -Default topic=main.htm - -[FILES] -main.htm -book1.htm -book2.htm -page2-b.htm diff --git a/samples/html/printing/.cvsignore b/samples/html/printing/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/printing/Makefile.in b/samples/html/printing/Makefile.in deleted file mode 100644 index 5bd7d8beca..0000000000 --- a/samples/html/printing/Makefile.in +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for html printing example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. -program_dir = samples/html/printing - -DATAFILES = test.htm pic.png - -PROGRAM=printing - -OBJECTS=$(PROGRAM).o - -include ../../../src/makeprog.env - diff --git a/samples/html/printing/Makefile.vc b/samples/html/printing/Makefile.vc deleted file mode 100644 index d3430e9401..0000000000 --- a/samples/html/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/html/printing/mondrian.ico b/samples/html/printing/mondrian.ico deleted file mode 100644 index 2310c5d275..0000000000 Binary files a/samples/html/printing/mondrian.ico and /dev/null differ diff --git a/samples/html/printing/mondrian.xpm b/samples/html/printing/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/html/printing/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/html/printing/pic.png b/samples/html/printing/pic.png deleted file mode 100644 index fcc18c1296..0000000000 Binary files a/samples/html/printing/pic.png and /dev/null differ diff --git a/samples/html/printing/printing.cpp b/samples/html/printing/printing.cpp deleted file mode 100644 index 2febc3bd6c..0000000000 --- a/samples/html/printing/printing.cpp +++ /dev/null @@ -1,312 +0,0 @@ -/* - * File: printing.cc - * Purpose: Printing demo for wxWindows class library - * Author: Julian Smart - * modified by Vaclav Slavik (wxHTML stuffs) - * Created: 1995 - * Updated: - * Copyright: (c) 1995, AIAI, University of Edinburgh - */ - -/* static const char sccsid[] = "%W% %G%"; */ - -#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_PRINTING_ARCHITECTURE -#error You must set wxUSE_PRINTING_ARCHITECTURE to 1 in setup.h to compile this demo. -#endif - -// Set this to 1 if you want to test PostScript printing under MSW. -// However, you'll also need to edit src/msw/makefile.nt. - -//!!! DON'T DO THAT! This is wxHTML sample now -#define wxTEST_POSTSCRIPT_IN_MSW 0 - -#include -#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 -#include -#include "printing.h" - -#ifndef __WXMSW__ -#include "mondrian.xpm" -#endif - -// Global print data, to remember settings during the session -wxPrintData *g_printData = (wxPrintData*) NULL ; - -// Global page setup data -wxPageSetupData* g_pageSetupData = (wxPageSetupData*) NULL; - - -// Declare a frame -MyFrame *frame = (MyFrame *) NULL; -wxHtmlWindow *html = NULL; -int orientation = wxPORTRAIT; - -// Main proc -IMPLEMENT_APP(MyApp) - - -MyApp::MyApp() -{ -} - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit(void) -{ - g_printData = new wxPrintData; - g_pageSetupData = new wxPageSetupDialogData; - - // Create the main frame window - frame = new MyFrame((wxFrame *) NULL, (char *) "wxWindows Printing Demo", wxPoint(0, 0), wxSize(600, 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); - - 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); - - frame->Centre(wxBOTH); - frame->Show(TRUE); - - frame->SetStatusText("Printing demo"); - - SetTopWindow(frame); - - return TRUE; -} - -int MyApp::OnExit() -{ - 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) -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) -{ - html = new wxHtmlWindow(this); - html -> LoadPage("test.htm"); -} - -void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - -void MyFrame::OnPrint(wxCommandEvent& WXUNUSED(event)) -{ - wxPrinter printer; - 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); -} - -void MyFrame::OnPrintPreview(wxCommandEvent& WXUNUSED(event)) -{ - wxPrintData printData; - printData.SetOrientation(orientation); - - // Pass two printout objects: for preview, and possible printing. - wxPrintPreview *preview = new wxPrintPreview(new MyPrintout, new MyPrintout, & printData); - 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(); -} - - - -void MyFrame::OnPrintAbout(wxCommandEvent& WXUNUSED(event)) -{ - (void)wxMessageBox("wxWindows printing demo\nAuthor: Julian Smart julian.smart@ukonline.co.uk\n\nModified by Vaclav Slavik to show wxHtml features", - "About wxWindows printing demo", wxOK|wxCENTRE); -} - - -bool MyPrintout::OnPrintPage(int page) -{ - wxDC *dc = GetDC(); - if (dc) - { - if (page == 1) - DrawPageOne(dc); - - 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 = 1; - *selPageFrom = 1; - *selPageTo = 1; -} - -bool MyPrintout::HasPage(int pageNum) -{ - return (pageNum == 1); -} - - -void MyPrintout::DrawPageOne(wxDC *dc) -{ - int leftMargin = 20; - int topMargin = 40; - -/* 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); - - // Here we obtain internal cell representation of HTML document: - wxHtmlContainerCell *cell = html -> GetInternalRepresentation(); - - // 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); - - // Now we must scale it somehow. The best would be to suppose that html window - // width is equal to page width: - - float scale = (float)((float)(pageWidth - 0 * leftMargin)/((float)cell -> GetMaxLineWidth() + 2 * leftMargin)); - - // 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. - - dc->SetBackgroundMode(wxTRANSPARENT); - - // TESTING - - int pageWidthMM, pageHeightMM; - GetPageSizeMM(&pageWidthMM, &pageHeightMM); - - - // This is all the printing : - cell -> Draw(*dc, leftMargin, topMargin, 0, cell -> GetHeight()); -} - - - diff --git a/samples/html/printing/printing.h b/samples/html/printing/printing.h deleted file mode 100644 index ba50b4e216..0000000000 --- a/samples/html/printing/printing.h +++ /dev/null @@ -1,76 +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(); -}; - -DECLARE_APP(MyApp) - -class MyCanvas; - -// Define a new canvas and frame -class MyFrame: public wxFrame -{ - public: - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size); - - 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() -}; - - -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); -}; - -#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/html/printing/printing.rc b/samples/html/printing/printing.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/html/printing/printing.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/html/printing/test.htm b/samples/html/printing/test.htm deleted file mode 100644 index ca2d7dfba1..0000000000 --- a/samples/html/printing/test.htm +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -This is - - default text, now switching to -
    -

    center, now still ctr, now exiting

    - -

    exited!.[link to down] -

    Hello, this *is* default charset (helvetica, probably) and it is displayed -with one  COLOR CHANGE. Of course we -can have as many color changes as we can, what about this MADNESS? -

    There was a space above. -
    -


    This was a line. (BTW we are in fixed font -/ typewriter font right now :-) -
    This is in BOLD face. This is ITALIC. This is E -V E R Y T H I N G. -
      -
      -
    -
    -
    -
    -

    Right now, centered REALLY Big Text, -how do you like (space) it?

    - -
    RIGHT: text-2, text-1, -text+0, -text+1, -text+2, -text+3, -text+4 -
    we are right now
    - -
    we are center now
    -we are left now. -

    Blue italic text is displayed there.... -

    - -
    This is heading one.

    -this is normal -
    -

    -This is CENTERED heading one

    -Testing image imageand this is text...... -
      -
      -
    • -item 1
    • - -
    • -item 2
    • - -
        -
      • -nested item
      • - -
      • -nested item 2
      • -
      - -
    • -item 3
    • -
    - -
      -
    1. -item one
    2. - -
    3. -item two
    4. - -
        -
      1. -nsted item
      2. -
      - -
    5. -last numbered item
    6. -
    - -

    -Heading 1

    -Italic text now... -

    -Heading 2

    -and now? -

    -Heading 3

    - -

    -Heading 4

    - -
    -Heading 5
    - -
    -Heading 6
    -And this is normal text, once again :-) -

    And yes, we're in HTML DOCUMENT, so -what about some nice hypertext link?? -

    hello? -

    -

    This is centered paragraph

    - -

    Now, you will see some PRE text: -

    // This is sample C++ code:
    -
    -void main(int argc, char *argv[])
    -{
    -    printf("Go away, man!\n");
    -    i = 666;
    -    printf("\n\n\nCRASH\n  DOWN NOW. . .  \n");
    -}
    - -

    -WWW

    -This is WWW link to KDE site! -
    (one -folder up) - - diff --git a/samples/html/test/.cvsignore b/samples/html/test/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/test/Makefile.in b/samples/html/test/Makefile.in deleted file mode 100644 index 9bdf5dca4f..0000000000 --- a/samples/html/test/Makefile.in +++ /dev/null @@ -1,24 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for html test example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. -program_dir = samples/html/test - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -DATAFILES=f.html fft.html imagemap.htm imagemap.png pic.png pic2.bmp \ - tables.htm test.htm - -include ../../../src/makeprog.env - diff --git a/samples/html/test/Makefile.vc b/samples/html/test/Makefile.vc deleted file mode 100644 index 4ada748eda..0000000000 --- a/samples/html/test/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/html/test/f.html b/samples/html/test/f.html deleted file mode 100644 index 625ec44f81..0000000000 --- a/samples/html/test/f.html +++ /dev/null @@ -1,2474 +0,0 @@ - -wxWindow - -
    -Contents Up << >>

    - -

    wxWindow

    -

    -wxWindow is the base class for all windows. Any -children of the window will be deleted automatically by the destructor -before the window itself is deleted.

    -Derived from

    -wxEvtHandler
    - -wxObject

    -Include files

    -<wx/window.h>

    -Window styles

    -The following styles can apply to all windows, although they will not always make sense for a particular -window class.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -wxSIMPLE_BORDER - -Displays a thin border around the window. wxBORDER is the old name -for this style. -
    -wxDOUBLE_BORDER - -Displays a double border. Windows only. -
    -wxSUNKEN_BORDER - -Displays a sunken border. -
    -wxRAISED_BORDER - -Displays a raised border. -
    -wxSTATIC_BORDER - -Displays a border suitable for a static control. -
    -wxTRANSPARENT_WINDOW - -The window is transparent, that is, it will not receive paint -events. Windows only. -
    -wxNO_3D - -Prevents the children of this window taking on 3D styles, even though -the application-wide policy is for 3D controls. Windows only. -
    -wxTAB_TRAVERSAL - -Use this to enable tab traversal for non-dialog windows. -
    -wxVSCROLL - -Use this style to enable a vertical scrollbar. -
    -wxHSCROLL - -Use this style to enable a horizontal scrollbar. -
    -wxCLIP_CHILDREN - -Use this style to eliminate flicker caused by the background being -repainted, then children being painted over them. Windows-only. -
    -

    -See also window styles overview.

    -See also

    -Event handling overview

    -Members

    -wxWindow::wxWindow
    -wxWindow::~wxWindow
    -wxWindow::AddChild
    -wxWindow::CaptureMouse
    -wxWindow::Center
    -wxWindow::Centre
    -wxWindow::Clear
    -wxWindow::ClientToScreen
    -wxWindow::Close
    -wxWindow::ConvertDialogToPixels
    -wxWindow::ConvertPixelsToDialog
    -wxWindow::Destroy
    -wxWindow::DestroyChildren
    -wxWindow::DragAcceptFiles
    -wxWindow::Enable
    -wxWindow::FindFocus
    -wxWindow::FindWindow
    -wxWindow::Fit
    -wxWindow::GetBackgroundColour
    -wxWindow::GetCharHeight
    -wxWindow::GetCharWidth
    -wxWindow::GetChildren
    -wxWindow::GetClientSize
    -wxWindow::GetConstraints
    -wxWindow::GetDefaultItem
    -wxWindow::GetDropTarget
    -wxWindow::GetEventHandler
    -wxWindow::GetFont
    -wxWindow::GetForegroundColour
    -wxWindow::GetGrandParent
    -wxWindow::GetHandle
    -wxWindow::GetId
    -wxWindow::GetPosition
    -wxWindow::GetLabel
    -wxWindow::GetName
    -wxWindow::GetParent
    -wxWindow::GetRect
    -wxWindow::GetReturnCode
    -wxWindow::GetScrollThumb
    -wxWindow::GetScrollPos
    -wxWindow::GetScrollRange
    -wxWindow::GetSize
    -wxWindow::GetTextExtent
    -wxWindow::GetTitle
    -wxWindow::GetUpdateRegion
    -wxWindow::GetWindowStyleFlag
    -wxWindow::InitDialog
    -wxWindow::IsEnabled
    -wxWindow::IsRetained
    -wxWindow::IsShown
    -wxWindow::Layout
    -wxWindow::LoadFromResource
    -wxWindow::Lower
    -wxWindow::MakeModal
    -wxWindow::Move
    -wxWindow::OnActivate
    -wxWindow::OnChar
    -wxWindow::OnCharHook
    -wxWindow::OnCommand
    -wxWindow::OnClose
    -wxWindow::OnCloseWindow
    -wxWindow::OnDropFiles
    -wxWindow::OnEraseBackground
    -wxWindow::OnKeyDown
    -wxWindow::OnKeyUp
    -wxWindow::OnKillFocus
    -wxWindow::OnIdle
    -wxWindow::OnInitDialog
    -wxWindow::OnMenuCommand
    -wxWindow::OnMenuHighlight
    -wxWindow::OnMouseEvent
    -wxWindow::OnMove
    -wxWindow::OnPaint
    -wxWindow::OnScroll
    -wxWindow::OnSetFocus
    -wxWindow::OnSize
    -wxWindow::OnSysColourChanged
    -wxWindow::PopEventHandler
    -wxWindow::PopupMenu
    -wxWindow::PushEventHandler
    -wxWindow::Raise
    -wxWindow::Refresh
    -wxWindow::ReleaseMouse
    -wxWindow::RemoveChild
    -wxWindow::ScreenToClient
    -wxWindow::ScrollWindow
    -wxWindow::SetAcceleratorTable
    -wxWindow::SetAutoLayout
    -wxWindow::SetBackgroundColour
    -wxWindow::SetClientSize
    -wxWindow::SetCursor
    -wxWindow::SetEventHandler
    -wxWindow::SetConstraints
    -wxWindow::SetDropTarget
    -wxWindow::SetFocus
    -wxWindow::SetFont
    -wxWindow::SetForegroundColour
    -wxWindow::SetId
    -wxWindow::SetName
    -wxWindow::SetPalette
    -wxWindow::SetReturnCode
    -wxWindow::SetScrollbar
    -wxWindow::SetScrollPos
    -wxWindow::SetSize
    -wxWindow::SetSizeHints
    -wxWindow::SetTitle
    -wxWindow::Show
    -wxWindow::TransferDataFromWindow
    -wxWindow::TransferDataToWindow
    -wxWindow::Validate
    -wxWindow::WarpPointer
    -

    - -


    - -

    wxWindow::wxWindow

    -

    - wxWindow()

    -Default constructor.

    - wxWindow(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr)

    -Constructs a 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 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. For generic window styles, please see wxWindow.
    -

    -name

        -Window name.
    -

    - -


    - -

    wxWindow::~wxWindow

    -

    - ~wxWindow()

    -Destructor. Deletes all subwindows, then deletes itself. Instead of using -the delete operator explicitly, you should normally -use wxWindow::Destroy so that wxWindows -can delete a window only when it is safe to do so, in idle time.

    -See also

    -Window deletion overview, -wxWindow::OnCloseWindow, -wxWindow::Destroy, -wxCloseEvent

    - -


    - -

    wxWindow::AddChild

    -

    -virtual void AddChild(wxWindow* child)

    -Adds a child window. This is called automatically by window creation -functions so should not be required by the application programmer.

    -Parameters

    -child

        -Child window to add.
    -

    - -


    - -

    wxWindow::CaptureMouse

    -

    -virtual void CaptureMouse()

    -Directs all mouse input to this window. Call wxWindow::ReleaseMouse to -release the capture.

    -See also

    -wxWindow::ReleaseMouse

    - -


    - -

    wxWindow::Center

    -

    -void Center(int direction)

    -A synonym for Centre.

    - -


    - -

    wxWindow::Centre

    -

    -virtual void Centre(int direction = wxHORIZONTAL)

    -Centres the window.

    -Parameters

    -direction

        -Specifies the direction for the centering. May be wxHORIZONTAL, wxVERTICAL -or wxBOTH.
    -

    -Remarks

    -The actual behaviour depends on the derived window. For a frame or dialog box, -centring is relative to the whole display. For a panel item, centring is -relative to the panel.

    -See also

    -wxWindow::Center

    - -


    - -

    wxWindow::Clear

    -

    -void Clear()

    -Clears the window by filling it with the current background colour. Does not -cause an erase background event to be generated.

    - -


    - -

    wxWindow::ClientToScreen

    -

    -virtual void ClientToScreen(int* x, int* y) const

    -virtual wxPoint ClientToScreen(const wxPoint& pt) const

    -Converts to screen coordinates from coordinates relative to this window.

    -x

        -A pointer to a integer value for the x coordinate. Pass the client coordinate in, and -a screen coordinate will be passed out.
    -

    -y

        -A pointer to a integer value for the y coordinate. Pass the client coordinate in, and -a screen coordinate will be passed out.
    -

    -pt

        -The client position for the second form of the function.
    -

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -ClientToScreen(point) - -Accepts and returns a wxPoint -
        -ClientToScreenXY(x, y) - -Returns a 2-tuple, (x, y) -
        -
    - -

    - - -


    - -

    wxWindow::Close

    -

    -virtual bool Close(const bool force = FALSE)

    -The purpose of this call is to provide a safer way of destroying a window than using -the delete operator.

    -Parameters

    -force

        -FALSE if the window's close handler should be able to veto the destruction -of this window, TRUE if it cannot.
    -

    -Remarks

    -Close calls the close handler for the window, providing an opportunity for the window to -choose whether to destroy the window.

    -The close handler should check whether the window is being deleted forcibly, -using wxCloseEvent::GetForce, in which case it should -destroy the window using wxWindow::Destroy.

    -Applies to managed windows (wxFrame and wxDialog classes) only.

    -Note that calling Close does not guarantee that the window will be destroyed; but it -provides a way to simulate a manual close of a window, which may or may not be implemented by -destroying the window. The default implementation of wxDialog::OnCloseWindow does not -necessarily delete the dialog, since it will simply simulate an wxID_CANCEL event which -itself only hides the dialog.

    -To guarantee that the window will be destroyed, call wxWindow::Destroy instead.

    -See also

    -Window deletion overview, -wxWindow::OnCloseWindow, -wxWindow::Destroy, -wxCloseEvent

    - -


    - -

    wxWindow::ConvertDialogToPixels

    -

    -wxPoint ConvertDialogToPixels(const wxPoint& pt)

    -wxSize ConvertDialogToPixels(const wxSize& sz)

    -Converts a point or size from dialog units to pixels.

    -For the x dimension, the dialog units are multiplied by the average character width -and then divided by 4.

    -For the y dimension, the dialog units are multiplied by the average character height -and then divided by 8.

    -Remarks

    -Dialog units are used for maintaining a dialog's proportions even if the font changes. -Dialogs created using Dialog Editor optionally use dialog units.

    -You can also use these functions programmatically. A convenience macro is defined:

    - -

    -#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
    -
    -

    -See also

    -wxWindow::ConvertPixelsToDialog

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -ConvertDialogPointToPixels(point) - -Accepts and returns a wxPoint -
        -ConvertDialogSizeToPixels(size) - -Accepts and returns a wxSize -
        -
    -

    -Additionally, the following helper functions are defined:

    - -

        - - - - - - - - - - - - - - -
        -wxDLG_PNT(win, point) - -Converts a wxPoint from dialog -units to pixels -
        -wxDLG_SZE(win, size) - -Converts a wxSize from dialog -units to pixels -
        -
    - -

    - - -


    - -

    wxWindow::ConvertPixelsToDialog

    -

    -wxPoint ConvertPixelsToDialog(const wxPoint& pt)

    -wxSize ConvertPixelsToDialog(const wxSize& sz)

    -Converts a point or size from pixels to dialog units.

    -For the x dimension, the pixels are multiplied by 4 and then divided by the average -character width.

    -For the y dimension, the pixels are multipled by 8 and then divided by the average -character height.

    -Remarks

    -Dialog units are used for maintaining a dialog's proportions even if the font changes. -Dialogs created using Dialog Editor optionally use dialog units.

    -See also

    -wxWindow::ConvertDialogToPixels

    - -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -ConvertDialogPointToPixels(point) - -Accepts and returns a wxPoint -
        -ConvertDialogSizeToPixels(size) - -Accepts and returns a wxSize -
        -
    - -

    - -


    - -

    wxWindow::Destroy

    -

    -virtual bool Destroy()

    -Destroys the window safely. Use this function instead of the delete operator, since -different window classes can be destroyed differently. Frames and dialogs -are not destroyed immediately when this function is called - they are added -to a list of windows to be deleted on idle time, when all the window's events -have been processed. This prevents problems with events being sent to non-existant -windows.

    -Return value

    -TRUE if the window has either been successfully deleted, or it has been added -to the list of windows pending real deletion.

    - -


    - -

    wxWindow::DestroyChildren

    -

    -virtual void DestroyChildren()

    -Destroys all children of a window. Called automatically by the destructor.

    - -


    - -

    wxWindow::DragAcceptFiles

    -

    -virtual void DragAcceptFiles(const bool accept)

    -Enables or disables elibility for drop file events (OnDropFiles).

    -Parameters

    -accept

        -If TRUE, the window is eligible for drop file events. If FALSE, the window -will not accept drop file events.
    -

    -Remarks

    -Windows only.

    -See also

    -wxWindow::OnDropFiles

    - -


    - -

    wxWindow::Enable

    -

    -virtual void Enable(const bool enable)

    -Enable or disable the window for user input.

    -Parameters

    -enable

        -If TRUE, enables the window for input. If FALSE, disables the window.
    -

    -See also

    -wxWindow::IsEnabled

    - -


    - -

    wxWindow::FindFocus

    -

    -static wxWindow* FindFocus()

    -Finds the window or control which currently has the keyboard focus.

    -Remarks

    -Note that this is a static function, so it can be called without needing a wxWindow pointer.

    -See also

    -wxWindow::SetFocus

    - -


    - -

    wxWindow::FindWindow

    -

    -wxWindow* FindWindow(long id)

    -Find a child of this window, by identifier.

    -wxWindow* FindWindow(const wxString& name)

    -Find a child of this window, by name.

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -FindWindowById(id) - -Accepts an integer -
        -FindWindowByName(name) - -Accepts a string -
        -
    - -

    - -


    - -

    wxWindow::Fit

    -

    -virtual void Fit()

    -Sizes the window so that it fits around its subwindows.

    - -


    - -

    wxWindow::GetBackgroundColour

    -

    -virtual wxColour GetBackgroundColour() const

    -Returns the background colour of the window.

    -See also

    -wxWindow::SetBackgroundColour, -wxWindow::SetForegroundColour, -wxWindow::GetForegroundColour, -wxWindow::OnEraseBackground

    - -


    - -

    wxWindow::GetCharHeight

    -

    -virtual int GetCharHeight() const

    -Returns the character height for this window.

    - -


    - -

    wxWindow::GetCharWidth

    -

    -virtual int GetCharWidth() const

    -Returns the average character width for this window.

    - -


    - -

    wxWindow::GetChildren

    -

    -wxList& GetChildren()

    -Returns a reference to the list of the window's children.

    - -


    - -

    wxWindow::GetClientSize

    -

    -virtual void GetClientSize(int* width, int* height) const

    -virtual wxSize GetClientSize() const

    -This gets the size of the window 'client area' in pixels. The client area is the -area which may be drawn on by the programmer, excluding title bar, border etc.

    -Parameters

    -width

        -Receives the client width in pixels.
    -

    -height

        -Receives the client height in pixels.
    -

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -wxGetClientSizeTuple() - -Returns a 2-tuple of (width, height) -
        -wxGetClientSize() - -Returns a wxSize object -
        -
    - -

    - -


    - -

    wxWindow::GetConstraints

    -

    -wxLayoutConstraints* GetConstraints() const

    -Returns a pointer to the window's layout constraints, or NULL if there are none.

    - -


    - -

    wxWindow::GetDefaultItem

    -

    -wxButton* GetDefaultItem() const

    -Returns a pointer to the button which is the default for this window, or NULL.

    - -


    - -

    wxWindow::GetDropTarget

    -

    -wxDropTarget* GetDropTarget() const

    -Returns the associated drop target, which may be NULL.

    -See also

    -wxWindow::SetDropTarget, -Drag and drop overview

    - -


    - -

    wxWindow::GetEventHandler

    -

    -wxEvtHandler* GetEventHandler() const

    -Returns the event handler for this window. By default, the window is its -own event handler.

    -See also

    -wxWindow::SetEventHandler, -wxWindow::PushEventHandler, -wxWindow::PopEventHandler, -wxEvtHandler::ProcessEvent, -wxEvtHandler

    - -


    - -

    wxWindow::GetFont

    -

    -wxFont& GetFont() const

    -Returns a reference to the font for this window.

    -See also

    -wxWindow::SetFont

    - -


    - -

    wxWindow::GetForegroundColour

    -

    -virtual wxColour GetForegroundColour()

    -Returns the foreground colour of the window.

    -Remarks

    -The interpretation of foreground colour is open to interpretation according -to the window class; it may be the text colour or other colour, or it may not -be used at all.

    -See also

    -wxWindow::SetForegroundColour, -wxWindow::SetBackgroundColour, -wxWindow::GetBackgroundColour

    - -


    - -

    wxWindow::GetGrandParent

    -

    -wxWindow* GetGrandParent() const

    -Returns the grandparent of a window, or NULL if there isn't one.

    - -


    - -

    wxWindow::GetHandle

    -

    -void* GetHandle() const

    -Returns the platform-specific handle of the physical window. Cast it to an appropriate -handle, such as HWND for Windows or Widget for Motif.

    - -


    - -

    wxWindow::GetId

    -

    -int GetId() const

    -Returns the identifier of the window.

    -Remarks

    -Each window has an integer identifier. If the application has not provided one, -an identifier will be generated.

    -See also

    -wxWindow::SetId -Window identifiers

    - -


    - -

    wxWindow::GetPosition

    -

    -virtual void GetPosition(int* x, int* y) const

    -This gets the position of the window in pixels, relative to the parent window or -if no parent, relative to the whole display.

    -Parameters

    -x

        -Receives the x position of the window.
    -

    -y

        -Receives the y position of the window.
    -

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -GetPosition() - -Returns a wxPoint -
        -GetPositionTuple() - -Returns a tuple (x, y) -
        -
    - -

    - -


    - -

    wxWindow::GetLabel

    -

    -virtual wxString& GetLabel() const

    -Generic way of getting a label from any window, for -identification purposes.

    -Remarks

    -The interpretation of this function differs from class to class. -For frames and dialogs, the value returned is the title. For buttons or static text controls, it is -the button text. This function can be useful for meta-programs (such as testing -tools or special-needs access programs) which need to identify windows -by name.

    - -


    - -

    wxWindow::GetName

    -

    -virtual wxString& GetName() const

    -Returns the window's name.

    -Remarks

    -This name is not guaranteed to be unique; it is up to the programmer to supply an appropriate -name in the window constructor or via wxWindow::SetName.

    -See also

    -wxWindow::SetName

    - -


    - -

    wxWindow::GetParent

    -

    -virtual wxWindow* GetParent() const

    -Returns the parent of the window, or NULL if there is no parent.

    - -


    - -

    wxWindow::GetRect

    -

    -virtual wxRect GetRect() const

    -Returns the size and position of the window as a wxRect object.

    - -


    - -

    wxWindow::GetReturnCode

    -

    -int GetReturnCode()

    -Gets the return code for this window.

    -Remarks

    -A return code is normally associated with a modal dialog, where wxDialog::ShowModal returns -a code to the application.

    -See also

    -wxWindow::SetReturnCode, wxDialog::ShowModal, -wxDialog::EndModal

    - -


    - -

    wxWindow::GetScrollThumb

    -

    -virtual int GetScrollThumb(int orientation)

    -Returns the built-in scrollbar thumb size.

    -See also

    -wxWindow::SetScrollbar

    - -


    - -

    wxWindow::GetScrollPos

    -

    -virtual int GetScrollPos(int orientation)

    -Returns the built-in scrollbar position.

    -See also

    -See wxWindow::SetScrollbar

    - -


    - -

    wxWindow::GetScrollRange

    -

    -virtual int GetScrollRange(int orientation)

    -Returns the built-in scrollbar range.

    -See also

    -wxWindow::SetScrollbar

    - -


    - -

    wxWindow::GetSize

    -

    -virtual void GetSize(int* width, int* height) const

    -virtual wxSize GetSize() const

    -This gets the size of the entire window in pixels.

    -Parameters

    -width

        -Receives the window width.
    -

    -height

        -Receives the window height.
    -

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -GetSize() - -Returns a wxSize -
        -GetSizeTuple() - -Returns a 2-tuple (width, height) -
        -
    - -

    - -


    - -

    wxWindow::GetTextExtent

    -

    -virtual void GetTextExtent(const wxString& string, int* x, int* y, - int* descent = NULL, int* externalLeading = NULL, - const wxFont* font = NULL, const bool use16 = FALSE) const

    -Gets the dimensions of the string as it would be drawn on the -window with the currently selected font.

    -Parameters

    -string

        -String whose extent is to be measured.
    -

    -x

        -Return value for width.
    -

    -y

        -Return value for height.
    -

    -descent

        -Return value for descent (optional).
    -

    -externalLeading

        -Return value for external leading (optional).
    -

    -font

        -Font to use instead of the current window font (optional).
    -

    -use16

        -If TRUE, string contains 16-bit characters. The default is FALSE.
    -

    - -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -GetTextExtent(string) - -Returns a 2-tuple, (width, height) -
        -GetFullTextExtent(string, font=NULL) - -Returns a -4-tuple, (width, height, descent, externalLeading) -
        -
    - -

    - - -


    - -

    wxWindow::GetTitle

    -

    -virtual wxString GetTitle()

    -Gets the window's title. Applicable only to frames and dialogs.

    -See also

    -wxWindow::SetTitle

    - -


    - -

    wxWindow::GetUpdateRegion

    -

    -virtual wxRegion GetUpdateRegion() const

    -Returns the region specifying which parts of the window have been damaged. Should -only be called within an OnPaint event handler.

    -See also

    -wxRegion, wxRegionIterator, wxWindow::OnPaint

    - -


    - -

    wxWindow::GetWindowStyleFlag

    -

    -long GetWindowStyleFlag() const

    -Gets the window style that was passed to the consructor or Create member.

    - -


    - -

    wxWindow::InitDialog

    -

    -void InitDialog()

    -Sends an wxWindow::OnInitDialog event, which -in turn transfers data to the dialog via validators.

    -See also

    -wxWindow::OnInitDialog

    - -


    - -

    wxWindow::IsEnabled

    -

    -virtual bool IsEnabled() const

    -Returns TRUE if the window is enabled for input, FALSE otherwise.

    -See also

    -wxWindow::Enable

    - -


    - -

    wxWindow::IsRetained

    -

    -virtual bool IsRetained() const

    -Returns TRUE if the window is retained, FALSE otherwise.

    -Remarks

    -Retained windows are only available on X platforms.

    - -


    - -

    wxWindow::IsShown

    -

    -virtual bool IsShown() const

    -Returns TRUE if the window is shown, FALSE if it has been hidden.

    - -


    - -

    wxWindow::Layout

    -

    -void Layout()

    -Invokes the constraint-based layout algorithm for this window. It is called -automatically by the default wxWindow::OnSize member.

    - -


    - -

    wxWindow::LoadFromResource

    -

    -virtual bool LoadFromResource(wxWindow* parent, -const wxString& resourceName, const wxResourceTable* resourceTable = NULL)

    -Loads a panel or dialog from a resource file.

    -Parameters

    -parent

        -Parent window.
    -

    -resourceName

        -The name of the resource to load.
    -

    -resourceTable

        -The resource table to load it from. If this is NULL, the -default resource table will be used.
    -

    -Return value

    -TRUE if the operation succeeded, otherwise FALSE.

    - -


    - -

    wxWindow::Lower

    -

    -void Lower()

    -Lowers the window to the bottom of the window hierarchy if it is a managed window (dialog -or frame).

    - -


    - -

    wxWindow::MakeModal

    -

    -virtual void MakeModal(const bool flag)

    -Disables all other windows in the application so that -the user can only interact with this window.

    -Parameters

    -flag

        -If TRUE, this call disables all other windows in the application so that -the user can only interact with this window. If FALSE, the effect is reversed.
    -

    - -


    - -

    wxWindow::Move

    -

    -void Move(int x, int y)

    -void Move(const wxPoint& pt)

    -Moves the window to the given position.

    -Parameters

    -x

        -Required x position.
    -

    -y

        -Required y position.
    -

    -pt

        -wxPoint object representing the position.
    -

    -Remarks

    -Implementations of SetSize can also implicitly implement the -wxWindow::Move function, which is defined in the base wxWindow class -as the call:

    -

    -  SetSize(x, y, -1, -1, wxSIZE_USE_EXISTING);
    -
    -See also

    -wxWindow::SetSize

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -Move(point) - -Accepts a wxPoint -
        -MoveXY(x, y) - -Accepts a pair of integers -
        -
    - -

    - -


    - -

    wxWindow::OnActivate

    -

    -void OnActivate(wxActivateEvent& event)

    -Called when a window is activated or deactivated.

    -Parameters

    -event

        -Object containing activation information.
    -

    -Remarks

    -If the window is being activated, wxActivateEvent::GetActive returns TRUE, -otherwise it returns FALSE (it is being deactivated).

    -See also

    -wxActivateEvent, -Event handling overview

    - -


    - -

    wxWindow::OnChar

    -

    -void OnChar(wxKeyEvent& event)

    -Called when the user has pressed a key that is not a modifier (SHIFT, CONTROL or ALT).

    -Parameters

    -event

        -Object containing keypress information. See wxKeyEvent for -details about this class.
    -

    -Remarks

    -This member function is called in response to a keypress. To intercept this event, -use the EVT_CHAR macro in an event table definition. Your OnChar handler may call this -default function to achieve default keypress functionality.

    -Note that the ASCII values do not have explicit key codes: they are passed as ASCII -values.

    -Note that not all keypresses can be intercepted this way. If you wish to intercept modifier -keypresses, then you will need to use wxWindow::OnKeyDown or -wxWindow::OnKeyUp.

    -Most, but not all, windows allow keypresses to be intercepted.

    -See also

    -wxWindow::OnKeyDown, wxWindow::OnKeyUp, -wxKeyEvent, wxWindow::OnCharHook, -Event handling overview

    - -


    - -

    wxWindow::OnCharHook

    -

    -void OnCharHook(wxKeyEvent& event)

    -This member is called to allow the window to intercept keyboard events -before they are processed by child windows.

    -Parameters

    -event

        -Object containing keypress information. See wxKeyEvent for -details about this class.
    -

    -Remarks

    -This member function is called in response to a keypress, if the window is active. To intercept this event, -use the EVT_CHAR_HOOK macro in an event table definition. If you do not process a particular -keypress, call wxEvent::Skip to allow default processing.

    -An example of using this function is in the implementation of escape-character processing for wxDialog, -where pressing ESC dismisses the dialog by OnCharHook 'forging' a cancel button press event.

    -Note that the ASCII values do not have explicit key codes: they are passed as ASCII -values.

    -This function is only relevant to top-level windows (frames and dialogs), and under -Windows only.

    -See also

    -wxKeyEvent, wxWindow::OnCharHook, -wxApp::OnCharHook, -Event handling overview

    - -


    - -

    wxWindow::OnCommand

    -

    -virtual void OnCommand(wxEvtHandler& object, wxCommandEvent& event)

    -This virtual member function is called if the control does not handle the command event.

    -Parameters

    -object

        -Object receiving the command event.
    -

    -event

        -Command event
    -

    -Remarks

    -This virtual function is provided mainly for backward compatibility. You can also intercept commands -from child controls by using an event table, with identifiers or identifier ranges to identify -the control(s) in question.

    -See also

    -wxCommandEvent, -Event handling overview

    - -


    - -

    wxWindow::OnClose

    -

    -virtual bool OnClose()

    -Called when the user has tried to close a a frame -or dialog box using the window manager (X) or system menu (Windows).

    -Note: This is an obsolete function. -It is superceded by the wxWindow::OnCloseWindow event -handler.

    -Return value

    -If TRUE is returned by OnClose, the window will be deleted by the system, otherwise the -attempt will be ignored. Do not delete the window from within this handler, although -you may delete other windows.

    -See also

    -Window deletion overview, -wxWindow::Close, -wxWindow::OnCloseWindow, -wxCloseEvent

    - -


    - -

    wxWindow::OnCloseWindow

    -

    -void OnCloseWindow(wxCloseEvent& event)

    -This is an event handler function called when the user has tried to close a a frame -or dialog box using the window manager (X) or system menu (Windows). It is -called via the wxWindow::Close function, so -that the application can also invoke the handler programmatically.

    -Use the EVT_CLOSE event table macro to handle close events.

    -You should check whether the application is forcing the deletion of the window -using wxCloseEvent::GetForce. If this is TRUE, -destroy the window using wxWindow::Destroy. -If not, it is up to you whether you respond by destroying the window.

    -(Note: GetForce is now superceded by CanVeto. So to test whether forced destruction of -the window is required, test for the negative of CanVeto. If CanVeto returns FALSE, -it is not possible to skip window deletion.)

    -If you don't destroy the window, you should call wxCloseEvent::Veto to -let the calling code know that you did not destroy the window. This allows the wxWindow::Close function -to return TRUE or FALSE depending on whether the close instruction was honoured or not.

    -Remarks

    -The wxWindow::OnClose virtual function remains -for backward compatibility with earlier versions of wxWindows. The -default OnCloseWindow handler for wxFrame and wxDialog will call OnClose, -destroying the window if it returns TRUE or if the close is being forced.

    -See also

    -Window deletion overview, -wxWindow::Close, -wxWindow::OnClose, -wxWindow::Destroy, -wxCloseEvent, -wxApp::OnQueryEndSession, -wxApp::OnEndSession

    - -


    - -

    wxWindow::OnDropFiles

    -

    -void OnDropFiles(wxDropFilesEvent& event)

    -Called when files have been dragged from the file manager to the window.

    -Parameters

    -event

    -

    -Remarks

    -The window must have previously been enabled for dropping by calling -wxWindow::DragAcceptFiles.

    -This event is only generated under Windows.

    -To intercept this event, use the EVT_DROP_FILES macro in an event table definition.

    -See also

    -wxDropFilesEvent, wxWindow::DragAcceptFiles, -Event handling overview

    - -


    - -

    wxWindow::OnEraseBackground

    -

    -void OnEraseBackground(wxEraseEvent& event)

    -Called when the background of the window needs to be erased.

    -Parameters

    -event

        -Erase background event. For more information, see wxEraseEvent.
    -

    -Remarks

    -This event is only generated under Windows.

    -To intercept this event, use the EVT_ERASE_BACKGROUND macro in an event table definition.

    -See also

    -wxEraseEvent, Event handling overview

    - -


    - -

    wxWindow::OnKeyDown

    -

    -void OnKeyDown(wxKeyEvent& event)

    -Called when the user has pressed a key, before it is translated into an ASCII value using other -modifier keys that might be pressed at the same time.

    -Parameters

    -event

        -Object containing keypress information. See wxKeyEvent for -details about this class.
    -

    -Remarks

    -This member function is called in response to a key down event. To intercept this event, -use the EVT_KEY_DOWN macro in an event table definition. Your OnKeyDown handler may call this -default function to achieve default keypress functionality.

    -Note that not all keypresses can be intercepted this way. If you wish to intercept special -keys, such as shift, control, and function keys, then you will need to use wxWindow::OnKeyDown or -wxWindow::OnKeyUp.

    -Most, but not all, windows allow keypresses to be intercepted.

    -See also

    -wxWindow::OnChar, wxWindow::OnKeyUp, -wxKeyEvent, wxWindow::OnCharHook, -Event handling overview

    - -


    - -

    wxWindow::OnKeyUp

    -

    -void OnKeyUp(wxKeyEvent& event)

    -Called when the user has released a key.

    -Parameters

    -event

        -Object containing keypress information. See wxKeyEvent for -details about this class.
    -

    -Remarks

    -This member function is called in response to a key up event. To intercept this event, -use the EVT_KEY_UP macro in an event table definition. Your OnKeyUp handler may call this -default function to achieve default keypress functionality.

    -Note that not all keypresses can be intercepted this way. If you wish to intercept special -keys, such as shift, control, and function keys, then you will need to use wxWindow::OnKeyDown or -wxWindow::OnKeyUp.

    -Most, but not all, windows allow key up events to be intercepted.

    -See also

    -wxWindow::OnChar, wxWindow::OnKeyDown, -wxKeyEvent, wxWindow::OnCharHook, -Event handling overview

    - -


    - -

    wxWindow::OnKillFocus

    -

    -void OnKillFocus(wxFocusEvent& event)

    -Called when a window's focus is being killed.

    -Parameters

    -event

    -

    -Remarks

    -To intercept this event, use the macro EVT_KILL_FOCUS in an event table definition.

    -Most, but not all, windows respond to this event.

    -See also

    -wxFocusEvent, wxWindow::OnSetFocus, -Event handling overview

    - -


    - -

    wxWindow::OnIdle

    -

    -void OnIdle(wxIdleEvent& event)

    -Provide this member function for any processing which needs to be done -when the application is idle.

    -See also

    -wxApp::OnIdle, wxIdleEvent

    - -


    - -

    wxWindow::OnInitDialog

    -

    -void OnInitDialog(wxInitDialogEvent& event)

    -Default handler for the wxEVT_INIT_DIALOG event. Calls wxWindow::TransferDataToWindow.

    -Parameters

    -event

        -Dialog initialisation event.
    -

    -Remarks

    -Gives the window the default behaviour of transferring data to child controls via -the validator that each control has.

    -See also

    -wxValidator, wxWindow::TransferDataToWindow

    - -


    - -

    wxWindow::OnMenuCommand

    -

    -void OnMenuCommand(wxCommandEvent& event)

    -Called when a menu command is received from a menu bar.

    -Parameters

    -event

    -

    -Remarks

    -A function with this name doesn't actually exist; you can choose any member function to receive -menu command events, using the EVT_COMMAND macro for individual commands or EVT_COMMAND_RANGE for -a range of commands.

    -See also

    -wxCommandEvent, -wxWindow::OnMenuHighlight, -Event handling overview

    - -


    - -

    wxWindow::OnMenuHighlight

    -

    -void OnMenuHighlight(wxMenuEvent& event)

    -Called when a menu select is received from a menu bar: that is, the -mouse cursor is over a menu item, but the left mouse button has not been -pressed.

    -Parameters

    -event

        -The menu highlight event. For more information, see wxMenuEvent.
    -

    -Remarks

    -You can choose any member function to receive -menu select events, using the EVT_MENU_HIGHLIGHT macro for individual menu items or EVT_MENU_HIGHLIGHT_ALL macro -for all menu items.

    -The default implementation for wxFrame::OnMenuHighlight displays help -text in the first field of the status bar.

    -This function was known as OnMenuSelect in earlier versions of wxWindows, but this was confusing -since a selection is normally a left-click action.

    -See also

    -wxMenuEvent, -wxWindow::OnMenuCommand, -Event handling overview

    - - -


    - -

    wxWindow::OnMouseEvent

    -

    -void OnMouseEvent(wxMouseEvent& event)

    -Called when the user has initiated an event with the -mouse.

    -Parameters

    -event

    -

    -Remarks

    -Most, but not all, windows respond to this event.

    -To intercept this event, use the EVT_MOUSE_EVENTS macro in an event table definition, or individual -mouse event macros such as EVT_LEFT_DOWN.

    -See also

    -wxMouseEvent, -Event handling overview

    - -


    - -

    wxWindow::OnMove

    -

    -void OnMove(wxMoveEvent& event)

    -Called when a window is moved.

    -Parameters

    -event

        -The move event. For more information, see wxMoveEvent.
    -

    -Remarks

    -Use the EVT_MOVE macro to intercept move events.

    -Remarks

    -Not currently implemented.

    -See also

    -wxMoveEvent, -wxFrame::OnSize, -Event handling overview

    - -


    - -

    wxWindow::OnPaint

    -

    -void OnPaint(wxPaintEvent& event)

    -Sent to the event handler when the window must be refreshed.

    -Parameters

    -event

    -

    -Remarks

    -Use the EVT_PAINT macro in an event table definition to intercept paint events.

    -In a paint event handler, the application should always create a wxPaintDC object.

    -For example:

    -

    -  void MyWindow::OnPaint(wxPaintEvent& event)
    -  {
    -      wxPaintDC dc(this);
    -
    -      DrawMyDocument(dc);
    -  }
    -
    -You can optimize painting by retrieving the rectangles -that have been damaged and only repainting these. The rectangles are in -terms of the client area, and are unscrolled, so you will need to do -some calculations using the current view position to obtain logical, -scrolled units.

    -Here is an example of using the wxRegionIterator class:

    -

    -// Called when window needs to be repainted.
    -void MyWindow::OnPaint(wxPaintEvent& event)
    -{
    -  wxPaintDC dc(this);
    -
    -  // Find Out where the window is scrolled to
    -  int vbX,vbY;                     // Top left corner of client
    -  ViewStart(&vbX,&vbY);
    -
    -  int vX,vY,vW,vH;                 // Dimensions of client area in pixels
    -  wxRegionIterator upd(GetUpdateRegion()); // get the update rect list
    -
    -  while (upd)
    -  {
    -    vX = upd.GetX();
    -    vY = upd.GetY();
    -    vW = upd.GetW();
    -    vH = upd.GetH();
    -
    -    // Alternatively we can do this:
    -    // wxRect rect;
    -    // upd.GetRect(&rect);
    -
    -    // Repaint this rectangle
    -    ...some code...
    -
    -    upd ++ ;
    -  }
    -}
    -
    -See also

    -wxPaintEvent, -wxPaintDC, -Event handling overview

    - -


    - -

    wxWindow::OnScroll

    -

    -void OnScroll(wxScrollEvent& event)

    -Called when a scroll event is received from one of the window's built-in scrollbars.

    -Parameters

    -event

    -

    -Remarks

    -Note that it is not possible to distinguish between horizontal and vertical scrollbars -until the function is executing (you can't have one function for vertical, another -for horizontal events).

    -See also

    -wxScrollEvent, -Event handling overview

    - -


    - -

    wxWindow::OnSetFocus

    -

    -void OnSetFocus(wxFocusEvent& event)

    -Called when a window's focus is being set.

    -Parameters

    -event

    -

    -Remarks

    -To intercept this event, use the macro EVT_SET_FOCUS in an event table definition.

    -Most, but not all, windows respond to this event.

    -See also

    -wxFocusEvent, wxWindow::OnKillFocus, -Event handling overview

    - -


    - -

    wxWindow::OnSize

    -

    -void OnSize(wxSizeEvent& event)

    -Called when the window has been resized.

    -Parameters

    -event

    -

    -Remarks

    -You may wish to use this for frames to resize their child windows as appropriate.

    -Note that the size passed is of -the whole window: call wxWindow::GetClientSize for the area which may be -used by the application.

    -See also

    -wxSizeEvent, -Event handling overview

    - -


    - -

    wxWindow::OnSysColourChanged

    -

    -void OnSysColourChanged(wxOnSysColourChangedEvent& event)

    -Called when the user has changed the system colours.

    -Parameters

    -event

    -

    -See also

    -wxSysColourChangedEvent, -Event handling overview

    - -


    - -

    wxWindow::PopEventHandler

    -

    -wxEvtHandler* PopEventHandler(bool deleteHandler = FALSE) const

    -Removes and returns the top-most event handler on the event handler stack.

    -Parameters

    -deleteHandler

        -If this is TRUE, the handler will be deleted after it is removed. The -default value is FALSE.
    -

    -See also

    -wxWindow::SetEventHandler, -wxWindow::GetEventHandler, -wxWindow::PushEventHandler, -wxEvtHandler::ProcessEvent, -wxEvtHandler

    - -


    - -

    wxWindow::PopupMenu

    -

    -virtual bool PopupMenu(wxMenu* menu, int x, int y)

    -Pops up the given menu at the specified coordinates, relative to this -window, and returns control when the user has dismissed the menu. If a -menu item is selected, the callback defined for the menu is called with -wxMenu and wxCommandEvent reference arguments. The callback should access -the commandInt member of the event to check the selected menu identifier.

    -Parameters

    -menu

        -Menu to pop up.
    -

    -x

        -Required x position for the menu to appear.
    -

    -y

        -Required y position for the menu to appear.
    -

    -See also

    -wxMenu

    -Remarks

    -Just before the menu is popped up, wxMenu::UpdateUI is called -to ensure that the menu items are in the correct state.

    - -


    - -

    wxWindow::PushEventHandler

    -

    -void PushEventHandler(wxEvtHandler* handler)

    -Pushes this event handler onto the event stack for the window.

    -Parameters

    -handler

        -Specifies the handler to be pushed.
    -

    -Remarks

    -An event handler is an object that is capable of processing the events -sent to a window. By default, the window is its own event handler, but -an application may wish to substitute another, for example to allow -central implementation of event-handling for a variety of different -window classes.

    -wxWindow::PushEventHandler allows -an application to set up a chain of event handlers, where an event not handled by one event handler is -handed to the next one in the chain. Use wxWindow::PopEventHandler to -remove the event handler.

    -See also

    -wxWindow::SetEventHandler, -wxWindow::GetEventHandler, -wxWindow::PopEventHandler, -wxEvtHandler::ProcessEvent, -wxEvtHandler

    - -


    - -

    wxWindow::Raise

    -

    -void Raise()

    -Raises the window to the top of the window hierarchy if it is a managed window (dialog -or frame).

    - -


    - -

    wxWindow::Refresh

    -

    -virtual void Refresh(const bool eraseBackground = TRUE, const wxRect* rect -= NULL)

    -Causes a message or event to be generated to repaint the -window.

    -Parameters

    -eraseBackground

        -If TRUE, the background will be -erased.
    -

    -rect

        -If non-NULL, only the given rectangle will -be treated as damaged.
    -

    - -


    - -

    wxWindow::ReleaseMouse

    -

    -virtual void ReleaseMouse()

    -Releases mouse input captured with wxWindow::CaptureMouse.

    -See also

    -wxWindow::CaptureMouse

    - -


    - -

    wxWindow::RemoveChild

    -

    -virtual void RemoveChild(wxWindow* child)

    -Removes a child window. This is called automatically by window deletion -functions so should not be required by the application programmer.

    -Parameters

    -child

        -Child window to remove.
    -

    - -


    - -

    wxWindow::ScreenToClient

    -

    -virtual void ScreenToClient(int* x, int* y) const

    -virtual wxPoint ScreenToClient(const wxPoint& pt) const

    -Converts from screen to client window coordinates.

    -Parameters

    -x

        -Stores the screen x coordinate and receives the client x coordinate.
    -

    -y

        -Stores the screen x coordinate and receives the client x coordinate.
    -

    -pt

        -The screen position for the second form of the function.
    -

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -ScreenToClient(point) - -Accepts and returns a wxPoint -
        -ScreenToClientXY(x, y) - -Returns a 2-tuple, (x, y) -
        -
    - -

    - - -


    - -

    wxWindow::ScrollWindow

    -

    -virtual void ScrollWindow(int dx, int dy, const wxRect* rect = NULL)

    -Physically scrolls the pixels in the window.

    -Parameters

    -dx

        -Amount to scroll horizontally.
    -

    -dy

        -Amount to scroll vertically.
    -

    -rect

        -Rectangle to invalidate. If this is NULL, the whole window is invalidated. If you -pass a rectangle corresponding to the area of the window exposed by the scroll, your painting handler -can optimise painting by checking for the invalidated region.
    -

    -Remarks

    -Available only under Windows.

    -Use this function to optimise your scrolling implementations, to minimise the area that must be -redrawn.

    - -


    - -

    wxWindow::SetAcceleratorTable

    -

    -virtual void SetAcceleratorTable(const wxAcceleratorTable& accel)

    -Sets the accelerator table for this window. See wxAcceleratorTable.

    - -


    - -

    wxWindow::SetAutoLayout

    -

    -void SetAutoLayout(const bool autoLayout)

    -Determines whether the wxWindow::Layout function will -be called automatically when the window is resized.

    -Parameters

    -autoLayout

        -Set this to TRUE if you wish the Layout function to be called -from within wxWindow::OnSize functions.
    -

    -See also

    -wxWindow::SetConstraints

    - -


    - -

    wxWindow::SetBackgroundColour

    -

    -virtual void SetBackgroundColour(const wxColour& colour)

    -Sets the background colour of the window.

    -Parameters

    -colour

        -The colour to be used as the background colour.
    -

    -Remarks

    -The background colour is usually painted by the default -wxWindow::OnEraseBackground event handler function.

    -Note that setting the background colour does not cause an immediate refresh, so you -may wish to call wxWindow::Clear or wxWindow::Refresh after -calling this function.

    -See also

    -wxWindow::GetBackgroundColour, -wxWindow::SetForegroundColour, -wxWindow::GetForegroundColour, -wxWindow::Clear, -wxWindow::Refresh, -wxWindow::OnEraseBackground

    - -


    - -

    wxWindow::SetClientSize

    -

    -virtual void SetClientSize(int width, int height)

    -virtual void SetClientSize(const wxSize& size)

    -This sets the size of the window client area in pixels. Using this function to size a window -tends to be more device-independent than wxWindow::SetSize, since the application need not -worry about what dimensions the border or title bar have when trying to fit the window -around panel items, for example.

    -Parameters

    -width

        -The required client area width.
    -

    -height

        -The required client area height.
    -

    -size

        -The required client size.
    -

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - -
        -SetClientSize(size) - -Accepts a wxSize -
        -SetClientSizeWH(width, height) - - -
        -
    - -

    - -


    - -

    wxWindow::SetCursor

    -

    -virtual void SetCursor(const wxCursor&cursor)

    -Sets the window's cursor. Notice that setting the cursor for this window does -not set it for its children so you'll need to explicitly call SetCursor() for -them too if you need it.

    -Parameters

    -cursor

        -Specifies the cursor that the window should normally display.
    -

    -See also

    -::wxSetCursor, wxCursor

    - -


    - -

    wxWindow::SetEventHandler

    -

    -void SetEventHandler(wxEvtHandler* handler)

    -Sets the event handler for this window.

    -Parameters

    -handler

        -Specifies the handler to be set.
    -

    -Remarks

    -An event handler is an object that is capable of processing the events -sent to a window. By default, the window is its own event handler, but -an application may wish to substitute another, for example to allow -central implementation of event-handling for a variety of different -window classes.

    -It is usually better to use wxWindow::PushEventHandler since -this sets up a chain of event handlers, where an event not handled by one event handler is -handed to the next one in the chain.

    -See also

    -wxWindow::GetEventHandler, -wxWindow::PushEventHandler, -wxWindow::PopEventHandler, -wxEvtHandler::ProcessEvent, -wxEvtHandler

    - -


    - -

    wxWindow::SetConstraints

    -

    -void SetConstraints(wxLayoutConstraints* constraints)

    -Sets the window to have the given layout constraints. The window -will then own the object, and will take care of its deletion. -If an existing layout constraints object is already owned by the -window, it will be deleted.

    -Parameters

    -constraints

        -The constraints to set. Pass NULL to disassociate and delete the window's -constraints.
    -

    -Remarks

    -You must call wxWindow::SetAutoLayout to tell a window to use -the constraints automatically in OnSize; otherwise, you must -override OnSize and call Layout explicitly.

    - -


    - -

    wxWindow::SetDropTarget

    -

    -void SetDropTarget(wxDropTarget* target)

    -Associates a drop target with this window.

    -If the window already has a drop target, it is deleted.

    -See also

    -wxWindow::GetDropTarget, -Drag and drop overview

    - -


    - -

    wxWindow::SetFocus

    -

    -virtual void SetFocus()

    -This sets the window to receive keyboard input.

    - -


    - -

    wxWindow::SetFont

    -

    -void SetFont(const wxFont& font)

    -Sets the font for this window.

    -Parameters

    -font

        -Font to associate with this window.
    -

    -See also

    -wxWindow::GetFont

    - -


    - -

    wxWindow::SetForegroundColour

    -

    -virtual void SetForegroundColour(const wxColour& colour)

    -Sets the foreground colour of the window.

    -Parameters

    -colour

        -The colour to be used as the foreground colour.
    -

    -Remarks

    -The interpretation of foreground colour is open to interpretation according -to the window class; it may be the text colour or other colour, or it may not -be used at all.

    -See also

    -wxWindow::GetForegroundColour, -wxWindow::SetBackgroundColour, -wxWindow::GetBackgroundColour

    - -


    - -

    wxWindow::SetId

    -

    -void SetId(int id)

    -Sets the identifier of the window.

    -Remarks

    -Each window has an integer identifier. If the application has not provided one, -an identifier will be generated. Normally, the identifier should be provided -on creation and should not be modified subsequently.

    -See also

    -wxWindow::GetId, -Window identifiers

    - -


    - -

    wxWindow::SetName

    -

    -virtual void SetName(const wxString& name)

    -Sets the window's name.

    -Parameters

    -name

        -A name to set for the window.
    -

    -See also

    -wxWindow::GetName

    - -


    - -

    wxWindow::SetPalette

    -

    -virtual void SetPalette(wxPalette* palette)

    -Obsolete - use wxDC::SetPalette instead.

    - -


    - -

    wxWindow::SetReturnCode

    -

    -void SetReturnCode(int retCode)

    -Sets the return code for this window.

    -Parameters

    -retCode

        -The integer return code, usually a control identifier.
    -

    -Remarks

    -A return code is normally associated with a modal dialog, where wxDialog::ShowModal returns -a code to the application. The function wxDialog::EndModal calls SetReturnCode.

    -See also

    -wxWindow::GetReturnCode, wxDialog::ShowModal, -wxDialog::EndModal

    - -


    - -

    wxWindow::SetScrollbar

    -

    -virtual void SetScrollbar(int orientation, int position, -int thumbSize, int range, -const bool refresh = TRUE)

    -Sets the scrollbar properties of a built-in scrollbar.

    -Parameters

    -orientation

        -Determines the scrollbar whose page size is to be set. May be wxHORIZONTAL or wxVERTICAL.
    -

    -position

        -The position of the scrollbar in scroll units.
    -

    -thumbSize

        -The size of the thumb, or visible portion of the scrollbar, in scroll units.
    -

    -range

        -The maximum position of the scrollbar.
    -

    -refresh

        -TRUE to redraw the scrollbar, FALSE otherwise.
    -

    -Remarks

    -Let's say you wish to display 50 lines of text, using the same font. -The window is sized so that you can only see 16 lines at a time.

    -You would use:

    -

    -  SetScrollbar(wxVERTICAL, 0, 16, 50);
    -
    -

    -Note that with the window at this size, the thumb position can never go -above 50 minus 16, or 34.

    -You can determine how many lines are currently visible by dividing the current view -size by the character height in pixels.

    -When defining your own scrollbar behaviour, you will always need to recalculate -the scrollbar settings when the window size changes. You could therefore put your -scrollbar calculations and SetScrollbar -call into a function named AdjustScrollbars, which can be called initially and also -from your wxWindow::OnSize event handler function.

    -See also

    -Scrolling overview, -wxScrollBar, wxScrolledWindow

    - -


    - -

    wxWindow::SetScrollPos

    -

    -virtual void SetScrollPos(int orientation, int pos, const bool refresh = TRUE)

    -Sets the position of one of the built-in scrollbars.

    -Parameters

    -orientation

        -Determines the scrollbar whose position is to be set. May be wxHORIZONTAL or wxVERTICAL.
    -

    -pos

        -Position in scroll units.
    -

    -refresh

        -TRUE to redraw the scrollbar, FALSE otherwise.
    -

    -Remarks

    -This function does not directly affect the contents of the window: it is up to the -application to take note of scrollbar attributes and redraw contents accordingly.

    -See also

    -wxWindow::SetScrollbar, -wxWindow::GetScrollPos, -wxWindow::GetScrollThumb, -wxScrollBar, wxScrolledWindow

    - -


    - -

    wxWindow::SetSize

    -

    -virtual void SetSize(int x, int y, int width, int height, - int sizeFlags = wxSIZE_AUTO)

    -virtual void SetSize(const wxRect& rect)

    -Sets the size and position of the window in pixels.

    -virtual void SetSize(int width, int height)

    -virtual void SetSize(const wxSize& size)

    -Sets the size of the window in pixels.

    -Parameters

    -x

        -Required x position in pixels, or -1 to indicate that the existing -value should be used.
    -

    -y

        -Required y position in pixels, or -1 to indicate that the existing -value should be used.
    -

    -width

        -Required width in pixels, or -1 to indicate that the existing -value should be used.
    -

    -height

        -Required height position in pixels, or -1 to indicate that the existing -value should be used.
    -

    -size

        -wxSize object for setting the size.
    -

    -rect

        -wxRect object for setting the position and size.
    -

    -sizeFlags

        -Indicates the interpretation of other parameters. It is a bit list of the following:

        -wxSIZE_AUTO_WIDTH: a -1 width value is taken to indicate -a wxWindows-supplied default width.
        - -wxSIZE_AUTO_HEIGHT: a -1 height value is taken to indicate -a wxWindows-supplied default width.
        - -wxSIZE_AUTO: -1 size values are taken to indicate -a wxWindows-supplied default size.
        - -wxSIZE_USE_EXISTING: existing dimensions should be used -if -1 values are supplied.
        - -wxSIZE_ALLOW_MINUS_ONE: allow dimensions of -1 and less to be interpreted -as real dimensions, not default values. -

    -

    -Remarks

    -The second form is a convenience for calling the first form with default -x and y parameters, and must be used with non-default width and height values.

    -The first form sets the position and optionally size, of the window. -Parameters may be -1 to indicate either that a default should be supplied -by wxWindows, or that the current value of the dimension should be used.

    -See also

    -wxWindow::Move

    -wxPython note:
    - In place of a single overloaded method name, wxPython -implements the following methods:

    - -

        - - - - - - - - - - - - - - - - - - - -
        -SetDimensions(x, y, width, height, sizeFlags=wxSIZE_AUTO) - - -
        -SetSize(size) - - -
        -SetPosition(point) - - -
        -
    - -

    - -


    - -

    wxWindow::SetSizeHints

    -

    -virtual void SetSizeHints(int minW=-1, int minH=-1, int maxW=-1, int maxH=-1, - int incW=-1, int incH=-1)

    -Allows specification of minimum and maximum window sizes, and window size increments. -If a pair of values is not set (or set to -1), the default values will be used.

    -Parameters

    -minW

        -Specifies the minimum width allowable.
    -

    -minH

        -Specifies the minimum height allowable.
    -

    -maxW

        -Specifies the maximum width allowable.
    -

    -maxH

        -Specifies the maximum height allowable.
    -

    -incW

        -Specifies the increment for sizing the width (Motif/Xt only).
    -

    -incH

        -Specifies the increment for sizing the height (Motif/Xt only).
    -

    -Remarks

    -If this function is called, the user will not be able to size the window outside the -given bounds.

    -The resizing increments are only significant under Motif or Xt.

    - -


    - -

    wxWindow::SetTitle

    -

    -virtual void SetTitle(const wxString& title)

    -Sets the window's title. Applicable only to frames and dialogs.

    -Parameters

    -title

        -The window's title.
    -

    -See also

    -wxWindow::GetTitle

    - -


    - -

    wxWindow::Show

    -

    -virtual bool Show(const bool show)

    -Shows or hides the window.

    -Parameters

    -show

        -If TRUE, displays the window and brings it to the front. Otherwise, -hides the window.
    -

    -See also

    -wxWindow::IsShown

    - -


    - -

    wxWindow::TransferDataFromWindow

    -

    -virtual bool TransferDataFromWindow()

    -Transfers values from child controls to data areas specified by their validators. Returns -FALSE if a transfer failed.

    -See also

    -wxWindow::TransferDataToWindow, -wxValidator, wxWindow::Validate

    - -


    - -

    wxWindow::TransferDataToWindow

    -

    -virtual bool TransferDataToWindow()

    -Transfers values to child controls from data areas specified by their validators.

    -Return value

    -Returns FALSE if a transfer failed.

    -See also

    -wxWindow::TransferDataFromWindow, -wxValidator, wxWindow::Validate

    - -


    - -

    wxWindow::Validate

    -

    -virtual bool Validate()

    -Validates the current values of the child controls using their validators.

    -Return value

    -Returns FALSE if any of the validations failed.

    -See also

    -wxWindow::TransferDataFromWindow, -wxWindow::TransferDataFromWindow, -wxValidator

    - -


    - -

    wxWindow::WarpPointer

    -

    -void WarpPointer(int x, int y)

    -Moves the pointer to the given position on the window.

    -Parameters

    -x

        -The new x position for the cursor.
    -

    -y

        -The new y position for the cursor.
    -

    - - diff --git a/samples/html/test/fft.html b/samples/html/test/fft.html deleted file mode 100644 index 3cef164b9e..0000000000 --- a/samples/html/test/fft.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - wxHTML : wxWindows HTML library - - - - - - -

    - -

    -[ Intro & News ] -[ Features ] -[ Download ] -[ Licence ] -[ Screenshots ] -[ Links & Apps ] -

    - - - - - - - -

    - -

    -
    -
    - -Latest release 0.2.3 - -
    -
    -
    - -

    - -
    -
    - -2811 visitors since January 99 - - -
    Last updated on : June 13, 1999 - - -
    -

    - -
    - - - - -

    News

    - -
      -
    • 13/06/1999 - CVS available!
      -Thanks to Russell Smith, development version of wxHTML is available through CVS. -See Download page for details! -
    - -
      -
    • 13/06/1999 - 0.2.3 release
      -Only minor changes and bugfixes. -
    - -
      -
    • 16/05/1999 - New release
      -Well, 0.2.1 is out. It contains some bug fixes (mainly related to Visual C++) -and new help controller that works with MS HTML Help Workshop projects as -it's native format. Patch from previous version is only 30kB so don't hesitate -to download it! -
    - -
      -
    • 02/05/1999 - Beta release 0.2 is out!
      -Ok, it's here, download it! Help controller is included (and broken under -MSW/Mingw32 - I'll fix it asap. If anyone can help with it, please do so...) -
    - - - - - - - -
    -

    Intro

    - -I started work on this library in January, 1999. -
    The main goal was to provide light-weight HTML viewer for -wxWindows 2 toolkit. -This viewer was expected to be used as help/documentation browser rather than full-featured web browser. - -

    This library is released under -wxWindows Library Licence, Version 3. It is basically -GNU Library General Public Licence except that it makes using -wxHTML in commercial products much easier. - -

    The library should work on all platforms supported by wxWindows - it -is written as poor wxWindows-only code, without line of platform-specific -code (as I hope :-). It is known to compile under these enviromnets: - -

      -
    • EGCS under Linux -
    • Cygwin b20 or Mingw32 under Windows 95 -
    - - - - - - - - -

    Author(s)

    -wxHTML (and this page) is copyrighted by Vaclav Slavik. Parts of wxHTML are copyrighted by other -autors - all of them are listed in contributors section. - -

    -Feel free to send your suggestions, comments, bug reports to me. My -e-mail address is - -
    slavik2@czn.cz -
    or -
    vsla8348@ss1000.ms.mff.cuni.cz -

    Vaclav Slavik - - -

    Contributors

    -
      -
    • Guillermo Rodriguez Garcia (guille@iies.es) -
      contributed GIF reading routines -
    - -
    - - diff --git a/samples/html/test/imagemap.htm b/samples/html/test/imagemap.htm deleted file mode 100644 index edebd33b82..0000000000 --- a/samples/html/test/imagemap.htm +++ /dev/null @@ -1,20 +0,0 @@ - - -ImageMap Test - - - - -This is test. - - - - - - - - - - - - diff --git a/samples/html/test/imagemap.png b/samples/html/test/imagemap.png deleted file mode 100644 index 2307eaed4e..0000000000 Binary files a/samples/html/test/imagemap.png and /dev/null differ diff --git a/samples/html/test/pic.png b/samples/html/test/pic.png deleted file mode 100644 index fcc18c1296..0000000000 Binary files a/samples/html/test/pic.png and /dev/null differ diff --git a/samples/html/test/pic2.bmp b/samples/html/test/pic2.bmp deleted file mode 100644 index e79b526fc3..0000000000 Binary files a/samples/html/test/pic2.bmp and /dev/null differ diff --git a/samples/html/test/tables.htm b/samples/html/test/tables.htm deleted file mode 100644 index b27eb5e3f5..0000000000 --- a/samples/html/test/tables.htm +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - -

    -This is TABLES -tests page...

    - - -(yes, really, see bellow:) -
    Click here to go to original testing page... -
    Click here to go to manuals... -
      -
    - - - - - - - - - - - -
    Top left -
    (two lines expression) -

    paragraph done

    Top right
    Bottom leftBottom right
    - -

    Subsampling is shown there: -
      - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    ab
    cd
    -
    2
    3 dflkj lkjfl dkjldkfjl flk jflkf lkjflkj ljlf ajlfj alff h khg hgj -gjg jg gjhfg fg gjh gjf jgf jgj f gjfgj kfajg 4 -
    gh -
    gfh -
    gh -
    hg -
    5
    - -

    This is "default" table - with no sizes givev: -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Hellolkfdsjlk fj dlfj lkfj lkjflk jlfk lk fjlk elwkf lkejflek f jlekjflkj -ljlk lk jlkf lefjl j flkj ljl lf lfj lfjl lj lwe lekf;eh kfejh lkh kjh -kjhkj hkj hkj lkh kjh kjlh kjshortebn formo lr lkdjsf lkjlf poer oi pjr po kpk 
    abcd
    123
    AB
    - - - - - - - diff --git a/samples/html/test/test.cpp b/samples/html/test/test.cpp deleted file mode 100644 index fa61e56489..0000000000 --- a/samples/html/test/test.cpp +++ /dev/null @@ -1,203 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxHtml testing example -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "test.cpp" - #pragma interface "test.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 "standard" wxWindows headers -#ifndef WX_PRECOMP - #include -#endif - -#include -#include - -// ---------------------------------------------------------------------------- -// 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 OnBack(wxCommandEvent& event); - void OnForward(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_Back, - Minimal_Forward, - - // 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) - EVT_MENU(Minimal_Back, MyFrame::OnBack) - EVT_MENU(Minimal_Forward, MyFrame::OnForward) - 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() - { - wxLogDebug("[starting testing app]"); - #if wxUSE_LIBPNG - wxImage::AddHandler(new wxPNGHandler); - #endif - #if wxUSE_LIBJPEG - wxImage::AddHandler(new wxJPEGHandler); - #endif - // Create the main application window - MyFrame *frame = new MyFrame("wxHtmlWindow testing application", - wxPoint(50, 50), wxSize(640, 480)); - - // 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 -// ---------------------------------------------------------------------------- - -wxHtmlWindow *html; - -// frame constructor - MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) - { - // create a menu bar - wxMenu *menuFile = new wxMenu; - wxMenu *menuNav = new wxMenu; - - menuFile->Append(Minimal_About, "&Load wxWindows manual page"); - menuFile->AppendSeparator(); - menuFile->Append(Minimal_Quit, "E&xit"); - menuNav->Append(Minimal_Back, "Go &BACK"); - menuNav->Append(Minimal_Forward, "Go &FORWARD"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - menuBar->Append(menuNav, "&Navigate"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - CreateStatusBar(1); - - { - wxConfig *cfg = new wxConfig("wxHtmlTest"); - html = new wxHtmlWindow(this); - html -> SetRelatedFrame(this, "HTML : %s"); - html -> SetRelatedStatusBar(0); - html -> ReadCustomization(cfg); - delete cfg; - html -> LoadPage("test.htm"); - } - } - - -// event handlers - - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) - { - // TRUE is to force the frame to close - wxLogDebug("about to save config..."); - wxConfig *cfg = new wxConfig("wxHtmlTest"); - html -> WriteCustomization(cfg); - delete cfg; - Close(TRUE); - } - - void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) - { - html -> LoadPage("fft.html"); - } - - - - void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!"); - } - - - void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryForward()) wxMessageBox("No more items in history!"); - } diff --git a/samples/html/test/test.htm b/samples/html/test/test.htm deleted file mode 100644 index c056a114b0..0000000000 --- a/samples/html/test/test.htm +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - - - -click here to go to tables test page! -

    -click here to go to IMAGEMAPs test page! - -

    -This is - - default text, now switching to -

    -

    center, now still ctr, now exiting

    -exited!.[link to down] -

    Hello, this *is* default charset (helvetica, probably) and it is displayed -with one  COLOR CHANGE. Of course we -can have as many color changes as we can, what about this MADNESS? -

    There was a space above. -
    -


    This was a line. (BTW we are in fixed font -/ typewriter font right now :-) -
    This is in BOLD face. This is ITALIC. This is E -V E R Y T H I N G. -
      -


    -

    -

    Right now, centered REALLY Big Text, -how do you like (space) it?

    - -
    RIGHT: text-2, text-1, -text+0, -text+1, -text+2, -text+3, -text+4 -
    we are right now
    - -
    we are center now
    -we are left now. -

    Blue italic text is displayed there.... -

    - -
    This is heading one.

    -this is normal -
    -

    -This is CENTERED heading one

    -Yes, hmmmmmmmmm........, right now, we should -display some tiny nice image, he? -
    Testing image imageand this is text...... -

    Testing image imageand -this is text...... -
    Testing image image (try clicking on the image :-) and -this is text...... -
      -
      -

      -
    • -item 1
    • - -
    • -item 2
    • - -
        -
      • -nested item
      • - -
      • -nested item 2
      • -
      - -
    • -item 3
    • -
    - -
      -
    1. -item one
    2. - -
    3. -item two
    4. - -
        -
      1. -nsted item
      2. -
      - -
    5. -last numbered item
    6. -
    - -

    -Heading 1

    -Italic text now... -

    -Heading 2

    -and now? -

    -Heading 3

    - -

    -Heading 4

    - -
    -Heading 5
    - -
    -Heading 6
    -And this is normal text, once again :-) -
      -
      -
      -
      -
      -
      -

    And yes, we're in HTML DOCUMENT, so -what about some nice hypertext link?? -

    hello? -
      -


    -

    -

    This is centered paragraph

    - -

    This is new par? -

    We switched to BOLD -

    This is new paragraph Bold is off now. -

    new par -

      ----------- -

    Hello -

      this is standalone :-) -
    1. -This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf -jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl -fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga -kjegiquw iuqdb qiud iquwd hurray googoo.
    2. - -
    3. -two two two two two two twotwo TWO two two two two two two -twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo -TWO two two two two two two twotwo TWO two two two two two two twotwo TWO -two two two two two two twotwo TWO
    4. - -
      (blockquote)two two two two two two twotwo -TWO two two two two two two twotwo TWO two two two two two two twotwo TWO -
      two two two two two two twotwo TWO two two two
      -two two two twotwo TWO two two two two two two twotwo TWO -two two two two two two twotwo TWO
      -two two two two two two twotwo TWO two two two two two two -twotwo TWO -
    5. -This is item nyumber 3.
    6. - -
    7. -This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf -jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl -fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga -kjegiquw iuqdb qiud iquwd hurray googoo.
    8. - -
    9. -two two two two two two twotwo TWO two two two two two two -twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo -TWO two two two two two two twotwo TWO two two two two two two twotwo TWO -two two two two two two twotwo TWO two two two two two two twotwo TWO two -two two two two two twotwo TWO two two two two two two twotwo TWO two two -two two two two twotwo TWO two two two two two two twotwo TWO two two two -two two two twotwo TWO two two two two two two twotwo TWO two two two two -two two twotwo TWO two two two two two two twotwo TWO
    10. - -
    11. -This is item nyumber 3.
    12. - -
    13. -This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf -jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl -fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga -kjegiquw iuqdb qiud iquwd hurray googoo.
    14. - -
    15. -two two two two two two twotwo TWO two two two two two two -twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo -TWO two two two two two two twotwo TWO two two two two two two twotwo TWO -two two two two two two twotwo TWO two two two two two two twotwo TWO two -two two two two two twotwo TWO two two two two two two twotwo TWO two two -two two two two twotwo TWO two two two two two two twotwo TWO two two two -two two two twotwo TWO two two two two two two twotwo TWO two two two two -two two twotwo TWO two two two two two two twotwo TWO
    16. - -
    17. -This is item nyumber 3.
    18. - -
    19. -This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf -jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl -fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga -kjegiquw iuqdb qiud iquwd hurray googoo.
    20. - -
    21. -two two two two two two twotwo TWO two two two two two two -twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo -TWO two two two two two two twotwo TWO two two two two two two twotwo TWO -two two two two two two twotwo TWO two two two two two two twotwo TWO two -two two two two two twotwo TWO two two two two two two twotwo TWO two two -two two two two twotwo TWO two two two two two two twotwo TWO two two two -two two two twotwo TWO two two two two two two twotwo TWO two two two two -two two twotwo TWO two two two two two two twotwo TWO
    22. - -
    23. -This is item nyumber 3.
    24. - -
    25. -This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf -jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl -fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga -kjegiquw iuqdb qiud iquwd hurray googoo.
    26. - -
    27. -two two two two two two twotwo TWO two two two two two two -twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo -TWO two two two two two two twotwo TWO two two two two two two twotwo TWO -two two two two two two twotwo TWO two two two two two two twotwo TWO
    28. - -


      two two two two two two twotwo TWO two two two two -two two twotwo TWO two two two two two two twotwo TWO two two two two two -two twotwo TWO -

      two two two two two two twotwo TWO two two two two two -two twotwo TWO two two two two two two twotwo TWO two two two two two two -twotwo TWO -

    29. -This is item nyumber 3.
    30. -
    -Now, you will see some PRE text:

    -

    // This is sample C++ code:
    -
    -void main(int argc, char *argv[])
    -{
    -    printf("Go away, man!\n");
    -    i = 666;
    -    printf("\n\n\nCRASH\n  DOWN NOW. . .  \n");
    -}
    - -

    WWW

    -This is WWW link to KDE site! -
    - - - - - - -(one folder up) -
    - -... -
    -... -
    -Link to normal text file : test.cpp -
    -And link to BINARY : Unix or Windows -
    -ANOTHER LINK(www.tue.nl) - - - - diff --git a/samples/html/test/test.rc b/samples/html/test/test.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/html/test/test.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/html/virtual/.cvsignore b/samples/html/virtual/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/virtual/Makefile.in b/samples/html/virtual/Makefile.in deleted file mode 100644 index 0b660a7b83..0000000000 --- a/samples/html/virtual/Makefile.in +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for html virtual example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. -program_dir = samples/html/virtual - -PROGRAM=virtual - -OBJECTS=$(PROGRAM).o - -DATAFILES=start.htm - -include ../../../src/makeprog.env - diff --git a/samples/html/virtual/Makefile.vc b/samples/html/virtual/Makefile.vc deleted file mode 100644 index 9265a1fb3f..0000000000 --- a/samples/html/virtual/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=virtual -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/html/virtual/start.htm b/samples/html/virtual/start.htm deleted file mode 100644 index 1dc3cdd353..0000000000 --- a/samples/html/virtual/start.htm +++ /dev/null @@ -1,12 +0,0 @@ - -VFS Demo - -

    Virtual File Systems demonstration

    - -Hello. This sample demonstrates VFS. Try the link (and have a look -at status bar before clicking on them) -

    -Enter top level Node... - - - diff --git a/samples/html/virtual/virtual.cpp b/samples/html/virtual/virtual.cpp deleted file mode 100644 index 6efe0580be..0000000000 --- a/samples/html/virtual/virtual.cpp +++ /dev/null @@ -1,234 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: virtua;.cpp -// Purpose: wxHtml testing example -// demonstrates virtual file systems feature -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "test.cpp" - #pragma interface "test.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 "standard" wxWindows headers -#ifndef WX_PRECOMP - #include -#endif - - -#include - - -// new handler class: - -#include -#include - - - -class MyVFS : public wxFileSystemHandler -{ -public: - MyVFS() : wxFileSystemHandler() {} - - wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); - bool CanOpen(const wxString& location); -}; - - -bool MyVFS::CanOpen(const wxString& location) -{ - return (GetProtocol(location) == "myVFS"); -} - - - -wxFSFile* MyVFS::OpenFile(wxFileSystem& fs, const wxString& location) -{ - wxFSFile *f; - wxInputStream *str; - char *buf = (char*)malloc(1024); - - sprintf(buf, "

    You're in Node %s

    " - "Where do you want to go?

    " - "sub-1
    " - "sub-2
    " - "sub-3
    " - "
    ", - location.GetData(), location.GetData(), location.GetData(), location.GetData()); - - // WARNING: wxMemoryInputStream will not free buf. - // There is a memory leak here. - str = new wxMemoryInputStream(buf, strlen(buf)); - f = new wxFSFile(str, location, "text/html", wxEmptyString); - return f; -} - - - -// ---------------------------------------------------------------------------- -// 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 OnBack(wxCommandEvent& event); - void OnForward(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_Back, - Minimal_Forward, - - // 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) - EVT_MENU(Minimal_Back, MyFrame::OnBack) - EVT_MENU(Minimal_Forward, MyFrame::OnForward) - 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("wxHtmlWindow testing application", - wxPoint(50, 50), wxSize(640, 480)); - - // 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); - wxFileSystem::AddHandler(new MyVFS); - - // 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 -// ---------------------------------------------------------------------------- - -wxHtmlWindow *html; - -// frame constructor - MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) - { - // create a menu bar - wxMenu *menuFile = new wxMenu; - wxMenu *menuNav = new wxMenu; - - menuFile->Append(Minimal_Quit, "E&xit"); - menuNav->Append(Minimal_Back, "Go &BACK"); - menuNav->Append(Minimal_Forward, "Go &FORWARD"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - menuBar->Append(menuNav, "&Navigate"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - CreateStatusBar(1); - - html = new wxHtmlWindow(this); - html -> SetRelatedFrame(this, "VFS Demo: '%s'"); - html -> SetRelatedStatusBar(1); - html -> LoadPage("start.htm"); - } - - -// event handlers - - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) - { - // TRUE is to force the frame to close - Close(TRUE); - } - - void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) - { - } - - - - void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!"); - } - - - void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryForward()) wxMessageBox("No more items in history!"); - } diff --git a/samples/html/virtual/virtual.rc b/samples/html/virtual/virtual.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/html/virtual/virtual.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/html/widget/.cvsignore b/samples/html/widget/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/widget/Makefile.in b/samples/html/widget/Makefile.in deleted file mode 100644 index 1b21882df7..0000000000 --- a/samples/html/widget/Makefile.in +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for html widget example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. -program_dir = samples/html/widget - -PROGRAM=widget - -OBJECTS=$(PROGRAM).o - -DATAFILES=start.htm - -include ../../../src/makeprog.env - diff --git a/samples/html/widget/Makefile.vc b/samples/html/widget/Makefile.vc deleted file mode 100644 index 5df3ebf04c..0000000000 --- a/samples/html/widget/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=widget -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/html/widget/start.htm b/samples/html/widget/start.htm deleted file mode 100644 index 23c528d04e..0000000000 --- a/samples/html/widget/start.htm +++ /dev/null @@ -1,20 +0,0 @@ - -Binder demo - -

    wxHtmlBinderCell demonstration

    - -There is binded window somewhere around. Enjoy it. - -
    -
    - -
    -
    - - -
    - - - - - diff --git a/samples/html/widget/widget.cpp b/samples/html/widget/widget.cpp deleted file mode 100644 index 74fa22ff81..0000000000 --- a/samples/html/widget/widget.cpp +++ /dev/null @@ -1,244 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: virtua;.cpp -// Purpose: wxHtml testing example -// demonstrates virtual file systems feature -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "test.cpp" - #pragma interface "test.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 "standard" wxWindows headers -#ifndef WX_PRECOMP - #include -#endif - - -#include - - - - -/* - - -TAG HANDER FOR 'MYBIND' TAG - - -*/ - -#include - - -TAG_HANDLER_BEGIN(MYBIND, "MYBIND") - - TAG_HANDLER_PROC(tag) - { - wxWindow *wnd; - int ax, ay; - int fl = 0; - - tag.ScanParam("X", "%i", &ax); - tag.ScanParam("Y", "%i", &ay); - if (tag.HasParam("FLOAT")) fl = ax; - - wnd = new wxTextCtrl( m_WParser -> GetWindow(), -1, tag.GetParam("NAME"), - wxPoint(0,0), wxSize(ax, ay), wxTE_MULTILINE ); - wnd -> Show(TRUE); - - m_WParser -> OpenContainer() -> InsertCell(new wxHtmlWidgetCell(wnd, fl)); - - return FALSE; - } - -TAG_HANDLER_END(MYBIND) - - - -TAGS_MODULE_BEGIN(MyBind) - - TAGS_MODULE_ADD(MYBIND) - -TAGS_MODULE_END(MyBind) - - - - - - - - - -// ---------------------------------------------------------------------------- -// 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 OnBack(wxCommandEvent& event); - void OnForward(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_Back, - Minimal_Forward, - - // 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) - EVT_MENU(Minimal_Back, MyFrame::OnBack) - EVT_MENU(Minimal_Forward, MyFrame::OnForward) - 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("wxHtmlWindow testing application", - wxPoint(50, 50), wxSize(640, 480)); - - // 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 -// ---------------------------------------------------------------------------- - -wxHtmlWindow *html; - -// frame constructor - MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) - { - // create a menu bar - wxMenu *menuFile = new wxMenu; - wxMenu *menuNav = new wxMenu; - - menuFile->Append(Minimal_Quit, "E&xit"); - menuNav->Append(Minimal_Back, "Go &BACK"); - menuNav->Append(Minimal_Forward, "Go &FORWARD"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - menuBar->Append(menuNav, "&Navigate"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - CreateStatusBar(1); - - html = new wxHtmlWindow(this); - html -> SetRelatedFrame(this, "VFS Demo: '%s'"); - html -> SetRelatedStatusBar(1); - html -> LoadPage("start.htm"); - } - - -// event handlers - - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) - { - // TRUE is to force the frame to close - Close(TRUE); - } - - void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) - { - } - - - - void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!"); - } - - - void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryForward()) wxMessageBox("No more items in history!"); - } - - - - - - diff --git a/samples/html/widget/widget.rc b/samples/html/widget/widget.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/html/widget/widget.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/html/zip/.cvsignore b/samples/html/zip/.cvsignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/html/zip/Makefile.in b/samples/html/zip/Makefile.in deleted file mode 100644 index 76297fbd3e..0000000000 --- a/samples/html/zip/Makefile.in +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: Makefile.in -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for html zip example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. -program_dir = samples/html/zip - -PROGRAM=zip - -OBJECTS=$(PROGRAM).o - -DATAFILES=pages.zip start.htm - -include ../../../src/makeprog.env - diff --git a/samples/html/zip/Makefile.vc b/samples/html/zip/Makefile.vc deleted file mode 100644 index f9db096361..0000000000 --- a/samples/html/zip/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=zip -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/html/zip/pages.zip b/samples/html/zip/pages.zip deleted file mode 100644 index f70ded12b5..0000000000 Binary files a/samples/html/zip/pages.zip and /dev/null differ diff --git a/samples/html/zip/start.htm b/samples/html/zip/start.htm deleted file mode 100644 index cca461e6b0..0000000000 --- a/samples/html/zip/start.htm +++ /dev/null @@ -1,9 +0,0 @@ - -

    ZIP archive

    -

    feature demo

    -

    -Click on this link to load page stored in ZIP -archive (pages.zip). Enjoy it! - - - diff --git a/samples/html/zip/zip.cpp b/samples/html/zip/zip.cpp deleted file mode 100644 index 3f518da664..0000000000 --- a/samples/html/zip/zip.cpp +++ /dev/null @@ -1,195 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxHtml testing example -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "test.cpp" - #pragma interface "test.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 "standard" wxWindows headers -#ifndef WX_PRECOMP - #include -#endif - -#include -#include -#include - -// ---------------------------------------------------------------------------- -// 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 OnBack(wxCommandEvent& event); - void OnForward(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_Back, - Minimal_Forward, - - // 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) - EVT_MENU(Minimal_Back, MyFrame::OnBack) - EVT_MENU(Minimal_Forward, MyFrame::OnForward) - 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() - { - #if wxUSE_LIBPNG - wxImage::AddHandler(new wxPNGHandler); - #endif - #if wxUSE_LIBJPEG - wxImage::AddHandler(new wxJPEGHandler); - #endif - - wxFileSystem::AddHandler(new wxZipFSHandler); - - // Create the main application window - MyFrame *frame = new MyFrame("wxHtmlWindow testing application", - wxPoint(50, 50), wxSize(640, 480)); - - // 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 -// ---------------------------------------------------------------------------- - -wxHtmlWindow *html; - -// frame constructor - MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) - { - // create a menu bar - wxMenu *menuFile = new wxMenu; - wxMenu *menuNav = new wxMenu; - - menuFile->Append(Minimal_Quit, "E&xit"); - menuNav->Append(Minimal_Back, "Go &BACK"); - menuNav->Append(Minimal_Forward, "Go &FORWARD"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - menuBar->Append(menuNav, "&Navigate"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - CreateStatusBar(1); - - { - html = new wxHtmlWindow(this); - html -> SetRelatedFrame(this, "HTML : %s"); - html -> SetRelatedStatusBar(0); - html -> LoadPage("start.htm"); - } - } - - -// event handlers - - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) - { - // TRUE is to force the frame to close - Close(TRUE); - } - - void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) - { - } - - - - void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!"); - } - - - void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event)) - { - if (!html -> HistoryForward()) wxMessageBox("No more items in history!"); - } diff --git a/samples/html/zip/zip.rc b/samples/html/zip/zip.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/html/zip/zip.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/image/.cvsignore b/samples/image/.cvsignore deleted file mode 100644 index f7a0c2541b..0000000000 --- a/samples/image/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -test.png - diff --git a/samples/image/Makefile.in b/samples/image/Makefile.in deleted file mode 100644 index e2c29b50d4..0000000000 --- a/samples/image/Makefile.in +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for image example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/image - -DATAFILES = horse.png horse.jpg horse.bmp horse.gif - -PROGRAM=image - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/image/horse.bmp b/samples/image/horse.bmp deleted file mode 100644 index bcb7a05906..0000000000 Binary files a/samples/image/horse.bmp and /dev/null differ diff --git a/samples/image/horse.gif b/samples/image/horse.gif deleted file mode 100644 index b422541be8..0000000000 Binary files a/samples/image/horse.gif and /dev/null differ diff --git a/samples/image/horse.jpg b/samples/image/horse.jpg deleted file mode 100644 index 7e4983880b..0000000000 Binary files a/samples/image/horse.jpg and /dev/null differ diff --git a/samples/image/horse.png b/samples/image/horse.png deleted file mode 100644 index a9cd2a354f..0000000000 Binary files a/samples/image/horse.png and /dev/null differ diff --git a/samples/image/image.cpp b/samples/image/image.cpp deleted file mode 100644 index 24306d42a6..0000000000 --- a/samples/image/image.cpp +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Program: image - * - * Author: Robert Roebling - * - * Copyright: (C) 1998, Robert Roebling - * - */ - -// 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/image.h" - -#include "wx/file.h" - -// derived classes - -class MyFrame; -class MyApp; - -// MyCanvas - -class MyCanvas: public wxScrolledWindow -{ -public: - MyCanvas() {}; - MyCanvas( wxWindow *parent, wxWindowID, const wxPoint &pos, const wxSize &size ); - ~MyCanvas(); - void OnPaint( wxPaintEvent &event ); - void CreateAntiAliasedBitmap(); - - wxBitmap *my_horse_png; - wxBitmap *my_horse_jpeg; - wxBitmap *my_horse_gif; - wxBitmap *my_horse_bmp; - wxBitmap *my_square; - wxBitmap *my_anti; - - DECLARE_DYNAMIC_CLASS(MyCanvas) - DECLARE_EVENT_TABLE() -}; - -// MyFrame - -class MyFrame: public wxFrame -{ -public: - MyFrame(); - - void OnAbout( wxCommandEvent &event ); - void OnQuit( wxCommandEvent &event ); - - MyCanvas *m_canvas; - - DECLARE_DYNAMIC_CLASS(MyFrame) - DECLARE_EVENT_TABLE() -}; - -// MyApp - -class MyApp: public wxApp -{ -public: - virtual bool OnInit(); -}; - -// main program - -IMPLEMENT_APP(MyApp) - -// MyCanvas - -IMPLEMENT_DYNAMIC_CLASS(MyCanvas, wxScrolledWindow) - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT(MyCanvas::OnPaint) -END_EVENT_TABLE() - -MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size ) - : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER ) -{ - my_horse_png = (wxBitmap*) NULL; - my_horse_jpeg = (wxBitmap*) NULL; - my_horse_gif = (wxBitmap*) NULL; - my_horse_bmp = (wxBitmap*) NULL; - my_square = (wxBitmap*) NULL; - my_anti = (wxBitmap*) NULL; - - SetBackgroundColour(* wxWHITE); - - wxBitmap bitmap( 100, 100 ); - - wxMemoryDC dc; - dc.SelectObject( bitmap ); - dc.SetBrush( wxBrush( "orange", wxSOLID ) ); - dc.SetPen( *wxWHITE_PEN ); - dc.DrawRectangle( 0, 0, 100, 100 ); - dc.SelectObject( wxNullBitmap ); - - // try to find the directory with our images - wxString dir; - if ( wxFile::Exists("./horse.png") ) - dir = "./"; - else if ( wxFile::Exists("../horse.png") ) - dir = "../"; - else - wxLogWarning("Can't find image files in either '.' or '..'!"); - - wxImage image( bitmap ); - - if ( !image.SaveFile( dir + wxString("test.png"), wxBITMAP_TYPE_PNG ) ) - wxLogError("Can't save file"); - - if ( !image.LoadFile( dir + wxString("horse.png"), wxBITMAP_TYPE_PNG ) ) - wxLogError("Can't load PNG image"); - else - my_horse_png = new wxBitmap( image.ConvertToBitmap() ); - - if ( !image.LoadFile( dir + wxString("horse.jpg") ) ) - wxLogError("Can't load JPG image"); - else - my_horse_jpeg = new wxBitmap( image.ConvertToBitmap() ); - - if ( !image.LoadFile( dir + wxString("horse.gif") ) ) - wxLogError("Can't load GIF image"); - else - my_horse_gif = new wxBitmap( image.ConvertToBitmap() ); - - if ( !image.LoadFile( dir + wxString("horse.bmp") ) ) - wxLogError("Can't load BMP image"); - else - my_horse_bmp = new wxBitmap( image.ConvertToBitmap() ); - - image.LoadFile( dir + wxString("test.png") ); - my_square = new wxBitmap( image.ConvertToBitmap() ); - - CreateAntiAliasedBitmap(); -} - -MyCanvas::~MyCanvas() -{ - delete my_horse_png; - delete my_horse_jpeg; - delete my_horse_gif; - delete my_horse_bmp; - delete my_square; - delete my_anti; -} - -void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) -{ - wxPaintDC dc( this ); - PrepareDC( dc ); - - dc.DrawText( "Loaded image", 30, 10 ); - if (my_square && my_square->Ok()) 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.SetPen( *wxTRANSPARENT_PEN ); - 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" - "\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.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 afef5a1203..0000000000 --- a/samples/internat/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -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 2632931826..0000000000 Binary files a/samples/internat/fr/internat.mo and /dev/null differ 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 89c03eaf60..0000000000 Binary files a/samples/internat/fr/wxstd.mo and /dev/null differ 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 2310c5d275..0000000000 Binary files a/samples/internat/mondrian.ico and /dev/null differ diff --git a/samples/internat/mondrian.xpm b/samples/internat/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/internat/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/internat/readme.txt b/samples/internat/readme.txt deleted file mode 100644 index 1e5f58b0e3..0000000000 --- a/samples/internat/readme.txt +++ /dev/null @@ -1,82 +0,0 @@ -This is the README file for the internationalization sample for wxWindows 2.0. - -Q. What does this stupid program do? -A. It demonstrates how to translate all program messages to a foreign language. - In any program using wxWindows there is going to be 3 kinds of messages: the - messages from the program itself, the messages from the wxWindows library and - the messages from the system (e.g. system error messages). This program - translates the first 2 kinds of messages but the system messages will be only - translated if your system supports it. - - Brief usage summary: "Test|File" tries to open a non existing file (provoking - system error message), "Test|Play" shows a message box asking for a number. - Hint: try some special values like 9 and 17. - -Q. Why the error message when I try to open a non existing file is only partly - translated? -A. Your system doesn't have the translation in the language you use, sorry. - -Q. Why the message when I enter '9' is not translated? -A. This is on purpose: the corresponding string wasn't enclosed in _() macro and - so didn't get into the message catalog when it was created using xgettext. - -Q. Why the message when I enter '17' is only partly translated? -A. This will only work under some versions of Linux, don't worry if the second - half of the sentence is not translated. - -Q. I don't speak french, what about translations to ? -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 16d4a585fd..0000000000 Binary files a/samples/joytest/chart.ico and /dev/null differ diff --git a/samples/joytest/gun.wav b/samples/joytest/gun.wav deleted file mode 100644 index 8cb037d78d..0000000000 Binary files a/samples/joytest/gun.wav and /dev/null differ 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 2dc1bde40c..0000000000 Binary files a/samples/joytest/joytest.ico and /dev/null differ 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 2310c5d275..0000000000 Binary files a/samples/joytest/mondrian.ico and /dev/null differ diff --git a/samples/layout/.cvsignore b/samples/layout/.cvsignore deleted file mode 100644 index 8b13789179..0000000000 --- a/samples/layout/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/layout/Makefile.in b/samples/layout/Makefile.in deleted file mode 100644 index 9019372202..0000000000 --- a/samples/layout/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for layout example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/layout - -PROGRAM=layout - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/layout/expt.cpp b/samples/layout/expt.cpp deleted file mode 100644 index af2c089b84..0000000000 --- a/samples/layout/expt.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Experimental code to use operators for constraint specification. - * In the end, the syntax didn't look much clearer than - * the original, so abandoned. - - Example: - - wxConstrain(frame->panel, - - ( 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 14532691e3..0000000000 --- a/samples/layout/layout.cpp +++ /dev/null @@ -1,329 +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 "wx/sizer.h" -#include "wx/statline.h" - -#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_NEW, "&Test new sizers", "Test new 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(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); -// 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; -} - -//----------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------- - -// 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_NEW, MyFrame::TestNewSizers) - 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::TestNewSizers(wxCommandEvent& WXUNUSED(event) ) -{ - NewSizerFrame *newFrame = new NewSizerFrame((MyFrame *) NULL, "Sizer Test Frame", 50, 50 ); - 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 ); -} - -//----------------------------------------------------------------- -// MyWindow -//----------------------------------------------------------------- - -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); -} - -//----------------------------------------------------------------- -// NewSizerFrame -//----------------------------------------------------------------- - -NewSizerFrame::NewSizerFrame(wxFrame *frame, char *title, int x, int y ): - wxFrame(frame, -1, title, wxPoint(x, y) ) -{ - // we want to get a dialog that is stretchable because it - // has a text ctrl in the middle. at the bottom, we have - // two buttons which. - - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // 1) top: create wxStaticText with minimum size equal to its default size - topsizer->Add( - new wxStaticText( this, -1, "An explanation (wxALIGN_RIGHT)." ), - 0, // make vertically unstretchable - wxALIGN_RIGHT | // right align text - wxTOP | wxLEFT | wxRIGHT, // make border all around except wxBOTTOM - 5 ); // set border width to 5 - - // 2) top: create wxTextCtrl with minimum size (100x60) - topsizer->Add( - new wxTextCtrl( this, -1, "My text (wxEXPAND).", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE), - 1, // make vertically stretchable - wxEXPAND | // make horizontally stretchable - wxALL, // and make border all around - 5 ); // set border width to 5 - - - // 3) middle: create wxStaticLine with minimum size (3x3) - topsizer->Add( - new wxStaticLine( this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), - 0, // make vertically unstretchable - wxEXPAND | // make horizontally stretchable - wxALL, // and make border all around - 5 ); // set border width to 5 - - - // 4) bottom: create two centred wxButtons - wxBoxSizer *button_box = new wxBoxSizer( wxHORIZONTAL ); - button_box->Add( - new wxButton( this, -1, "Two buttons in a box" ), - 0, // make horizontally unstretchable - wxALL, // make border all around - 7 ); // set border width to 7 - button_box->Add( - new wxButton( this, -1, "(wxCENTER)" ), - 0, // make horizontally unstretchable - wxALL, // make border all around - 7 ); // set border width to 7 - - topsizer->Add( - button_box, - 0, // make vertically unstretchable - wxCENTER ); // no border and centre horizontally - - - // set frame to minimum size - topsizer->Fit( this ); - - // don't allow frame to get smaller than what the sizers tell ye - topsizer->SetSizeHints( this ); - - SetSizer( topsizer ); - - SetAutoLayout( TRUE ); -} - - - 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 7aad45fd82..0000000000 --- a/samples/layout/layout.h +++ /dev/null @@ -1,76 +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 TestNewSizers(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 NewSizerFrame: public wxFrame -{ - public: - wxPanel *panel; - NewSizerFrame(wxFrame *frame, char *title, int x, int y ); - -}; - -#define LAYOUT_QUIT 100 -#define LAYOUT_TEST 101 -#define LAYOUT_ABOUT 102 -#define LAYOUT_LOAD_FILE 103 -#define LAYOUT_TEST_NEW 104 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.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 8b13789179..0000000000 --- a/samples/listctrl/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/listctrl/Makefile.in b/samples/listctrl/Makefile.in deleted file mode 100644 index cbd5f71cdb..0000000000 --- a/samples/listctrl/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for listctrl example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/listctrl - -PROGRAM=listtest - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/listctrl/bitmaps/small1.ico b/samples/listctrl/bitmaps/small1.ico deleted file mode 100644 index 2d650d58c9..0000000000 Binary files a/samples/listctrl/bitmaps/small1.ico and /dev/null differ 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 99069f7c67..0000000000 Binary files a/samples/listctrl/bitmaps/toolbrai.ico and /dev/null differ diff --git a/samples/listctrl/bitmaps/toolbrai.xpm b/samples/listctrl/bitmaps/toolbrai.xpm deleted file mode 100644 index 3c1a4db104..0000000000 --- a/samples/listctrl/bitmaps/toolbrai.xpm +++ /dev/null @@ -1,42 +0,0 @@ -/* XPM */ -static char * toolbrai_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 4 1", -/* colors */ -" s None c None", -". c #000080", -"+ c #ff0000", -"@ c #00ffff", -/* pixels */ -" ", -" ", -" ..... ", -" ..... .+++++. ", -" .+++++. .+++++. ", -" .+++++++. .+++++. ", -" .+++++. ..... ", -" ..... @ ", -" @ @ ", -" @ @ ", -" @ @ ", -" @ ..... ", -" ..+++++.. ", -" .+++++++++. ", -" .+++++++++. ", -" .+++++++++. ", -" @..+++++.. ", -" @ .....@ ", -" @ @ @ ", -" @ @ @ ...... ", -" @ @ @.++++++. ", -" @ @ .++++++. ", -" @ @ .++++++. ", -" ...... @ .++++++. ", -" .++++++. @ ...... ", -" .++++++. .... ", -" .++++++. .++++. ", -" .++++++. .++++. ", -" ...... .++++. ", -" .++++. ", -" .... ", -" "}; diff --git a/samples/listctrl/bitmaps/toolchar.ico b/samples/listctrl/bitmaps/toolchar.ico deleted file mode 100644 index bb29c8edd7..0000000000 Binary files a/samples/listctrl/bitmaps/toolchar.ico and /dev/null differ 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 d64e0105a2..0000000000 Binary files a/samples/listctrl/bitmaps/toolchec.ico and /dev/null differ 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 4cdd40a5d0..0000000000 Binary files a/samples/listctrl/bitmaps/tooldata.ico and /dev/null differ 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 3174273bee..0000000000 Binary files a/samples/listctrl/bitmaps/toolgame.ico and /dev/null differ diff --git a/samples/listctrl/bitmaps/toolgame.xpm b/samples/listctrl/bitmaps/toolgame.xpm deleted file mode 100644 index d0cc8aed5f..0000000000 --- a/samples/listctrl/bitmaps/toolgame.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -static char * toolgame_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 3 1", -/* colors */ -" s None c None", -". c #808080", -"+ c #ff0000", -/* pixels */ -" ", -" +++++ +++++ ", -" +++++++++ +++++++++ ", -" +++++++++++ +++++++++++ ", -" +++++++++++++ +++++++++++++ ", -" +++++++++++++.+++++++++++++. ", -" +++++++++++++++++++++++++++++ ", -" +++++++++++++++++++++++++++++. ", -" +++++++++++++++++++++++++++++. ", -" +++++++++++++++++++++++++++++. ", -" +++++++++++++++++++++++++++++. ", -" +++++++++++++++++++++++++++.. ", -" +++++++++++++++++++++++++++. ", -" +++++++++++++++++++++++++.. ", -" +++++++++++++++++++++++.. ", -" +++++++++++++++++++++.. ", -" +++++++++++++++++++.. ", -" +++++++++++++++++.. ", -" +++++++++++++++++. ", -" +++++++++++++++.. ", -" +++++++++++++.. ", -" +++++++++++++. ", -" +++++++++++.. ", -" +++++++++.. ", -" +++++++.. ", -" +++++++. ", -" +++++.. ", -" +++.. ", -" +.. ", -" +. ", -" . ", -" "}; diff --git a/samples/listctrl/bitmaps/toolnote.ico b/samples/listctrl/bitmaps/toolnote.ico deleted file mode 100644 index 8a964c0ff3..0000000000 Binary files a/samples/listctrl/bitmaps/toolnote.ico and /dev/null differ 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 b769904f4d..0000000000 Binary files a/samples/listctrl/bitmaps/tooltime.ico and /dev/null differ 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 c6314c6baf..0000000000 Binary files a/samples/listctrl/bitmaps/tooltodo.ico and /dev/null differ 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 a1a8838c27..0000000000 Binary files a/samples/listctrl/bitmaps/toolword.ico and /dev/null differ 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 9b8e279c4c..0000000000 --- a/samples/listctrl/listtest.cpp +++ /dev/null @@ -1,521 +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(BUSY_ON, MyFrame::BusyOn) - EVT_MENU(BUSY_OFF, MyFrame::BusyOff) - 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) - EVT_MENU(LIST_DELETE_ALL, MyFrame::OnDeleteAll) -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_DELETE_ALL, "Delete &all items"); - file_menu->AppendSeparator(); - file_menu->Append(BUSY_ON, "&Busy cursor on"); - file_menu->Append(BUSY_OFF, "&Busy cursor off"); - 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_EDIT_LABELS); -// 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::BusyOn(wxCommandEvent& WXUNUSED(event)) -{ - wxBeginBusyCursor(); -} - -void MyFrame::BusyOff(wxCommandEvent& WXUNUSED(event)) -{ - wxEndBusyCursor(); -} - -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(); - for (int i = 0; i < n; i++) - m_listCtrl->SetItemState(i,0,wxLIST_STATE_SELECTED); -} - -void MyFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event)) -{ - int n = m_listCtrl->GetItemCount(); - for (int 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_listCtrl->DeleteAllColumns(); - 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); - m_listCtrl->InsertColumn(2, "One More Column (2)"); // , wxLIST_FORMAT_LEFT, 140); - - for ( int i = 0; i < 3000; i++ ) - { - wxChar buf[50]; - wxSprintf(buf, _T("This is item %d"), i); - long tmp = m_listCtrl->InsertItem(i, buf, 0); - - wxSprintf(buf, _T("Col 1, item %d"), i); - tmp = m_listCtrl->SetItem(i, 1, buf); - - wxSprintf(buf, _T("Item %d in column 2"), i); - tmp = m_listCtrl->SetItem(i, 2, buf); - } - - m_listCtrl->SetColumnWidth( 0, wxLIST_AUTOSIZE ); - m_listCtrl->SetColumnWidth( 1, wxLIST_AUTOSIZE ); - m_listCtrl->SetColumnWidth( 2, wxLIST_AUTOSIZE ); -} - -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); - } -} - -void MyFrame::OnDeleteAll(wxCommandEvent& WXUNUSED(event)) -{ - (void)wxGetElapsedTime(TRUE); - - int nItems = m_listCtrl->GetItemCount(); - m_listCtrl->DeleteAllItems(); - - wxLogMessage("Deleting %d items took %ld ms", - nItems, wxGetElapsedTime()); -} - -// MyListCtrl - -void MyListCtrl::OnBeginDrag(wxListEvent& event) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - wxString msg; - msg.Printf( "OnBeginDrag at %d,%d.\n", event.m_pointDrag.x, event.m_pointDrag.y ); - text->WriteText(msg); -} - -void MyListCtrl::OnBeginRDrag(wxListEvent& event) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - wxString msg; - msg.Printf( "OnBeginRDrag at %d,%d.\n", event.m_pointDrag.x, event.m_pointDrag.y ); - text->WriteText(msg); -} - -void MyListCtrl::OnBeginLabelEdit(wxListEvent& event) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnBeginLabelEdit: "); - text->WriteText(event.m_item.m_text); - text->WriteText("\n"); -} - -void MyListCtrl::OnEndLabelEdit(wxListEvent& event) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnEndLabelEdit: "); - text->WriteText(event.m_item.m_text); - if (event.m_cancelled) - text->WriteText(" cancelled by user\n"); - else - text->WriteText(" accepted by user\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"); - - (*text) << "OnGetInfo (" << event.m_item.m_itemId << ", " << event.m_item.m_col << ")"; - if ( event.m_item.m_mask & wxLIST_MASK_STATE ) - (*text) << " wxLIST_MASK_STATE"; - if ( event.m_item.m_mask & wxLIST_MASK_TEXT ) - (*text) << " wxLIST_MASK_TEXT"; - if ( event.m_item.m_mask & wxLIST_MASK_IMAGE ) - (*text) << " wxLIST_MASK_IMAGE"; - if ( event.m_item.m_mask & wxLIST_MASK_DATA ) - (*text) << " wxLIST_MASK_DATA"; - if ( event.m_item.m_mask & wxLIST_SET_ITEM ) - (*text) << " wxLIST_SET_ITEM"; - if ( event.m_item.m_mask & wxLIST_MASK_WIDTH ) - (*text) << " wxLIST_MASK_WIDTH"; - if ( event.m_item.m_mask & wxLIST_MASK_FORMAT ) - (*text) << " wxLIST_MASK_WIDTH"; - - if ( event.m_item.m_mask & wxLIST_MASK_TEXT ) - { - event.m_item.m_text = "My callback text"; - } - (*text) << "\n"; -} - -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 5818ac6557..0000000000 --- a/samples/listctrl/listtest.h +++ /dev/null @@ -1,94 +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(); - - 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(); - -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); - void OnDeleteAll(wxCommandEvent& event); - - void BusyOn(wxCommandEvent& event); - void BusyOff(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 BUSY_ON 10 -#define BUSY_OFF 11 -#define LIST_DELETE_ALL 12 - -#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.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 2310c5d275..0000000000 Binary files a/samples/listctrl/mondrian.ico and /dev/null differ diff --git a/samples/listctrl/mondrian.xpm b/samples/listctrl/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/listctrl/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/listctrl/test.dsp b/samples/listctrl/test.dsp deleted file mode 100644 index 41e5828244..0000000000 --- a/samples/listctrl/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 /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.vc b/samples/makefile.vc deleted file mode 100644 index bd495eae05..0000000000 --- a/samples/makefile.vc +++ /dev/null @@ -1,182 +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) - cd $(WXDIR)\samples\config - 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\config - 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 8b13789179..0000000000 --- a/samples/mdi/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/mdi/Makefile.in b/samples/mdi/Makefile.in deleted file mode 100644 index 80dc8e0dd8..0000000000 --- a/samples/mdi/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for mdi example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/mdi - -PROGRAM=mdi - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/mdi/bitmaps/bitmap1.bmp b/samples/mdi/bitmaps/bitmap1.bmp deleted file mode 100644 index 13e2170b73..0000000000 Binary files a/samples/mdi/bitmaps/bitmap1.bmp and /dev/null differ diff --git a/samples/mdi/bitmaps/bitmap2.bmp b/samples/mdi/bitmaps/bitmap2.bmp deleted file mode 100644 index 3d523b2de9..0000000000 Binary files a/samples/mdi/bitmaps/bitmap2.bmp and /dev/null differ diff --git a/samples/mdi/bitmaps/calc.bmp b/samples/mdi/bitmaps/calc.bmp deleted file mode 100644 index 6eee9cce8c..0000000000 Binary files a/samples/mdi/bitmaps/calc.bmp and /dev/null differ diff --git a/samples/mdi/bitmaps/copy.bmp b/samples/mdi/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa..0000000000 Binary files a/samples/mdi/bitmaps/copy.bmp and /dev/null differ 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 15554338a0..0000000000 Binary files a/samples/mdi/bitmaps/cut.bmp and /dev/null differ diff --git a/samples/mdi/bitmaps/cut.xpm b/samples/mdi/bitmaps/cut.xpm deleted file mode 100644 index bfe7e95cea..0000000000 --- a/samples/mdi/bitmaps/cut.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *cut_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c #000080", -/* pixels */ -" ", -" . . ", -" . . ", -" . . ", -" .. .. ", -" . . ", -" ... ", -" . ", -" X.X ", -" X XXX ", -" XXX X X ", -" X X X X ", -" X X X X ", -" X X XX ", -" XX " -}; diff --git a/samples/mdi/bitmaps/dirplain.xbm b/samples/mdi/bitmaps/dirplain.xbm deleted file mode 100644 index e2c2f08af1..0000000000 --- a/samples/mdi/bitmaps/dirplain.xbm +++ /dev/null @@ -1,14 +0,0 @@ -#define dirplain_width 32 -#define dirplain_height 32 -static char dirplain_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, 0xfc, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x04, - 0xfc, 0xff, 0xff, 0x1f, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x60, - 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, - 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, - 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, - 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, - 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, - 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x60, - 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f}; diff --git a/samples/mdi/bitmaps/draft.xbm b/samples/mdi/bitmaps/draft.xbm deleted file mode 100644 index 34d8f79dd6..0000000000 --- a/samples/mdi/bitmaps/draft.xbm +++ /dev/null @@ -1,14 +0,0 @@ -#define draft_width 32 -#define draft_height 32 -static char draft_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, 0x02, 0x20, 0x00, 0x00, 0x01, 0x40, 0x00, 0x80, 0x00, 0x80, 0x18, - 0x40, 0x00, 0x00, 0x3d, 0x20, 0x00, 0x00, 0x76, 0x10, 0x00, 0x00, 0xeb, - 0xe8, 0xff, 0xff, 0xd5, 0x44, 0x00, 0xc0, 0x6a, 0x82, 0x00, 0x60, 0x35, - 0x01, 0xf1, 0xb1, 0x5a, 0x02, 0x22, 0xfc, 0x8d, 0x04, 0x44, 0x02, 0x47, - 0x08, 0x08, 0x01, 0x22, 0x10, 0x90, 0x0c, 0x14, 0x20, 0x80, 0x13, 0x08, - 0x40, 0x70, 0xfe, 0xf1, 0x80, 0x40, 0x0c, 0xe0, 0x00, 0xb1, 0x00, 0xe0, - 0x00, 0x5b, 0x01, 0xe0, 0x00, 0xaf, 0x06, 0xe0, 0x00, 0x57, 0xfb, 0xe7, - 0x00, 0xaf, 0x11, 0xf8, 0x00, 0xde, 0x08, 0xe0, 0x00, 0x7c, 0x04, 0x00, - 0x00, 0xf8, 0x02, 0x00, 0x00, 0xf0, 0x01, 0x00}; diff --git a/samples/mdi/bitmaps/drawing.xbm b/samples/mdi/bitmaps/drawing.xbm deleted file mode 100644 index e5393d41f4..0000000000 --- a/samples/mdi/bitmaps/drawing.xbm +++ /dev/null @@ -1,14 +0,0 @@ -#define drawing_width 32 -#define drawing_height 32 -static char drawing_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, 0x82, 0x20, 0x00, 0x00, 0xc1, 0x41, 0x00, 0x80, 0xa0, 0x82, 0x00, - 0x40, 0x90, 0x04, 0x01, 0x20, 0x88, 0x08, 0x02, 0x10, 0x84, 0x10, 0x04, - 0x08, 0x42, 0x21, 0x08, 0x04, 0x21, 0x22, 0x10, 0x02, 0x11, 0xfc, 0x20, - 0x11, 0x09, 0x02, 0x41, 0x0a, 0x05, 0x01, 0x82, 0x04, 0x83, 0x0c, 0x44, - 0x08, 0x81, 0x13, 0x28, 0x10, 0x72, 0xfe, 0xf1, 0x20, 0x44, 0x0c, 0xe0, - 0x40, 0x88, 0x00, 0xe0, 0x80, 0x10, 0x01, 0xe0, 0x00, 0xa1, 0x06, 0xe0, - 0x00, 0x42, 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/bitmaps/flowchar.xbm b/samples/mdi/bitmaps/flowchar.xbm deleted file mode 100644 index d75217af18..0000000000 --- a/samples/mdi/bitmaps/flowchar.xbm +++ /dev/null @@ -1,14 +0,0 @@ -#define flowchart_width 32 -#define flowchart_height 32 -static char flowchart_bits[] = { - 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x20, 0x02, 0x00, - 0x00, 0x10, 0x04, 0x00, 0x00, 0x88, 0x08, 0x00, 0x00, 0x44, 0x11, 0x00, - 0x00, 0x22, 0x22, 0x00, 0x00, 0x11, 0x44, 0x00, 0x80, 0x08, 0x82, 0x00, - 0x40, 0x10, 0x01, 0x01, 0x20, 0xaa, 0x00, 0x02, 0x10, 0x45, 0x00, 0x04, - 0x88, 0x08, 0x00, 0x08, 0x44, 0x10, 0x00, 0x10, 0x22, 0x08, 0xfc, 0x20, - 0x41, 0x04, 0x02, 0x41, 0x82, 0x02, 0x01, 0x82, 0x04, 0x81, 0x0c, 0x44, - 0x08, 0x81, 0x13, 0x28, 0x10, 0x71, 0xfe, 0xf1, 0xa0, 0x4a, 0x0c, 0xe0, - 0x40, 0x9c, 0x00, 0xe0, 0x80, 0x20, 0x01, 0xe0, 0x00, 0x41, 0x06, 0xe0, - 0x00, 0x82, 0xf8, 0xe7, 0x00, 0x04, 0x41, 0xf8, 0x00, 0x08, 0x22, 0xe0, - 0x00, 0x10, 0x14, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x40, 0x04, 0x00, - 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00}; diff --git a/samples/mdi/bitmaps/help.bmp b/samples/mdi/bitmaps/help.bmp deleted file mode 100644 index 2d9e6922ca..0000000000 Binary files a/samples/mdi/bitmaps/help.bmp and /dev/null differ 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 8837381681..0000000000 Binary files a/samples/mdi/bitmaps/helpcs.bmp and /dev/null differ diff --git a/samples/mdi/bitmaps/new.bmp b/samples/mdi/bitmaps/new.bmp deleted file mode 100644 index d66feb2384..0000000000 Binary files a/samples/mdi/bitmaps/new.bmp and /dev/null differ 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 bbf93fe033..0000000000 Binary files a/samples/mdi/bitmaps/open.bmp and /dev/null differ 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 564f514e0d..0000000000 Binary files a/samples/mdi/bitmaps/paste.bmp and /dev/null differ 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 da1f4dbc4b..0000000000 Binary files a/samples/mdi/bitmaps/preview.bmp and /dev/null differ 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 00319b55bb..0000000000 Binary files a/samples/mdi/bitmaps/print.bmp and /dev/null differ diff --git a/samples/mdi/bitmaps/print.xpm b/samples/mdi/bitmaps/print.xpm deleted file mode 100644 index 3c2e2be781..0000000000 --- a/samples/mdi/bitmaps/print.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *print_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Gray100", -"o c #808000", -"O c Yellow", -/* pixels */ -" ", -" ......... ", -" .XXXXXXXX. ", -" .X.....X. ", -" .XXXXXXXX. ", -" .X.....X.... ", -" .XXXXXXXX. . .", -" .......... . ..", -". . . .", -"............. .", -". ooo . . ", -". OOO ... ", -"............. . ", -" . . . ", -" ........... " -}; diff --git a/samples/mdi/bitmaps/save.bmp b/samples/mdi/bitmaps/save.bmp deleted file mode 100644 index 56dd10b6e3..0000000000 Binary files a/samples/mdi/bitmaps/save.bmp and /dev/null differ 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 c0d66c9460..0000000000 Binary files a/samples/mdi/bitmaps/tick.bmp and /dev/null differ 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 16d4a585fd..0000000000 Binary files a/samples/mdi/chart.ico and /dev/null differ 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.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 2dc1bde40c..0000000000 Binary files a/samples/mdi/mdi.ico and /dev/null differ 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 2310c5d275..0000000000 Binary files a/samples/mdi/mondrian.ico and /dev/null differ diff --git a/samples/mdi/mondrian.xpm b/samples/mdi/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/mdi/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/memcheck/.cvsignore b/samples/memcheck/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/memcheck/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/memcheck/Makefile.am b/samples/memcheck/Makefile.am deleted file mode 100644 index 5658a0fe3d..0000000000 --- a/samples/memcheck/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = memcheck - -memcheck_SOURCES = memcheck.cpp diff --git a/samples/memcheck/makefile.b32 b/samples/memcheck/makefile.b32 deleted file mode 100644 index a135eb3ab7..0000000000 --- a/samples/memcheck/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=memcheck -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/memcheck/makefile.bcc b/samples/memcheck/makefile.bcc deleted file mode 100644 index 11fd5bc632..0000000000 --- a/samples/memcheck/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=memcheck -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/memcheck/makefile.dos b/samples/memcheck/makefile.dos deleted file mode 100644 index 400017d264..0000000000 --- a/samples/memcheck/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=memcheck -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/memcheck/makefile.g95 b/samples/memcheck/makefile.g95 deleted file mode 100644 index 3749343d82..0000000000 --- a/samples/memcheck/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=memcheck -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/memcheck/makefile.unx b/samples/memcheck/makefile.unx deleted file mode 100644 index 5be5c0abf6..0000000000 --- a/samples/memcheck/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 memcheck example (UNIX). - -PROGRAM=memcheck - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/memcheck/makefile.vc b/samples/memcheck/makefile.vc deleted file mode 100644 index 68389020ba..0000000000 --- a/samples/memcheck/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=memcheck -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/memcheck/makefile.wat b/samples/memcheck/makefile.wat deleted file mode 100644 index abc4235cea..0000000000 --- a/samples/memcheck/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = memcheck -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/memcheck/memcheck.cpp b/samples/memcheck/memcheck.cpp deleted file mode 100644 index ee9b073b48..0000000000 --- a/samples/memcheck/memcheck.cpp +++ /dev/null @@ -1,122 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: memcheck.cpp -// Purpose: Memory-checking 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.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/date.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#endif - -#ifndef __WXDEBUG__ -#error This program must be compiled in debug mode. -#endif - -// Normally, new is automatically defined to be the -// debugging version. If not, this does it. -#if !defined(new) && defined(WXDEBUG_NEW) -#define new WXDEBUG_NEW -#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 *parent); - void OnQuit(wxCommandEvent& event); - -DECLARE_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); - - // Give it an icon - frame->SetIcon(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 2310c5d275..0000000000 Binary files a/samples/memcheck/mondrian.ico and /dev/null differ diff --git a/samples/memcheck/mondrian.xpm b/samples/memcheck/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/memcheck/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/mfc/.cvsignore b/samples/mfc/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/mfc/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/mfc/Makefile.am b/samples/mfc/Makefile.am deleted file mode 100644 index d02a5567e2..0000000000 --- a/samples/mfc/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = mfctest - -mfctest_SOURCES = mfctest.cpp diff --git a/samples/mfc/makefile.b32 b/samples/mfc/makefile.b32 deleted file mode 100644 index 31974a5610..0000000000 --- a/samples/mfc/makefile.b32 +++ /dev/null @@ -1,71 +0,0 @@ -# -# File: makefile.bcc -# Author: Andre Beltman -# Created: 1995 -# Updated: -# Copyright: (c) 1995, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds mfc example (DOS). - -# WXWIN and BCCDIR are set by parent make - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makeb32.env - -WXLIBDIR = $(WXDIR)\lib -WXINC = $(WXDIR)\include\msw -WXBASESRC = $(WXDIR)\src\base -WXBASEINC = $(WXDIR)\include\base -WXLIB = $(WXLIBDIR)\wx32.lib -FAFALIB = $(WXLIBDIR)\fafa.lib -ITSYLIB = $(WXLIBDIR)\itsy.lib -XPMLIB = $(WXLIBDIR)\xpm.lib -DIBLIB = $(WXLIBDIR)\dib.lib -GAUGELIB = $(WXLIBDIR)\gauge.lib -WXTREELIB = $(WXLIBDIR)\wxtree.lib -RCPARSERLIB = $(WXLIBDIR)\rcparser.lib -PROLOGLIB = $(WXLIBDIR)\prologio.lib -LIBS=$(WXLIB) cw32 import32 ctl3d32 $(FAFALIB) $(ITSYLIB) $(DIBLIB)\ - $(XPMLIB) $(PROLOGLIB) $(RCPARSERLIB) $(GAUGELIB) $(WXTREELIB) - -TARGET=hello - -!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) - -OBJECTS = hello.obj - -$(TARGET).exe: $(OBJECTS) $(TARGET).def $(TARGET).res - tlink32 $(LINKFLAGS) @&&! -c0w32.obj $(OBJECTS) -$(TARGET) -nul -$(LIBS) -$(TARGET).def -$(TARGET).res -! - -.$(SRCSUFF).obj: - bcc32 $(CPPFLAGS) -c {$< } - -.c.obj: - bcc32 $(CPPFLAGS) -P- -c {$< } - -hello.obj: hello.$(SRCSUFF) - -$(TARGET).res : $(TARGET).rc $(WXDIR)\include\msw\wx.rc - brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa $(TARGET) - -clean: - -erase *.obj *.exe *.res *.map *.rws - diff --git a/samples/mfc/makefile.bcc b/samples/mfc/makefile.bcc deleted file mode 100644 index 6e2059d571..0000000000 --- a/samples/mfc/makefile.bcc +++ /dev/null @@ -1,76 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds mfc example (DOS). - -!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) -!include $(WXDIR)\src\makebcc.env - -THISDIR = $(WXDIR)\samples\mfc -WXLIB = $(WXDIR)\lib\wx.lib - -LIBS=$(WXLIB) mathwl cwl import -INC=-I$(WXDIR)\include\base -I$(WXDIR)\include\msw -CFG=$(WXDIR)\src\wxwin.cfg - -!ifndef FINAL -FINAL=0 -!endif - -!if "$(FINAL)" == "0" -LINKFLAGS=/v/Vt /Twe /L$(WXDIR)\lib;$(BCCDIR)\lib -OPT = -Od -DEBUG_FLAGS= -v -!else -LINKFLAGS=/Twe /L$(WXDIR)\lib;$(BCCDIR)\lib -OPT = -O2 -DEBUG_FLAGS = -!endif -CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) - -HEADERS = hello.h -SOURCES = hello.$(SRCSUFF) -OBJECTS = hello.obj - -hello: hello.exe - -all: hello.exe - -hello.exe: $(WXLIB) hello.obj hello.def hello.res - tlink $(LINKFLAGS) @&&! -c0wl.obj hello.obj -hello -nul -$(LIBS) -hello.def -! - rc -30 -K hello.res - -.$(SRCSUFF).obj: - bcc $(CPPFLAGS) -c {$< } - -hello.obj: hello.$(SRCSUFF) - -hello.res : hello.rc $(WXDIR)\include\msw\wx.rc - rc -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa hello - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws diff --git a/samples/mfc/makefile.dos b/samples/mfc/makefile.dos deleted file mode 100644 index 93934fd12a..0000000000 --- a/samples/mfc/makefile.dos +++ /dev/null @@ -1,89 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds MFC compatibility example (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 - -THISDIR = $(WXDIR)\samples\mfc -WXLIB = $(WXDIR)\lib\wx.lib -MFCINC = c:\msvc\mfc\include -LIBS=lafxcwD $(WXLIB) oldnames libw llibcew commdlg ddeml shell mmsystem # mfcoleui compobj storage ole2 ole2disp -#LIBS=lafxcwD llibcew libw commdlg shell -INC=-I$(MFCINC) -I$(WXDIR)\include\base -I$(WXDIR)\include\msw -DUMMY=$(WXDIR)\src\msw\dummy.obj - -# Set this to nothing if using MS C++ 7 -ZOPTION=/Z7 - -!ifndef FINAL -FINAL=0 -!endif - -PRECOMP = # /YuWX_PREC.H /Fp$(WXDIR)\src\msw\wx.pch - -!if "$(FINAL)" == "0" -CPPFLAGS=/D_DEBUG /AL /W3 /Zi $(ZOPTION) /G2sw /Od $(INC) $(PRECOMP) /Dwx_msw -#CPPFLAGS=/AL /Zp /GA /G2 /Gyf /Od /W3 $(INC) /D_DEBUG -LINKFLAGS=/NOD /CO /NOE /ONERROR:NOEXE /SEG:256 /STACK:12000 -!else -CPPFLAGS=/AL /W3 /G2sw $(INC) /Ox $(PRECOMP) /Dwx_msw -LINKFLAGS=/NOD /NOE /ONERROR:NOEXE /SEG:256 -!endif - -HEADERS = hello.h -SOURCES = hello.$(SRCSUFF) -OBJECTS = hello.obj - -hello: hello.exe - -all: wx hello.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) - - -hello.exe: $(DUMMY) $(WXLIB) hello.obj hello.def hello.res - link $(LINKFLAGS) @<< -$(DUMMY) hello.obj, -hello, -NUL, -$(LIBS), -hello.def -; -<< - rc -31 -K hello.res - -hello.obj: hello.h hello.$(SRCSUFF) $(DUMMY) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -hello.res : hello.rc $(WXDIR)\include\msw\wx.rc - rc -r /i$(MFCINC) /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa hello - -clean: - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb diff --git a/samples/mfc/makefile.g95 b/samples/mfc/makefile.g95 deleted file mode 100644 index 7da52292d8..0000000000 --- a/samples/mfc/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=mfctest -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/mfc/makefile.vc b/samples/mfc/makefile.vc deleted file mode 100644 index a8d3918091..0000000000 --- a/samples/mfc/makefile.vc +++ /dev/null @@ -1,19 +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=mfctest -OBJECTS = $(PROGRAM).obj -EXTRAFLAGS=/D_AFXDLL - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/mfc/makefile.wat b/samples/mfc/makefile.wat deleted file mode 100644 index 965f13eb9a..0000000000 --- a/samples/mfc/makefile.wat +++ /dev/null @@ -1,47 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = ..\.. - -!include $(WXDIR)\src\makewat.env - -WXLIB = $(WXDIR)\lib -NAME = hello -LNK = $(name).lnk -OBJS = $(name).obj - -# Required for multi-threaded MFC apps -EXTRACPPFLAGS = -bm -oaxt-zp4-ei-xs-zo-w3-bm-bt=nt -d_WINDOWS -d_MBCS -refmain = _wstart2_ - - -PRECOMP= - -all: $(name).exe - -$(name).exe : $(OBJS) $(name).res $(LNK) $(WXLIB)\wx$(LEVEL).lib - wlink @$(LNK) - $(BINDCOMMAND) -d_MBCS $(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 - -clean: .SYMBOLIC - -erase *.obj *.bak *.err *.pch *.lib *.lnk *.res *.exe *.rex - diff --git a/samples/mfc/mfctest.cpp b/samples/mfc/mfctest.cpp deleted file mode 100644 index 91ed30dbdc..0000000000 --- a/samples/mfc/mfctest.cpp +++ /dev/null @@ -1,390 +0,0 @@ -// hello.cpp : Defines the class behaviors 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. - -// *** MODIFIED BY JULIAN SMART TO DEMONSTRATE CO-EXISTANCE WITH wxWINDOWS *** -// -// This sample pops up an initial wxWindows frame, with a menu item -// that allows a new MFC window to be created. Note that CDummyWindow -// is a class that allows a wxWindows window to be seen as a CWnd -// for the purposes of specifying a valid main window to the -// MFC initialisation. -// -// You can easily modify this code so that an MFC window pops up -// initially as the main frame, and allows wxWindows frames to be -// created subsequently: -// -// (1) Make MyApp::OnInit return NULL, not create a window. -// (2) Restore the MFC code to create a window in InitInstance, and remove -// creation of CDummyWindow. -// -// IMPORTANT NOTE: to compile this sample, you must first edit -// wx/src/msw/wx_main.cc, set NOWINMAIN to 1, and remake wxWindows -// (it only needs to recompile wx_main.cc). -// This eliminates the duplicate WinMain function which MFC implements. - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/wx.h" - -#ifdef _WINDOWS_ -#error Sorry, you need to edit include/wx/wxprec.h, comment out the windows.h inclusion, and recompile. -#endif - -#ifdef new -#undef new -#endif - -#include "stdafx.h" - -#ifdef DrawText -#undef DrawText -#endif - -#include "resource.h" - -#include "mfctest.h" - -///////////////////////////////////////////////////////////////////////////// - -// theApp: -// Just creating this application object runs the whole application. -// -CTheApp theApp; - -// wxWindows elements - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); - wxFrame *CreateFrame(void); - }; - -class MyCanvas: public wxScrolledWindow -{ - public: - MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size); - void OnPaint(wxPaintEvent& event); - void OnMouseEvent(wxMouseEvent& event); -DECLARE_EVENT_TABLE() -}; - -class MyChild: public wxFrame -{ - public: - MyCanvas *canvas; - MyChild(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); - ~MyChild(void); - - void OnQuit(wxCommandEvent& event); - void OnNew(wxCommandEvent& event); - void OnActivate(wxActivateEvent& event); - -DECLARE_EVENT_TABLE() -}; - -// For drawing lines in a canvas -long xpos = -1; -long ypos = -1; - -// ID for the menu quit command -#define HELLO_QUIT 1 -#define HELLO_NEW 2 - -DECLARE_APP(MyApp) -IMPLEMENT_APP(MyApp) - -///////////////////////////////////////////////////////////////////////////// - -// CMainWindow constructor: -// Create the window with the appropriate style, size, menu, etc. -// -CMainWindow::CMainWindow() -{ - LoadAccelTable( "MainAccelTable" ); - Create( NULL, "Hello Foundation Application", - WS_OVERLAPPEDWINDOW, rectDefault, NULL, "MainMenu" ); -} - -// OnPaint: -// This routine draws the string "Hello, Windows!" in the center of the -// client area. It is called whenever Windows sends a WM_PAINT message. -// Note that creating a CPaintDC automatically does a BeginPaint and -// an EndPaint call is done when it is destroyed at the end of this -// function. CPaintDC's constructor needs the window (this). -// -void CMainWindow::OnPaint() -{ - CString s = "Hello, Windows!"; - CPaintDC dc( this ); - CRect rect; - - GetClientRect( rect ); - dc.SetTextAlign( TA_BASELINE | TA_CENTER ); - dc.SetTextColor( ::GetSysColor( COLOR_WINDOWTEXT ) ); - dc.SetBkMode(TRANSPARENT); - dc.TextOut( ( rect.right / 2 ), ( rect.bottom / 2 ), - s, s.GetLength() ); -} - -// OnAbout: -// This member function is called when a WM_COMMAND message with an -// IDM_ABOUT code is received by the CMainWindow class object. The -// message map below is responsible for this routing. -// -// We create a ClDialog object using the "AboutBox" resource (see -// hello.rc), and invoke it. -// -void CMainWindow::OnAbout() -{ - CDialog about( "AboutBox", this ); - about.DoModal(); -} - -void CMainWindow::OnTest() -{ - wxMessageBox("This is a wxWindows message box.\nWe're about to create a new wxWindows frame.", "wxWindows", wxOK); - wxGetApp().CreateFrame(); -} - -// CMainWindow message map: -// Associate messages with member functions. -// -// It is implied that the ON_WM_PAINT macro expects a member function -// "void OnPaint()". -// -// It is implied that members connected with the ON_COMMAND macro -// receive no arguments and are void of return type, e.g., "void OnAbout()". -// -BEGIN_MESSAGE_MAP( CMainWindow, CFrameWnd ) - //{{AFX_MSG_MAP( CMainWindow ) - ON_WM_PAINT() - ON_COMMAND( IDM_ABOUT, OnAbout ) - ON_COMMAND( IDM_TEST, OnTest ) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CTheApp - -// InitInstance: -// When any CTheApp object is created, this member function is automatically -// called. Any data may be set up at this point. -// -// Also, the main window of the application should be created and shown here. -// Return TRUE if the initialization is successful. -// -BOOL CTheApp::InitInstance() -{ - TRACE( "HELLO WORLD\n" ); - - SetDialogBkColor(); // hook gray dialogs (was default in MFC V1) - - wxEntry((WXHINSTANCE) m_hInstance, (WXHINSTANCE) m_hPrevInstance, m_lpCmdLine, m_nCmdShow, FALSE); - -/* - m_pMainWnd = new CMainWindow(); - m_pMainWnd->ShowWindow( 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 331b675b63..0000000000 Binary files a/samples/mfc/mfctest.ico and /dev/null differ 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 8b13789179..0000000000 --- a/samples/minifram/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/minifram/Makefile.in b/samples/minifram/Makefile.in deleted file mode 100644 index 2594aa62a4..0000000000 --- a/samples/minifram/Makefile.in +++ /dev/null @@ -1,22 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for toolbar example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/minifram - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - - diff --git a/samples/minifram/bitmaps/copy.bmp b/samples/minifram/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa..0000000000 Binary files a/samples/minifram/bitmaps/copy.bmp and /dev/null differ 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 15554338a0..0000000000 Binary files a/samples/minifram/bitmaps/cut.bmp and /dev/null differ diff --git a/samples/minifram/bitmaps/cut.xpm b/samples/minifram/bitmaps/cut.xpm deleted file mode 100644 index bfe7e95cea..0000000000 --- a/samples/minifram/bitmaps/cut.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *cut_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c #000080", -/* pixels */ -" ", -" . . ", -" . . ", -" . . ", -" .. .. ", -" . . ", -" ... ", -" . ", -" X.X ", -" X XXX ", -" XXX X X ", -" X X X X ", -" X X X X ", -" X X XX ", -" XX " -}; diff --git a/samples/minifram/bitmaps/help.bmp b/samples/minifram/bitmaps/help.bmp deleted file mode 100644 index 2d9e6922ca..0000000000 Binary files a/samples/minifram/bitmaps/help.bmp and /dev/null differ 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 d66feb2384..0000000000 Binary files a/samples/minifram/bitmaps/new.bmp and /dev/null differ 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 bbf93fe033..0000000000 Binary files a/samples/minifram/bitmaps/open.bmp and /dev/null differ 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 3dbd4b05b4..0000000000 Binary files a/samples/minifram/bitmaps/page.bmp and /dev/null differ diff --git a/samples/minifram/bitmaps/paste.bmp b/samples/minifram/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0d..0000000000 Binary files a/samples/minifram/bitmaps/paste.bmp and /dev/null differ diff --git a/samples/minifram/bitmaps/preview.bmp b/samples/minifram/bitmaps/preview.bmp deleted file mode 100644 index da1f4dbc4b..0000000000 Binary files a/samples/minifram/bitmaps/preview.bmp and /dev/null differ 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 00319b55bb..0000000000 Binary files a/samples/minifram/bitmaps/print.bmp and /dev/null differ diff --git a/samples/minifram/bitmaps/print.xpm b/samples/minifram/bitmaps/print.xpm deleted file mode 100644 index 3c2e2be781..0000000000 --- a/samples/minifram/bitmaps/print.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *print_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Gray100", -"o c #808000", -"O c Yellow", -/* pixels */ -" ", -" ......... ", -" .XXXXXXXX. ", -" .X.....X. ", -" .XXXXXXXX. ", -" .X.....X.... ", -" .XXXXXXXX. . .", -" .......... . ..", -". . . .", -"............. .", -". ooo . . ", -". OOO ... ", -"............. . ", -" . . . ", -" ........... " -}; diff --git a/samples/minifram/bitmaps/save.bmp b/samples/minifram/bitmaps/save.bmp deleted file mode 100644 index 56dd10b6e3..0000000000 Binary files a/samples/minifram/bitmaps/save.bmp and /dev/null differ 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.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 2310c5d275..0000000000 Binary files a/samples/minifram/mondrian.ico and /dev/null differ diff --git a/samples/minifram/mondrian.xpm b/samples/minifram/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/minifram/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/minifram/test.cpp b/samples/minifram/test.cpp deleted file mode 100644 index a6d0889355..0000000000 --- a/samples/minifram/test.cpp +++ /dev/null @@ -1,208 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxMiniFrame sample -// Author: Robert Roebling -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Robert Roebling -// 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 "wx/toolbar.h" -#include "test.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#include "bitmaps/new.xpm" -#include "bitmaps/open.xpm" -#include "bitmaps/save.xpm" -#include "bitmaps/copy.xpm" -#include "bitmaps/cut.xpm" -// #include "bitmaps/paste.xpm" -#include "bitmaps/print.xpm" -#include "bitmaps/preview.xpm" -#include "bitmaps/help.xpm" -#endif - -// start wxWindows - -IMPLEMENT_APP(MyApp) - -// globas - -MyMainFrame *main_frame = (MyMainFrame*) NULL; -MyMiniFrame *mini_frame = (MyMiniFrame*) NULL; -bool mini_frame_exists = FALSE; -wxButton *button = (wxButton*) NULL; - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit(void) -{ - // Create the mini frame window - mini_frame = new MyMiniFrame((wxFrame *) NULL, -1, "wxMiniFrame sample", - wxPoint(100, 100), wxSize(205, 100)); - mini_frame_exists = TRUE; - - mini_frame->CreateToolBar(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)) -{ - // make it known that the miniframe is no more - mini_frame_exists = FALSE; - 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)) -{ - // practical jokers might find satisfaction in reparenting the button - // after closing the mini_frame. We'll have the last laugh. - if (! mini_frame_exists) - wxMessageBox("The miniframe no longer exists.\n" - "You don't want to make this button an orphan, do you?", - "You got to be kidding"); - else - 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 8b13789179..0000000000 --- a/samples/minimal/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/minimal/Makefile.in b/samples/minimal/Makefile.in deleted file mode 100644 index 238098a209..0000000000 --- a/samples/minimal/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for minimal example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/minimal - -PROGRAM=minimal - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/minimal/make_cw.mcp b/samples/minimal/make_cw.mcp deleted file mode 100644 index 695bce15bf..0000000000 Binary files a/samples/minimal/make_cw.mcp and /dev/null differ diff --git a/samples/minimal/makefile.b32 b/samples/minimal/makefile.b32 deleted file mode 100644 index d1cbad638b..0000000000 --- a/samples/minimal/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=minimal -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/minimal/makefile.bcc b/samples/minimal/makefile.bcc deleted file mode 100644 index 705fc065bc..0000000000 --- a/samples/minimal/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/samples/minimal/makefile.dos b/samples/minimal/makefile.dos deleted file mode 100644 index 6319446109..0000000000 --- a/samples/minimal/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=minimal -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/minimal/makefile.g95 b/samples/minimal/makefile.g95 deleted file mode 100644 index c507764741..0000000000 --- a/samples/minimal/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=minimal -OBJECTS = $(TARGET).o - -include $(WXDIR)\src\makeprog.g95 - diff --git a/samples/minimal/makefile.sc b/samples/minimal/makefile.sc deleted file mode 100644 index c55f65c7d7..0000000000 --- a/samples/minimal/makefile.sc +++ /dev/null @@ -1,36 +0,0 @@ -# Symantec C++ makefile - -WXDIR = $(WXWIN) -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -INCLUDE=$(INCDIR) -TARGET=minimal - -include $(WXDIR)\src\makesc.env - -minimal.exe: minimal.obj $(DEFFILE) minimal.res - *$(CC) $(LDFLAGS) -o$@ $** $(LIBS) - *$(RC) -k minimal.res - -sc32.def: - echo EXETYPE NT > 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.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 4dcb4bf9df..0000000000 --- a/samples/minimal/minimal.cpp +++ /dev/null @@ -1,197 +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); - - void OnPaint(wxPaintEvent& 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, -}; - -// ---------------------------------------------------------------------------- -// 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("", wxMENU_TEAROFF); - - 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 wxTextCtrl(this, -1, "Hi!", wxPoint(20, 20), - wxSize(100, 30)); - -#if wxUSE_STATUSBAR - // create a status bar just for fun (by default with 1 pane only) - CreateStatusBar(2); - SetStatusText("Welcome to wxWindows!"); -#endif // wxUSE_STATUSBAR -} - - -// 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 2310c5d275..0000000000 Binary files a/samples/minimal/mondrian.ico and /dev/null differ diff --git a/samples/minimal/mondrian.xpm b/samples/minimal/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/minimal/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/nativdlg/.cvsignore b/samples/nativdlg/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/samples/nativdlg/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/samples/nativdlg/Makefile.am b/samples/nativdlg/Makefile.am deleted file mode 100644 index b057d63941..0000000000 --- a/samples/nativdlg/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = nativdlg - -nativdlg_SOURCES = nativdlg.cpp diff --git a/samples/nativdlg/dialog1.rc b/samples/nativdlg/dialog1.rc deleted file mode 100644 index 54c00b55a9..0000000000 --- a/samples/nativdlg/dialog1.rc +++ /dev/null @@ -1,76 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// - -#ifndef __WXMSW__ -#define __WXMSW__ -#endif - -#ifndef __WIN32__ -#define __WIN32__ -#endif - -#ifndef __WIN95__ -#define __WIN95__ -#endif - -#ifdef __GNUWIN32__ -#define wxID_OK 5100 -#define wxID_CANCEL 5101 -#define wxID_APPLY 5102 -#define wxID_YES 5103 -#define wxID_NO 5104 -/* #include */ -#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 e69de29bb2..0000000000 diff --git a/samples/notebook/Makefile.in b/samples/notebook/Makefile.in deleted file mode 100644 index e0a1dcc68c..0000000000 --- a/samples/notebook/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for notebook example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/notebook - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - 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.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 2310c5d275..0000000000 Binary files a/samples/notebook/mondrian.ico and /dev/null differ diff --git a/samples/notebook/test.cpp b/samples/notebook/test.cpp deleted file mode 100644 index e140f42cc5..0000000000 --- a/samples/notebook/test.cpp +++ /dev/null @@ -1,277 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxNotebook demo -// Author: Julian Smart -// Modified by: -// Created: 26/10/98 -// RCS-ID: $Id$ -// Copyright: (c) -// 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 - -#include "test.h" - -// If 1, use a dialog. Otherwise use a frame. -#define USE_TABBED_DIALOG 0 -#if USE_TABBED_DIALOG -MyDialog* dialog = (MyDialog *) NULL; -#else // !USE_TABBED_DIALOG -MyFrame* frame = (MyFrame *) NULL; -#endif // USE_TABBED_DIALOG - -IMPLEMENT_APP(MyApp) - -bool MyApp::OnInit(void) -{ - // Create the main window -#if USE_TABBED_DIALOG - dialog = new MyDialog((wxFrame *) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDIALOG_MODAL|wxDEFAULT_DIALOG_STYLE); - - dialog->ShowModal(); - - // Quit immediately the dialog has been dismissed - return FALSE; -#else - frame = new MyFrame((wxFrame*) NULL, -1, "Notebook", wxPoint(-1, -1), wxSize(365, 390) ); - - // 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, wxPanel* 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->SetAutoLayout(TRUE); - panel2->SetBackgroundColour(wxColour("BLUE")); - - wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; - wxRadioBox *radiobox = new wxRadioBox(panel2, -1, "Choose one", - wxDefaultPosition, wxDefaultSize, 5, animals); - - c = new wxLayoutConstraints; - c->left.SameAs(panel2, wxLeft, 4); - c->top.SameAs(panel2, wxTop, 4); - c->height.PercentOf(panel2, wxHeight, 50); - c->right.SameAs(panel2, wxRight, 4); - radiobox->SetConstraints(c); - - wxRadioBox *radiobox2 = new wxRadioBox(panel2, -1, "Choose one", - wxDefaultPosition, wxDefaultSize, - 5, animals, - 2, wxRA_SPECIFY_ROWS); - c = new wxLayoutConstraints; - c->left.SameAs(radiobox, wxLeft); - c->height.AsIs(); - c->top.Below(radiobox, 4); - c->right.SameAs(radiobox, wxRight); - radiobox2->SetConstraints(c); - - 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"); - - notebook->SetSelection(2); -} - -#if USE_TABBED_DIALOG - -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(); - - Centre(wxBOTH); -} - -#else // USE_TABBED_DIALOG - -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_IDLE(MyFrame::OnIdle) -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) ) -{ - Destroy(); -} - -void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) -{ - Destroy(); -} - -void MyFrame::Init(void) -{ - m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxCLIP_CHILDREN); - - wxLayoutConstraints* c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft); - c->right.SameAs(this, wxRight); - c->top.SameAs(this, wxTop); - c->bottom.SameAs(this, wxBottom); - m_panel->SetConstraints(c); - - // 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); - - 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); - SetAutoLayout(TRUE); - - Centre(wxBOTH); - - Show(TRUE); -} - -void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) -{ - static int s_nPages = -1; - static int s_nSel = -1; - - int nPages = m_notebook->GetPageCount(); - int nSel = m_notebook->GetSelection(); - if ( nPages != s_nPages || nSel != s_nSel ) - { - s_nPages = nPages; - s_nSel = nSel; - - wxString title; - title.Printf("Notebook (%d pages, selection: %d)", nPages, nSel); - - SetTitle(title); - } -} - -#endif // USE_TABBED_DIALOG 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 9cbcc2d0ff..0000000000 --- a/samples/notebook/test.h +++ /dev/null @@ -1,91 +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, wxPanel* window); - - wxButton* m_okButton; - wxButton* m_cancelButton; - wxButton* m_addPageButton; -}; - -DECLARE_APP(MyApp) - -#if USE_TABBED_DIALOG - -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() -}; - -#else // USE_TABBED_DIALOG - -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 OnIdle(wxIdleEvent& event); - - void Init(); - -protected: - wxNotebook* m_notebook; - wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help - - DECLARE_EVENT_TABLE() -}; - -#endif // USE_TABBED_DIALOG - -// 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/.cvsignore b/samples/oleauto/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/samples/oleauto/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in 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 2310c5d275..0000000000 Binary files a/samples/oleauto/mondrian.ico and /dev/null differ diff --git a/samples/oleauto/mondrian.xpm b/samples/oleauto/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/oleauto/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/oleauto/oleauto.cpp b/samples/oleauto/oleauto.cpp deleted file mode 100644 index 05e9da16ad..0000000000 --- a/samples/oleauto/oleauto.cpp +++ /dev/null @@ -1,220 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: oleauto.cpp -// Purpose: OLE Automation wxWindows sample -// Author: Julian Smart -// Modified by: -// Created: 08/12/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "oleauto.cpp" - #pragma interface "oleauto.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 - -#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/.cvsignore b/samples/ownerdrw/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/samples/ownerdrw/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in 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 279b827162..0000000000 Binary files a/samples/ownerdrw/bell.bmp and /dev/null differ 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 2310c5d275..0000000000 Binary files a/samples/ownerdrw/mondrian.ico and /dev/null differ diff --git a/samples/ownerdrw/nosound.bmp b/samples/ownerdrw/nosound.bmp deleted file mode 100644 index 722e2e4ced..0000000000 Binary files a/samples/ownerdrw/nosound.bmp and /dev/null differ diff --git a/samples/ownerdrw/ownerdrw.cpp b/samples/ownerdrw/ownerdrw.cpp deleted file mode 100644 index a7f130b1f3..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(); - - // create the status line - const int widths[] = { -1, 60 }; - CreateStatusBar(2); - SetStatusWidths(2, widths); - SetStatusText("no selection", 0); - - // 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; - - 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); -} 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 26f5f1883e..0000000000 Binary files a/samples/ownerdrw/sound.bmp and /dev/null differ 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 d10b94b698..0000000000 --- a/samples/png/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -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 9e875e0a1f..0000000000 Binary files a/samples/png/julian.png and /dev/null differ diff --git a/samples/png/makefile.b32 b/samples/png/makefile.b32 deleted file mode 100644 index cd1a01aa66..0000000000 --- a/samples/png/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=pngdemo -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/png/makefile.bcc b/samples/png/makefile.bcc deleted file mode 100644 index 408a17b466..0000000000 --- a/samples/png/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=pngdemo -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/png/makefile.g95 b/samples/png/makefile.g95 deleted file mode 100644 index d183132ec8..0000000000 --- a/samples/png/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=pngdemo -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/png/makefile.vc b/samples/png/makefile.vc deleted file mode 100644 index 9991d8aa94..0000000000 --- a/samples/png/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=pngdemo -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/png/makefile.wat b/samples/png/makefile.wat deleted file mode 100644 index 65bdeb731d..0000000000 --- a/samples/png/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = pngdemo -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/png/paint.png b/samples/png/paint.png deleted file mode 100644 index a2f4db0459..0000000000 Binary files a/samples/png/paint.png and /dev/null differ diff --git a/samples/png/paint16.png b/samples/png/paint16.png deleted file mode 100644 index c977483485..0000000000 Binary files a/samples/png/paint16.png and /dev/null differ 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 8b13789179..0000000000 --- a/samples/printing/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/printing/Makefile.in b/samples/printing/Makefile.in deleted file mode 100644 index 83c5c2b65a..0000000000 --- a/samples/printing/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for printing example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/printing - -PROGRAM=printing - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - 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.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 2310c5d275..0000000000 Binary files a/samples/printing/mondrian.ico and /dev/null differ diff --git a/samples/printing/mondrian.xpm b/samples/printing/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/printing/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/printing/printing.cpp b/samples/printing/printing.cpp deleted file mode 100644 index f76894eb4f..0000000000 --- a/samples/printing/printing.cpp +++ /dev/null @@ -1,540 +0,0 @@ -/* -* File: printing.cc -* Purpose: Printing demo for wxWindows class library -* Author: Julian Smart -* Created: 1995 -* Updated: -* Copyright: (c) 1995, AIAI, University of Edinburgh -*/ - -/* static const char sccsid[] = "%W% %G%"; */ - -#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_PRINTING_ARCHITECTURE -#error You must set wxUSE_PRINTING_ARCHITECTURE to 1 in setup.h to compile this demo. -#endif - -// Set this to 1 if you want to test PostScript printing under MSW. -// However, you'll also need to edit src/msw/makefile.nt. -#define wxTEST_POSTSCRIPT_IN_MSW 0 - -#include -#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 8b13789179..0000000000 --- a/samples/proplist/.cvsignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/samples/proplist/Makefile.in b/samples/proplist/Makefile.in deleted file mode 100644 index a6a1f0d772..0000000000 --- a/samples/proplist/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for proplist example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../.. -program_dir = samples/proplist - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/proplist/cross.bmp b/samples/proplist/cross.bmp deleted file mode 100644 index 079cb0dd58..0000000000 Binary files a/samples/proplist/cross.bmp and /dev/null differ 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.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 82f8ad6857..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 3673eda5de..0000000000 Binary files a/samples/proplist/tick.bmp and /dev/null differ diff --git a/samples/regtest/.cvsignore b/samples/regtest/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/samples/regtest/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/samples/regtest/Makefile.am b/samples/regtest/Makefile.am deleted file mode 100644 index 4502b0be37..0000000000 --- a/samples/regtest/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = regtest - -regtest_SOURCES = regtest.cpp diff --git a/samples/regtest/key1.ico b/samples/regtest/key1.ico deleted file mode 100644 index 57a5209acb..0000000000 Binary files a/samples/regtest/key1.ico and /dev/null differ diff --git a/samples/regtest/key2.ico b/samples/regtest/key2.ico deleted file mode 100644 index 082ff47291..0000000000 Binary files a/samples/regtest/key2.ico and /dev/null differ diff --git a/samples/regtest/key3.ico b/samples/regtest/key3.ico deleted file mode 100644 index 0cbb4c3360..0000000000 Binary files a/samples/regtest/key3.ico and /dev/null differ diff --git a/samples/regtest/makefile.b32 b/samples/regtest/makefile.b32 deleted file mode 100644 index f3ac07cbf8..0000000000 --- a/samples/regtest/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=regtest -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/regtest/makefile.g95 b/samples/regtest/makefile.g95 deleted file mode 100644 index 2d8022c869..0000000000 --- a/samples/regtest/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=regtest -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/regtest/makefile.vc b/samples/regtest/makefile.vc deleted file mode 100644 index 2639a0c3bf..0000000000 --- a/samples/regtest/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=regtest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/regtest/makefile.wat b/samples/regtest/makefile.wat deleted file mode 100644 index b673bbc73e..0000000000 --- a/samples/regtest/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = regtest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/regtest/registry.ico b/samples/regtest/registry.ico deleted file mode 100644 index 3ebfa3ace3..0000000000 Binary files a/samples/regtest/registry.ico and /dev/null differ 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 d03a5d0762..0000000000 Binary files a/samples/regtest/value1.ico and /dev/null differ diff --git a/samples/regtest/value2.ico b/samples/regtest/value2.ico deleted file mode 100644 index 343fd1aaf0..0000000000 Binary files a/samples/regtest/value2.ico and /dev/null differ 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 1545a26635..0000000000 --- a/samples/resource/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AUTOMAKE_OPTIONS = 1.3 no-dependencies - -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 6823b00437..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 = 197, height = 146,\ - background_colour = 'D6D6D6',\ - use_dialog_units = 1,\ - use_system_defaults = 1,\ - font = [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],\ - control = [101, wxStaticBox, 'wxStaticBox', '0', 'group6', 5, 7, 184, 103,\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [102, wxRadioBox, 'Radiobox', 'wxRA_SPECIFY_COLS', 'radiobox2', 13, 24, 40, 72, ['One', 'Two', 'Three', 'Four', 'One more'], 1,\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [104, wxTextCtrl, '', 'wxTE_MULTILINE', 'multitext3', 62, 24, 67, 33, 'wxWindows rules!',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [105, wxListBox, '', '0', 'listbox4', 62, 66, 67, 33, ['Apples', 'Bananas', 'Pears', 'Kiwis'],\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [106, wxCheckBox, 'Checkbox', '0', 'checkbox9', 141, 26, 36, 14, 0,\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [107, wxStaticText, 'My Message', '0', 'message10', 143, 57, 39, 12, '',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [108, wxButton, 'Press me', '0', 'button7', 141, 81, 36, 13, '',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],\ - control = [109, wxButton, 'Cancel', '0', 'button8', 62, 119, 55, 17, '',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]])."; - 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/.cvsignore b/samples/richedit/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/samples/richedit/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in 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 f9036040e9..0000000000 --- a/samples/richedit/TODO +++ /dev/null @@ -1,38 +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 -===================================================================== - -- use printsetup margins - -- merge RecalulateXXX and Layout() into one - - - UNDO!! - - replacement of llist in window - -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. - -- 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/fix 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 8bde57daf0..0000000000 --- a/samples/richedit/kbList.h +++ /dev/null @@ -1,327 +0,0 @@ -/*-*- c++ -*-******************************************************** - * kbList.h : a double linked list * - * * - * (C) 1998-1999 by Karsten Ballüder (karsten@phy.hw.ac.uk) * - * * - * $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; } - - // This must be protected to disallow insertion of wrong elements. -protected: - /** 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); - - /** 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); - -public: - /** 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); - - /** 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(); } \ - inline void push_back(type *element) \ - { kbList::push_back( (void *) element); } \ - void push_front(type *element) \ - { kbList::push_front( (void *) element); } \ - void insert(iterator & i, void *element) \ - { kbList::insert( i, (void *) element); } \ - 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 f9957ef8f4..0000000000 --- a/samples/richedit/wxLayout.cpp +++ /dev/null @@ -1,514 +0,0 @@ -/* - * Program: wxLayout - * - * Author: Karsten Ballüder - * - * Copyright: (C) 1998, Karsten Ballüder - * - */ - -#ifdef __GNUG__ -#pragma implementation "wxLayout.h" -#endif - -#include -#ifdef __BORLANDC__ -# pragma hdrstop -#endif - -#include "wxLayout.h" -#include - - -#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->SetFocus(); - - // JACS: under MSW, the window doesn't show the caret initially, - // and the following line I added doesn't help either. - // going to another window and then back again fixes it. - // m_lwin->OnSetFocus(wxFocusEvent()); - - Clear(); - -#if 0 - // 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); -#endif // 0 -}; - -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) -{ - wxColour colBg(0, 0, 0); - - m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false, wxRED, &colBg); -} - - -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 */ -#if defined(__WXMSW__) || defined(__WXPM__) - 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 */ -#if defined(__WXMSW__) || defined(__WXPM__) - 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 --; - } - -#if defined(__WXMSW__) || defined(__WXPM__) - // 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 --; - } - -#if defined(__WXMSW__) || defined(__WXPM__) - // 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('/'); -#if defined(__WXMSW__) || defined(__WXPM__) - else - *s = wxTolower(*s); // Case INDEPENDENT -#endif - s++; - } -} - -void -#if defined(__WXMSW__) || defined(__WXPM__) -wxUnix2DosFilename (wxChar *s) -#else -wxUnix2DosFilename (wxChar *WXUNUSED(s)) -#endif -{ -// Yes, I really mean this to happen under DOS only! JACS -#if defined(__WXMSW__) || defined(__WXPM__) - 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-OS/2 platforms and on Windows too - // for the GNU compiler -#if (!(defined(__WXMSW__) || defined(__WXPM__))) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) || defined(__WXWINE__) - if ( mkdir(wxFNCONV(dirname), perm) != 0 ) -#else // MSW and OS/2 - if ( mkdir(FNSTRINGCAST 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 { - wxConvFile.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__ ) || defined(__WXPM__) - return (chdir(FNSTRINGCAST 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/filesys.cpp b/src/common/filesys.cpp deleted file mode 100644 index 5935588b9e..0000000000 --- a/src/common/filesys.cpp +++ /dev/null @@ -1,337 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filesys.cpp -// Purpose: wxFileSystem class - interface for opening files -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wxprec.h" - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#if !wxUSE_SOCKETS - #undef wxUSE_FS_INET - #define wxUSE_FS_INET 0 -#endif - -#if (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS - -#include "wx/wfstream.h" -#include "wx/module.h" -#include "wx/filesys.h" - -//-------------------------------------------------------------------------------- -// wxFileSystemHandler -//-------------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxFileSystemHandler, wxObject) - -wxMimeTypesManager *wxFileSystemHandler::m_MimeMng = NULL; - -void wxFileSystemHandler::CleanUpStatics() -{ - if (m_MimeMng) delete m_MimeMng; - m_MimeMng = NULL; -} - - -wxString wxFileSystemHandler::GetMimeTypeFromExt(const wxString& location) -{ - wxString ext = wxEmptyString, mime = wxEmptyString; - wxString loc = GetRightLocation(location); - char c; - int l = loc.Length(), l2; - wxFileType *ft; - - l2 = l; - for (int i = l-1; i >= 0; i--) { - c = loc[(unsigned int) i]; - if (c == _T('#')) l2 = i + 1; - if (c == _T('.')) {ext = loc.Right(l2-i-1); break;} - if ((c == _T('/')) || (c == _T('\\')) || (c == _T(':'))) {return wxEmptyString;} - } - - if (m_MimeMng == NULL) { - m_MimeMng = new wxMimeTypesManager; - - static const wxFileTypeInfo fallbacks[] = - { - wxFileTypeInfo("image/jpeg", - "", - "", - "JPEG image (from fallback)", - "jpg", "jpeg", NULL), - wxFileTypeInfo("image/gif", - "", - "", - "GIF image (from fallback)", - "gif", NULL), - wxFileTypeInfo("image/png", - "", - "", - "PNG image (from fallback)", - "png", NULL), - wxFileTypeInfo("image/bmp", - "", - "", - "windows bitmap image (from fallback)", - "bmp", NULL), - wxFileTypeInfo("text/html", - "", - "", - "HTML document (from fallback)", - "htm", "html", NULL), - - // must terminate the table with this! - wxFileTypeInfo() - }; - - m_MimeMng -> AddFallbacks(fallbacks); - } - - ft = m_MimeMng -> GetFileTypeFromExtension(ext); - if (ft && (ft -> GetMimeType(&mime))) return mime; - else return wxEmptyString; -} - - - -wxString wxFileSystemHandler::GetProtocol(const wxString& location) const -{ - wxString s = wxEmptyString; - int i, l = location.Length(); - bool fnd; - - fnd = FALSE; - for (i = l-1; (i >= 0) && ((location[i] != _T('#')) || (!fnd)); i--) { - if ((location[i] == _T(':')) && (i != 1 /*win: C:\path*/)) fnd = TRUE; - } - if (!fnd) return _T("file"); - for (++i; (i < l) && (location[i] != _T(':')); i++) s << location[i]; - return s; -} - - -wxString wxFileSystemHandler::GetLeftLocation(const wxString& location) const -{ - int i; - bool fnd; - - fnd = FALSE; - for (i = location.Length()-1; i >= 0; i--) { - if ((location[i] == _T(':')) && (i != 1 /*win: C:\path*/)) fnd = TRUE; - else if (fnd && (location[i] == _T('#'))) return location.Left(i); - } - return wxEmptyString; -} - -wxString wxFileSystemHandler::GetRightLocation(const wxString& location) const -{ - int i, l = location.Length(); - int l2 = l + 1; - for (i = l-1; (i >= 0) && ((location[i] != _T(':')) || (i == 1) || (location[i-2] == _T(':'))); i--) {if (location[i] == _T('#')) l2 = i + 1;} - if (i == 0) return wxEmptyString; - else return location.Mid(i + 1, l2 - i - 2); -} - -wxString wxFileSystemHandler::GetAnchor(const wxString& location) const -{ - char c; - int l = location.Length(); - - for (int i = l-1; i >= 0; i--) { - c = location[i]; - if (c == _T('#')) return location.Right(l-i-1); - else if ((c == _T('.')) || (c == _T('/')) || (c == _T('\\')) || (c == _T(':'))) return wxEmptyString; - } - return wxEmptyString; -} - -//-------------------------------------------------------------------------------- -// wxLocalFSHandler -//-------------------------------------------------------------------------------- - -class wxLocalFSHandler : public wxFileSystemHandler -{ - public: - virtual bool CanOpen(const wxString& location); - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); -}; - - -bool wxLocalFSHandler::CanOpen(const wxString& location) -{ - return GetProtocol(location) == _T("file"); -} - -wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& location) -{ - wxString right = GetRightLocation(location); - if (wxFileExists(right)) - return new wxFSFile(new wxFileInputStream(right), - right, - GetMimeTypeFromExt(location), - GetAnchor(location)); - else return (wxFSFile*) NULL; -} - -//----------------------------------------------------------------------------- -// wxFileSystem -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxFileSystem, wxObject) - - -wxList wxFileSystem::m_Handlers; - - - -void wxFileSystem::ChangePathTo(const wxString& location, bool is_dir) -{ - int i, pathpos = -1; - m_Path = location; - - for (i = m_Path.Length()-1; i >= 0; i--) - if (m_Path[(unsigned int) i] == _T('\\')) m_Path.GetWritableChar(i) = _T('/'); // wanna be windows-safe - - if (is_dir == FALSE) - { - for (i = m_Path.Length()-1; i >= 0; i--) - { - if (m_Path[(unsigned int) i] == _T('/')) - { - if ((i > 1) && (m_Path[(unsigned int) (i-1)] == _T('/')) && (m_Path[(unsigned int) (i-2)] == _T(':'))) - { - i -= 2; - continue; - } - else - { - pathpos = i; - break; - } - } - else if (m_Path[(unsigned int) i] == _T(':')) { - pathpos = i; - break; - } - } - if (pathpos == -1) - { - for (i = 0; i < (int) m_Path.Length(); i++) - { - if (m_Path[(unsigned int) i] == _T(':')) - { - //m_Path << _T('/'); - m_Path.Remove(i+1); - break; - } - } - if (i == (int) m_Path.Length()) - m_Path = wxEmptyString; - } - else - { - if (m_Path[m_Path.Length()-1] != _T('/')) - m_Path << _T('/'); - m_Path.Remove(pathpos+1); - } - } -} - - - -wxFSFile* wxFileSystem::OpenFile(const wxString& location) -{ - wxString loc = location; - int i, ln; - char meta; - wxFSFile *s = NULL; - wxNode *node; - - ln = loc.Length(); - meta = 0; - for (i = 0; i < ln; i++) - { - if (loc[(unsigned int) i] == _T('\\')) loc.GetWritableChar(i) = _T('/'); // wanna be windows-safe - if (!meta) switch (loc[(unsigned int) i]) - { - case _T('/') : case _T(':') : case _T('#') : meta = loc[(unsigned int) i]; - } - } - m_LastName = wxEmptyString; - - // try relative paths first : - if (meta != _T(':')) - { - node = m_Handlers.GetFirst(); - while (node) - { - wxFileSystemHandler *h = (wxFileSystemHandler*) node -> GetData(); - if (h->CanOpen(m_Path + location)) - { - s = h->OpenFile(*this, m_Path + location); - if (s) { m_LastName = m_Path + location; break; } - } - node = node->GetNext(); - } - } - - // if failed, try absolute paths : - if (s == NULL) - { - node = m_Handlers.GetFirst(); - while (node) - { - wxFileSystemHandler *h = (wxFileSystemHandler*) node->GetData(); - if (h->CanOpen(location)) - { - s = h->OpenFile(*this, location); - if (s) { m_LastName = location; break; } - } - node = node->GetNext(); - } - } - return (s); -} - - -void wxFileSystem::AddHandler(wxFileSystemHandler *handler) -{ - m_Handlers.Append(handler); -} - - - -///// Module: - -class wxFileSystemModule : public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxFileSystemModule) - - public: - virtual bool OnInit() - { - wxFileSystem::AddHandler(new wxLocalFSHandler); - return TRUE; - } - virtual void OnExit() - { - wxFileSystemHandler::CleanUpStatics(); - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxFileSystemModule, wxModule) - -#endif - // (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS - - - 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/fs_inet.cpp b/src/common/fs_inet.cpp deleted file mode 100644 index dfbc008965..0000000000 --- a/src/common/fs_inet.cpp +++ /dev/null @@ -1,160 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fs_inet.cpp -// Purpose: HTTP and FTP file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -/* - -REMARKS : - -This FS creates local cache (in /tmp directory). The cache is freed -on program exit. - -Size of cache is limited to cca 1000 items (due to GetTempFileName -limitation) - - -*/ - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#if !wxUSE_SOCKETS - #undef wxUSE_FS_INET - #define wxUSE_FS_INET 0 -#endif - -#if wxUSE_FS_INET - -#ifndef WXPRECOMP -#include -#endif - -#include "wx/wfstream.h" -#include "wx/url.h" -#include "wx/filesys.h" -#include "wx/fs_inet.h" - -class wxInetCacheNode : public wxObject -{ - private: - wxString m_Temp; - wxString m_Mime; - - public: - wxInetCacheNode(const wxString& l, const wxString& m) : wxObject() {m_Temp = l; m_Mime = m;} - const wxString& GetTemp() const {return m_Temp;} - const wxString& GetMime() const {return m_Mime;} -}; - - - - - -//-------------------------------------------------------------------------------- -// wxInternetFSHandler -//-------------------------------------------------------------------------------- - - -bool wxInternetFSHandler::CanOpen(const wxString& location) -{ - wxString p = GetProtocol(location); - return (p == _T("http")) || (p == _T("ftp")); -} - - -wxFSFile* wxInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& location) -{ - wxString right = GetProtocol(location) + _T(":") + GetRightLocation(location); - wxInputStream *s; - wxString content; - wxInetCacheNode *info; - - info = (wxInetCacheNode*) m_Cache.Get(right); - - // Add item into cache: - if (info == NULL) - { - wxURL url(right); - s = url.GetInputStream(); - content = url.GetProtocol().GetContentType(); - if (content == wxEmptyString) content = GetMimeTypeFromExt(location); - if (s) - { - wxChar buf[256]; - - wxGetTempFileName( _T("wxhtml"), buf); - info = new wxInetCacheNode(buf, content); - m_Cache.Put(right, info); - - { // ok, now copy it: -#if defined(__VISAGECPP__) -// VA thinks this is an ambiguous call - wxFileOutputStream sout((wxString)buf); -#else - wxFileOutputStream sout(buf); -#endif - s -> Read(sout); // copy the stream - } - delete s; - } - else - { - return (wxFSFile*) NULL; // we can't open the URL - } - } - - // Load item from cache: - s = new wxFileInputStream(info->GetTemp()); - if (s) - { - return new wxFSFile(s, - right, - info->GetMime(), - GetAnchor(location)); - } - else return (wxFSFile*) NULL; -} - - - -wxInternetFSHandler::~wxInternetFSHandler() -{ - wxNode *n; - wxInetCacheNode *n2; - - m_Cache.BeginFind(); - while ((n = m_Cache.Next()) != NULL) - { - n2 = (wxInetCacheNode*) n->GetData(); - wxRemoveFile(n2->GetTemp()); - delete n2; - } -} - -class wxFileSystemInternetModule : public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxFileSystemInternetModule) - - public: - virtual bool OnInit() - { - wxFileSystem::AddHandler(new wxInternetFSHandler); - return TRUE; - } - virtual void OnExit() {} -}; - -IMPLEMENT_DYNAMIC_CLASS(wxFileSystemInternetModule, wxModule) - -#endif // wxUSE_FS_INET diff --git a/src/common/fs_zip.cpp b/src/common/fs_zip.cpp deleted file mode 100644 index e7765395d5..0000000000 --- a/src/common/fs_zip.cpp +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fs_zip.cpp -// Purpose: ZIP file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_FS_ZIP - -#ifndef WXPRECOMP -#include -#endif - -#include "wx/filesys.h" -#include "wx/zipstrm.h" -#include "wx/fs_zip.h" - - -//-------------------------------------------------------------------------------- -// wxZipFSHandler -//-------------------------------------------------------------------------------- - - - -bool wxZipFSHandler::CanOpen(const wxString& location) -{ - wxString p = GetProtocol(location); - return (p == "zip"); -} - - - - -wxFSFile* wxZipFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& location) -{ - wxString right = GetRightLocation(location); - wxString left = GetLeftLocation(location); - wxInputStream *s; - - if (GetProtocol(left) != "file") { - return NULL; - } - - s = new wxZipInputStream(left, right); - if (s && (s -> LastError() == wxStream_NOERROR)) { - return new wxFSFile(s, - left + "#zip:" + right, - GetMimeTypeFromExt(location), - GetAnchor(location)); - } - else return NULL; -} - - - -wxZipFSHandler::~wxZipFSHandler() -{ -} - -#endif // wxUSE_FS_ZIP diff --git a/src/common/ftp.cpp b/src/common/ftp.cpp deleted file mode 100644 index b789852c92..0000000000 --- a/src/common/ftp.cpp +++ /dev/null @@ -1,405 +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); - SetFlags(NONE); -} - -wxFTP::~wxFTP() -{ - SendCommand("QUIT", '2'); -} - -//////////////////////////////////////////////////////////////// -////// wxFTP connect and login methods ///////////////////////// -//////////////////////////////////////////////////////////////// -bool wxFTP::Connect(wxSockAddress& addr, bool WXUNUSED(wait)) -{ - 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) -{ - m_lastError = GetLine(this, m_lastResult); - if ( m_lastError ) - 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) { - m_lastError = GetLine(this, m_lastResult); - if ( m_lastError ) - 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 GetSize() 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; - int a[6]; - wxString straddr; - int addr_pos; - wxUint16 port; - wxUint32 hostaddr; - - if (!SendCommand(_T("PASV"), '2')) - return NULL; - - 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]); - - hostaddr = (wxUint16)a[5] << 24 | (wxUint16)a[4] << 16 | - (wxUint16)a[3] << 8 | a[2]; - addr.Hostname(hostaddr); - - port = (wxUint16)a[0] << 8 | a[1]; - addr.Service(port); - - client = new wxSocketClient(); - 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 7755f181e1..0000000000 --- a/src/common/gdicmn.cpp +++ /dev/null @@ -1,662 +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 -#ifdef __WXPM__ - 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 -#if defined(__WXGTK__) - (each_font->GetFamily() == FamilyOrFontId || - (each_font->GetFamily() == wxSWISS && FamilyOrFontId == wxDEFAULT)) && -#else - each_font->GetFamily() == FamilyOrFontId && -#endif - ((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/gifdecod.cpp b/src/common/gifdecod.cpp deleted file mode 100644 index 047189cc51..0000000000 --- a/src/common/gifdecod.cpp +++ /dev/null @@ -1,606 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gifdecod.cpp -// Purpose: wxGIFDecoder, GIF reader for wxImage and wxAnimation -// Author: Guillermo Rodriguez Garcia -// Version: 3.01 -// Last rev: 1999/08/14 -// Copyright: (c) Guillermo Rodriguez Garcia -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gifdecod.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_STREAMS - -#include -#include -#include "wx/defs.h" -#include "wx/gifdecod.h" - - -//--------------------------------------------------------------------------- -// wxGIFDecoder constructor and destructor -//--------------------------------------------------------------------------- - -wxGIFDecoder::wxGIFDecoder(wxInputStream *s, bool anim) -{ - m_f = s; - m_anim = anim; - - m_background = -1; - m_screenw = 0; - m_screenh = 0; - - m_pimage = NULL; - m_pfirst = NULL; - m_plast = NULL; - m_image = 0; - m_nimages = 0; -} - -wxGIFDecoder::~wxGIFDecoder() -{ - Destroy(); -} - -void wxGIFDecoder::Destroy() -{ - IMAGEN *pimg, *paux; - - pimg = m_pfirst; - - while (pimg != NULL) - { - paux = pimg->next; - free(pimg->p); - free(pimg->pal); - free(pimg); - pimg = paux; - } -} - - -//--------------------------------------------------------------------------- -// Convert this image to a wxImage object -//--------------------------------------------------------------------------- - -// This function was designed by Vaclav Slavik - -bool wxGIFDecoder::ConvertToImage(wxImage *image) const -{ - unsigned char *src, *dst, *pal; - unsigned long i; - int transparent; - - /* create the image */ - image->Create(GetWidth(), GetHeight()); - - if (!image->Ok()) - return FALSE; - - pal = GetPalette(); - src = GetData(); - dst = image->GetData(); - transparent = GetTransparentColour(); - - /* set transparent colour mask */ - if (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 * transparent + 0] = 255, - pal[3 * transparent + 1] = 0, - pal[3 * transparent + 2] = 255; - - image->SetMaskColour(255, 0, 255); - } - else - image->SetMask(FALSE); - - /* copy image data */ - for (i = 0; i < (GetWidth() * GetHeight()); i++, src++) - { - *(dst++) = pal[3 * (*src) + 0]; - *(dst++) = pal[3 * (*src) + 1]; - *(dst++) = pal[3 * (*src) + 2]; - } - - return TRUE; -} - - -//--------------------------------------------------------------------------- -// Data accessors -//--------------------------------------------------------------------------- - -// Get data for current frame - -int wxGIFDecoder::GetFrameIndex() const { return m_image; } -unsigned char* wxGIFDecoder::GetData() const { return (m_pimage->p); } -unsigned char* wxGIFDecoder::GetPalette() const { return (m_pimage->pal); } -unsigned int wxGIFDecoder::GetWidth() const { return (m_pimage->w); } -unsigned int wxGIFDecoder::GetHeight() const { return (m_pimage->h); } -unsigned int wxGIFDecoder::GetTop() const { return (m_pimage->top); } -unsigned int wxGIFDecoder::GetLeft() const { return (m_pimage->left); } -int wxGIFDecoder::GetTransparentColour() const { return (m_pimage->transparent); } -int wxGIFDecoder::GetDisposalMethod() const { return (m_pimage->disposal); } -long wxGIFDecoder::GetDelay() const { return (m_pimage->delay); } - -// Get global data - -unsigned int wxGIFDecoder::GetLogicalScreenWidth() const { return m_screenw; } -unsigned int wxGIFDecoder::GetLogicalScreenHeight() const { return m_screenh; } -int wxGIFDecoder::GetBackgroundColour() const { return m_background; } -int wxGIFDecoder::GetNumberOfFrames() const { return m_nimages; } -bool wxGIFDecoder::IsAnimation() const { return (m_nimages > 1); } - - -//--------------------------------------------------------------------------- -// Functions to move through the animation -//--------------------------------------------------------------------------- - -bool wxGIFDecoder::GoFirstFrame() -{ - if (!IsAnimation()) - return FALSE; - - m_image = 1; - m_pimage = m_pfirst; - return TRUE; -} - -bool wxGIFDecoder::GoLastFrame() -{ - if (!IsAnimation()) - return FALSE; - - m_image = m_nimages; - m_pimage = m_plast; - return TRUE; -} - -bool wxGIFDecoder::GoNextFrame(bool cyclic) -{ - if (!IsAnimation()) - return FALSE; - - if ((m_image < m_nimages) || (cyclic)) - { - m_pimage = m_pimage->next; - m_image++; - - if (!m_pimage) - { - m_image = 1; - m_pimage = m_pfirst; - } - - return TRUE; - } - else - return FALSE; -} - -bool wxGIFDecoder::GoPrevFrame(bool cyclic) -{ - if (!IsAnimation()) - return FALSE; - - if ((m_image > 1) || (cyclic)) - { - m_pimage = m_pimage->prev; - m_image--; - - if (!m_pimage) - { - m_image = m_nimages; - m_pimage = m_plast; - } - - return TRUE; - } - else - return FALSE; -} - -bool wxGIFDecoder::GoFrame(int which) -{ - int i; - - if (!IsAnimation()) - return FALSE; - - if ((which >= 1) && (which <= m_nimages)) - { - m_pimage = m_pfirst; - - for (i = 1; i < which; i++) - m_pimage = m_pimage->next; - - return TRUE; - } - else - return FALSE; -} - - -//--------------------------------------------------------------------------- -// GIF reading and decoding -//--------------------------------------------------------------------------- - -// getcode: -// Reads the next code from the file stream, with size 'bits' -// -int wxGIFDecoder::getcode(int bits, int ab_fin) -{ - unsigned int mask; /* bit mask */ - unsigned int code; /* code (result) */ - - - /* get remaining bits from last byte read */ - mask = (1 << bits) - 1; - code = (m_lastbyte >> (8 - m_restbits)) & mask; - - /* keep reading new bytes while needed */ - while (bits > m_restbits) - { - /* if no bytes left in this block, read the next block */ - if (m_restbyte == 0) - { - m_restbyte = (unsigned char)m_f->GetC(); - - /* Some encoders are a bit broken: instead of issuing - * an end-of-image symbol (ab_fin) they come up with - * a zero-length subblock!! We catch this here so - * that the decoder sees an ab_fin code. - */ - if (m_restbyte == 0) - { - code = ab_fin; - break; - } - } - - /* read next byte and isolate the bits we need */ - m_lastbyte = (unsigned char)m_f->GetC(); - mask = (1 << (bits - m_restbits)) - 1; - code = code + ((m_lastbyte & mask) << m_restbits); - m_restbyte--; - - /* adjust total number of bits extracted from the buffer */ - m_restbits = m_restbits + 8; - } - - /* find number of bits remaining for next code */ - m_restbits = (m_restbits - bits); - - return code; -} - - -// dgif: -// GIF decoding function. The initial code size (aka root size) -// is 'bits'. Supports interlaced images (interl == 1). -// -int wxGIFDecoder::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 */ - unsigned 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 */ - m_restbits = 0; - m_restbyte = 0; - m_lastbyte = 0; - - do - { - /* get next code */ - readcode = code = getcode(ab_bits, ab_fin); - - /* 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 and decodes one or more GIF images, depending on whether -// animated GIF support is enabled. Can read GIFs with any bit -// size (color depth), but the output images are always expanded -// to 8 bits per pixel. Also, the image palettes always contain -// 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 header file). -// -int wxGIFDecoder::ReadGIF() -{ - int ncolors, bits, interl, transparent, disposal, i; - long size; - long delay; - unsigned char type; - unsigned char pal[768]; - unsigned char buf[16]; - IMAGEN **ppimg, *pimg, *pprev; - - - /* check GIF signature and animated GIF support (ver. >= 89a) */ - m_f->Read(buf, 6); - - if (memcmp(buf, "GIF", 3) != 0) - return E_FORMATO; - - if (memcmp(buf + 3, "89a", 3) < 0) - m_anim = FALSE; - - /* read logical screen descriptor block (LSDB) */ - m_f->Read(buf, 7); - m_screenw = buf[0] + 256 * buf[1]; - m_screenh = buf[2] + 256 * buf[3]; - - /* load global color map if available */ - if ((buf[4] & 0x80) == 0x80) - { - m_background = buf[5]; - - ncolors = 2 << (buf[4] & 0x07); - m_f->Read(pal, 3 * ncolors); - } - - /* transparent colour, disposal method and delay default to unused */ - transparent = -1; - disposal = -1; - delay = -1; - - /* read images */ - ppimg = &m_pfirst; - pprev = NULL; - pimg = NULL; - - while (1) - { - type = (unsigned char)m_f->GetC(); - - /* end of data? */ - if (type == 0x3B) - break; - - /* extension block? */ - if (type == 0x21) - { - if (((unsigned char)m_f->GetC()) == 0xF9) - /* graphics control extension, parse it */ - { - m_f->Read(buf, 6); - - /* read delay and convert from 1/100 of a second to ms */ - delay = 10 * (buf[2] + 256 * buf[3]); - - /* read transparent colour index, if used */ - if (buf[1] & 0x01) - transparent = buf[4]; - - /* read disposal method */ - disposal = (buf[1] & 0x1C) - 1; - } - else - /* other extension, skip */ - { - while ((i = (unsigned char)m_f->GetC()) != 0) - { - /* This line should not be neccessary! - * Some images are not loaded correctly - * without it. A bug in wxStream? - */ - // m_f->SeekI(m_f->TellI(), wxFromStart); - m_f->SeekI(i, wxFromCurrent); - } - } - } - - /* image descriptor block? */ - if (type == 0x2C) - { - /* allocate memory for IMAGEN struct */ - pimg = (*ppimg) = (IMAGEN *) malloc(sizeof(IMAGEN)); - - if (pimg == NULL) - { - Destroy(); - return E_MEMORIA; - } - - /* fill in the data */ - m_f->Read(buf, 9); - pimg->left = buf[4] + 256 * buf[5]; - pimg->top = buf[4] + 256 * buf[5]; - pimg->w = buf[4] + 256 * buf[5]; - pimg->h = buf[6] + 256 * buf[7]; - interl = ((buf[8] & 0x40)? 1 : 0); - size = pimg->w * pimg->h; - - pimg->transparent = transparent; - pimg->disposal = disposal; - pimg->delay = delay; - pimg->next = NULL; - pimg->prev = pprev; - pprev = pimg; - ppimg = &pimg->next; - - /* allocate memory for image and palette */ - pimg->p = (unsigned char *) malloc(size); - pimg->pal = (unsigned char *) malloc(768); - - if ((!pimg->p) || (!pimg->pal)) - { - Destroy(); - return E_MEMORIA; - } - - /* load local color map if available, else use global map */ - if ((buf[8] & 0x80) == 0x80) - { - ncolors = 2 << (buf[8] & 0x07); - m_f->Read(pimg->pal, 3 * ncolors); - } - else - memcpy(pimg->pal, pal, 768); - - /* get initial code size from first byte in raster data */ - bits = (unsigned char)m_f->GetC(); - - /* decode image */ - dgif(pimg, interl, bits); - - m_nimages++; - } - - /* if we have one image and no animated GIF support, exit */ - if (m_nimages == 1 && !m_anim) - break; - } - - /* finish successfully :-) */ - if (m_nimages != 0) - { - m_image = 1; - m_plast = pimg; - m_pimage = m_pfirst; - } - - return E_OK; -} - -#endif // wxUSE_STREAM 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 f9c7722269..0000000000 --- a/src/common/http.cpp +++ /dev/null @@ -1,329 +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 - -#include -#include -#include "wx/string.h" -#include "wx/tokenzr.h" -#include "wx/socket.h" -#include "wx/protocol/protocol.h" -#include "wx/url.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; - m_proxy_mode = FALSE; - - SetNotify(GSOCK_LOST_FLAG); -} - -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::SetProxyMode(bool on) -{ - m_proxy_mode = on; -} - -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; - wxString upper_header; - - upper_header = header.Upper(); - - node = m_headers.Find(upper_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_perr = GetLine(this, line); - if (m_perr != wxPROTO_NOERR) - return FALSE; - - if (line.Length() == 0) - break; - - tokenzr.SetString(line, " :\t\n\r"); - if (!tokenzr.HasMoreTokens()) - return FALSE; - - wxString left_str = tokenzr.GetNextToken(); - wxString *str = new wxString(tokenzr.GetNextToken()); - - left_str.MakeUpper(); - - m_headers.Append(left_str, (wxObject *) str); - } - return TRUE; -} - -bool wxHTTP::Connect(const wxString& host) -{ - wxIPV4address *addr; - - if (m_addr) { - delete m_addr; - m_addr = NULL; - Close(); - } - - m_addr = addr = new wxIPV4address(); - - if (!addr->Hostname(host)) { - delete m_addr; - m_addr = NULL; - m_perr = wxPROTO_NETERR; - return FALSE; - } - - if (!addr->Service(_T("http"))) - addr->Service(80); - - return TRUE; -} - -bool wxHTTP::Connect(wxSockAddress& addr, bool WXUNUSED(wait)) -{ - if (m_addr) { - delete m_addr; - m_addr = NULL; - Close(); - } - - m_addr = (wxSockAddress *) addr.Clone(); - return TRUE; -} - -bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req) -{ - wxChar *tmp_buf; - wxChar buf[200]; // 200 is arbitrary. - wxString tmp_str = path; - - // If there is no User-Agent defined, define it. - if (GetHeader(_T("User-Agent")).IsNull()) - SetHeader(_T("User-Agent"), _T("wxWindows 2.x")); - - switch (req) { - case wxHTTP_GET: - tmp_buf = _T("GET"); - break; - default: - return FALSE; - } - - SaveState(); - SetFlags(NONE); - Notify(FALSE); - - wxSprintf(buf, _T("%s %s HTTP/1.0\n\r"), tmp_buf, tmp_str.GetData()); - const wxWX2MBbuf pathbuf = wxConvLibc.cWX2MB(buf); - Write(pathbuf, strlen(MBSTRINGCAST pathbuf)); - SendHeaders(); - Write("\n\r", 2); - - m_perr = GetLine(this, tmp_str); - if (m_perr != wxPROTO_NOERR) { - RestoreState(); - return FALSE; - } - - if (!tmp_str.Contains(_T("HTTP/"))) { - // TODO: support HTTP v0.9 which can have no header. - // FIXME: tmp_str is not put back in the in-queue of the socket. - 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 (tmp_str2[(unsigned int) 0]) { - case _T('1'): - /* INFORMATION / SUCCESS */ - break; - case _T('2'): - /* SUCCESS */ - break; - case _T('3'): - /* REDIRECTION */ - break; - default: - m_perr = wxPROTO_NOFILE; - RestoreState(); - return FALSE; - } - - ret_value = ParseHeaders(); - RestoreState(); - return ret_value; -} - -class wxHTTPStream : public wxSocketInputStream { -public: - wxHTTP *m_http; - size_t m_httpsize; - unsigned long m_read_bytes; - - wxHTTPStream(wxHTTP *http) : wxSocketInputStream(*http), m_http(http) {} - size_t GetSize() const { return m_httpsize; } - virtual ~wxHTTPStream(void) { m_http->Abort(); } - -protected: - size_t OnSysRead(void *buffer, size_t bufsize); -}; - -size_t wxHTTPStream::OnSysRead(void *buffer, size_t bufsize) -{ - size_t ret; - - if (m_httpsize > 0 && m_read_bytes >= m_httpsize) - return 0; - - ret = wxSocketInputStream::OnSysRead(buffer, bufsize); - m_read_bytes += ret; - - return ret; -} - -bool wxHTTP::Abort(void) -{ - bool ret, connected; - - ret = wxSocketClient::Close(); - - return ret; -} - -wxInputStream *wxHTTP::GetInputStream(const wxString& path) -{ - wxHTTPStream *inp_stream = new wxHTTPStream(this); - wxString new_path; - - m_perr = wxPROTO_CONNERR; - if (!m_addr) - return NULL; - - // We set m_connected back to FALSE so wxSocketBase will know what to do. - if (!wxProtocol::Connect(*m_addr)) - return NULL; - - if (!BuildRequest(path, wxHTTP_GET)) - return NULL; - - if (!GetHeader(_T("Content-Length")).IsEmpty()) - inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(_T("Content-Length"))); - else - inp_stream->m_httpsize = (size_t)-1; - - inp_stream->m_read_bytes = 0; - - Notify(FALSE); - SetFlags(SPEED | WAITALL); - - return inp_stream; -} - -#endif - // wxUSE_SOCKETS diff --git a/src/common/imagbmp.cpp b/src/common/imagbmp.cpp deleted file mode 100644 index 005e007dfa..0000000000 --- a/src/common/imagbmp.cpp +++ /dev/null @@ -1,415 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imagbmp.cpp -// Purpose: wxImage BMP 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 -*/ - -// 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 - -//----------------------------------------------------------------------------- -// 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, bool WXUNUSED(verbose) ) -{ - 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 ); - -#if 0 // unused - wxInt32 size = wxINT32_SWAP_ON_BE( dbuf[0] ); -#endif - 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; seems to be wrong, RR - } - } - } - 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; -} - -bool wxBMPHandler::CanRead( wxInputStream& stream ) -{ - unsigned char hdr[2]; - - stream.Read(&hdr, 2); - stream.SeekI(-2, wxFromCurrent); - return (hdr[0] == 'B' && hdr[1] == 'M'); -} - -#endif // wxUSE_STREAMS - - diff --git a/src/common/image.cpp b/src/common/image.cpp deleted file mode 100644 index 7478392fe2..0000000000 --- a/src/common/image.cpp +++ /dev/null @@ -1,1654 +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__ - #undef FAR -#endif - -#ifdef __WXMSW__ - #include "wx/msw/private.h" -#endif - -//----------------------------------------------------------------------------- -// wxImage -//----------------------------------------------------------------------------- - -class wxImageRefData: public wxObjectRefData -{ - -public: - wxImageRefData(); - ~wxImageRefData(); - - 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() -{ - 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() -{ - 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 ) const -{ - 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; -} - -wxImage wxImage::GetSubImage( const wxRect &rect ) const -{ - wxImage image; - - wxCHECK_MSG( Ok(), image, _T("invalid image") ); - - wxCHECK_MSG( (rect.GetLeft()>=0) && (rect.GetTop()>=0) && (rect.GetRight()<=GetWidth()) && (rect.GetBottom()<=GetHeight()) - , image, _T("invalid subimage size") ); - - int subwidth=rect.GetWidth(); - const int subheight=rect.GetHeight(); - - image.Create( subwidth, subheight ); - - char unsigned *subdata = image.GetData(), *data=GetData(); - - wxCHECK_MSG( subdata, 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 ); - - const int subleft=3*rect.GetLeft(); - const int width=3*GetWidth(); - subwidth*=3; - - data+=rect.GetTop()*width+subleft; - - for (long j = 0; j < subheight; ++j) - { - memcpy( subdata, data, subwidth); - subdata+=subwidth; - data+=width; - } - - 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; - - if (type==wxBITMAP_TYPE_ANY) - { - wxList &list=GetHandlers(); - - for ( wxList::Node *node = list.GetFirst(); node; node = node->GetNext() ) - { - handler=(wxImageHandler*)node->GetData(); - if (handler->CanRead( stream )) - return handler->LoadFile( this, stream ); - - } - - wxLogWarning( _T("No handler found for this image.") ); - return FALSE; - } - - 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), bool WXUNUSED(verbose) ) -{ - return FALSE; -} - -bool wxImageHandler::SaveFile( wxImage *WXUNUSED(image), wxOutputStream& WXUNUSED(stream), bool WXUNUSED(verbose) ) -{ - return FALSE; -} - -bool wxImageHandler::CanRead( wxInputStream& stream ) -{ - return FALSE; -} - -bool wxImageHandler::CanRead( const wxString& name ) -{ -#if wxUSE_STREAMS - if (wxFileExists(name)) - { - wxFileInputStream stream(name); - return CanRead(stream); - } - - else { - wxLogError( _T("Can't check image format of file '%s': file does not exist."), name.c_str() ); - - return FALSE; - } -#else // !wxUSE_STREAMS - return FALSE; -#endif // wxUSE_STREAMS -} - - - -#endif // wxUSE_STREAMS - -//----------------------------------------------------------------------------- -// MSW conversion routines -//----------------------------------------------------------------------------- - -#ifdef __WXMSW__ - -wxBitmap wxImage::ConvertToBitmap() const -{ - if ( !Ok() ) - return wxNullBitmap; - - // 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 ); - int lineBoundary = bytePerLine % sizeDWORD; - int padding = 0; - if( lineBoundary > 0 ) - { - padding = sizeDWORD - lineBoundary; - 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 - { - numDIB = bmpHeight / height; - hRemain = bmpHeight % height; - 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 ); - int lineBoundary = bytePerLine % sizeDWORD; - int padding = 0; - if( lineBoundary > 0 ) - { - padding = sizeDWORD - lineBoundary; - 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_visual_get_system(); - 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++) - { - wxInt32 pixel = gdk_image_get_pixel( gdk_image, i, j ); - pixel = wxINT32_SWAP_ON_BE( pixel ); - 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 - -//----------------------------------------------------------------------------- -// Motif conversion routines -//----------------------------------------------------------------------------- - -#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_RET( vi, _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 c6a775e15c..0000000000 --- a/src/common/imaggif.cpp +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaggif.cpp -// Purpose: wxGIFHandler -// Author: Vaclav Slavik -// Based on wxGIFDecoder by Guillermo Rodriguez Garcia -// RCS-ID: $Id$ -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* -We don't put pragma implement in this file because it is already present in -src/common/image.cpp -*/ - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -# pragma hdrstop -#endif - -#ifndef WX_PRECOMP -# include "wx/defs.h" -#endif - -#include "wx/image.h" -// #include "wx/imaggif.h" -#include "wx/gifdecod.h" -#include "wx/wfstream.h" -#include "wx/module.h" -#include "wx/log.h" - -IMPLEMENT_DYNAMIC_CLASS(wxGIFHandler,wxImageHandler) - -#if wxUSE_STREAMS - -//----------------------------------------------------------------------------- -// wxGIFHandler -//----------------------------------------------------------------------------- - -bool wxGIFHandler::LoadFile( wxImage *image, wxInputStream& stream, bool WXUNUSED(verbose) ) -{ - wxGIFDecoder *decod; - bool ok; - - decod = new wxGIFDecoder(&stream, TRUE); - - if (decod->ReadGIF() != E_OK) - { - wxLogDebug(_T("Error reading GIF")); - delete decod; - return FALSE; - } - - image->Destroy(); - ok = decod->ConvertToImage(image); - - delete decod; - return ok; -} - -bool wxGIFHandler::SaveFile( wxImage * WXUNUSED(image), - wxOutputStream& WXUNUSED(stream), bool verbose ) -{ - if (verbose) wxLogDebug(_T("wxGIFHandler is read-only!!")); - return FALSE; -} - -bool wxGIFHandler::CanRead( wxInputStream& stream ) -{ - unsigned char hdr[5]; - - stream.Read(&hdr, 5); - stream.SeekI(-5, wxFromCurrent); - return (hdr[0] == 'G' && hdr[1] == 'I' && hdr[2] == 'F' && hdr[3] == '8' && hdr[4] == '9'); -} - -#endif diff --git a/src/common/imagjpeg.cpp b/src/common/imagjpeg.cpp deleted file mode 100644 index 94bded7c01..0000000000 --- a/src/common/imagjpeg.cpp +++ /dev/null @@ -1,333 +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 -*/ - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/defs.h" - -#if wxUSE_LIBJPEG - -#include "wx/image.h" -#include "wx/bitmap.h" -#include "wx/debug.h" -#include "wx/log.h" -#include "wx/app.h" -extern "C" { -#include "jpeglib.h" -} -#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 !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.GetSize(); /* forces fill_input_buffer on first read */ - src->buffer = (JOCTET *) malloc (infile.GetSize()); - src->pub.next_input_byte = src->buffer; /* until buffer loaded */ - infile.Read(src->buffer, infile.GetSize()); - - 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. */ - if (cinfo->err->output_message) (*cinfo->err->output_message) (cinfo); - - /* Return control to the setjmp point */ - longjmp(myerr->setjmp_buffer, 1); -} - - - -bool wxJPEGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose ) -{ - 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; - - if (!verbose) cinfo.err->output_message=NULL; - - /* 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. - */ - if (verbose) 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, bool verbose ) -{ - 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; - - if (!verbose) cinfo.err->output_message=NULL; - - /* 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. - */ - if (verbose) 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; -} - - -bool wxJPEGHandler::CanRead( wxInputStream& stream ) -{ - unsigned char hdr[2]; - - stream.Read(&hdr, 2); - stream.SeekI(-2, wxFromCurrent); - return (hdr[0] == 0xFF && hdr[1] == 0xD8); -} - -#endif - // wxUSE_STREAMS - -#endif - // wxUSE_LIBJPEG - - - - - - diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp deleted file mode 100644 index 7609aae068..0000000000 --- a/src/common/imagpng.cpp +++ /dev/null @@ -1,363 +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 -*/ - -// 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_LIBPNG - -#include "wx/image.h" -#include "wx/bitmap.h" -#include "wx/debug.h" -#include "wx/log.h" -#include "wx/app.h" -#include "png.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 - -//----------------------------------------------------------------------------- -// wxPNGHandler -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPNGHandler,wxImageHandler) -#endif - -#if wxUSE_STREAMS - -#if defined(__VISAGECPP__) -#define LINKAGEMODE _Optlink -#else -#define LINKAGEMODE -#endif - -static void LINKAGEMODE _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 LINKAGEMODE _PNG_stream_writer( png_structp png_ptr, png_bytep data, png_size_t length ) -{ - ((wxOutputStream*) png_get_io_ptr( png_ptr )) -> Write(data, length); -} - -// from pngerror.c -// so that the libpng doesn't send anything on stderr -void -png_silent_error(png_structp png_ptr, png_const_charp WXUNUSED(message)) -{ -#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 -} - -void -png_silent_warning(png_structp WXUNUSED(png_ptr), png_const_charp WXUNUSED(message)) -{ -} - -bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose) -{ - // 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; - - // the file example.c explain how to guess if the stream is a png image - if (!verbose) png_set_error_fn(png_ptr, (png_voidp)NULL, png_silent_error, png_silent_warning); - - 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, bool verbose ) -{ - { - png_structp png_ptr = png_create_write_struct( PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - if (!png_ptr) - { - return FALSE; - } - - if (!verbose) png_set_error_fn(png_ptr, (png_voidp)NULL, png_silent_error, png_silent_warning); - - 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; -} - -bool wxPNGHandler::CanRead( wxInputStream& stream ) -{ - unsigned char hdr[4]; - - stream.Read(&hdr, 4); - stream.SeekI(-4, wxFromCurrent); - return (hdr[0] == 0x89 && hdr[1] == 'P' && hdr[2] == 'N' && hdr[3] == 'G'); -} - -#endif - // wxUSE_STREAMS - -#endif - // wxUSE_LIBPNG - diff --git a/src/common/imagpnm.cpp b/src/common/imagpnm.cpp deleted file mode 100644 index d2b3244965..0000000000 --- a/src/common/imagpnm.cpp +++ /dev/null @@ -1,147 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imagpnm.cpp -// Purpose: wxImage PNM handler -// Author: Sylvain Bougnoux -// RCS-ID: $Id$ -// Copyright: (c) Sylvain Bougnoux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - We don't put pragma implement in this file because it is already present in - src/common/image.cpp -*/ - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/image.h" -#include "wx/log.h" -#include "wx/txtstrm.h" - -#ifdef __WXMSW__ -#include -#endif - -//----------------------------------------------------------------------------- -// wxBMPHandler -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPNMHandler,wxImageHandler) -#endif - -#if wxUSE_STREAMS - - //#include // for cout - -void Skip_Comment(wxInputStream &stream) -{ - wxString line; - wxTextInputStream text_stream(stream); - - if (stream.Peek()==_T('#')) - { - text_stream >> line; - Skip_Comment(stream); - } -} - -bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool WXUNUSED(verbose) ) -{ - wxUint32 width, height; - wxUint16 maxval; - wxString line; - char c(0); - - image->Destroy(); - - /* - * Read the PNM header - */ - - wxTextInputStream text_stream(stream); - - Skip_Comment(stream); - if (stream.GetC()==_T('P')) c=stream.GetC(); - - switch (c) - { - case _T('2'): - wxLogError(_T("Loading Grey Ascii PNM image is not yet implemented.")); - return FALSE; - case _T('5'): - wxLogError(_T("Loading Grey Raw PNM image is not yet implemented.")); - return FALSE; - case _T('3'): case _T('6'): break; - default : - wxLogError(_T("Loading PNM image : file not recognized.")); - return FALSE; - } - - text_stream >> line; // for the \n - Skip_Comment(stream); - text_stream >> width >> height ; - Skip_Comment(stream); - text_stream >> maxval; - - //cout << width << " " << height << " " << maxval << endl; - image->Create( width, height ); - unsigned char *ptr = image->GetData(); - if (!ptr) - { - wxLogError( _T("Cannot allocate RAM for RGB data in PNM file.") ); - return FALSE; - } - - if (c=='3') // Ascii RBG - { - wxUint32 value, size=3*width*height; - for (wxUint32 i=0; iSetMask( FALSE ); - - return (stream.LastError()==wxStream_NOERROR || stream.LastError()==wxStream_EOF); -} - -bool wxPNMHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool WXUNUSED(verbose) ) -{ - wxTextOutputStream text_stream(stream); - - //text_stream << "P6" << endl - //<< image->GetWidth() << " " << image->GetHeight() << endl - //<< "255" << endl; - text_stream << "P6\n" << image->GetWidth() << " " << image->GetHeight() << "\n255\n"; - stream.Write(image->GetData(),3*image->GetWidth()*image->GetHeight()); - - return (stream.LastError()==wxStream_NOERROR); -} - -bool wxPNMHandler::CanRead( wxInputStream& stream ) -{ - return FALSE; // VS - temporary - FIXME -} - - -#endif // wxUSE_STREAMS - - diff --git a/src/common/intl.cpp b/src/common/intl.cpp deleted file mode 100644 index a63fa77a05..0000000000 --- a/src/common/intl.cpp +++ /dev/null @@ -1,657 +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 - -#if wxUSE_INTL - -// 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() - { - // Asserting a sizeof directly causes some compilers to - // issue a "using constant in a conditional expression" warning - size_t intsize = sizeof(int); - - wxASSERT_MSG( intsize == 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 = wxConvCurrent->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)(wxConvCurrent->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; -} - -#endif // wxUSE_INTL - 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 188d4c6d8f..0000000000 --- a/src/common/layout.cpp +++ /dev/null @@ -1,1135 +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 - -#ifndef WX_PRECOMP - #include "wx/defs.h" -#endif - -#if wxUSE_CONSTRAINTS - -#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) -#endif - - -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 0; - } - case wxTop: - { - return 0; - } - case wxRight: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return w; - } - case wxBottom: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return h; - } - case wxWidth: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return w; - } - case wxHeight: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return h; - } - 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 - -#endif // wxUSE_CONSTRAINTS 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 8196c3eb26..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 LINKAGEMODE -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 b29f583649..0000000000 --- a/src/common/log.cpp +++ /dev/null @@ -1,1102 +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/wxchar.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::TimeStamp(wxString *str) -{ - if ( ms_timestamp ) - { - wxChar buf[256]; - time_t timeNow; - (void)time(&timeNow); - wxStrftime(buf, WXSIZEOF(buf), ms_timestamp, localtime(&timeNow)); - - str->Empty(); - *str << buf << _T(": "); - } -} - -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; - TimeStamp(&str); - str << szString << _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) << wxConvCurrent->cWX2MB(szString) << endl << flush; -} -#endif // wxUSE_STD_IOSTREAM - -#ifndef wxUSE_NOGUI - -// ---------------------------------------------------------------------------- -// wxLogTextCtrl implementation -// ---------------------------------------------------------------------------- - -wxLogTextCtrl::wxLogTextCtrl(wxTextCtrl *pTextCtrl) -{ - m_pTextCtrl = pTextCtrl; -} - -void wxLogTextCtrl::DoLogString(const wxChar *szString, time_t t) -{ - wxString msg; - TimeStamp(&msg); - msg << szString << _T('\n'); - - m_pTextCtrl->AppendText(msg); -} - -// ---------------------------------------------------------------------------- -// 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 - wxString str; - TimeStamp(&str); - str << szString << _T("\n\r"); - OutputDebugString(str); - #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_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); - m_bHasMessages = TRUE; - 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 - - wxString msg; - TimeStamp(&msg); - msg << szString << _T('\n'); - - pText->AppendText(msg); - - // 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; - -const wxChar *wxLog::ms_timestamp = _T("%X"); // time only, no date - -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]; - wxConvCurrent->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 fd0c992c3f..0000000000 --- a/src/common/longlong.cpp +++ /dev/null @@ -1,473 +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 - -#if wxUSE_LONGLONG - -#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_NATIVE - -#endif // wxUSE_LONGLONG 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 2785c1f9ce..0000000000 --- a/src/common/mimetype.cpp +++ /dev/null @@ -1,1571 +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 - -// 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_FILE && wxUSE_TEXTFILE) || defined(__WXMSW__) - -#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/file.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() { m_info = NULL; } - - // one of these Init() function must be called (ctor can't take any - // arguments because it's common) - - // initialize us with our file type name and extension - in this case - // we will read all other data from the registry - void Init(const wxString& strFileType, const wxString& ext) - { m_strFileType = strFileType; m_ext = ext; } - - // initialize us with a wxFileTypeInfo object - it contains all the - // data - void Init(const wxFileTypeInfo& info) - { m_info = &info; } - - // 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& params) const; - bool GetPrintCommand(wxString *printCmd, - const wxFileType::MessageParameters& params) const; - -private: - // helper function: reads the command corresponding to the specified verb - // from the registry (returns an empty string if not found) - wxString GetCommand(const wxChar *verb) const; - - // we use either m_info or read the data from the registry if m_info == NULL - const wxFileTypeInfo *m_info; - wxString m_strFileType, - m_ext; -}; - -WX_DECLARE_OBJARRAY(wxFileTypeInfo, wxArrayFileTypeInfo); -#include "wx/arrimpl.cpp" -WX_DEFINE_OBJARRAY(wxArrayFileTypeInfo); - -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; } - - void AddFallback(const wxFileTypeInfo& ft) { m_fallbacks.Add(ft); } - -private: - wxArrayFileTypeInfo m_fallbacks; -}; - -#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); - - void AddFallback(const wxFileTypeInfo& filetype); - - // add information about the given mimetype - void AddMimeTypeInfo(const wxString& mimetype, - const wxString& extensions, - const wxString& description); - void AddMailcapInfo(const wxString& strType, - const wxString& strOpenCmd, - const wxString& strPrintCmd, - const wxString& strTest, - const wxString& strDesc); - - // 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 - -// ============================================================================ -// common classes -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxFileTypeInfo -// ---------------------------------------------------------------------------- - -wxFileTypeInfo::wxFileTypeInfo(const char *mimeType, - const char *openCmd, - const char *printCmd, - const char *desc, - ...) - : m_mimeType(mimeType), - m_openCmd(openCmd), - m_printCmd(printCmd), - m_desc(desc) -{ - va_list argptr; - va_start(argptr, desc); - - for ( ;; ) - { - const char *ext = va_arg(argptr, const char *); - if ( !ext ) - { - // NULL terminates the list - break; - } - - m_exts.Add(ext); - } - - va_end(argptr); -} - -// ============================================================================ -// 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); -} - -void wxMimeTypesManager::AddFallbacks(const wxFileTypeInfo *filetypes) -{ - for ( const wxFileTypeInfo *ft = filetypes; ft->IsValid(); ft++ ) { - m_impl->AddFallback(*ft); - } -} - -// ============================================================================ -// real (OS specific) implementation -// ============================================================================ - -#ifdef __WXMSW__ - -wxString wxFileTypeImpl::GetCommand(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); - - wxString command; - 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'! - bool foundFilename = FALSE; - size_t len = command.Len(); - for ( size_t n = 0; (n < len) && !foundFilename; n++ ) { - if ( command[n] == _T('%') && - (n + 1 < len) && command[n + 1] == _T('1') ) { - // replace it with '%s' - command[n + 1] = _T('s'); - - foundFilename = TRUE; - } - } - - if ( !foundFilename ) { - // we didn't find any '%1'! - // HACK: append the filename at the end, hope that it will do - command << _T(" %s"); - } - } - } - - // no such file type or no value - return command; -} - -bool -wxFileTypeImpl::GetOpenCommand(wxString *openCmd, - const wxFileType::MessageParameters& params) - const -{ - wxString cmd; - if ( m_info ) { - cmd = m_info->GetOpenCommand(); - } - else { - cmd = GetCommand(_T("open")); - } - - *openCmd = wxFileType::ExpandCommand(cmd, params); - - return !openCmd->IsEmpty(); -} - -bool -wxFileTypeImpl::GetPrintCommand(wxString *printCmd, - const wxFileType::MessageParameters& params) - const -{ - wxString cmd; - if ( m_info ) { - cmd = m_info->GetPrintCommand(); - } - else { - cmd = GetCommand(_T("print")); - } - - *printCmd = wxFileType::ExpandCommand(cmd, params); - - return !printCmd->IsEmpty(); -} - -// TODO this function is half implemented -bool wxFileTypeImpl::GetExtensions(wxArrayString& extensions) -{ - if ( m_info ) { - extensions = m_info->GetExtensions(); - - return TRUE; - } - else 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 -{ - if ( m_info ) { - // we already have it - *mimeType = m_info->GetMimeType(); - - return TRUE; - } - - // 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 -{ - if ( m_info ) { - // we don't have icons in the fallback resources - return FALSE; - } - - 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 -{ - if ( m_info ) { - // we already have it - *desc = m_info->GetDescription(); - - return TRUE; - } - - // 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->Init(strFileType, ext); - - return fileType; - } - } - - // check the fallbacks - // TODO linear search is potentially slow, perhaps we should use a sorted - // array? - size_t count = m_fallbacks.GetCount(); - for ( size_t n = 0; n < count; n++ ) { - if ( m_fallbacks[n].GetExtensions().Index(ext) != wxNOT_FOUND ) { - wxFileType *fileType = new wxFileType; - fileType->m_impl->Init(m_fallbacks[n]); - - 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); - } - } - - // check the fallbacks - // TODO linear search is potentially slow, perhaps we should use a sorted - // array? - size_t count = m_fallbacks.GetCount(); - for ( size_t n = 0; n < count; n++ ) { - if ( wxMimeTypesManager::IsOfType(mimeType, - m_fallbacks[n].GetMimeType()) ) { - wxFileType *fileType = new wxFileType; - fileType->m_impl->Init(m_fallbacks[n]); - - return fileType; - } - } - - // 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; - } -} - -void wxMimeTypesManagerImpl::AddFallback(const wxFileTypeInfo& filetype) -{ - wxString extensions; - const wxArrayString& exts = filetype.GetExtensions(); - size_t nExts = exts.GetCount(); - for ( size_t nExt = 0; nExt < nExts; nExt++ ) { - if ( nExt > 0 ) { - extensions += _T(' '); - } - extensions += exts[nExt]; - } - - AddMimeTypeInfo(filetype.GetMimeType(), - extensions, - filetype.GetDescription()); - - AddMailcapInfo(filetype.GetMimeType(), - filetype.GetOpenCommand(), - filetype.GetPrintCommand(), - _T(""), - filetype.GetDescription()); -} - -void wxMimeTypesManagerImpl::AddMimeTypeInfo(const wxString& strMimeType, - const wxString& strExtensions, - const wxString& strDesc) -{ - 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; - } -} - -void wxMimeTypesManagerImpl::AddMailcapInfo(const wxString& strType, - const wxString& strOpenCmd, - const wxString& strPrintCmd, - const wxString& strTest, - const wxString& strDesc) -{ - MailCapEntry *entry = new MailCapEntry(strOpenCmd, strPrintCmd, strTest); - - 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 { - // always append the entry in the tail of the list - info added with - // this function can only come from AddFallbacks() - MailCapEntry *entryOld = m_aEntries[nIndex]; - if ( entryOld ) - entry->Append(entryOld); - else - m_aEntries[nIndex] = entry; - } -} - -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); - } - - AddMimeTypeInfo(strMimeType, strExtensions, strDesc); - - // 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); - - // NB: because of complications below (we must get entries priority - // right), we can't use AddMailcapInfo() here, unfortunately. - 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 - // wxUSE_FILE && wxUSE_TEXTFILE - -#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 8e81abd394..0000000000 --- a/src/common/mstream.cpp +++ /dev/null @@ -1,114 +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" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_STREAMS - -#include -#include -#include - -// ---------------------------------------------------------------------------- -// wxMemoryInputStream -// ---------------------------------------------------------------------------- - -wxMemoryInputStream::wxMemoryInputStream(const char *data, size_t len) - : wxInputStream() -{ - m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read); - 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() -{ - delete m_i_streambuf; -} - -char wxMemoryInputStream::Peek() -{ - return m_i_streambuf->GetBufferStart()[m_i_streambuf->GetIntPosition()]; -} - -size_t wxMemoryInputStream::OnSysRead(void *buffer, size_t nbytes) -{ - return m_i_streambuf->Read(buffer, nbytes); -} - -off_t wxMemoryInputStream::OnSysSeek(off_t pos, wxSeekMode mode) -{ - return m_i_streambuf->Seek(pos, mode); -} - -off_t wxMemoryInputStream::OnSysTell() const -{ - return m_i_streambuf->Tell(); -} - -// ---------------------------------------------------------------------------- -// wxMemoryOutputStream -// ---------------------------------------------------------------------------- - -wxMemoryOutputStream::wxMemoryOutputStream(char *data, size_t len) - : wxOutputStream() -{ - m_o_streambuf = new wxStreamBuffer(wxStreamBuffer::write); - if (data) - m_o_streambuf->SetBufferIO(data, data+len); - m_o_streambuf->Fixed(TRUE); -} - -wxMemoryOutputStream::~wxMemoryOutputStream() -{ - delete m_o_streambuf; -} - -size_t wxMemoryOutputStream::OnSysWrite(const void *buffer, size_t nbytes) -{ - return m_o_streambuf->Write(buffer, nbytes); -} - -off_t wxMemoryOutputStream::OnSysSeek(off_t pos, wxSeekMode mode) -{ - return m_o_streambuf->Seek(pos, mode); -} - -off_t wxMemoryOutputStream::OnSysTell() const -{ - return m_o_streambuf->Tell(); -} - -size_t wxMemoryOutputStream::CopyTo(char *buffer, size_t len) const -{ - if (!buffer) - return 0; - - if (len > GetSize()) - len = GetSize(); - - memcpy(buffer, m_o_streambuf->GetBufferStart(), len); - return len; -} - -#endif diff --git a/src/common/object.cpp b/src/common/object.cpp deleted file mode 100644 index 3e3a612d48..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 wxUSE_STD_IOSTREAM && (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 0f4a38608a..0000000000 --- a/src/common/objstrm.cpp +++ /dev/null @@ -1,325 +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 - -#if wxUSE_SERIAL && wxUSE_STREAMS - -#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 f9b8d83d62..0000000000 --- a/src/common/parser.y +++ /dev/null @@ -1,172 +0,0 @@ - %{ -#include "wx/setup.h" -#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 - */ - -/* HH: Added test for __WX_SETUP_H__ for gnuwin builds - * using configure */ -#if !defined(__SC__) && !defined(__GNUWIN32__) -#ifdef USE_DEFINE -#ifndef yywrap -#define yywrap() 1 -#endif -#else if !defined(__alpha___) && !defined(__alpha) && !defined(__ultrix) -int yywrap() { return 1; } -#endif -#elif defined(__WX_SETUP_H__) -int yywrap() { return 1; } -#endif diff --git a/src/common/prntbase.cpp b/src/common/prntbase.cpp deleted file mode 100644 index 9c1c91ee2e..0000000000 --- a/src/common/prntbase.cpp +++ /dev/null @@ -1,775 +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" - -#if wxUSE_PRINTING_ARCHITECTURE - -#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 "wx/msw/private.h" - #include - - #ifndef __WIN32__ - #include - #endif -#endif // __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::OnPreviousButton) - EVT_BUTTON(wxID_PREVIEW_NEXT, wxPreviewControlBar::OnNextButton) - EVT_CHAR(wxPreviewControlBar::OnChar) - 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::OnChar(wxKeyEvent &event) -{ - switch(event.KeyCode()) - { - case WXK_NEXT: - OnNext(); break; - case WXK_PRIOR: - OnPrevious(); break; - default: - event.Skip(); - } -} - -void wxPreviewControlBar::OnNext(void) -{ - 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(void) -{ - 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(); - } -} - -#endif // wxUSE_PRINTING_ARCHITECTURE 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 c535c79258..0000000000 --- a/src/common/protocol.cpp +++ /dev/null @@ -1,158 +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 - -#include "wx/protocol/protocol.h" -#include "wx/url.h" -#include "wx/module.h" - -#include - -///////////////////////////////////////////////////////////////// -// 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 /////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////// - -#if wxUSE_SOCKETS -IMPLEMENT_ABSTRACT_CLASS(wxProtocol, wxSocketClient) -#else -IMPLEMENT_ABSTRACT_CLASS(wxProtocol, wxObject) -#endif - -wxProtocol::wxProtocol() -#if wxUSE_SOCKETS - : wxSocketClient() -#endif -{ -} - -#if wxUSE_SOCKETS -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 -} -#endif - -// ---------------------------------------------------------------------- -// 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() -{ -#if wxUSE_SOCKETS - char *env_http_prox; - - wxURL::g_proxy = NULL; - // Initialize the proxy when HTTP_PROXY is defined - env_http_prox = getenv("HTTP_PROXY"); - if (env_http_prox) - wxURL::SetDefaultProxy(env_http_prox); -#endif - - return TRUE; -} - -void wxProtocolModule::OnExit() -{ -#if wxUSE_SOCKETS - if (wxURL::g_proxy) - delete wxURL::g_proxy; - wxURL::g_proxy = NULL; -#endif -} - 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 5e4842f6b3..0000000000 --- a/src/common/resource.cpp +++ /dev/null @@ -1,2957 +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/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" -#include "wx/gauge.h" -#include "wx/textctrl.h" -#include "wx/msgdlg.h" -#include "wx/intl.h" -#endif - -#if wxUSE_RADIOBTN -#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; - node = Next(); - while (node != NULL) - { - wxItemResource *parent = (wxItemResource *)node->Data(); - if (parent->GetChildren().Member(item)) - { - parent->GetChildren().DeleteObject(item); - break; - } - node = Next(); - } - - 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_RADIOBTN - 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_RADIOBTN - 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(wxConvCurrent->cMB2WX(wxResourceBuffer)); - wxGetResourceToken(fd); - wxChar *value = copystring(wxConvCurrent->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(wxConvCurrent->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, wxConvCurrent->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; - word = wxResourceParseWord(WXSTRINGCAST bitListString, &i); - while (word != NULL) - { - 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; - } - word = wxResourceParseWord(WXSTRINGCAST bitListString, &i); - } - 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(wxConvCurrent->cMB2WX(wxResourceBuffer)); - wxGetResourceToken(fd); - wxChar *value = copystring(wxConvCurrent->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(wxConvCurrent->cMB2WX(wxResourceBuffer)); - wxGetResourceTokenString(s); - wxChar *value = copystring(wxConvCurrent->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, wxConvCurrent->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 5681aaadd7..0000000000 --- a/src/common/sckaddr.cpp +++ /dev/null @@ -1,230 +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 - -#include -#include -#include - -#if !defined(__MWERKS__) && !defined(__SALFORDC__) -#include -#endif - -#include -#include -#include -#include -#include - -#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 -// --------------------------------------------------------------------------- - -wxSockAddress::wxSockAddress() -{ - m_address = GAddress_new(); -} - -wxSockAddress::~wxSockAddress() -{ - GAddress_destroy(m_address); -} - -void wxSockAddress::SetAddress(GAddress *address) -{ - GAddress_destroy(m_address); - m_address = GAddress_copy(address); -} - -const wxSockAddress& wxSockAddress::operator=(const wxSockAddress& addr) -{ - SetAddress(addr.GetAddress()); - return *this; -} - -void wxSockAddress::CopyObject(wxObject& dest) const -{ - wxSockAddress *addr = (wxSockAddress *)&dest; - - wxObject::CopyObject(dest); - addr->SetAddress(GetAddress()); -} - -void wxSockAddress::Clear() -{ - GAddress_destroy(m_address); - m_address = GAddress_new(); -} - -// --------------------------------------------------------------------------- -// wxIPV4address -// --------------------------------------------------------------------------- - -wxIPV4address::wxIPV4address() - : wxSockAddress() -{ -} - -wxIPV4address::~wxIPV4address() -{ -} - -bool wxIPV4address::Hostname(const wxString& name) -{ - // Some people are sometimes fool. - if (name == _T("")) { - wxLogWarning( _T("Trying to solve a NULL hostname: giving up") ); - return FALSE; - } - - return (GAddress_INET_SetHostName(m_address, name.fn_str()) == GSOCK_NOERROR); -} - -bool wxIPV4address::Hostname(unsigned long addr) -{ - return (GAddress_INET_SetHostAddress(m_address, addr) == GSOCK_NOERROR); -} - -bool wxIPV4address::Service(const wxString& name) -{ - return (GAddress_INET_SetPortName(m_address, name.fn_str(), "tcp") == GSOCK_NOERROR); -} - -bool wxIPV4address::Service(unsigned short port) -{ - return (GAddress_INET_SetPort(m_address, port) == GSOCK_NOERROR); -} - -bool wxIPV4address::LocalHost() -{ - return (GAddress_INET_SetHostName(m_address, "localhost") == GSOCK_NOERROR); -} - -wxString wxIPV4address::Hostname() -{ - char hostname[1024]; - - hostname[0] = 0; - GAddress_INET_GetHostName(m_address, hostname, 1024); - return wxString(hostname); -} - -unsigned short wxIPV4address::Service() -{ - return GAddress_INET_GetPort(m_address); -} - -#if 0 -// --------------------------------------------------------------------------- -// wxIPV6address -// --------------------------------------------------------------------------- - -wxIPV6address::wxIPV6address() - : wxSockAddress() -{ -} - -wxIPV6address::~wxIPV6address() -{ -} - -bool wxIPV6address::Hostname(const wxString& name) -{ - return (GAddress_INET_SetHostName(m_address, name.fn_str()) == GSOCK_NOERROR); -} - -bool wxIPV6address::Hostname(unsigned char addr[16]) -{ - return TRUE; -} - -bool wxIPV6address::Service(const char *name) -{ - return (GAddress_INET_SetPortName(m_address, name.fn_str()) == GSOCK_NOERROR); -} - -bool wxIPV6address::Service(unsigned short port) -{ - return (GAddress_INET_SetPort(m_address, port) == GSOCK_NOERROR); -} - -bool wxIPV6address::LocalHost() -{ - return (GAddress_INET_SetHostName(m_address, "localhost") == GSOCK_NOERROR); -} - -const wxString& wxIPV6address::Hostname() -{ - return wxString(GAddress_INET_GetHostName(m_address)); -} - -unsigned short wxIPV6address::Service() -{ - return GAddress_INET_GetPort(m_address); -} - -#endif - -#ifdef __UNIX__ -// --------------------------------------------------------------------------- -// wxUNIXaddress -// --------------------------------------------------------------------------- - -wxUNIXaddress::wxUNIXaddress() - : wxSockAddress() -{ -} - -wxUNIXaddress::~wxUNIXaddress() -{ -} - -void wxUNIXaddress::Filename(const wxString& fname) -{ - GAddress_UNIX_SetPath(m_address, fname.fn_str()); -} - -wxString wxUNIXaddress::Filename() -{ - char path[1024]; - - path[0] = 0; - GAddress_UNIX_GetPath(m_address, path, 1024); - return wxString(path); -} - -#endif - -#endif - // wxUSE_SOCKETS diff --git a/src/common/sckfile.cpp b/src/common/sckfile.cpp deleted file mode 100644 index 7cfb56086c..0000000000 --- a/src/common/sckfile.cpp +++ /dev/null @@ -1,48 +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 - -#ifndef WX_PRECOMP - #include "wx/defs.h" -#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); -} - diff --git a/src/common/sckipc.cpp b/src/common/sckipc.cpp deleted file mode 100644 index 27dae77d32..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, - GSocketEvent evt, - char *cdata); -void Client_OnRequest(wxSocketBase& sock, - GSocketEvent 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; - wxSocketClient *client = new wxSocketClient(); - wxSocketStream *stream = new wxSocketStream(*client); - wxDataInputStream data_is(*stream); - wxDataOutputStream data_os(*stream); - - client->SetNotify(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG); - 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; - wxSocketServer *server; - - addr.Service(server_name); - - // Create a socket listening on specified port - server = new wxSocketServer(addr); - server->Callback((wxSocketBase::wxSockCbk)Server_OnRequest); - server->SetNotify(GSOCK_CONNECTION_FLAG); - - 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_sockstrm->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_sockstrm->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_sockstrm->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_sockstrm->Write(data, size); - } - - return TRUE; -} - -void Client_OnRequest(wxSocketBase& sock, GSocketEvent evt, - char *cdata) -{ - int msg = 0; - wxTCPConnection *connection = (wxTCPConnection *)cdata; - wxDataInputStream *codeci; - wxDataOutputStream *codeco; - wxSocketStream *sockstrm; - wxString topic_name = connection->m_topic; - wxString item; - - // The socket handler signals us that we lost the connection: destroy all. - if (evt == GSOCK_LOST) { - sock.Close(); - connection->OnDisconnect(); - return; - } - - // Receive message number. - codeci = connection->m_codeci; - codeco = connection->m_codeco; - sockstrm = connection->m_sockstrm; - 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]; - sockstrm->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]; - sockstrm->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]; - sockstrm->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); - sockstrm->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, - GSocketEvent evt, char *cdata) -{ - wxTCPServer *ipcserv = (wxTCPServer *)cdata; - wxSocketStream *stream; - wxDataInputStream *codeci; - wxDataOutputStream *codeco; - - if (evt != GSOCK_CONNECTION) - return; - - /* Accept the connection, getting a new socket */ - wxSocketBase *sock = server.Accept(); - sock->Notify(FALSE); - sock->SetNotify(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG); - - 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 df93922870..0000000000 --- a/src/common/sckstrm.cpp +++ /dev/null @@ -1,105 +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 - -#ifndef WX_PRECOMP - #include "wx/defs.h" -#endif - -#if wxUSE_SOCKETS && wxUSE_STREAMS - -#include "wx/stream.h" -#include "wx/socket.h" -#include "wx/sckstrm.h" - -// --------------------------------------------------------------------------- -// wxSocketOutputStream -// --------------------------------------------------------------------------- - -wxSocketOutputStream::wxSocketOutputStream(wxSocketBase& s) - : m_o_socket(&s) -{ -} - -wxSocketOutputStream::~wxSocketOutputStream() -{ -} - -size_t wxSocketOutputStream::OnSysWrite(const void *buffer, size_t size) -{ - size_t ret; - - ret = m_o_socket->Write((const char *)buffer, size).LastCount(); - switch (m_o_socket->LastError()) { - case GSOCK_NOERROR: - m_lasterror = wxStream_NOERROR; - break; - default: - m_lasterror = wxStream_READ_ERR; - break; - } - return ret; - -} - -// --------------------------------------------------------------------------- -// wxSocketInputStream -// --------------------------------------------------------------------------- - -wxSocketInputStream::wxSocketInputStream(wxSocketBase& s) - : m_i_socket(&s) -{ -} - -wxSocketInputStream::~wxSocketInputStream() -{ -} - -size_t wxSocketInputStream::OnSysRead(void *buffer, size_t size) -{ - size_t ret; - - ret = m_i_socket->Read((char *)buffer, size).LastCount(); - switch (m_i_socket->LastError()) { - case GSOCK_NOERROR: - m_lasterror = wxStream_NOERROR; - break; - default: - m_lasterror = wxStream_WRITE_ERR; - break; - } - return ret; -} - -// --------------------------------------------------------------------------- -// wxSocketStream -// --------------------------------------------------------------------------- - -wxSocketStream::wxSocketStream(wxSocketBase& s) - : wxSocketInputStream(s), wxSocketOutputStream(s) -{ -} - -wxSocketStream::~wxSocketStream() -{ -} - -#endif - // wxUSE_STREAMS && wxUSE_SOCKETS 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/sizer.cpp b/src/common/sizer.cpp deleted file mode 100644 index fcac0711a7..0000000000 --- a/src/common/sizer.cpp +++ /dev/null @@ -1,500 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sizer.cpp -// Purpose: provide new wxSizer class for layounting -// Author: Robert Roebling and Robin Dunn -// Modified by: -// Created: -// RCS-ID: $Id$ -// Copyright: (c) Robin Dunn, Dirk Holtwick and Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "sizer.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/sizer.h" -#include "wx/utils.h" -#include "wx/statbox.h" - -//--------------------------------------------------------------------------- -// wxSizerItem -//--------------------------------------------------------------------------- - -wxSizerItem::wxSizerItem( int width, int height, int option, int flag, int border ) -{ - m_window = (wxWindow *) NULL; - m_sizer = (wxSizer *) NULL; - m_option = option; - m_border = border; - m_flag = flag; - - // minimal size is the initial size - m_minSize.x = width; - m_minSize.y = height; - - // size is set directly - m_size = m_minSize; -} - -wxSizerItem::wxSizerItem( wxWindow *window, int option, int flag, int border ) -{ - m_window = window; - m_sizer = (wxSizer *) NULL; - m_option = option; - m_border = border; - m_flag = flag; - - // minimal size is the initial size - m_minSize = window->GetSize(); - - // size is calculated later - // m_size = ... -} - -wxSizerItem::wxSizerItem( wxSizer *sizer, int option, int flag, int border ) -{ - m_window = (wxWindow *) NULL; - m_sizer = sizer; - m_option = option; - m_border = border; - m_flag = flag; - - // minimal size is calculated later - // m_minSize = ... - - // size is calculated later - // m_size = ... -} - -wxSize wxSizerItem::GetSize() -{ - wxSize ret; - if (IsSizer()) - ret = m_sizer->GetSize(); - else - if (IsWindow()) - ret = m_window->GetSize(); - else ret = m_size; - - if (m_flag & wxWEST) - ret.x += m_border; - if (m_flag & wxEAST) - ret.x += m_border; - if (m_flag & wxNORTH) - ret.y += m_border; - if (m_flag & wxSOUTH) - ret.y += m_border; - - return ret; -} - -wxSize wxSizerItem::CalcMin() -{ - wxSize ret; - if (IsSizer()) - ret = m_sizer->CalcMin(); -/* - The minimum size of a window should be the - initial size, as saved in m_minSize, not the - current size. - - else - if (IsWindow()) - ret = m_window->GetSize(); -*/ - else ret = m_minSize; - - if (m_flag & wxWEST) - ret.x += m_border; - if (m_flag & wxEAST) - ret.x += m_border; - if (m_flag & wxNORTH) - ret.y += m_border; - if (m_flag & wxSOUTH) - ret.y += m_border; - - return ret; -} - -void wxSizerItem::SetDimension( wxPoint pos, wxSize size ) -{ - if (m_flag & wxWEST) - { - pos.x += m_border; - size.x -= m_border; - } - if (m_flag & wxEAST) - { - size.x -= m_border; - } - if (m_flag & wxNORTH) - { - pos.y += m_border; - size.y -= m_border; - } - if (m_flag & wxSOUTH) - { - size.y -= m_border; - } - - if (IsSizer()) - m_sizer->SetDimension( pos.x, pos.y, size.x, size.y ); - - if (IsWindow()) - m_window->SetSize( pos.x, pos.y, size.x, size.y ); - - m_size = size; -} - -bool wxSizerItem::IsWindow() -{ - return (m_window != NULL); -} - -bool wxSizerItem::IsSizer() -{ - return (m_sizer != NULL); -} - -bool wxSizerItem::IsSpacer() -{ - return (m_window == NULL) && (m_sizer == NULL); -} - -//--------------------------------------------------------------------------- -// wxSizer -//--------------------------------------------------------------------------- - -wxSizer::wxSizer() -{ - m_children.DeleteContents( TRUE ); -} - -wxSizer::~wxSizer() -{ -} - -void wxSizer::Add( wxWindow *window, int option, int flag, int border ) -{ - m_children.Append( new wxSizerItem( window, option, flag, border ) ); -} - -void wxSizer::Add( wxSizer *sizer, int option, int flag, int border ) -{ - m_children.Append( new wxSizerItem( sizer, option, flag, border ) ); -} - -void wxSizer::Add( int width, int height, int option, int flag, int border ) -{ - m_children.Append( new wxSizerItem( width, height, option, flag, border ) ); -} - -void wxSizer::Prepend( wxWindow *window, int option, int flag, int border ) -{ - m_children.Insert( new wxSizerItem( window, option, flag, border ) ); -} - -void wxSizer::Prepend( wxSizer *sizer, int option, int flag, int border ) -{ - m_children.Insert( new wxSizerItem( sizer, option, flag, border ) ); -} - -void wxSizer::Prepend( int width, int height, int option, int flag, int border ) -{ - m_children.Insert( new wxSizerItem( width, height, option, flag, border ) ); -} - -bool wxSizer::Remove( wxWindow *window ) -{ - wxASSERT( window ); - - wxNode *node = m_children.First(); - while (node) - { - wxSizerItem *item = (wxSizerItem*)node->Data(); - if (item->GetWindow() == window) - { - m_children.DeleteNode( node ); - return TRUE; - } - node = node->Next(); - } - - return FALSE; -} - -bool wxSizer::Remove( wxSizer *sizer ) -{ - wxASSERT( sizer ); - - wxNode *node = m_children.First(); - while (node) - { - wxSizerItem *item = (wxSizerItem*)node->Data(); - if (item->GetSizer() == sizer) - { - m_children.DeleteNode( node ); - return TRUE; - } - node = node->Next(); - } - - return FALSE; -} - -bool wxSizer::Remove( int pos ) -{ - wxNode *node = m_children.Nth( pos ); - if (!node) return FALSE; - - m_children.DeleteNode( node ); - - return TRUE; -} - -void wxSizer::Fit( wxWindow *window ) -{ - window->SetSize( GetMinWindowSize( window ) ); -} - -void wxSizer::Layout() -{ - CalcMin(); - RecalcSizes(); -} - -void wxSizer::SetSizeHints( wxWindow *window ) -{ - wxSize size( GetMinWindowSize( window ) ); - window->SetSizeHints( size.x, size.y ); -} - -wxSize wxSizer::GetMinWindowSize( wxWindow *window ) -{ - wxSize minSize( GetMinSize() ); - wxSize size( window->GetSize() ); - wxSize client_size( window->GetClientSize() ); - return wxSize( minSize.x+size.x-client_size.x, - minSize.y+size.y-client_size.y ); -} - -void wxSizer::SetDimension( int x, int y, int width, int height ) -{ - m_position.x = x; - m_position.y = y; - m_size.x = width; - m_size.y = height; - CalcMin(); - RecalcSizes(); -} - -//--------------------------------------------------------------------------- -// wxBoxSizer -//--------------------------------------------------------------------------- - -wxBoxSizer::wxBoxSizer( int orient ) -{ - m_orient = orient; -} - -void wxBoxSizer::RecalcSizes() -{ - if (m_children.GetCount() == 0) - return; - - int delta = 0; - int extra = 0; - if (m_stretchable) - { - if (m_orient == wxHORIZONTAL) - { - delta = (m_size.x - m_fixedWidth) / m_stretchable; - extra = (m_size.x - m_fixedWidth) % m_stretchable; - } - else - { - delta = (m_size.y - m_fixedHeight) / m_stretchable; - extra = (m_size.y - m_fixedHeight) % m_stretchable; - } - } - - wxPoint pt( m_position ); - - wxNode *node = m_children.GetFirst(); - while (node) - { - wxSizerItem *item = (wxSizerItem*) node->Data(); - - int weight = 1; - if (item->GetOption()) - weight = item->GetOption(); - - wxSize size( item->CalcMin() ); - - if (m_orient == wxVERTICAL) - { - long height = size.y; - if (item->GetOption()) - { - height = (delta * weight) + extra; - extra = 0; // only the first item will get the remainder as extra size - } - - wxPoint child_pos( pt ); - wxSize child_size( wxSize( size.x, height) ); - - if (item->GetFlag() & wxALIGN_RIGHT) - child_pos.x += m_size.x - size.x; - else if (item->GetFlag() & wxCENTER) - child_pos.x += (m_size.x - size.x) / 2; - else if (item->GetFlag() & wxEXPAND) - child_size.x = m_size.x; - - item->SetDimension( child_pos, child_size ); - - pt.y += height; - } - else - { - long width = size.x; - if (item->GetOption()) - { - width = (delta * weight) + extra; - extra = 0; // only the first item will get the remainder as extra size - } - - wxPoint child_pos( pt ); - wxSize child_size( wxSize(width, size.y) ); - - if (item->GetFlag() & wxALIGN_BOTTOM) - child_pos.y += m_size.y - size.y; - else if (item->GetFlag() & wxCENTER) - child_pos.y += (m_size.y - size.y) / 2; - else if (item->GetFlag() & wxEXPAND) - child_size.y = m_size.y; - - item->SetDimension( child_pos, child_size ); - - pt.x += width; - } - - node = node->Next(); - } -} - -wxSize wxBoxSizer::CalcMin() -{ - if (m_children.GetCount() == 0) - return wxSize(2,2); - - m_stretchable = 0; - m_minWidth = 0; - m_minHeight = 0; - m_fixedWidth = 0; - m_fixedHeight = 0; - - wxNode *node = m_children.GetFirst(); - while (node) - { - wxSizerItem *item = (wxSizerItem*) node->Data(); - - int weight = 1; - if (item->GetOption()) - weight = item->GetOption(); - - wxSize size( item->CalcMin() ); - - if (m_orient == wxHORIZONTAL) - { - m_minWidth += (size.x * weight); - m_minHeight = wxMax( m_minHeight, size.y ); - } - else - { - m_minHeight += (size.y * weight); - m_minWidth = wxMax( m_minWidth, size.x ); - } - - if (item->GetOption()) - { - m_stretchable += weight; - } - else - { - if (m_orient == wxVERTICAL) - { - m_fixedHeight += size.y; - m_fixedWidth = wxMax( m_fixedWidth, size.x ); - } - else - { - m_fixedWidth += size.x; - m_fixedHeight = wxMax( m_fixedHeight, size.y ); - } - } - - node = node->Next(); - } - - return wxSize( m_minWidth, m_minHeight ); -} - -//--------------------------------------------------------------------------- -// wxStaticBoxSizer -//--------------------------------------------------------------------------- - -wxStaticBoxSizer::wxStaticBoxSizer( wxStaticBox *box, int orient ) - : wxBoxSizer( orient ) -{ - wxASSERT_MSG( box, _T("wxStaticBoxSizer needs a static box") ); - - m_staticBox = box; -} - -void wxStaticBoxSizer::RecalcSizes() -{ - // this will have to be done platform by platform - // as there is no way to guess the thickness of - // a wxStaticBox border - int top_border = 15; - if (m_staticBox->GetLabel().IsEmpty()) top_border = 5; - int other_border = 5; - - m_staticBox->SetSize( m_position.x, m_position.y, m_size.x, m_size.y ); - - wxPoint old_pos( m_position ); - m_position.x += other_border; - m_position.y += top_border; - wxSize old_size( m_size ); - m_size.x -= 2*other_border; - m_size.y -= top_border + other_border; - - wxBoxSizer::RecalcSizes(); - - m_position = old_pos; - m_size = old_size; -} - -wxSize wxStaticBoxSizer::CalcMin() -{ - // this will have to be done platform by platform - // as there is no way to guess the thickness of - // a wxStaticBox border - int top_border = 15; - if (m_staticBox->GetLabel().IsEmpty()) top_border = 5; - int other_border = 5; - - wxSize ret( wxBoxSizer::CalcMin() ); - ret.x += 2*top_border; - ret.y += other_border + top_border; - - return ret; -} diff --git a/src/common/socket.cpp b/src/common/socket.cpp deleted file mode 100644 index ecb0781c7c..0000000000 --- a/src/common/socket.cpp +++ /dev/null @@ -1,970 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: socket.cpp -// Purpose: Socket handler classes -// Authors: Guilhem Lavaux -// Created: April 1997 -// Updated: July 1999 -// Copyright: (C) 1999, 1998, 1997, Guilhem Lavaux -// RCS_ID: $Id$ -// License: see wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "socket.h" -#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 -#include - -#include -#include -#include - -///////////////////////////////////////////////////////////////////////////// -// wxSocket headers -///////////////////////////////////////////////////////////////////////////// -#include -#include -#include - -// -------------------------------------------------------------- -// ClassInfos -// -------------------------------------------------------------- -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxSocketBase, wxObject) -IMPLEMENT_CLASS(wxSocketServer, wxSocketBase) -IMPLEMENT_CLASS(wxSocketClient, wxSocketBase) -IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent) -#endif - -class wxSocketState : public wxObject { -public: - bool notify_state; - GSocketEventFlags evt_notify_state; - wxSocketBase::wxSockFlags socket_flags; - wxSocketBase::wxSockCbk c_callback; - char *c_callback_data; - -public: - wxSocketState() : wxObject() {} -}; - -// -------------------------------------------------------------- -// --------- wxSocketBase CONSTRUCTOR --------------------------- -// -------------------------------------------------------------- -wxSocketBase::wxSocketBase(wxSocketBase::wxSockFlags _flags, - wxSocketBase::wxSockType _type) : - wxEvtHandler(), - m_socket(NULL), m_flags(_flags), m_type(_type), - m_neededreq(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG), - m_lcount(0), m_timeout(600), - m_unread(NULL), m_unrd_size(0), m_unrd_cur(0), - m_cbk(NULL), m_cdata(NULL), - m_connected(FALSE), m_notify_state(FALSE), m_id(-1), - m_defering(NO_DEFER), - m_states() -{ -} - -wxSocketBase::wxSocketBase() : - wxEvtHandler(), - m_socket(NULL), m_flags(SPEED | WAITALL), m_type(SOCK_UNINIT), - m_neededreq(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG), - m_lcount(0), m_timeout(600), - m_unread(NULL), m_unrd_size(0), m_unrd_cur(0), - m_cbk(NULL), m_cdata(NULL), - m_connected(FALSE), m_notify_state(FALSE), m_id(-1), - m_defering(NO_DEFER), - m_states() -{ -} - -// -------------------------------------------------------------- -// wxSocketBase destructor -// -------------------------------------------------------------- - -wxSocketBase::~wxSocketBase() -{ - if (m_unread) - free(m_unread); - - // At last, close the file descriptor. - Close(); - - if (m_socket) - GSocket_destroy(m_socket); -} - -bool wxSocketBase::Close() -{ - if (m_socket) - { - if (m_notify_state == TRUE) - Notify(FALSE); - - // Shutdown the connection. - GSocket_Shutdown(m_socket); - m_connected = FALSE; - } - - return TRUE; -} - -// -------------------------------------------------------------- -// wxSocketBase base IO function -// -------------------------------------------------------------- -class _wxSocketInternalTimer: public wxTimer { - public: - int *m_state; - unsigned long m_new_val; - - void Notify() - { - *m_state = m_new_val; // Change the value - } -}; - -int wxSocketBase::DeferRead(char *buffer, size_t nbytes) -{ - GSocketEventFlags old_event_flags; - bool old_notify_state; - // Timer for timeout - _wxSocketInternalTimer timer; - - wxASSERT(m_defering == NO_DEFER); - - // Set the defering mode to READ. - m_defering = DEFER_READ; - - // Save the old state. - old_event_flags = NeededReq(); - old_notify_state = m_notify_state; - - // Set the new async flag. - SetNotify(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG); - Notify(TRUE); - - // Set the current buffer. - m_defer_buffer = buffer; - m_defer_nbytes = nbytes; - m_defer_timer = &timer; - - timer.m_state = (int *)&m_defer_buffer; - timer.m_new_val = 0; - - timer.Start(m_timeout * 1000, FALSE); - - // Wait for buffer completion. - while (m_defer_buffer != NULL) - wxYield(); - - timer.Stop(); - - // Restore the old state. - Notify(old_notify_state); - SetNotify(old_event_flags); - - // Disable defering mode. - m_defering = NO_DEFER; - m_defer_timer = NULL; - - // Return the number of bytes read from the socket. - return nbytes-m_defer_nbytes; -} - -wxSocketBase& wxSocketBase::Read(char* buffer, size_t nbytes) -{ - int ret = 1; - - m_lcount = GetPushback(buffer, nbytes, FALSE); - nbytes -= m_lcount; - buffer += m_lcount; - - if (!m_connected) - return *this; - - // 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; - } - - if ((m_flags & SPEED) != 0) { - - if ((m_flags & WAITALL) != 0) { - while (ret > 0 && nbytes > 0) { - ret = GSocket_Read(m_socket, buffer, nbytes); - m_lcount += ret; - buffer += ret; - nbytes -= ret; - } - // In case the last call was an error ... - if (ret < 0) - m_lcount ++; - } else { - ret = GSocket_Read(m_socket, buffer, nbytes); - if (ret > 0) - m_lcount += ret; - } - - } else { - ret = DeferRead(buffer, nbytes); - - if (ret > 0) - m_lcount += ret; - } - - 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 - if (sig != 0xdeadfeed) - wxLogDebug(_T("Warning: invalid signature returned to ReadMsg\n")); - - return *this; -} - -wxSocketBase& wxSocketBase::Peek(char* buffer, size_t nbytes) -{ - Read(buffer, nbytes); - CreatePushbackAfter(buffer, nbytes); - - return *this; -} - -int wxSocketBase::DeferWrite(const char *buffer, size_t nbytes) -{ - GSocketEventFlags old_event_flags; - bool old_notify_state; - // Timer for timeout - _wxSocketInternalTimer timer; - - wxASSERT(m_defering == NO_DEFER); - - m_defering = DEFER_WRITE; - - // Save the old state - old_event_flags = NeededReq(); - old_notify_state = m_notify_state; - - SetNotify(GSOCK_OUTPUT_FLAG | GSOCK_LOST_FLAG); - Notify(TRUE); - - // Set the current buffer - m_defer_buffer = (char *)buffer; - m_defer_nbytes = nbytes; - - // Start timer - timer.m_state = (int *)&m_defer_buffer; - timer.m_new_val = 0; - - m_defer_timer = &timer; - timer.Start(m_timeout * 1000, FALSE); - - while (m_defer_buffer != NULL) - wxYield(); - - // Stop timer - m_defer_timer = NULL; - timer.Stop(); - - // Restore the old state - Notify(old_notify_state); - SetNotify(old_event_flags); - - m_defering = NO_DEFER; - - return nbytes-m_defer_nbytes; -} - -wxSocketBase& wxSocketBase::Write(const char *buffer, size_t nbytes) -{ - int ret; - - if ((m_flags & SPEED) != 0) - ret = GSocket_Write(m_socket, buffer, nbytes); - else - ret = DeferWrite(buffer, nbytes); - - if (ret != -1) - m_lcount += ret; - - 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 -{ - if (!m_socket) - return FALSE; - - return (GSocket_DataAvailable(m_socket)); -} - -void wxSocketBase::DoDefer(GSocketEvent req_evt) -{ - int ret; - - if (req_evt == GSOCK_LOST) { - Close(); - m_defer_buffer = NULL; - return; - } - switch (m_defering) { - case DEFER_READ: - ret = GSocket_Read(m_socket, m_defer_buffer, m_defer_nbytes); - break; - case DEFER_WRITE: - ret = GSocket_Write(m_socket, m_defer_buffer, m_defer_nbytes); - break; - default: - ret = -1; - break; - } - - m_defer_nbytes -= ret; - - if (ret < 0) - m_defer_nbytes++; - - // If we are waiting for all bytes to be acquired, keep the defering modei - // enabled. - if ((m_flags & WAITALL) == 0 || m_defer_nbytes == 0 || ret < 0) { - m_defer_buffer = NULL; - Notify(FALSE); - } else { - m_defer_buffer += ret; - m_defer_timer->Start(m_timeout * 1000, FALSE); - } -} - -// --------------------------------------------------------------------- -// --------- 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(NOWAIT | SPEED); - - while (recv_size == MAX_BUFSIZE) - { - recv_size = Read(my_data, MAX_BUFSIZE).LastCount(); - } - - RestoreState(); - delete [] my_data; - -#undef MAX_BUFSIZE -} - -// -------------------------------------------------------------- -// wxSocketBase socket info functions -// -------------------------------------------------------------- - -bool wxSocketBase::GetPeer(wxSockAddress& addr_man) const -{ - GAddress *peer; - - if (!m_socket) - return FALSE; - - peer = GSocket_GetPeer(m_socket); - addr_man.SetAddress(peer); - GAddress_destroy(peer); - - return TRUE; -} - -bool wxSocketBase::GetLocal(wxSockAddress& addr_man) const -{ - GAddress *local; - - if (!m_socket) - return FALSE; - - local = GSocket_GetLocal(m_socket); - addr_man.SetAddress(local); - GAddress_destroy(local); - - return TRUE; -} - -// -------------------------------------------------------------- -// wxSocketBase wait functions -// -------------------------------------------------------------- - -void wxSocketBase::SaveState() -{ - wxSocketState *state; - - state = new wxSocketState(); - - 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(state); -} - -void wxSocketBase::RestoreState() -{ - wxNode *node; - wxSocketState *state; - - node = m_states.Last(); - if (!node) - return; - - state = (wxSocketState *)node->Data(); - - SetFlags(state->socket_flags); - m_neededreq = state->evt_notify_state; - 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 ------------------------ -// -------------------------------------------------------------- - -static void wx_socket_wait(GSocket *socket, GSocketEvent event, char *cdata) -{ - int *state = (int *)cdata; - - *state = event; -} - -bool wxSocketBase::_Wait(long seconds, long milliseconds, int type) -{ - bool old_notify_state = m_notify_state; - int state = -1; - _wxSocketInternalTimer timer; - - if (!m_connected || !m_socket) - return FALSE; - - // Set the variable to change - timer.m_state = &state; - timer.m_new_val = GSOCK_MAX_EVENT; - - // Disable the previous handler - Notify(FALSE); - - // Set the timeout - timer.Start(seconds * 1000 + milliseconds, TRUE); - GSocket_SetCallback(m_socket, type, wx_socket_wait, (char *)&state); - - while (state == -1) - wxYield(); - - GSocket_UnsetCallback(m_socket, type); - timer.Stop(); - - // Notify will restore automatically the old GSocket flags - Notify(old_notify_state); - - return (state != GSOCK_MAX_EVENT); -} - -bool wxSocketBase::Wait(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, GSOCK_INPUT_FLAG | GSOCK_OUTPUT_FLAG | - GSOCK_CONNECTION_FLAG | GSOCK_LOST_FLAG); -} - -bool wxSocketBase::WaitForRead(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG); -} - -bool wxSocketBase::WaitForWrite(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, GSOCK_OUTPUT_FLAG | GSOCK_LOST_FLAG); -} - -bool wxSocketBase::WaitForLost(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, GSOCK_LOST_FLAG); -} - -// -------------------------------------------------------------- -// --------- wxSocketBase callback management ------------------- -// -------------------------------------------------------------- - -GSocketEventFlags wxSocketBase::EventToNotify(GSocketEvent evt) -{ - switch (evt) - { - case GSOCK_INPUT: - return GSOCK_INPUT_FLAG; - case GSOCK_OUTPUT: - return GSOCK_OUTPUT_FLAG; - case GSOCK_CONNECTION: - return GSOCK_CONNECTION_FLAG; - case GSOCK_LOST: - return GSOCK_LOST_FLAG; - default: - return 0; - } - return 0; -} - -void wxSocketBase::SetFlags(wxSockFlags _flags) -{ - m_flags = _flags; -} - -wxSocketBase::wxSockFlags wxSocketBase::GetFlags() const -{ - return m_flags; -} - -void wxSocketBase::SetNotify(GSocketEventFlags flags) -{ - /* Check if server */ - if (m_type != SOCK_SERVER) - flags &= ~GSOCK_CONNECTION_FLAG; - - m_neededreq = flags; - if (m_neededreq == 0) - Notify(FALSE); - else - Notify(m_notify_state); -} - -// -------------------------------------------------------------- -// Automatic notifier -// -------------------------------------------------------------- - -static void wx_socket_fallback(GSocket *socket, GSocketEvent event, char *cdata) -{ - wxSocketBase *sckobj = (wxSocketBase *)cdata; - - sckobj->OnRequest(event); -} - -void wxSocketBase::Notify(bool notify) -{ - m_notify_state = notify; - if (!m_socket) - return; - - GSocket_UnsetCallback(m_socket, GSOCK_INPUT_FLAG | GSOCK_OUTPUT_FLAG | - GSOCK_LOST_FLAG | GSOCK_CONNECTION_FLAG); - if (!notify) - return; - - GSocket_SetCallback(m_socket, m_neededreq, wx_socket_fallback, (char *)this); -} - -void wxSocketBase::OnRequest(GSocketEvent req_evt) -{ - wxSocketEvent event(m_id); - GSocketEventFlags notify = EventToNotify(req_evt); - - if (m_defering != NO_DEFER) { - DoDefer(req_evt); - return; - } - - if ((m_neededreq & notify) == notify) { - event.m_socket = this; - event.m_skevt = req_evt; - ProcessEvent(event); - OldOnNotify(req_evt); - } - - if (req_evt == GSOCK_LOST) - Close(); -} - -void wxSocketBase::OldOnNotify(GSocketEvent 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) -{ - if (m_unread == NULL) - m_unread = (char *)malloc(size); - else { - char *tmp; - - tmp = (char *)malloc(m_unrd_size + size); - memcpy(tmp+size, m_unread, m_unrd_size); - free(m_unread); - - m_unread = tmp; - } - - m_unrd_size += size; - - memcpy(m_unread, buffer, size); -} - -size_t wxSocketBase::GetPushback(char *buffer, size_t size, bool peek) -{ - if (!m_unrd_size) - return 0; - - if (size > (m_unrd_size-m_unrd_cur)) - size = m_unrd_size-m_unrd_cur; - memcpy(buffer, (m_unread+m_unrd_cur), size); - - if (!peek) { - m_unrd_cur += size; - if (m_unrd_size == m_unrd_cur) { - free(m_unread); - m_unread = NULL; - m_unrd_size = 0; - m_unrd_cur = 0; - } - } - - return size; -} - -// -------------------------------------------------------------- -// wxSocketServer -// -------------------------------------------------------------- - -wxSocketServer::wxSocketServer(wxSockAddress& addr_man, - wxSockFlags flags) : - wxSocketBase(flags, SOCK_SERVER) -{ - m_socket = GSocket_new(); - - if (!m_socket) - return; - - GSocket_SetLocal(m_socket, addr_man.GetAddress()); - if (GSocket_SetServer(m_socket) != GSOCK_NOERROR) { - GSocket_destroy(m_socket); - m_socket = NULL; - return; - } - - Notify(TRUE); -} - -// -------------------------------------------------------------- -// wxSocketServer Accept -// -------------------------------------------------------------- - -bool wxSocketServer::AcceptWith(wxSocketBase& sock) -{ - GSocket *child_socket; - - child_socket = GSocket_WaitConnection(m_socket); - - sock.m_type = SOCK_INTERNAL; - sock.m_socket = child_socket; - sock.m_connected = TRUE; - - return TRUE; -} - -wxSocketBase *wxSocketServer::Accept() -{ - wxSocketBase* sock = new wxSocketBase(); - - sock->SetFlags((wxSockFlags)m_flags); - - if (!AcceptWith(*sock)) - return NULL; - - 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) ) -{ - if (IsConnected()) - Close(); - - // This should never happen. - if (m_socket) - GSocket_destroy(m_socket); - - // Initializes all socket stuff ... - // -------------------------------- - m_socket = GSocket_new(); - - if (!m_socket) - return FALSE; - - m_connected = FALSE; - - // Update the flags of m_socket. - SetFlags(m_flags); - GSocket_SetPeer(m_socket, addr_man.GetAddress()); - if (GSocket_Connect(m_socket, GSOCK_STREAMED) != GSOCK_NOERROR) - return FALSE; - - // Enables bg events. - // ------------------ - Notify(TRUE); - - m_connected = TRUE; - return TRUE; -} - -bool wxSocketClient::WaitOnConnect(long seconds, long microseconds) -{ - int ret = _Wait(seconds, microseconds, GSOCK_CONNECTION_FLAG | GSOCK_LOST_FLAG); - - if (ret) - m_connected = TRUE; - - return m_connected; -} - -void wxSocketClient::OnRequest(GSocketEvent evt) -{ - if (evt == GSOCK_CONNECTION) - { - if (m_connected) - { - m_neededreq &= ~GSOCK_CONNECTION_FLAG; - return; - } - m_connected = TRUE; - return; - } - wxSocketBase::OnRequest(evt); -} - -// -------------------------------------------------------------- -// wxSocketEvent -// -------------------------------------------------------------- - -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; -} - -// -------------------------------------------------------------------------- -// wxSocketModule -// -------------------------------------------------------------------------- -class WXDLLEXPORT wxSocketModule: public wxModule { - DECLARE_DYNAMIC_CLASS(wxSocketModule) - public: - bool OnInit() { - return GSocket_Init(); - } - void OnExit() { - GSocket_Cleanup(); - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxSocketModule, wxModule) - -#endif - // wxUSE_SOCKETS diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp deleted file mode 100644 index e61b9fd56c..0000000000 --- a/src/common/strconv.cpp +++ /dev/null @@ -1,463 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: strconv.cpp -// Purpose: Unicode conversion classes -// Author: Ove Kaaven, Robert Roebling, Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1999 Ove Kaaven, Robert Roebling, Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "strconv.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include - -#ifdef __SALFORDC__ - #include -#endif - -#include "wx/debug.h" -#include "wx/strconv.h" - -//---------------------------------------------------------------------------- -// wxConvCurrent -//---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(wxMBConv *) wxConvCurrent = &wxConvLibc; - -#if !wxUSE_WCHAR_T -//---------------------------------------------------------------------------- -// stand-ins in absence of wchar_t -//---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(wxMBConv) wxConvLibc, wxConvFile; - -#else - -//---------------------------------------------------------------------------- -// wxMBConv -//---------------------------------------------------------------------------- - -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); -} - -const wxWCharBuffer wxMBConv::cMB2WC(const char *psz) const -{ - if (psz) - { - size_t nLen = MB2WC((wchar_t *) NULL, psz, 0); - wxWCharBuffer buf(nLen); - MB2WC((wchar_t *)(const wchar_t *) 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((char *)(const char *) buf, psz, nLen); - return buf; - } - else - return wxCharBuffer((char *) NULL); -} - -//---------------------------------------------------------------------------- -// 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); -} - -#ifdef __WXGTK12__ - -//---------------------------------------------------------------------------- -// standard gdk conversion -//---------------------------------------------------------------------------- - -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) && (wxString(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 - - diff --git a/src/common/stream.cpp b/src/common/stream.cpp deleted file mode 100644 index 76a0b3fdbf..0000000000 --- a/src/common/stream.cpp +++ /dev/null @@ -1,815 +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" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/defs.h" -#endif - -#if wxUSE_STREAMS - -#include -#include -#include -#include - -#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_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_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; -} - -wxStreamBuffer::~wxStreamBuffer() -{ - if (m_destroybuf) - wxDELETEA(m_buffer_start); - if (m_destroystream) - delete m_stream; -} - -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; -} - -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; - 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; - wxInputStream *in_stream; - - if (m_mode == read) - return 0; - - in_stream = (wxInputStream *)sbuf->Stream(); - - while (bytes_count == BUF_TEMP_SIZE) { - b_count2 = sbuf->Read(buf, bytes_count); - bytes_count = Write(buf, b_count2); - if (b_count2 > bytes_count) - in_stream->Ungetch(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) ) { - // We must take into account the fact that we have read something - // previously. - ret_off = m_stream->OnSysSeek(diff-last_access, 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_wback(NULL), m_wbacksize(0), m_wbackcur(0) -{ -} - -wxInputStream::~wxInputStream() -{ - if (m_wback) - free(m_wback); -} - -char *wxInputStream::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 wxInputStream::GetWBack(char *buf, size_t bsize) -{ - size_t s_toget = m_wbacksize-m_wbackcur; - - if (!m_wback) - return 0; - - 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; -} - -size_t wxInputStream::Ungetch(const void *buf, size_t bufsize) -{ - char *ptrback; - - ptrback = AllocSpaceWBack(bufsize); - if (!ptrback) - return 0; - - memcpy(ptrback, buf, bufsize); - return bufsize; -} - -bool wxInputStream::Ungetch(char c) -{ - char *ptrback; - - ptrback = AllocSpaceWBack(1); - if (!ptrback) - return FALSE; - - *ptrback = c; - return TRUE; -} - -char wxInputStream::GetC() -{ - char c; - Read(&c, 1); - return c; -} - -wxInputStream& wxInputStream::Read(void *buffer, size_t size) -{ - size_t retsize; - char *buf = (char *)buffer; - - retsize = GetWBack(buf, size); - if (retsize == size) { - m_lastcount = size; - m_lasterror = wxStream_NOERROR; - return *this; - } - size -= retsize; - buf += retsize; - - m_lastcount = OnSysRead(buf, size); - return *this; -} - -char wxInputStream::Peek() -{ - char c; - - Read(&c, 1); - if (m_lasterror == wxStream_NOERROR) { - Ungetch(c); - return c; - } - return 0; -} - -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 OnSysSeek(pos, mode); -} - -off_t wxInputStream::TellI() const -{ - return OnSysTell(); -} - -// -------------------- -// Overloaded operators -// -------------------- - -#if wxUSE_SERIAL -wxInputStream& wxInputStream::operator>>(wxObject *& obj) -{ - wxObjectInputStream obj_s(*this); - obj = obj_s.LoadObject(); - return *this; -} -#endif - - -// ---------------------------------------------------------------------------- -// wxOutputStream -// ---------------------------------------------------------------------------- -wxOutputStream::wxOutputStream() - : wxStreamBase() -{ -} - -wxOutputStream::~wxOutputStream() -{ -} - -wxOutputStream& wxOutputStream::Write(const void *buffer, size_t size) -{ - m_lastcount = OnSysWrite(buffer, size); - return *this; -} - -wxOutputStream& wxOutputStream::Write(wxInputStream& stream_in) -{ - stream_in.Read(*this); - return *this; -} - -off_t wxOutputStream::TellO() const -{ - return OnSysTell(); -} - -off_t wxOutputStream::SeekO(off_t pos, wxSeekMode mode) -{ - return OnSysSeek(pos, mode); -} - -void wxOutputStream::Sync() -{ -} - -#if wxUSE_SERIAL -wxOutputStream& wxOutputStream::operator<<(wxObject& obj) -{ - wxObjectOutputStream obj_s(*this); - obj_s.SaveObject(obj); - return *this; -} -#endif - -// ---------------------------------------------------------------------------- -// wxFilterInputStream -// ---------------------------------------------------------------------------- -wxFilterInputStream::wxFilterInputStream() - : wxInputStream() -{ -} - -wxFilterInputStream::wxFilterInputStream(wxInputStream& stream) - : wxInputStream() -{ - m_parent_i_stream = &stream; -} - -wxFilterInputStream::~wxFilterInputStream() -{ -} - -// ---------------------------------------------------------------------------- -// wxFilterOutputStream -// ---------------------------------------------------------------------------- -wxFilterOutputStream::wxFilterOutputStream() - : wxOutputStream() -{ -} - -wxFilterOutputStream::wxFilterOutputStream(wxOutputStream& stream) - : wxOutputStream() -{ - m_parent_o_stream = &stream; -} - -wxFilterOutputStream::~wxFilterOutputStream() -{ -} - -// ---------------------------------------------------------------------------- -// wxBufferedInputStream -// ---------------------------------------------------------------------------- -wxBufferedInputStream::wxBufferedInputStream(wxInputStream& s) - : wxFilterInputStream(s) -{ - m_i_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::read); - m_i_streambuf->SetBufferIO(1024); -} - -wxBufferedInputStream::~wxBufferedInputStream() -{ - delete m_i_streambuf; -} - -wxInputStream& wxBufferedInputStream::Read(void *buffer, size_t size) -{ - size_t retsize; - char *buf = (char *)buffer; - - retsize = GetWBack(buf, size); - m_lastcount = retsize; - if (retsize == size) { - m_lasterror = wxStream_NOERROR; - return *this; - } - size -= retsize; - buf += retsize; - - m_i_streambuf->Read(buf, size); - - return *this; -} - -off_t wxBufferedInputStream::SeekI(off_t pos, wxSeekMode mode) -{ - return m_i_streambuf->Seek(pos, mode); -} - -off_t wxBufferedInputStream::TellI() const -{ - return m_i_streambuf->Tell(); -} - -size_t wxBufferedInputStream::OnSysRead(void *buffer, size_t bufsize) -{ - return m_parent_i_stream->Read(buffer, bufsize).LastRead(); -} - -off_t wxBufferedInputStream::OnSysSeek(off_t seek, wxSeekMode mode) -{ - return m_parent_i_stream->SeekI(seek, mode); -} - -off_t wxBufferedInputStream::OnSysTell() const -{ - return m_parent_i_stream->TellI(); -} - -// ---------------------------------------------------------------------------- -// wxBufferedOutputStream -// ---------------------------------------------------------------------------- - -wxBufferedOutputStream::wxBufferedOutputStream(wxOutputStream& s) - : wxFilterOutputStream(s) -{ - m_o_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::write); - m_o_streambuf->SetBufferIO(1024); -} - -wxBufferedOutputStream::~wxBufferedOutputStream() -{ - delete m_o_streambuf; -} - -wxOutputStream& wxBufferedOutputStream::Write(const void *buffer, size_t size) -{ - m_lastcount = 0; - m_o_streambuf->Write(buffer, size); - return *this; -} - -off_t wxBufferedOutputStream::SeekO(off_t pos, wxSeekMode mode) -{ - return m_o_streambuf->Seek(pos, mode); -} - -off_t wxBufferedOutputStream::TellO() const -{ - return m_o_streambuf->Tell(); -} - -void wxBufferedOutputStream::Sync() -{ - m_o_streambuf->FlushBuffer(); - m_parent_o_stream->Sync(); -} - -size_t wxBufferedOutputStream::OnSysWrite(const void *buffer, size_t bufsize) -{ - return m_parent_o_stream->Write(buffer, bufsize).LastWrite(); -} - -off_t wxBufferedOutputStream::OnSysSeek(off_t seek, wxSeekMode mode) -{ - return m_parent_o_stream->SeekO(seek, mode); -} - -off_t wxBufferedOutputStream::OnSysTell() const -{ - return m_parent_o_stream->TellO(); -} - -// ---------------------------------------------------------------------------- -// Some IOManip function -// ---------------------------------------------------------------------------- - -wxOutputStream& wxEndL(wxOutputStream& stream) -{ -#ifdef __MSW__ - return stream.Write("\r\n", 2); -#else -#ifdef __WXMAC__ - return stream.Write("\r", 1); -#else - return stream.Write("\n", 1); -#endif -#endif -} - -#endif - // wxUSE_STREAMS diff --git a/src/common/string.cpp b/src/common/string.cpp deleted file mode 100644 index b7221a429a..0000000000 --- a/src/common/string.cpp +++ /dev/null @@ -1,1935 +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 - -#if wxUSE_UNICODE -#undef wxUSE_EXPERIMENTAL_PRINTF -#define wxUSE_EXPERIMENTAL_PRINTF 1 -#endif - -// 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 -// ---------------------------------------------------------------------------- - -#if !defined(__WXSW__) && wxUSE_UNICODE - #ifdef wxUSE_EXPERIMENTAL_PRINTF - #undef wxUSE_EXPERIMENTAL_PRINTF - #endif - #define wxUSE_EXPERIMENTAL_PRINTF 1 -#endif - -// 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 -// ---------------------------------------------------------------------------- - -#if defined(wxSTD_STRING_COMPATIBILITY) && wxUSE_STD_IOSTREAM - -// 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 -#if defined(__VISAGECPP__) - int array_size = ARRAY_DEFAULT_INITIAL_SIZE; - wxASSERT( array_size != 0 ); -#else - wxASSERT( ARRAY_DEFAULT_INITIAL_SIZE != 0 ); -#endif - - // 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 LINKAGEMODE 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); -} - 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 6feed67f31..0000000000 --- a/src/common/tbarsmpl.cpp +++ /dev/null @@ -1,463 +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/settings.h" -#include "wx/window.h" -#include "wx/dcclient.h" -#include "wx/dcmemory.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/textcmn.cpp b/src/common/textcmn.cpp deleted file mode 100644 index 63408d24d4..0000000000 --- a/src/common/textcmn.cpp +++ /dev/null @@ -1,195 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: common/textcmn.cpp -// Purpose: implementation of platform-independent functions of wxTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 13.07.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ -#ifdef __GNUG__ - #pragma implementation "textctrlbase.h" -#endif - -// for compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/intl.h" - #include "wx/log.h" - #include "wx/textctrl.h" -#endif // WX_PRECOMP - -#include "wx/ffile.h" - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// we don't have any objects of type wxTextCtrlBase in the program, only -// wxTextCtrl, so this cast is safe -#define TEXTCTRL(ptr) ((wxTextCtrl *)(ptr)) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// ctor -// ---------------------------------------------------------------------------- - -wxTextCtrlBase::wxTextCtrlBase() -{ -#ifndef NO_TEXT_WINDOW_STREAM - if (allocate()) - setp(base(),ebuf()); -#endif // NO_TEXT_WINDOW_STREAM -} - -// ---------------------------------------------------------------------------- -// file IO functions -// ---------------------------------------------------------------------------- - -bool wxTextCtrlBase::LoadFile(const wxString& filename) -{ - wxFFile file(filename); - if ( file.IsOpened() ) - { - wxString text; - if ( file.ReadAll(&text) ) - { - SetValue(text); - - DiscardEdits(); - - m_filename = filename; - - return TRUE; - } - } - - wxLogError(_("File couldn't be loaded.")); - - return FALSE; -} - -bool wxTextCtrlBase::SaveFile(const wxString& filename) -{ - wxString filenameToUse = filename.IsEmpty() ? m_filename : filename; - if ( !filenameToUse ) - { - // what kind of message to give? is it an error or a program bug? - wxLogDebug(_T("Can't save textctrl to file without filename.")); - - return FALSE; - } - - wxFFile file(filename, "w"); - if ( file.IsOpened() && file.Write(GetValue()) ) - { - // it's not modified any longer - DiscardEdits(); - - m_filename = filename; - - return TRUE; - } - - wxLogError(_("The text couldn't be saved.")); - - return FALSE; -} - -// ---------------------------------------------------------------------------- -// stream-like insertion operator -// ---------------------------------------------------------------------------- - -wxTextCtrl& wxTextCtrlBase::operator<<(const wxString& s) -{ - AppendText(s); - return *TEXTCTRL(this); -} - -wxTextCtrl& wxTextCtrlBase::operator<<(float f) -{ - wxString str; - str.Printf(_T("%.2f"), f); - AppendText(str); - return *TEXTCTRL(this); -} - -wxTextCtrl& wxTextCtrlBase::operator<<(double d) -{ - wxString str; - str.Printf(_T("%.2f"), d); - AppendText(str); - return *TEXTCTRL(this); -} - -wxTextCtrl& wxTextCtrlBase::operator<<(int i) -{ - wxString str; - str.Printf(_T("%d"), i); - AppendText(str); - return *TEXTCTRL(this); -} - -wxTextCtrl& wxTextCtrlBase::operator<<(long i) -{ - wxString str; - str.Printf(_T("%ld"), i); - AppendText(str); - return *TEXTCTRL(this); -} - -wxTextCtrl& wxTextCtrlBase::operator<<(const wxChar c) -{ - return operator<<(wxString(c)); -} - -// ---------------------------------------------------------------------------- -// streambuf methods implementation -// ---------------------------------------------------------------------------- - -#ifndef NO_TEXT_WINDOW_STREAM - -int wxTextCtrlBase::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 wxTextCtrlBase::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 wxTextCtrlBase::underflow() -{ - return EOF; -} - -#endif // NO_TEXT_WINDOW_STREAM - diff --git a/src/common/textfile.cpp b/src/common/textfile.cpp deleted file mode 100644 index 174cde4d30..0000000000 --- a/src/common/textfile.cpp +++ /dev/null @@ -1,330 +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__ - -#if !wxUSE_FILE - #undef wxUSE_TEXTFILE - #define wxUSE_TEXTFILE 0 -#endif // wxUSE_FILE - -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/intl.h" - #include "wx/file.h" - #include "wx/log.h" -#endif - -#include "wx/textfile.h" - -// ============================================================================ -// wxTextFile class implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// static methods (always compiled in) -// ---------------------------------------------------------------------------- - -// 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; -#elif defined(__WXPM__) - wxTextFileType_Os2; -#else - wxTextFileType_None; - #error "wxTextFile: unsupported platform." -#endif - -const wxChar *wxTextFile::GetEOL(wxTextFileType type) -{ - switch ( type ) { - default: - wxFAIL_MSG(_T("bad file type in wxTextFile::GetEOL.")); - // fall through nevertheless - we must return something... - - case wxTextFileType_None: return _T(""); - case wxTextFileType_Unix: return _T("\n"); - case wxTextFileType_Dos: return _T("\r\n"); - case wxTextFileType_Mac: return _T("\r"); - } -} - - -wxString wxTextFile::Translate(const wxString& text, wxTextFileType type) -{ - // don't do anything if there is nothing to do - if ( type == wxTextFileType_None ) - return text; - - wxString eol = GetEOL(type), result; - - // optimization: we know that the length of the new string will be about - // the same as the length of the old one, so prealloc memory to aviod - // unnecessary relocations - result.Alloc(text.Len()); - - wxChar chLast = 0; - for ( const wxChar *pc = text.c_str(); *pc; pc++ ) - { - wxChar ch = *pc; - switch ( ch ) { - case '\n': - // Dos/Unix line termination - result += eol; - chLast = '\n'; - break; - - case '\r': - if ( chLast == '\r' ) { - // Mac empty line - result += eol; - } - else - chLast = '\r'; - break; - - default: - if ( chLast == '\r' ) { - // Mac line termination - result += eol; - chLast = ch; - } - else { - // add to the current line - result += ch; - } - } - } - - return result; -} - -#if wxUSE_TEXTFILE - -// ---------------------------------------------------------------------------- -// ctors & dtor -// ---------------------------------------------------------------------------- - -wxTextFile::wxTextFile(const wxString& strFile) : m_strFile(strFile) -{ - m_nCurLine = 0; - m_isOpened = FALSE; -} - -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 - m_isOpened = Read(); - - m_file.Close(); - - return m_isOpened; -} - -// 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 (FIXME 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) - 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; - m_isOpened = FALSE; - - 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(); -} - -#endif // wxUSE_TEXTFILE - diff --git a/src/common/time.cpp b/src/common/time.cpp deleted file mode 100644 index e97789f43c..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 && wxUSE_STD_IOSTREAM - #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 862c1c05f1..0000000000 --- a/src/common/timercmn.cpp +++ /dev/null @@ -1,235 +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__) || defined(__EMX__) -#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(__EMX__) || defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || \ - (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__) - struct timeval tp; -#if defined(__EMX__) || 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__) - time_t t0; - struct tm *tp; - time(&t0); - tp = localtime(&t0); - *timeZone = _timezone; // tp->tm_gmtoff; // ??? - *dstObserved = tp->tm_isdst; -#elif 0 - /* HH: This code apparently was needed by very old Mingw-gcc versions - * Modern mingw's don't need it. Since old gcc isn't supported anyway, - * I think this stuff can go */ - 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(__WXPM__)) \ - && !defined(__GNUWIN32__) && !defined(__MWERKS__) ) -# if defined(__BORLANDC__) - /* Borland uses underscores */ - *timeZone = _timezone; - *dstObserved = _daylight; -# elif defined(__SALFORDC__) - *timeZone = _timezone; - *dstObserved = daylight; -# elif defined(__VISAGECPP__) - *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 6b5d18e178..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 ( size_t i = 0; i < str.Length(); i++ ) - { - wxChar c = str[i]; - - for ( size_t 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(pos+1, p_string.Length()); - } - 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/txtstrm.cpp b/src/common/txtstrm.cpp deleted file mode 100644 index 70ca315e43..0000000000 --- a/src/common/txtstrm.cpp +++ /dev/null @@ -1,481 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: txtstrm.cpp -// Purpose: Text stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 28/06/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "txtstrm.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_STREAMS - -#include "wx/txtstrm.h" -#include - - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// Unix: "\n" -// Dos: "\r\n" -// Mac: "\r" - -// ---------------------------------------------------------------------------- -// wxTextInputStream -// ---------------------------------------------------------------------------- - -wxTextInputStream::wxTextInputStream(wxInputStream& s) - : m_input(&s) -{ -} - -wxTextInputStream::~wxTextInputStream() -{ -} - -wxChar wxTextInputStream::NextNonWhiteSpace() -{ - wxChar c = (wxChar) 0; - for (;;) - { - c = m_input->GetC(); - if (!m_input) return (wxChar) 0; - - if (c != _T('\n') && - c != _T('\r') && - c != _T('\t') && - c != _T(' ')) - { - return c; - } - } - - // this shouldn't happen - return (wxChar) 0; -} - -void wxTextInputStream::SkipIfEndOfLine( wxChar c ) -{ - if (c == _T('\n')) - { - // eat on UNIX - return; - } - - if (c == _T('\r')) - { - // eat on both Mac and DOS - - wxChar c2 = m_input->GetC(); - if (!m_input) return; - - if (c2 == _T('\n')) - { - // eat on DOS - return; - } - else - { - // Don't eat on Mac - m_input->Ungetch( c2 ); - } - } - else - { - // no line terminator - m_input->Ungetch( c ); - } -} - -wxUint32 wxTextInputStream::Read32() -{ - /* I only implemented a simple integer parser */ - int sign; - wxInt32 i; - - int c = NextNonWhiteSpace(); - if (!m_input) return 0; - - i = 0; - if (! (c == _T('-') || c == _T('+') || isdigit(c)) ) - { - m_input->Ungetch(c); - return 0; - } - - if (c == _T('-')) - { - sign = -1; - c = m_input->GetC(); - } else - if (c == _T('+')) - { - sign = 1; - c = m_input->GetC(); - } else - { - sign = 1; - } - - while (isdigit(c)) - { - i = i*10 + (c - (int)_T('0')); - c = m_input->GetC(); - } - - SkipIfEndOfLine( c ); - - i *= sign; - - return (wxUint32)i; -} - -wxUint16 wxTextInputStream::Read16() -{ - return (wxUint16)Read32(); -} - -wxUint8 wxTextInputStream::Read8() -{ - return (wxUint8)Read32(); -} - -double wxTextInputStream::ReadDouble() -{ - /* I only implemented a simple float parser */ - double f; - int sign; - - int c = NextNonWhiteSpace(); - if (!m_input) return 0.0; - - f = 0.0; - if (! (c == _T('.') || c == _T('-') || c == _T('+') || isdigit(c)) ) - { - m_input->Ungetch(c); - return 0.0; - } - - if (c == _T('-')) - { - sign = -1; - c = m_input->GetC(); - } else - if (c == _T('+')) - { - sign = 1; - c = m_input->GetC(); - } - else - { - sign = 1; - } - - while (isdigit(c)) - { - f = f*10 + (c - _T('0')); - c = m_input->GetC(); - } - - if (c == _T('.')) - { - double f_multiplicator = (double) 0.1; - - c = m_input->GetC(); - - while (isdigit(c)) - { - f += (c-_T('0'))*f_multiplicator; - f_multiplicator /= 10; - c = m_input->GetC(); - } - - if (c == _T('e')) - { - double f_multiplicator = 0.0; - int i, e; - - c = m_input->GetC(); - - switch (c) - { - case _T('-'): f_multiplicator = 0.1; break; - case _T('+'): f_multiplicator = 10.0; break; - } - - e = Read8(); // why only max 256 ? - - for (i=0;iUngetch(c); - } - - f *= sign; - - return f; -} - -wxString wxTextInputStream::ReadString() -{ - wxChar c; - wxString line; - - for (;;) - { - c = m_input->GetC(); - if (!m_input) break; - - if (c == _T('\n')) - { - // eat on UNIX - break; - } - - if (c == _T('\r')) - { - // eat on both Mac and DOS - - wxChar c2 = m_input->GetC(); - if (!m_input) break; - - if (c2 == _T('\n')) - { - // eat on DOS - break; - } - else - { - // Don't eat on Mac - m_input->Ungetch( c2 ); - break; - } - } - - line += c; - } - - return line; -} - -wxTextInputStream& wxTextInputStream::operator>>(wxString& line) -{ - line = ReadString(); - return *this; -} - -wxTextInputStream& wxTextInputStream::operator>>(wxChar& c) -{ - wxChar c1 = m_input->GetC(); - if (!m_input) - { - c = (wxChar) 0; - return *this; - } - - if (c1 == _T('\r')) - { - c = _T('\n'); - wxChar c2 = m_input->GetC(); - if (!m_input) return *this; - - if (c2 != _T('\n')) - { - // we are on a Mac - m_input->Ungetch( c2 ); - } - } - else - { - c = c1; - } - - return *this; -} - -wxTextInputStream& wxTextInputStream::operator>>(wxInt16& i) -{ - i = (wxInt16)Read16(); - return *this; -} - -wxTextInputStream& wxTextInputStream::operator>>(wxInt32& i) -{ - i = (wxInt32)Read32(); - return *this; -} - -wxTextInputStream& wxTextInputStream::operator>>(wxUint16& i) -{ - i = Read16(); - return *this; -} - -wxTextInputStream& wxTextInputStream::operator>>(wxUint32& i) -{ - i = Read32(); - return *this; -} - -wxTextInputStream& wxTextInputStream::operator>>(double& i) -{ - i = ReadDouble(); - return *this; -} - -wxTextInputStream& wxTextInputStream::operator>>(float& f) -{ - f = (float)ReadDouble(); - return *this; -} - -wxTextOutputStream::wxTextOutputStream(wxOutputStream& s) - : m_output(&s) -{ -} - -wxTextOutputStream::~wxTextOutputStream() -{ -} - -void wxTextOutputStream::Write32(wxUint32 i) -{ - wxString str; - str.Printf(_T("%u"), i); - - WriteString(str); -} - -void wxTextOutputStream::Write16(wxUint16 i) -{ - wxString str; - str.Printf(_T("%u"), i); - - WriteString(str); -} - -void wxTextOutputStream::Write8(wxUint8 i) -{ - wxString str; - str.Printf(_T("%u"), i); - - WriteString(str); -} - -void wxTextOutputStream::WriteDouble(double d) -{ - wxString str; - - str.Printf(_T("%f"), d); - WriteString(str); -} - -void wxTextOutputStream::WriteString(const wxString& string) -{ - for (size_t i = 0; i < string.Len(); i++) - { - wxChar c = string[i]; - if (c == _T('\n')) - { -#if defined(__WINDOWS__) - c = _T('\r'); - m_output->Write( (const void*)(&c), sizeof(wxChar) ); - c = _T('\n'); - m_output->Write( (const void*)(&c), sizeof(wxChar) ); -#elif defined(__UNIX__) - c = _T('\n'); - m_output->Write( (const void*)(&c), sizeof(wxChar) ); -#elif defined(__WXMAC__) - c = _T('\r'); - m_output->Write( (const void*)(&c), sizeof(wxChar) ); -#elif defined(__OS2__) - c = _T('\r'); - m_output->Write( (const void*)(&c), sizeof(wxChar) ); - c = _T('\n'); - m_output->Write( (const void*)(&c), sizeof(wxChar) ); -#else - #error "wxTextOutputStream: unsupported platform." -#endif - } - else - { - m_output->Write( (const void*)(&c), sizeof(wxChar) ); - } - } -} - -wxTextOutputStream& wxTextOutputStream::operator<<(const wxChar *string) -{ - WriteString( wxString(string) ); - return *this; -} - -wxTextOutputStream& wxTextOutputStream::operator<<(const wxString& string) -{ - WriteString( string ); - return *this; -} - -wxTextOutputStream& wxTextOutputStream::operator<<(wxChar c) -{ - WriteString( wxString(c) ); - return *this; -} - -wxTextOutputStream& wxTextOutputStream::operator<<(wxInt16 c) -{ - Write16( (wxUint16)c ); - return *this; -} - -wxTextOutputStream& wxTextOutputStream::operator<<(wxInt32 c) -{ - Write32( (wxUint32)c ); - return *this; -} - -wxTextOutputStream& wxTextOutputStream::operator<<(wxUint16 c) -{ - Write16(c); - return *this; -} - -wxTextOutputStream& wxTextOutputStream::operator<<(wxUint32 c) -{ - Write32(c); - return *this; -} - -wxTextOutputStream &wxTextOutputStream::operator<<(double f) -{ - WriteDouble(f); - return *this; -} - -wxTextOutputStream& wxTextOutputStream::operator<<(float f) -{ - WriteDouble((double)f); - return *this; -} - -#endif - // wxUSE_STREAMS diff --git a/src/common/unzip.c b/src/common/unzip.c deleted file mode 100644 index 08dd404643..0000000000 --- a/src/common/unzip.c +++ /dev/null @@ -1,1313 +0,0 @@ -/* unzip.c -- IO on .zip files using zlib - Version 0.15 beta, Mar 19th, 1998, - - Read unzip.h for more info -*/ - -#include "wx/setup.h" - -#if wxUSE_ZLIB && wxUSE_ZIPSTREAM - -#include -#include -#include -#include "zlib.h" - -/* Not the right solution (paths in makefiles) but... */ -#ifdef __BORLANDC__ -#include "../common/unzip.h" -#else -#include "unzip.h" -#endif - -#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 */ - - - -#if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) && \ - !defined(CASESENSITIVITYDEFAULT_NO) -#define CASESENSITIVITYDEFAULT_NO -#endif - - -#ifndef UNZ_BUFSIZE -#define UNZ_BUFSIZE (16384) -#endif - -#ifndef UNZ_MAXFILENAMEINZIP -#define UNZ_MAXFILENAMEINZIP (256) -#endif - -#ifndef ALLOC -# define ALLOC(size) (malloc(size)) -#endif -#ifndef TRYFREE -# define TRYFREE(p) {if (p) free(p);} -#endif - -#define SIZECENTRALDIRITEM (0x2e) -#define SIZEZIPLOCALHEADER (0x1e) - - -/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */ - -#ifndef SEEK_CUR -#define SEEK_CUR 1 -#endif - -#ifndef SEEK_END -#define SEEK_END 2 -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif - -const char unz_copyright[] = - " unzip 0.15 Copyright 1998 Gilles Vollant "; - -/* unz_file_info_interntal contain internal info about a file in zipfile*/ -typedef struct unz_file_info_internal_s -{ - uLong offset_curfile;/* relative offset of local header 4 bytes */ -} unz_file_info_internal; - - -/* file_in_zip_read_info_s contain internal information about a file in zipfile, - when reading and decompress it */ -typedef struct -{ - char *read_buffer; /* internal buffer for compressed data */ - z_stream stream; /* zLib stream structure for inflate */ - - uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ - uLong stream_initialised; /* flag set if stream structure is initialised*/ - - uLong offset_local_extrafield;/* offset of the local extra field */ - uInt size_local_extrafield;/* size of the local extra field */ - uLong pos_local_extrafield; /* position in the local extra field in read*/ - - uLong crc32; /* crc32 of all data uncompressed */ - uLong crc32_wait; /* crc32 we must obtain after decompress all */ - uLong rest_read_compressed; /* number of byte to be decompressed */ - uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/ - FILE* file; /* io structore of the zipfile */ - uLong compression_method; /* compression method (0==store) */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ -} file_in_zip_read_info_s; - - -/* unz_s contain internal information about the zipfile -*/ -typedef struct -{ - FILE* file; /* io structore of the zipfile */ - unz_global_info gi; /* public global information */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ - uLong num_file; /* number of the current file in the zipfile*/ - uLong pos_in_central_dir; /* pos of the current file in the central dir*/ - uLong current_file_ok; /* flag about the usability of the current file*/ - uLong central_pos; /* position of the beginning of the central dir*/ - - uLong size_central_dir; /* size of the central directory */ - uLong offset_central_dir; /* offset of start of central directory with - respect to the starting disk number */ - - unz_file_info cur_file_info; /* public info about the current file in zip*/ - unz_file_info_internal cur_file_info_internal; /* private info about it*/ - file_in_zip_read_info_s* pfile_in_zip_read; /* structure about the current - file if we are decompressing it */ -} unz_s; - -#if defined (__VISAGECPP__) -// VA always requires prototypes -int unzlocal_CheckCurrentFileCoherencyHeader (unz_s*, uInt*, uLong*, uInt*); -#endif - -/* =========================================================================== - 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 unzlocal_getByte(fin,pi) - FILE *fin; - int *pi; -{ - unsigned char c; - int err = fread(&c, 1, 1, fin); - if (err==1) - { - *pi = (int)c; - return UNZ_OK; - } - else - { - if (ferror(fin)) - return UNZ_ERRNO; - else - return UNZ_EOF; - } -} - - -/* =========================================================================== - Reads a long in LSB order from the given gz_stream. Sets -*/ -local int unzlocal_getShort (fin,pX) - FILE* fin; - uLong *pX; -{ - uLong x ; - int i; - int err; - - err = unzlocal_getByte(fin,&i); - x = (uLong)i; - - if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); - x += ((uLong)i)<<8; - - if (err==UNZ_OK) - *pX = x; - else - *pX = 0; - return err; -} - -local int unzlocal_getLong (fin,pX) - FILE* fin; - uLong *pX; -{ - uLong x ; - int i; - int err; - - err = unzlocal_getByte(fin,&i); - x = (uLong)i; - - if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); - x += ((uLong)i)<<8; - - if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); - x += ((uLong)i)<<16; - - if (err==UNZ_OK) - err = unzlocal_getByte(fin,&i); - x += ((uLong)i)<<24; - - if (err==UNZ_OK) - *pX = x; - else - *pX = 0; - return err; -} - - -/* My own strcmpi / strcasecmp */ -local int strcmpcasenosensitive_internal (fileName1,fileName2) - const char* fileName1; - const char* fileName2; -{ - for (;;) - { - char c1=*(fileName1++); - char c2=*(fileName2++); - if ((c1>='a') && (c1<='z')) - c1 -= 0x20; - if ((c2>='a') && (c2<='z')) - c2 -= 0x20; - if (c1=='\0') - return ((c2=='\0') ? 0 : -1); - if (c2=='\0') - return 1; - if (c1c2) - return 1; - } -} - - -#ifdef CASESENSITIVITYDEFAULT_NO -#define CASESENSITIVITYDEFAULTVALUE 2 -#else -#define CASESENSITIVITYDEFAULTVALUE 1 -#endif - -#ifndef STRCMPCASENOSENTIVEFUNCTION -#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal -#endif - -/* - Compare two filename (fileName1,fileName2). - If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) - If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi - or strcasecmp) - If iCaseSenisivity = 0, case sensitivity is defaut of your operating system - (like 1 on Unix, 2 on Windows) - -*/ -extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity) - const char* fileName1; - const char* fileName2; - int iCaseSensitivity; -{ - if (iCaseSensitivity==0) - iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE; - - if (iCaseSensitivity==1) - return strcmp(fileName1,fileName2); - - return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2); -} - -#define BUFREADCOMMENT (0x400) - -/* - Locate the Central directory of a zipfile (at the end, just before - the global comment) -*/ -local uLong unzlocal_SearchCentralDir(fin) - FILE *fin; -{ - unsigned char* buf; - uLong uSizeFile; - uLong uBackRead; - uLong uMaxBack=0xffff; /* maximum size of global comment */ - uLong uPosFound=0; - - if (fseek(fin,0,SEEK_END) != 0) - return 0; - - - uSizeFile = ftell( fin ); - - if (uMaxBack>uSizeFile) - uMaxBack = uSizeFile; - - buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); - if (buf==NULL) - return 0; - - uBackRead = 4; - while (uBackReaduMaxBack) - uBackRead = uMaxBack; - else - uBackRead+=BUFREADCOMMENT; - uReadPos = uSizeFile-uBackRead ; - - uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? - (BUFREADCOMMENT+4) : (uSizeFile-uReadPos); - if (fseek(fin,uReadPos,SEEK_SET)!=0) - break; - - if (fread(buf,(uInt)uReadSize,1,fin)!=1) - break; - - for (i=(int)uReadSize-3; (i--)>0;) - if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && - ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) - { - uPosFound = uReadPos+i; - break; - } - - if (uPosFound!=0) - break; - } - TRYFREE(buf); - return uPosFound; -} - -/* - Open a Zip file. path contain the full pathname (by example, - on a Windows NT computer "c:\\test\\zlib109.zip" or on an Unix computer - "zlib/zlib109.zip". - If the zipfile cannot be opened (file don't exist or in not valid), the - return value is NULL. - Else, the return value is a unzFile Handle, usable with other function - of this unzip package. -*/ -extern unzFile ZEXPORT unzOpen (path) - const char *path; -{ - unz_s us; - unz_s *s; - uLong central_pos,uL; - FILE * fin ; - - uLong number_disk; /* number of the current dist, used for - spaning ZIP, unsupported, always 0*/ - uLong number_disk_with_CD; /* number the the disk with central dir, used - for spaning ZIP, unsupported, always 0*/ - uLong number_entry_CD; /* total number of entries in - the central dir - (same than number_entry on nospan) */ - - int err=UNZ_OK; - - if (unz_copyright[0]!=' ') - return NULL; - - fin=fopen(path,"rb"); - if (fin==NULL) - return NULL; - - central_pos = unzlocal_SearchCentralDir(fin); - if (central_pos==0) - err=UNZ_ERRNO; - - if (fseek(fin,central_pos,SEEK_SET)!=0) - err=UNZ_ERRNO; - - /* the signature, already checked */ - if (unzlocal_getLong(fin,&uL)!=UNZ_OK) - err=UNZ_ERRNO; - - /* number of this disk */ - if (unzlocal_getShort(fin,&number_disk)!=UNZ_OK) - err=UNZ_ERRNO; - - /* number of the disk with the start of the central directory */ - if (unzlocal_getShort(fin,&number_disk_with_CD)!=UNZ_OK) - err=UNZ_ERRNO; - - /* total number of entries in the central dir on this disk */ - if (unzlocal_getShort(fin,&us.gi.number_entry)!=UNZ_OK) - err=UNZ_ERRNO; - - /* total number of entries in the central dir */ - if (unzlocal_getShort(fin,&number_entry_CD)!=UNZ_OK) - err=UNZ_ERRNO; - - if ((number_entry_CD!=us.gi.number_entry) || - (number_disk_with_CD!=0) || - (number_disk!=0)) - err=UNZ_BADZIPFILE; - - /* size of the central directory */ - if (unzlocal_getLong(fin,&us.size_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; - - /* offset of start of central directory with respect to the - starting disk number */ - if (unzlocal_getLong(fin,&us.offset_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; - - /* zipfile comment length */ - if (unzlocal_getShort(fin,&us.gi.size_comment)!=UNZ_OK) - err=UNZ_ERRNO; - - if ((central_pospfile_in_zip_read!=NULL) - unzCloseCurrentFile(file); - - fclose(s->file); - TRYFREE(s); - return UNZ_OK; -} - - -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. */ -extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info) - unzFile file; - unz_global_info *pglobal_info; -{ - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - *pglobal_info=s->gi; - return UNZ_OK; -} - - -/* - Translate date/time from Dos format to tm_unz (readable more easilty) -*/ -local void unzlocal_DosDateToTmuDate (ulDosDate, ptm) - uLong ulDosDate; - tm_unz* ptm; -{ - uLong uDate; - uDate = (uLong)(ulDosDate>>16); - ptm->tm_mday = (uInt)(uDate&0x1f) ; - ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ; - ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ; - - ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800); - ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ; - ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ; -} - -/* - Get Info about the current file in the zipfile, with internal only info -*/ -local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file, - unz_file_info *pfile_info, - unz_file_info_internal - *pfile_info_internal, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); - -local int unzlocal_GetCurrentFileInfoInternal (file, - pfile_info, - pfile_info_internal, - szFileName, fileNameBufferSize, - extraField, extraFieldBufferSize, - szComment, commentBufferSize) - unzFile file; - unz_file_info *pfile_info; - unz_file_info_internal *pfile_info_internal; - char *szFileName; - uLong fileNameBufferSize; - void *extraField; - uLong extraFieldBufferSize; - char *szComment; - uLong commentBufferSize; -{ - unz_s* s; - unz_file_info file_info; - unz_file_info_internal file_info_internal; - int err=UNZ_OK; - uLong uMagic; - long lSeek=0; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (fseek(s->file,s->pos_in_central_dir+s->byte_before_the_zipfile,SEEK_SET)!=0) - err=UNZ_ERRNO; - - - /* we check the magic */ - if (err==UNZ_OK) - if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x02014b50) - err=UNZ_BADZIPFILE; - - if (unzlocal_getShort(s->file,&file_info.version) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.version_needed) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.flag) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.compression_method) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(s->file,&file_info.dosDate) != UNZ_OK) - err=UNZ_ERRNO; - - unzlocal_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date); - - if (unzlocal_getLong(s->file,&file_info.crc) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(s->file,&file_info.compressed_size) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(s->file,&file_info.uncompressed_size) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.size_filename) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.size_file_extra) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.size_file_comment) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.disk_num_start) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&file_info.internal_fa) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(s->file,&file_info.external_fa) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(s->file,&file_info_internal.offset_curfile) != UNZ_OK) - err=UNZ_ERRNO; - - lSeek+=file_info.size_filename; - if ((err==UNZ_OK) && (szFileName!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_filename0) && (fileNameBufferSize>0)) - if (fread(szFileName,(uInt)uSizeRead,1,s->file)!=1) - err=UNZ_ERRNO; - lSeek -= uSizeRead; - } - - - if ((err==UNZ_OK) && (extraField!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_extrafile,lSeek,SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) - if (fread(extraField,(uInt)uSizeRead,1,s->file)!=1) - err=UNZ_ERRNO; - lSeek += file_info.size_file_extra - uSizeRead; - } - else - lSeek+=file_info.size_file_extra; - - - if ((err==UNZ_OK) && (szComment!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_commentfile,lSeek,SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - if ((file_info.size_file_comment>0) && (commentBufferSize>0)) - if (fread(szComment,(uInt)uSizeRead,1,s->file)!=1) - err=UNZ_ERRNO; - lSeek+=file_info.size_file_comment - uSizeRead; - } - else - lSeek+=file_info.size_file_comment; - - if ((err==UNZ_OK) && (pfile_info!=NULL)) - *pfile_info=file_info; - - if ((err==UNZ_OK) && (pfile_info_internal!=NULL)) - *pfile_info_internal=file_info_internal; - - return err; -} - - - -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. -*/ -extern int ZEXPORT unzGetCurrentFileInfo (file, - pfile_info, - szFileName, fileNameBufferSize, - extraField, extraFieldBufferSize, - szComment, commentBufferSize) - unzFile file; - unz_file_info *pfile_info; - char *szFileName; - uLong fileNameBufferSize; - void *extraField; - uLong extraFieldBufferSize; - char *szComment; - uLong commentBufferSize; -{ - return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL, - szFileName,fileNameBufferSize, - extraField,extraFieldBufferSize, - szComment,commentBufferSize); -} - -/* - Set the current file of the zipfile to the first file. - return UNZ_OK if there is no problem -*/ -extern int ZEXPORT unzGoToFirstFile (file) - unzFile file; -{ - int err=UNZ_OK; - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - s->pos_in_central_dir=s->offset_central_dir; - s->num_file=0; - err=unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} - - -/* - Set the current file of the zipfile to the next file. - return UNZ_OK if there is no problem - return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. -*/ -extern int ZEXPORT unzGoToNextFile (file) - unzFile file; -{ - unz_s* s; - int err; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - if (s->num_file+1==s->gi.number_entry) - return UNZ_END_OF_LIST_OF_FILE; - - s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename + - s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ; - s->num_file++; - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} - - -/* - Try locate the file szFileName in the zipfile. - For the iCaseSensitivity signification, see unzipStringFileNameCompare - - return value : - UNZ_OK if the file is found. It becomes the current file. - UNZ_END_OF_LIST_OF_FILE if the file is not found -*/ -extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity) - unzFile file; - const char *szFileName; - int iCaseSensitivity; -{ - unz_s* s; - int err; - - - uLong num_fileSaved; - uLong pos_in_central_dirSaved; - - - if (file==NULL) - return UNZ_PARAMERROR; - - if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP) - return UNZ_PARAMERROR; - - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - - num_fileSaved = s->num_file; - pos_in_central_dirSaved = s->pos_in_central_dir; - - err = unzGoToFirstFile(file); - - while (err == UNZ_OK) - { - char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1]; - unzGetCurrentFileInfo(file,NULL, - szCurrentFileName,sizeof(szCurrentFileName)-1, - NULL,0,NULL,0); - if (unzStringFileNameCompare(szCurrentFileName, - szFileName,iCaseSensitivity)==0) - return UNZ_OK; - err = unzGoToNextFile(file); - } - - s->num_file = num_fileSaved ; - s->pos_in_central_dir = pos_in_central_dirSaved ; - return err; -} - - -/* - Read the local header of the current zipfile - Check the coherency of the local header and info in the end of central - directory about this file - store in *piSizeVar the size of extra info in local header - (filename and size of extra field data) -*/ -local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar, - poffset_local_extrafield, - psize_local_extrafield) - unz_s* s; - uInt* piSizeVar; - uLong *poffset_local_extrafield; - uInt *psize_local_extrafield; -{ - uLong uMagic,uData,uFlags; - uLong size_filename; - uLong size_extra_field; - int err=UNZ_OK; - - *piSizeVar = 0; - *poffset_local_extrafield = 0; - *psize_local_extrafield = 0; - - if (fseek(s->file,s->cur_file_info_internal.offset_curfile + - s->byte_before_the_zipfile,SEEK_SET)!=0) - return UNZ_ERRNO; - - - if (err==UNZ_OK) - if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x04034b50) - err=UNZ_BADZIPFILE; - - if (unzlocal_getShort(s->file,&uData) != UNZ_OK) - err=UNZ_ERRNO; -/* - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion)) - err=UNZ_BADZIPFILE; -*/ - if (unzlocal_getShort(s->file,&uFlags) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(s->file,&uData) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method)) - err=UNZ_BADZIPFILE; - - if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* date/time */ - err=UNZ_ERRNO; - - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* crc */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size compr */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size uncompr */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - - if (unzlocal_getShort(s->file,&size_filename) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename)) - err=UNZ_BADZIPFILE; - - *piSizeVar += (uInt)size_filename; - - if (unzlocal_getShort(s->file,&size_extra_field) != UNZ_OK) - err=UNZ_ERRNO; - *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile + - SIZEZIPLOCALHEADER + size_filename; - *psize_local_extrafield = (uInt)size_extra_field; - - *piSizeVar += (uInt)size_extra_field; - - return err; -} - -/* - Open for reading data the current file in the zipfile. - If there is no error and the file is opened, the return value is UNZ_OK. -*/ -extern int ZEXPORT unzOpenCurrentFile (file) - unzFile file; -{ - int err=UNZ_OK; - int Store; - uInt iSizeVar; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uLong offset_local_extrafield; /* offset of the local extra field */ - uInt size_local_extrafield; /* size of the local extra field */ - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_PARAMERROR; - - if (s->pfile_in_zip_read != NULL) - unzCloseCurrentFile(file); - - if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar, - &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK) - return UNZ_BADZIPFILE; - - pfile_in_zip_read_info = (file_in_zip_read_info_s*) - ALLOC(sizeof(file_in_zip_read_info_s)); - if (pfile_in_zip_read_info==NULL) - return UNZ_INTERNALERROR; - - pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE); - pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; - pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; - pfile_in_zip_read_info->pos_local_extrafield=0; - - if (pfile_in_zip_read_info->read_buffer==NULL) - { - TRYFREE(pfile_in_zip_read_info); - return UNZ_INTERNALERROR; - } - - pfile_in_zip_read_info->stream_initialised=0; - - if ((s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED)) - err=UNZ_BADZIPFILE; - Store = s->cur_file_info.compression_method==0; - - pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc; - pfile_in_zip_read_info->crc32=0; - pfile_in_zip_read_info->compression_method = - s->cur_file_info.compression_method; - pfile_in_zip_read_info->file=s->file; - pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile; - - pfile_in_zip_read_info->stream.total_out = 0; - - if (!Store) - { - pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; - pfile_in_zip_read_info->stream.zfree = (free_func)0; - pfile_in_zip_read_info->stream.opaque = (voidpf)0; - - err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS); - if (err == Z_OK) - pfile_in_zip_read_info->stream_initialised=1; - /* 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. - * In unzip, i don't wait absolutely Z_STREAM_END because I known the - * size of both compressed and uncompressed data - */ - } - pfile_in_zip_read_info->rest_read_compressed = - s->cur_file_info.compressed_size ; - pfile_in_zip_read_info->rest_read_uncompressed = - s->cur_file_info.uncompressed_size ; - - - pfile_in_zip_read_info->pos_in_zipfile = - s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + - iSizeVar; - - pfile_in_zip_read_info->stream.avail_in = (uInt)0; - - - s->pfile_in_zip_read = pfile_in_zip_read_info; - return UNZ_OK; -} - - -/* - Read bytes from the current file. - buf contain buffer where data must be copied - len the size of buf. - - return the number of byte copied if somes bytes are copied - return 0 if the end of file was reached - return <0 with error code if there is an error - (UNZ_ERRNO for IO error, or zLib error for uncompress error) -*/ -extern int ZEXPORT unzReadCurrentFile (file, buf, len) - unzFile file; - voidp buf; - unsigned len; -{ - int err=UNZ_OK; - uInt iRead = 0; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - - if ((pfile_in_zip_read_info->read_buffer == NULL)) - return UNZ_END_OF_LIST_OF_FILE; - if (len==0) - return 0; - - pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; - - pfile_in_zip_read_info->stream.avail_out = (uInt)len; - - if (len>pfile_in_zip_read_info->rest_read_uncompressed) - pfile_in_zip_read_info->stream.avail_out = - (uInt)pfile_in_zip_read_info->rest_read_uncompressed; - - while (pfile_in_zip_read_info->stream.avail_out>0) - { - if ((pfile_in_zip_read_info->stream.avail_in==0) && - (pfile_in_zip_read_info->rest_read_compressed>0)) - { - uInt uReadThis = UNZ_BUFSIZE; - if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; - if (uReadThis == 0) - return UNZ_EOF; - if (fseek(pfile_in_zip_read_info->file, - pfile_in_zip_read_info->pos_in_zipfile + - pfile_in_zip_read_info->byte_before_the_zipfile,SEEK_SET)!=0) - return UNZ_ERRNO; - if (fread(pfile_in_zip_read_info->read_buffer,uReadThis,1, - pfile_in_zip_read_info->file)!=1) - return UNZ_ERRNO; - pfile_in_zip_read_info->pos_in_zipfile += uReadThis; - - pfile_in_zip_read_info->rest_read_compressed-=uReadThis; - - pfile_in_zip_read_info->stream.next_in = - (Bytef*)pfile_in_zip_read_info->read_buffer; - pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; - } - - if (pfile_in_zip_read_info->compression_method==0) - { - uInt uDoCopy,i ; - if (pfile_in_zip_read_info->stream.avail_out < - pfile_in_zip_read_info->stream.avail_in) - uDoCopy = pfile_in_zip_read_info->stream.avail_out ; - else - uDoCopy = pfile_in_zip_read_info->stream.avail_in ; - - for (i=0;istream.next_out+i) = - *(pfile_in_zip_read_info->stream.next_in+i); - - pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, - pfile_in_zip_read_info->stream.next_out, - uDoCopy); - pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy; - pfile_in_zip_read_info->stream.avail_in -= uDoCopy; - pfile_in_zip_read_info->stream.avail_out -= uDoCopy; - pfile_in_zip_read_info->stream.next_out += uDoCopy; - pfile_in_zip_read_info->stream.next_in += uDoCopy; - pfile_in_zip_read_info->stream.total_out += uDoCopy; - iRead += uDoCopy; - } - else - { - uLong uTotalOutBefore,uTotalOutAfter; - const Bytef *bufBefore; - uLong uOutThis; - int flush=Z_SYNC_FLUSH; - - uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; - bufBefore = pfile_in_zip_read_info->stream.next_out; - - /* - if ((pfile_in_zip_read_info->rest_read_uncompressed == - pfile_in_zip_read_info->stream.avail_out) && - (pfile_in_zip_read_info->rest_read_compressed == 0)) - flush = Z_FINISH; - */ - err=inflate(&pfile_in_zip_read_info->stream,flush); - - uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; - uOutThis = uTotalOutAfter-uTotalOutBefore; - - pfile_in_zip_read_info->crc32 = - crc32(pfile_in_zip_read_info->crc32,bufBefore, - (uInt)(uOutThis)); - - pfile_in_zip_read_info->rest_read_uncompressed -= - uOutThis; - - iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); - - if (err==Z_STREAM_END) - return (iRead==0) ? UNZ_EOF : iRead; - if (err!=Z_OK) - break; - } - } - - if (err==Z_OK) - return iRead; - return err; -} - - -/* - Give the current position in uncompressed data -*/ -extern z_off_t ZEXPORT unztell (file) - unzFile file; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - return (z_off_t)pfile_in_zip_read_info->stream.total_out; -} - - -/* - return 1 if the end of file was reached, 0 elsewhere -*/ -extern int ZEXPORT unzeof (file) - unzFile file; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - if (pfile_in_zip_read_info->rest_read_uncompressed == 0) - return 1; - else - return 0; -} - - - -/* - Read extra field from the current file (opened by unzOpenCurrentFile) - This is the local-header version of the extra field (sometimes, there is - more info in the local-header version than in the central-header) - - if buf==NULL, it return the size of the local extra field that can be read - - if buf!=NULL, len is the size of the buffer, the extra header is copied in - buf. - the return value is the number of bytes copied in buf, or (if <0) - the error code -*/ -extern int ZEXPORT unzGetLocalExtrafield (file,buf,len) - unzFile file; - voidp buf; - unsigned len; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uInt read_now; - uLong size_to_read; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - size_to_read = (pfile_in_zip_read_info->size_local_extrafield - - pfile_in_zip_read_info->pos_local_extrafield); - - if (buf==NULL) - return (int)size_to_read; - - if (len>size_to_read) - read_now = (uInt)size_to_read; - else - read_now = (uInt)len ; - - if (read_now==0) - return 0; - - if (fseek(pfile_in_zip_read_info->file, - pfile_in_zip_read_info->offset_local_extrafield + - pfile_in_zip_read_info->pos_local_extrafield,SEEK_SET)!=0) - return UNZ_ERRNO; - - if (fread(buf,(uInt)size_to_read,1,pfile_in_zip_read_info->file)!=1) - return UNZ_ERRNO; - - return (int)read_now; -} - -/* - Close the file in zip opened with unzipOpenCurrentFile - Return UNZ_CRCERROR if all the file was read but the CRC is not good -*/ -extern int ZEXPORT unzCloseCurrentFile (file) - unzFile file; -{ - int err=UNZ_OK; - - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - - if (pfile_in_zip_read_info->rest_read_uncompressed == 0) - { - if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) - err=UNZ_CRCERROR; - } - - - TRYFREE(pfile_in_zip_read_info->read_buffer); - pfile_in_zip_read_info->read_buffer = NULL; - if (pfile_in_zip_read_info->stream_initialised) - inflateEnd(&pfile_in_zip_read_info->stream); - - pfile_in_zip_read_info->stream_initialised = 0; - TRYFREE(pfile_in_zip_read_info); - - s->pfile_in_zip_read=NULL; - - return err; -} - - -/* - Get the global comment string of the ZipFile, in the szComment buffer. - uSizeBuf is the size of the szComment buffer. - return the number of byte copied or an error code <0 -*/ -extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf) - unzFile file; - char *szComment; - uLong uSizeBuf; -{ - int err=UNZ_OK; - unz_s* s; - uLong uReadThis ; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - - uReadThis = uSizeBuf; - if (uReadThis>s->gi.size_comment) - uReadThis = s->gi.size_comment; - - if (fseek(s->file,s->central_pos+22,SEEK_SET)!=0) - return UNZ_ERRNO; - - if (uReadThis>0) - { - *szComment='\0'; - if (fread(szComment,(uInt)uReadThis,1,s->file)!=1) - return UNZ_ERRNO; - } - - if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment)) - *(szComment+s->gi.size_comment)='\0'; - return (int)uReadThis; -} - -#else - -// the file shouldn't be empty, som compilers don't like it -static const int dummyVariableInUnzip = 17; - -#endif // wxUSE_ZLIB && wxUSE_ZIPSTREAM diff --git a/src/common/unzip.h b/src/common/unzip.h deleted file mode 100644 index 9907959c55..0000000000 --- a/src/common/unzip.h +++ /dev/null @@ -1,285 +0,0 @@ -/* unzip.h -- IO for uncompress .zip files using zlib - Version 0.15 beta, Mar 19th, 1998, - - Copyright (C) 1998 Gilles Vollant - - This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g - WinZip, InfoZip tools and compatible. - Encryption and multi volume ZipFile (span) are not supported. - Old compressions used by old PKZip 1.x are not supported - - THIS IS AN ALPHA VERSION. AT THIS STAGE OF DEVELOPPEMENT, SOMES API OR STRUCTURE - CAN CHANGE IN FUTURE VERSION !! - I WAIT FEEDBACK at mail info@winimage.com - Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution - - Condition of use and distribution are the same than zlib : - - 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. - - -*/ -/* for more info about .ZIP format, see - ftp://ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip - PkWare has also a specification at : - ftp://ftp.pkware.com/probdesc.zip */ - -#ifndef _unz_H -#define _unz_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _ZLIB_H -#include "zlib.h" -#endif - -#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) -/* like the STRICT of WIN32, we define a pointer that cannot be converted - from (void*) without cast */ -typedef struct TagunzFile__ { int unused; } unzFile__; -typedef unzFile__ *unzFile; -#else -typedef voidp unzFile; -#endif - - -#define UNZ_OK (0) -#define UNZ_END_OF_LIST_OF_FILE (-100) -#define UNZ_ERRNO (Z_ERRNO) -#define UNZ_EOF (0) -#define UNZ_PARAMERROR (-102) -#define UNZ_BADZIPFILE (-103) -#define UNZ_INTERNALERROR (-104) -#define UNZ_CRCERROR (-105) - -/* tm_unz contain date/time info */ -typedef struct tm_unz_s -{ - uInt tm_sec; /* seconds after the minute - [0,59] */ - uInt tm_min; /* minutes after the hour - [0,59] */ - uInt tm_hour; /* hours since midnight - [0,23] */ - uInt tm_mday; /* day of the month - [1,31] */ - uInt tm_mon; /* months since January - [0,11] */ - uInt tm_year; /* years - [1980..2044] */ -} tm_unz; - -/* unz_global_info structure contain global data about the ZIPfile - These data comes from the end of central dir */ -typedef struct unz_global_info_s -{ - uLong number_entry; /* total number of entries in - the central dir on this disk */ - uLong size_comment; /* size of the global comment of the zipfile */ -} unz_global_info; - - -/* unz_file_info contain information about a file in the zipfile */ -typedef struct unz_file_info_s -{ - uLong version; /* version made by 2 bytes */ - uLong version_needed; /* version needed to extract 2 bytes */ - uLong flag; /* general purpose bit flag 2 bytes */ - uLong compression_method; /* compression method 2 bytes */ - uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ - uLong crc; /* crc-32 4 bytes */ - uLong compressed_size; /* compressed size 4 bytes */ - uLong uncompressed_size; /* uncompressed size 4 bytes */ - uLong size_filename; /* filename length 2 bytes */ - uLong size_file_extra; /* extra field length 2 bytes */ - uLong size_file_comment; /* file comment length 2 bytes */ - - uLong disk_num_start; /* disk number start 2 bytes */ - uLong internal_fa; /* internal file attributes 2 bytes */ - uLong external_fa; /* external file attributes 4 bytes */ - - tm_unz tmu_date; -} unz_file_info; - -extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1, - const char* fileName2, - int iCaseSensitivity)); -/* - Compare two filename (fileName1,fileName2). - If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) - If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi - or strcasecmp) - If iCaseSenisivity = 0, case sensitivity is defaut of your operating system - (like 1 on Unix, 2 on Windows) -*/ - - -extern unzFile ZEXPORT unzOpen OF((const char *path)); -/* - Open a Zip file. path contain the full pathname (by example, - on a Windows NT computer "c:\\zlib\\zlib111.zip" or on an Unix computer - "zlib/zlib111.zip". - If the zipfile cannot be opened (file don't exist or in not valid), the - return value is NULL. - Else, the return value is a unzFile Handle, usable with other function - of this unzip package. -*/ - -extern int ZEXPORT unzClose OF((unzFile file)); -/* - Close a ZipFile opened with unzipOpen. - If there is files inside the .Zip opened with unzOpenCurrentFile (see later), - these files MUST be closed with unzipCloseCurrentFile before call unzipClose. - return UNZ_OK if there is no problem. */ - -extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, - unz_global_info *pglobal_info)); -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. */ - - -extern int ZEXPORT unzGetGlobalComment OF((unzFile file, - char *szComment, - uLong uSizeBuf)); -/* - Get the global comment string of the ZipFile, in the szComment buffer. - uSizeBuf is the size of the szComment buffer. - return the number of byte copied or an error code <0 -*/ - - -/***************************************************************************/ -/* Unzip package allow you browse the directory of the zipfile */ - -extern int ZEXPORT unzGoToFirstFile OF((unzFile file)); -/* - Set the current file of the zipfile to the first file. - return UNZ_OK if there is no problem -*/ - -extern int ZEXPORT unzGoToNextFile OF((unzFile file)); -/* - Set the current file of the zipfile to the next file. - return UNZ_OK if there is no problem - return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. -*/ - -extern int ZEXPORT unzLocateFile OF((unzFile file, - const char *szFileName, - int iCaseSensitivity)); -/* - Try locate the file szFileName in the zipfile. - For the iCaseSensitivity signification, see unzStringFileNameCompare - - return value : - UNZ_OK if the file is found. It becomes the current file. - UNZ_END_OF_LIST_OF_FILE if the file is not found -*/ - - -extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, - unz_file_info *pfile_info, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); -/* - Get Info about the current file - if pfile_info!=NULL, the *pfile_info structure will contain somes info about - the current file - if szFileName!=NULL, the filemane string will be copied in szFileName - (fileNameBufferSize is the size of the buffer) - if extraField!=NULL, the extra field information will be copied in extraField - (extraFieldBufferSize is the size of the buffer). - This is the Central-header version of the extra field - if szComment!=NULL, the comment string of the file will be copied in szComment - (commentBufferSize is the size of the buffer) -*/ - -/***************************************************************************/ -/* for reading the content of the current zipfile, you can open it, read data - from it, and close it (you can close it before reading all the file) - */ - -extern int ZEXPORT unzOpenCurrentFile OF((unzFile file)); -/* - Open for reading data the current file in the zipfile. - If there is no error, the return value is UNZ_OK. -*/ - -extern int ZEXPORT unzCloseCurrentFile OF((unzFile file)); -/* - Close the file in zip opened with unzOpenCurrentFile - Return UNZ_CRCERROR if all the file was read but the CRC is not good -*/ - - -extern int ZEXPORT unzReadCurrentFile OF((unzFile file, - voidp buf, - unsigned len)); -/* - Read bytes from the current file (opened by unzOpenCurrentFile) - buf contain buffer where data must be copied - len the size of buf. - - return the number of byte copied if somes bytes are copied - return 0 if the end of file was reached - return <0 with error code if there is an error - (UNZ_ERRNO for IO error, or zLib error for uncompress error) -*/ - -extern z_off_t ZEXPORT unztell OF((unzFile file)); -/* - Give the current position in uncompressed data -*/ - -extern int ZEXPORT unzeof OF((unzFile file)); -/* - return 1 if the end of file was reached, 0 elsewhere -*/ - -extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, - voidp buf, - unsigned len)); -/* - Read extra field from the current file (opened by unzOpenCurrentFile) - This is the local-header version of the extra field (sometimes, there is - more info in the local-header version than in the central-header) - - if buf==NULL, it return the size of the local extra field - - if buf!=NULL, len is the size of the buffer, the extra header is copied in - buf. - the return value is the number of bytes copied in buf, or (if <0) - the error code -*/ - -#if defined(__VISAGECPP__) -//Visualage complains of no prototypes -int unzlocal_getByte(FILE* , int*); -int strcmpcasenosensitive_internal (const char*, const char*); -int unzlocal_getShort (FILE*, uLong*); -int unzlocal_getLong (FILE*, uLong*); -uLong unzlocal_SearchCentralDir(FILE*); -void unzlocal_DosDateToTmuDate (uLong, tm_unz*); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _unz_H */ diff --git a/src/common/url.cpp b/src/common/url.cpp deleted file mode 100644 index a51ee7b273..0000000000 --- a/src/common/url.cpp +++ /dev/null @@ -1,387 +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 - -#include -#include - -#include -#include -#include -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxProtoInfo, wxObject) -IMPLEMENT_CLASS(wxURL, wxObject) -#endif - -// Protocols list -wxProtoInfo *wxURL::g_protocols = NULL; - -#if wxUSE_SOCKETS -wxHTTP *wxURL::g_proxy = NULL; -#endif - -// -------------------------------------------------------------- -// wxURL -// -------------------------------------------------------------- - -// -------------------------------------------------------------- -// --------- wxURL CONSTRUCTOR DESTRUCTOR ----------------------- -// -------------------------------------------------------------- - -wxURL::wxURL(const wxString& url) -{ - m_protocol = NULL; - m_error = wxURL_NOERR; - m_url = url; -#if wxUSE_SOCKETS - m_useProxy = (g_proxy != NULL); - m_proxy = g_proxy; -#endif - ParseURL(); -} - -bool wxURL::ParseURL() -{ - wxString last_url = m_url; - - // If the URL was already parsed (so m_protocol != NULL), we pass this section. - if (!m_protocol) { - - // 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; - } - } - // URL parse finished. - -#if wxUSE_SOCKETS - if (m_useProxy) { - // We destroy the newly created protocol. - CleanData(); - - // Third, we rebuild the URL. - m_url = m_protoname + _T(":"); - if (m_protoinfo->m_needhost) - m_url = m_url + _T("//") + m_hostname; - - m_url += m_path; - - // We initialize specific variables. - m_protocol = m_proxy; // FIXME: we should clone the protocol - } -#endif - - m_error = wxURL_NOERR; - return TRUE; -} - -void wxURL::CleanData() -{ -#if wxUSE_SOCKETS - if (!m_useProxy) -#endif - delete m_protocol; -} - -wxURL::~wxURL() -{ - CleanData(); -#if wxUSE_SOCKETS - if (m_proxy && m_proxy != g_proxy) - delete m_proxy; -#endif -} - -// -------------------------------------------------------------- -// --------- wxURL urls decoders -------------------------------- -// -------------------------------------------------------------- - -bool wxURL::PrepProto(wxString& url) -{ - int pos; - - // Find end - pos = url.Find(_T(':')); - 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(_T('/')); - if (pos == -1) - pos = url.Length(); - - if (pos == 0) - return FALSE; - - temp_url = url(0, pos); - url = url(url.Find(_T('/')), url.Length()); - - // Retrieve service number - pos2 = temp_url.Find(_T(':'), 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(_T('@')); - // Even if pos2 equals -1, this code is right. - m_hostname = temp_url(pos2+1, temp_url.Length()); - - m_user = _T(""); - m_password = _T(""); - - if (pos2 == -1) - return TRUE; - - temp_url = temp_url(0, pos2); - pos2 = temp_url.Find(_T(':')); - - 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 = ConvertToValidURI(url); - else - m_path = _T("/"); - 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(); - return TRUE; - } - info = info->next; - } - return FALSE; -} - -// -------------------------------------------------------------- -// --------- wxURL get ------------------------------------------ -// -------------------------------------------------------------- - -wxInputStream *wxURL::GetInputStream(void) -{ - wxInputStream *the_i_stream = 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 wxUSE_SOCKETS - wxIPV4address addr; - - // m_protoinfo is NULL when we use a proxy - if (!m_useProxy && 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; - } - } -#endif - - // When we use a proxy, we have to pass the whole URL to it. - if (m_useProxy) - the_i_stream = m_protocol->GetInputStream(m_url); - else - the_i_stream = m_protocol->GetInputStream(m_path); - - if (!the_i_stream) { - m_error = wxURL_PROTOERR; - return NULL; - } - - return the_i_stream; -} - -#if wxUSE_SOCKETS -void wxURL::SetDefaultProxy(const wxString& url_proxy) -{ - if (url_proxy.IsNull()) { - g_proxy->Close(); - delete g_proxy; - g_proxy = NULL; - return; - } - - wxString tmp_str = url_proxy; - int pos = tmp_str.Find(_T(':')); - if (pos == -1) - return; - - wxString hostname = tmp_str(0, pos), - port = tmp_str(pos+1, tmp_str.Length()-pos); - wxIPV4address addr; - - if (!addr.Hostname(hostname)) - return; - if (!addr.Service(port)) - return; - - if (g_proxy) - // Finally, when all is right, we connect the new proxy. - g_proxy->Close(); - else - g_proxy = new wxHTTP(); - g_proxy->Connect(addr, TRUE); // Watcom needs the 2nd arg for some reason -} - -void wxURL::SetProxy(const wxString& url_proxy) -{ - if (url_proxy.IsNull()) { - if (m_proxy) { - m_proxy->Close(); - delete m_proxy; - } - m_useProxy = FALSE; - return; - } - - wxString tmp_str; - wxString hostname, port; - int pos; - wxIPV4address addr; - - tmp_str = url_proxy; - pos = tmp_str.Find(_T(':')); - // This is an invalid proxy name. - if (pos == -1) - return; - - hostname = tmp_str(0, pos); - port = tmp_str(pos, tmp_str.Length()-pos); - - addr.Hostname(hostname); - addr.Service(port); - - // Finally, create the whole stuff. - if (m_proxy && m_proxy != g_proxy) - delete m_proxy; - m_proxy = new wxHTTP(); - m_proxy->Connect(addr, TRUE); // Watcom needs the 2nd arg for some reason - - CleanData(); - // Reparse url. - m_useProxy = TRUE; - ParseURL(); -} -#endif - -wxString wxURL::ConvertToValidURI(const wxString& uri) -{ - wxString out_str; - wxString hexa_code; - size_t i; - - for (i=0;i -#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 - -#ifdef __EMX__ -#define strcasecmp stricmp -#define strncasecmp strnicmp -#endif - -// 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__ */ - -#ifdef __WXPM__ -#define strcasecmp stricmp -#define strncasecmp strnicmp -#endif - -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; -} - -wxString wxGetFullHostName() -{ - static const size_t hostnameSize = 257; - - wxString buf; - bool ok = wxGetFullHostName(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 c230dddb21..0000000000 --- a/src/common/valgen.cpp +++ /dev/null @@ -1,462 +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/defs.h" -#endif - -#if wxUSE_VALIDATORS - -#ifndef WX_PRECOMP - #include "wx/utils.h" - #include "wx/intl.h" - #include "wx/dynarray.h" - #include "wx/choice.h" - #include "wx/combobox.h" - #include "wx/radiobox.h" - #include "wx/radiobut.h" - #include "wx/checkbox.h" - #include "wx/scrolbar.h" - #include "wx/gauge.h" - #include "wx/stattext.h" - #include "wx/textctrl.h" - #include "wx/button.h" - #include "wx/listbox.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 wxUSE_CHECKBOX - if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) ) - { - wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow; - if (m_pBool) - { - pControl->SetValue(*m_pBool) ; - return TRUE; - } - } else -#endif -#if wxUSE_RADIOBTN - if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) ) - { - wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow; - if (m_pBool) - { - pControl->SetValue(*m_pBool) ; - return TRUE; - } - } else -#endif - // int controls -#if wxUSE_GAUGE - if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) ) - { - wxGauge* pControl = (wxGauge*) m_validatorWindow; - if (m_pInt) - { - pControl->SetValue(*m_pInt) ; - return TRUE; - } - } - else -#endif -#if wxUSE_RADIOBOX - if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) ) - { - wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow; - if (m_pInt) - { - pControl->SetSelection(*m_pInt) ; - return TRUE; - } - } - else -#endif -#if wxUSE_SCROLLBAR - if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) ) - { - wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow; - if (m_pInt) - { - pControl->SetThumbPosition(*m_pInt) ; - return TRUE; - } - } else -#endif -#if wxUSE_SPINBTN -#ifndef __WIN16__ - if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) ) - { - wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow; - if (m_pInt) - { - pControl->SetValue(*m_pInt) ; - return TRUE; - } - } else -#endif -#endif - // string controls - if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) ) - { - wxButton* pControl = (wxButton*) m_validatorWindow; - if (m_pString) - { - pControl->SetLabel(*m_pString) ; - return TRUE; - } - } else -#if wxUSE_COMBOBOX - if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) ) - { - wxComboBox* pControl = (wxComboBox*) m_validatorWindow; - if (m_pString) - { - pControl->SetValue(*m_pString) ; - return TRUE; - } - } else -#endif -#if wxUSE_CHOICE - if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) ) - { - wxChoice* pControl = (wxChoice*) m_validatorWindow; - if (m_pInt) - { - pControl->SetSelection(*m_pInt) ; - return TRUE; - } - } else -#endif - 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; - } - } else -#if wxUSE_CHECKLISTBOX -#ifndef __WIN16__ - // array controls - // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox - // MUST come first: - 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; - } else -#endif -#endif -#if wxUSE_LISTBOX - 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; - } - } else -#endif - - // unrecognized control, or bad pointer - return FALSE; - return FALSE; -} - -// Called to transfer data to the window -bool wxGenericValidator::TransferFromWindow(void) -{ - if ( !m_validatorWindow ) - return FALSE; - - // bool controls -#if wxUSE_CHECKBOX - if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) ) - { - wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow; - if (m_pBool) - { - *m_pBool = pControl->GetValue() ; - return TRUE; - } - } else -#endif -#if wxUSE_RADIOBTN - if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) ) - { - wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow; - if (m_pBool) - { - *m_pBool = pControl->GetValue() ; - return TRUE; - } - } else -#endif - // int controls -#if wxUSE_GAUGE - if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) ) - { - wxGauge* pControl = (wxGauge*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetValue() ; - return TRUE; - } - } else -#endif -#if wxUSE_RADIOBOX - if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) ) - { - wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetSelection() ; - return TRUE; - } - } else -#endif -#if wxUSE_SCROLLBAR - if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) ) - { - wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetThumbPosition() ; - return TRUE; - } - } else -#endif -#if wxUSE_SPINBTN -#ifndef __WIN16__ - if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) ) - { - wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetValue() ; - return TRUE; - } - } else -#endif -#endif - // string controls - if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) ) - { - wxButton* pControl = (wxButton*) m_validatorWindow; - if (m_pString) - { - *m_pString = pControl->GetLabel() ; - return TRUE; - } - } - else -#if wxUSE_COMBOBOX - if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) ) - { - wxComboBox* pControl = (wxComboBox*) m_validatorWindow; - if (m_pString) - { - *m_pString = pControl->GetValue() ; - return TRUE; - } - } else -#endif -#if wxUSE_CHOICE - if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) ) - { - wxChoice* pControl = (wxChoice*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetSelection() ; - return TRUE; - } - } else -#endif - 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; - } - } else -#if wxUSE_LISTBOX -#ifndef __WIN16__ - // array controls - // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox - // MUST come first: - 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; - } else -#endif -#endif -#if wxUSE_LISTBOX - 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; - } - } else -#endif - - // unrecognized control, or bad pointer - return FALSE; - 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; -} - -#endif - // wxUSE_VALIDATORS - diff --git a/src/common/validate.cpp b/src/common/validate.cpp deleted file mode 100644 index 44e0caeece..0000000000 --- a/src/common/validate.cpp +++ /dev/null @@ -1,55 +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/defs.h" -#endif - -#if wxUSE_VALIDATORS - -#ifndef WX_PRECOMP - #include "wx/window.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() -{ -} - -#endif - // wxUSE_VALIDATORS diff --git a/src/common/valtext.cpp b/src/common/valtext.cpp deleted file mode 100644 index f891889826..0000000000 --- a/src/common/valtext.cpp +++ /dev/null @@ -1,313 +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 - -#if wxUSE_VALIDATORS - -#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; -} - -#endif - // wxUSE_VALIDATORS - \ No newline at end of file diff --git a/src/common/variant.cpp b/src/common/variant.cpp deleted file mode 100644 index 5b7126fd5e..0000000000 --- a/src/common/variant.cpp +++ /dev/null @@ -1,1890 +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 && wxUSE_STD_IOSTREAM -# include -#else -# include -#endif - -#if wxUSE_STREAMS -#include "wx/stream.h" -#include "wx/txtstrm.h" -#endif - -#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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Write(wxString& str) const; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif - 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; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataList::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -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; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataList::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); - // TODO - return FALSE; -} -#endif - -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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Write(wxString& str) const; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif - 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; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataStringList::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -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; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataStringList::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); - // TODO - return FALSE; -} -#endif - -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; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); - virtual bool Write(ostream& str) const; -#endif -#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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataLong::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataLong::Write(wxString& str) const -{ - str.Printf(_T("%ld"), m_value); - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataLong::Read(istream& str) -{ - str >> m_value; - return TRUE; -} -#endif - -#if wxUSE_STREAMS -bool wxVariantDataLong::Write(wxOutputStream& str) const -{ - wxTextOutputStream s(str); - - s.Write32(m_value); - return TRUE; -} - -bool wxVariantDataLong::Read(wxInputStream& str) -{ - wxTextInputStream s(str); - m_value = s.Read32(); - 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); -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Write(wxString& str) const; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif -#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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataReal::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataReal::Write(wxString& str) const -{ - str.Printf(_T("%.4f"), m_value); - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataReal::Read(istream& str) -{ - str >> m_value; - return TRUE; -} -#endif - -#if wxUSE_STREAMS -bool wxVariantDataReal::Write(wxOutputStream& str) const -{ - wxTextOutputStream s(str); - s.WriteDouble((double)m_value); - return TRUE; -} - -bool wxVariantDataReal::Read(wxInputStream& str) -{ - wxTextInputStream s(str); - m_value = (float)s.ReadDouble(); - 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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Write(wxString& str) const; - virtual bool Read(wxString& str); -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif -#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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataBool::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataBool::Write(wxString& str) const -{ - str.Printf(_T("%d"), (int) m_value); - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataBool::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); -// str >> (long) m_value; - return FALSE; -} -#endif - -#if wxUSE_STREAMS -bool wxVariantDataBool::Write(wxOutputStream& str) const -{ - wxTextOutputStream s(str); - - s.Write8(m_value); - return TRUE; -} - -bool wxVariantDataBool::Read(wxInputStream& str) -{ - wxTextInputStream s(str); - - m_value = s.Read8() != 0; - 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; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); - virtual bool Write(ostream& str) const; -#endif - 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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataChar::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataChar::Write(wxString& str) const -{ - str.Printf(_T("%c"), m_value); - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataChar::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); -// str >> m_value; - return FALSE; -} -#endif - -#if wxUSE_STREAMS -bool wxVariantDataChar::Write(wxOutputStream& str) const -{ - wxTextOutputStream s(str); - - s.Write8(m_value); - return TRUE; -} - -bool wxVariantDataChar::Read(wxInputStream& str) -{ - wxTextInputStream s(str); - - m_value = s.Read8(); - 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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Read(wxString& str); - virtual bool Write(wxString& str) const; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif -#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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataString::Write(ostream& str) const -{ - str << (const char*) m_value.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataString::Write(wxString& str) const -{ - str = m_value; - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataString::Read(istream& str) -{ - str >> m_value; - return TRUE; -} -#endif - -#if wxUSE_STREAMS -bool wxVariantDataString::Write(wxOutputStream& str) const -{ - // why doesn't wxOutputStream::operator<< take "const wxString&" - wxTextOutputStream s(str); - s.WriteString(m_value); - return TRUE; -} - -bool wxVariantDataString::Read(wxInputStream& str) -{ - wxTextInputStream s(str); - - m_value = s.ReadString(); - 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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Write(wxString& str) const; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif - 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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataTime::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataTime::Write(wxString& str) const -{ - wxChar*s = m_value.FormatTime(); - str = s; - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataTime::Read(istream& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} -#endif - -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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Write(wxString& str) const; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif - 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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataDate::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataDate::Write(wxString& str) const -{ - str = m_value.FormatDate(); - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataDate::Read(istream& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} -#endif - -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; -#if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; -#endif - virtual bool Write(wxString& str) const; -#if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); -#endif - 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); -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataVoidPtr::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} -#endif - -bool wxVariantDataVoidPtr::Write(wxString& str) const -{ - str.Printf(_T("%ld"), (long) m_value); - return TRUE; -} - -#if wxUSE_STD_IOSTREAM -bool wxVariantDataVoidPtr::Read(istream& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} -#endif - -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 f9694ca306..0000000000 --- a/src/common/wfstream.cpp +++ /dev/null @@ -1,174 +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" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_STREAMS && wxUSE_FILE - -#include -#include "wx/stream.h" -#include "wx/wfstream.h" - -// ---------------------------------------------------------------------------- -// wxFileInputStream -// ---------------------------------------------------------------------------- - -wxFileInputStream::wxFileInputStream(const wxString& fileName) - : wxInputStream() -{ - m_file = new wxFile(fileName, wxFile::read); - m_file_destroy = TRUE; -} - -wxFileInputStream::wxFileInputStream() - : wxInputStream() -{ - m_file_destroy = FALSE; - m_file = NULL; -} - -wxFileInputStream::wxFileInputStream(wxFile& file) -{ - m_file = &file; - m_file_destroy = FALSE; -} - -wxFileInputStream::wxFileInputStream(int fd) -{ - m_file = new wxFile(fd); - m_file_destroy = TRUE; -} - -wxFileInputStream::~wxFileInputStream() -{ - if (m_file_destroy) - delete m_file; -} - -size_t wxFileInputStream::GetSize() const -{ - return m_file->Length(); -} - -size_t wxFileInputStream::OnSysRead(void *buffer, size_t size) -{ - off_t ret; - - ret = m_file->Read(buffer, size); - - if (m_file->Eof()) - m_lasterror = wxStream_EOF; - if (ret == wxInvalidOffset) { - m_lasterror = wxStream_READ_ERR; - ret = 0; - } - - return ret; -} - -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; -} - -wxFileOutputStream::wxFileOutputStream(wxFile& file) -{ - m_file = &file; - m_file_destroy = FALSE; -} - -wxFileOutputStream::wxFileOutputStream() - : wxOutputStream() -{ - m_file_destroy = FALSE; - m_file = NULL; -} - -wxFileOutputStream::wxFileOutputStream(int fd) -{ - m_file = new wxFile(fd); - m_file_destroy = TRUE; -} - -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); - if (m_file->Error()) - m_lasterror = wxStream_WRITE_ERR; - else - m_lasterror = wxStream_NOERROR; - 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::GetSize() const -{ - return m_file->Length(); -} - -// ---------------------------------------------------------------------------- -// wxFileStream -// ---------------------------------------------------------------------------- -wxFileStream::wxFileStream(const wxString& fileName) - : wxFileInputStream(fileName), wxFileOutputStream(*wxFileInputStream::m_file) -{ -} - -#endif - // wxUSE_STREAMS && wxUSE_FILE - diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp deleted file mode 100644 index d754cab345..0000000000 --- a/src/common/wincmn.cpp +++ /dev/null @@ -1,1310 +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" - #include "wx/sizer.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 (yet) - m_clientData = NULL; - m_clientDataType = ClientData_None; - - // 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_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 wxValidator& validator, - 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); - SetValidator(validator); - - 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") ); - - // make sure that there are no dangling pointers left pointing to us - wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); - if ( panel ) - { - if ( panel->GetLastFocus() == this ) - { - panel->SetLastFocus((wxWindow *)NULL); - } - } - -#if wxUSE_CARET - if ( m_caret ) - delete m_caret; -#endif // wxUSE_CARET - -#if wxUSE_VALIDATORS - if ( m_windowValidator ) - delete m_windowValidator; -#endif // wxUSE_VALIDATORS - - // we only delete object data, not untyped - if ( m_clientDataType == ClientData_Object ) - 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; - -#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 ) - { - // no other choice - direction |= wxCENTRE_ON_SCREEN; - } - - if ( direction & wxCENTRE_ON_SCREEN ) - { - // centre with respect to the whole screen - wxDisplaySize(&widthParent, &heightParent); - } - else - { - // centre inside the parents rectangle - parent->GetClientSize(&widthParent, &heightParent); - } - - int width, height; - GetSize(&width, &height); - - int xNew = -1, - yNew = -1; - - if ( direction & wxHORIZONTAL ) - xNew = (widthParent - width)/2; - - if ( direction & wxVERTICAL ) - yNew = (heightParent - height)/2; - - // controls are always centered on their parent because it doesn't make - // sense to centre them on the screen - if ( !(direction & wxCENTRE_ON_SCREEN) || wxDynamicCast(this, wxControl) ) - { - // theo nly chance to get this is to have a wxControl without parent - wxCHECK_RET( parent, _T("a control must have a parent") ); - - // adjust to the parents client area origin - wxPoint posParent = parent->ClientToScreen(wxPoint(0, 0)); - - xNew += posParent.x; - yNew += posParent.y; - } - - Move(xNew, yNew); -} - -// fits the window around the children -void wxWindowBase::Fit() -{ - int maxX = 0, - maxY = 0; - - for ( wxWindowList::Node *node = GetChildren().GetFirst(); - node; - node = node->GetNext() ) - { - 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; - } - - // 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 ( (wxCursor&)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 ( (wxFont&)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) -{ - if (m_windowSizer) delete m_windowSizer; - - m_windowSizer = sizer; -} - -bool wxWindowBase::Layout() -{ - int w, h; - GetClientSize(&w, &h); - - // If there is a sizer, use it instead of the constraints - if ( GetSizer() ) - { - GetSizer()->SetDimension( 0, 0, w, h ); - return TRUE; - } - - if ( GetConstraints() ) - { - GetConstraints()->width.SetValue(w); - GetConstraints()->height.SetValue(h); - } - - // 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 ( (constr->width.GetRelationship() != wxAsIs ) || - (constr->height.GetRelationship() != wxAsIs) ) - { - SetSize(x, y, w, h); - } - else - { - // If we don't want to resize this window, just move it... - Move(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(); - } - } -} - -// 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(-1, -1); - if (pt.x != -1) - pt2.x = (int) ((pt.x * 4) / charWidth) ; - if (pt.y != -1) - pt2.y = (int) ((pt.y * 8) / charHeight) ; - - return pt2; -} - -wxPoint wxWindowBase::ConvertDialogToPixels(const wxPoint& pt) -{ - int charWidth = GetCharWidth(); - int charHeight = GetCharHeight(); - wxPoint pt2(-1, -1); - if (pt.x != -1) - pt2.x = (int) ((pt.x * charWidth) / 4) ; - if (pt.y != -1) - pt2.y = (int) ((pt.y * charHeight) / 8) ; - - return pt2; -} - -// ---------------------------------------------------------------------------- -// client data -// ---------------------------------------------------------------------------- - -void wxWindowBase::DoSetClientObject( wxClientData *data ) -{ - wxASSERT_MSG( m_clientDataType != ClientData_Void, - _T("can't have both object and void client data") ); - - if ( m_clientObject ) - delete m_clientObject; - - m_clientObject = data; - m_clientDataType = ClientData_Object; -} - -wxClientData *wxWindowBase::DoGetClientObject() const -{ - wxASSERT_MSG( m_clientDataType == ClientData_Object, - _T("this window doesn't have object client data") ); - - return m_clientObject; -} - -void wxWindowBase::DoSetClientData( void *data ) -{ - wxASSERT_MSG( m_clientDataType != ClientData_Object, - _T("can't have both object and void client data") ); - - m_clientData = data; - m_clientDataType = ClientData_Void; -} - -void *wxWindowBase::DoGetClientData() const -{ - wxASSERT_MSG( m_clientDataType == ClientData_Void, - _T("this window doesn't have void client data") ); - - return m_clientData; -} - -// ---------------------------------------------------------------------------- -// 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 ca5419f957..0000000000 --- a/src/common/wxchar.cpp +++ /dev/null @@ -1,496 +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 -#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; -} - -WXDLLEXPORT int wxIsalnum(wxChar ch) { return IsCharAlphaNumeric(ch); } -WXDLLEXPORT int wxIsalpha(wxChar ch) { return IsCharAlpha(ch); } -WXDLLEXPORT int wxIsctrl(wxChar ch) { return wxMSW_ctype(ch) & C1_CNTRL; } -WXDLLEXPORT int wxIsdigit(wxChar ch) { return wxMSW_ctype(ch) & C1_DIGIT; } -WXDLLEXPORT int wxIsgraph(wxChar ch) { return wxMSW_ctype(ch) & (C1_DIGIT|C1_PUNCT|C1_ALPHA); } -WXDLLEXPORT int wxIslower(wxChar ch) { return IsCharLower(ch); } -WXDLLEXPORT int wxIsprint(wxChar ch) { return wxMSW_ctype(ch) & (C1_DIGIT|C1_SPACE|C1_PUNCT|C1_ALPHA); } -WXDLLEXPORT int wxIspunct(wxChar ch) { return wxMSW_ctype(ch) & C1_PUNCT; } -WXDLLEXPORT int wxIsspace(wxChar ch) { return wxMSW_ctype(ch) & C1_SPACE; } -WXDLLEXPORT int wxIsupper(wxChar ch) { return IsCharUpper(ch); } -WXDLLEXPORT int wxIsxdigit(wxChar ch) { return wxMSW_ctype(ch) & C1_XDIGIT; } -WXDLLEXPORT int wxTolower(wxChar ch) { return (wxChar)CharLower((LPTSTR)(ch)); } -WXDLLEXPORT int wxToupper(wxChar ch) { return (wxChar)CharUpper((LPTSTR)(ch)); } -#endif - -#ifndef wxStrdup -WXDLLEXPORT wxChar * 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 -WXDLLEXPORT wxChar * 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 -WXDLLEXPORT wxChar * wxSetlocale(int category, const wxChar *locale) -{ - setlocale(category, wxConvLibc.cWX2MB(locale)); - // FIXME - return (wxChar *)NULL; -} -#endif - -#ifdef wxNEED_WX_STRING_H -WXDLLEXPORT wxChar * wxStrcat(wxChar *dest, const wxChar *src) -{ - wxChar *ret = dest; - while (*dest) dest++; - while ((*dest++ = *src++)); - return ret; -} - -WXDLLEXPORT wxChar * wxStrchr(const wxChar *s, wxChar c) -{ - while (*s && *s != c) s++; - return (*s) ? (wxChar *)s : (wxChar *)NULL; -} - -WXDLLEXPORT int wxStrcmp(const wxChar *s1, const wxChar *s2) -{ - while ((*s1 == *s2) && *s1) s1++, s2++; - if ((wxUChar)*s1 < (wxUChar)*s2) return -1; - if ((wxUChar)*s1 > (wxUChar)*s2) return 1; - return 0; -} - -WXDLLEXPORT wxChar * wxStrcpy(wxChar *dest, const wxChar *src) -{ - wxChar *ret = dest; - while ((*dest++ = *src++)); - return ret; -} - -WXDLLEXPORT wxChar * wxStrncat(wxChar *dest, const wxChar *src, size_t n) -{ - wxChar *ret = dest; - while (*dest) dest++; - while (n && (*dest++ = *src++)) n--; - return ret; -} - -WXDLLEXPORT int wxStrncmp(const wxChar *s1, const wxChar *s2, size_t n) -{ - while (n && (*s1 == *s2) && *s1) n--, s1++, s2++; - if (n) { - if ((wxUChar)*s1 < (wxUChar)*s2) return -1; - if ((wxUChar)*s1 > (wxUChar)*s2) return 1; - } - return 0; -} - -WXDLLEXPORT wxChar * wxStrncpy(wxChar *dest, const wxChar *src, size_t n) -{ - wxChar *ret = dest; - while (n && (*dest++ = *src++)) n--; - while (n) *dest++=0, n--; // the docs specify padding with zeroes - return ret; -} - -WXDLLEXPORT wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept) -{ - while (*s && !wxStrchr(accept, *s)) s++; - return (*s) ? (wxChar *)s : (wxChar *)NULL; -} - -WXDLLEXPORT wxChar * wxStrrchr(const wxChar *s, wxChar c) -{ - wxChar *ret = (wxChar *)NULL; - while (*s) { - if (*s == c) ret = (wxChar *)s; - s++; - } - return ret; -} - -WXDLLEXPORT size_t wxStrspn(const wxChar *s, const wxChar *accept) -{ - size_t len = 0; - while (wxStrchr(accept, *s++)) len++; - return len; -} - -WXDLLEXPORT wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle) -{ - wxChar *fnd; - while ((fnd = wxStrchr(haystack, *needle))) { - if (!wxStrcmp(fnd, needle)) return fnd; - haystack = fnd + 1; - } - return (wxChar *)NULL; -} - -WXDLLEXPORT double wxStrtod(const wxChar *nptr, wxChar **endptr) -{ - const wxChar *start = nptr; - - // FIXME: only correct for C locale - while (wxIsspace(*nptr)) nptr++; - if (*nptr == _T('+') || *nptr == _T('-')) nptr++; - while (wxIsdigit(*nptr)) nptr++; - if (*nptr == _T('.')) { - nptr++; - while (wxIsdigit(*nptr)) nptr++; - } - if (*nptr == _T('E') || *nptr == _T('e')) { - nptr++; - if (*nptr == _T('+') || *nptr == _T('-')) nptr++; - while (wxIsdigit(*nptr)) nptr++; - } - - wxString data(nptr, nptr-start); - wxWX2MBbuf dat = data.mb_str(wxConvLibc); - char *rdat = MBSTRINGCAST dat; - double ret = strtod(dat, &rdat); - - if (endptr) *endptr = (wxChar *)(start + (rdat - (const char *)dat)); - - return ret; -} - -WXDLLEXPORT long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base) -{ - const wxChar *start = nptr; - - // FIXME: only correct for C locale - while (wxIsspace(*nptr)) nptr++; - if (*nptr == _T('+') || *nptr == _T('-')) nptr++; - if (((base == 0) || (base == 16)) && - (nptr[0] == _T('0') && nptr[1] == _T('x'))) { - nptr += 2; - base = 16; - } - else if ((base == 0) && (nptr[0] == _T('0'))) base = 8; - else if (base == 0) base = 10; - - while ((wxIsdigit(*nptr) && (*nptr - _T('0') < base)) || - (wxIsalpha(*nptr) && (wxToupper(*nptr) - _T('A') + 10 < base))) nptr++; - - wxString data(nptr, nptr-start); - wxWX2MBbuf dat = data.mb_str(wxConvLibc); - char *rdat = MBSTRINGCAST dat; - long int ret = strtol(dat, &rdat, base); - - if (endptr) *endptr = (wxChar *)(start + (rdat - (const char *)dat)); - - return ret; -} -#endif - -#ifdef wxNEED_WX_STDIO_H -WXDLLEXPORT FILE * wxFopen(const wxChar *path, const wxChar *mode) -{ - return fopen(wxConvFile.cWX2MB(path), wxConvLibc.cWX2MB(mode)); -} - -WXDLLEXPORT FILE * wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream) -{ - return freopen(wxConvFile.cWX2MB(path), wxConvLibc.cWX2MB(mode), stream); -} - -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(wxConvLibc.cWX2MB(buf), wxConvLibc.cWX2MB(fmt), argptr); - return ret; -} -#endif - -#ifndef wxAtof -double WXDLLEXPORT wxAtof(const wxChar *psz) -{ - return atof(wxConvLibc.cWX2MB(psz)); -} -#endif - -#ifdef wxNEED_WX_STDLIB_H -int WXDLLEXPORT wxAtoi(const wxChar *psz) -{ - return atoi(wxConvLibc.cWX2MB(psz)); -} - -long WXDLLEXPORT wxAtol(const wxChar *psz) -{ - return atol(wxConvLibc.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(wxConvLibc.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(wxConvLibc.cWX2MB(psz)); -} - -#endif - -#ifdef wxNEED_WX_TIME_H -WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const struct tm *tm) -{ - if (!max) return 0; - char *buf = (char *)malloc(max); - size_t ret = strftime(buf, max, wxConvLibc.cWX2MB(fmt), tm); - if (ret) { - wxStrcpy(s, wxConvLibc.cMB2WX(buf)); - free(buf); - return wxStrlen(s); - } else { - free(buf); - *s = 0; - return 0; - } -} -#endif diff --git a/src/common/wxexpr.cpp b/src/common/wxexpr.cpp deleted file mode 100644 index 951445a595..0000000000 --- a/src/common/wxexpr.cpp +++ /dev/null @@ -1,1205 +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 - -#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(FILE* stream) // Write this expression as a top-level clause -{ - if (type != wxExprList) - return; - - wxExpr *node = value.first; - if (node) - { - node->WriteExpr(stream); - fprintf( stream, "(" ); - node = node->next; - bool first = TRUE; - while (node) - { - if (!first) - fprintf( stream, " " ); - node->WriteExpr(stream); - node = node->next; - if (node) - fprintf( stream, ",\n" ); - first = FALSE; - } - fprintf( stream, ").\n\n" ); - } -} - -void wxExpr::WriteExpr(FILE* 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: - { - fprintf( stream, "%ld", value.integer ); - break; - } - case wxExprReal: - { - double f = value.real; - fprintf( stream, "%.6g", f); - break; - } - case wxExprString: - { - fprintf( stream, "\"" ); - int i; - const wxWX2MBbuf val = wxConvLibc.cWX2MB(value.string); - int len = strlen(val); - for (i = 0; i < len; i++) - { - char ch = val[i]; - if (ch == '"' || ch == '\\') - fprintf( stream, "\\" ); - char tmp[2]; - tmp[0] = ch; - tmp[1] = 0; - fprintf( stream, tmp ); - } - fprintf( stream, "\"" ); - break; - } - case wxExprWord: - { - bool quote_it = FALSE; - const wxWX2MBbuf val = wxConvLibc.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) - fprintf( stream ,"'" ); - - fprintf( stream, (const char*) val ); - - if (quote_it) - fprintf( stream, "'" ); - - break; - } - case wxExprList: - { - if (!value.first) - fprintf( 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); - fprintf( stream, " = " ); - arg2->WriteExpr(stream); - } - else - { - fprintf( stream, "[" ); - while (expr) - { - expr->WriteExpr(stream); - expr = expr->next; - if (expr) - fprintf( stream, ", " ); - } - fprintf( 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) -{ - FILE *stream = fopen( fileName.fn_str(), "w+" ); - - if (!stream) - return FALSE; - - bool success = Write(stream); - fclose(stream); - return success; -} - -bool wxExprDatabase::Write(FILE *stream) -{ - noErrors = 0; - wxNode *node = First(); - while (node) - { - wxExpr *expr = (wxExpr *)node->Data(); - expr->WriteClause(stream); - node = node->Next(); - } - return (noErrors == 0); -} - -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 = wxConvLibc.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/zipstrm.cpp b/src/common/zipstrm.cpp deleted file mode 100644 index 70e700e651..0000000000 --- a/src/common/zipstrm.cpp +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: zipstream.cpp -// Purpose: input stream for ZIP archive access -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "zipstrm.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB - -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/stream.h" -#include "wx/wfstream.h" -#include "wx/zipstrm.h" - -/* Not the right solution (paths in makefiles) but... */ -#ifdef __BORLANDC__ -#include "../common/unzip.h" -#else -#include "unzip.h" -#endif - - -wxZipInputStream::wxZipInputStream(const wxString& archive, const wxString& file) : wxInputStream() -{ - unz_file_info zinfo; - - m_Pos = 0; - m_Size = 0; - m_Archive = (void*) unzOpen(archive.mb_str(wxConvFile)); - if (m_Archive == NULL) - { - m_lasterror = wxStream_READ_ERR; - return; - } - if (unzLocateFile((unzFile)m_Archive, file.mb_str(wxConvFile), 0) != UNZ_OK) - { - m_lasterror = wxStream_READ_ERR; - return; - } - - unzGetCurrentFileInfo((unzFile)m_Archive, &zinfo, (char*) NULL, 0, (void*) NULL, 0, (char*) NULL, 0); - - if (unzOpenCurrentFile((unzFile)m_Archive) != UNZ_OK) - { - m_lasterror = wxStream_READ_ERR; - return; - } - m_Size = zinfo.uncompressed_size; -} - - - -wxZipInputStream::~wxZipInputStream() -{ - if (m_Archive) - { - if (m_Size != 0) - unzCloseCurrentFile((unzFile)m_Archive); - unzClose((unzFile)m_Archive); - } -} - - - -size_t wxZipInputStream::OnSysRead(void *buffer, size_t bufsize) -{ - if (m_Pos + bufsize > m_Size) bufsize = m_Size - m_Pos; - unzReadCurrentFile((unzFile)m_Archive, buffer, bufsize); - m_Pos += bufsize; - return bufsize; -} - - - -off_t wxZipInputStream::OnSysSeek(off_t seek, wxSeekMode mode) -{ - off_t nextpos; - void *buf; - - switch (mode) - { - case wxFromCurrent : nextpos = seek + m_Pos; break; - case wxFromStart : nextpos = seek; break; - case wxFromEnd : nextpos = m_Size - 1 + seek; break; - default : nextpos = m_Pos; break; /* just to fool compiler, never happens */ - } - - // cheated seeking : - if (nextpos > m_Pos) - { - buf = malloc(nextpos - m_Pos); - unzReadCurrentFile((unzFile)m_Archive, buf, nextpos - m_Pos); - free(buf); - } - else if (nextpos < m_Pos) { - unzCloseCurrentFile((unzFile)m_Archive); - if (unzOpenCurrentFile((unzFile)m_Archive) != UNZ_OK) - { - m_lasterror = wxStream_READ_ERR; - return m_Pos; - } - buf = malloc(nextpos); - unzReadCurrentFile((unzFile)m_Archive, buf, nextpos); - free(buf); - } - - m_Pos = nextpos; - return m_Pos; -} - -#endif - // wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB diff --git a/src/common/zstream.cpp b/src/common/zstream.cpp deleted file mode 100644 index 8ccb8710db..0000000000 --- a/src/common/zstream.cpp +++ /dev/null @@ -1,195 +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" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_ZLIB && wxUSE_STREAMS - -#include "wx/zstream.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/log.h" - -// When using configure, the path must be "zlib.h" I don't know -// what other ports (wxMac, wxMotif without configure) need here. -// If we are building with configure (defines __WX_SETUP_H__), -// we trust the zlib path is given as a -I option. -#if defined(__WXMSW__) && !defined(__WX_SETUP_H__) - #include "..\zlib\zlib.h" -#else - #include "zlib.h" -#endif - -#define ZSTREAM_BUFFER_SIZE 1024 - -////////////////////// -// wxZlibInputStream -////////////////////// - -wxZlibInputStream::wxZlibInputStream(wxInputStream& stream) - : wxFilterInputStream(stream) -{ - int err; - - // I need a private stream buffer. - 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_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 && wxUSE_STREAMS - 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/busyinfo.cpp b/src/generic/busyinfo.cpp deleted file mode 100644 index d446750d64..0000000000 --- a/src/generic/busyinfo.cpp +++ /dev/null @@ -1,54 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: busyinfo.cpp -// Purpose: Information window when app is busy -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "busyinfo.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_BUSYINFO - -#include "wx/busyinfo.h" -#include "wx/stattext.h" -#include "wx/panel.h" -#include "wx/utils.h" - - -wxInfoFrame::wxInfoFrame(wxWindow *parent, const wxString& message) - : wxFrame(parent, -1, "", wxPoint(0, 0), wxSize(400, 80), wxTHICK_FRAME | wxSIMPLE_BORDER | wxFRAME_TOOL_WINDOW) -{ - wxPanel *p = new wxPanel( this ); - wxStaticText *s = new wxStaticText( p, -1, message, wxPoint(20, 20), wxSize(360, 40), wxALIGN_CENTER ); - Centre(wxBOTH); - p->SetCursor(*wxHOURGLASS_CURSOR); - s->SetCursor(*wxHOURGLASS_CURSOR); -} - -wxBusyInfo::wxBusyInfo(const wxString& message) : wxObject() -{ - m_InfoFrame = new wxInfoFrame( (wxWindow*) NULL, message); - m_InfoFrame->Show(TRUE); - wxYield(); - m_InfoFrame->Refresh(); - wxYield(); -} - -wxBusyInfo::~wxBusyInfo() -{ - m_InfoFrame->Show(FALSE); - m_InfoFrame->Close(); - wxYield(); -} - -#endif - // wxUSE_BUSYINFO \ No newline at end of file diff --git a/src/generic/caret.cpp b/src/generic/caret.cpp deleted file mode 100644 index 2620630941..0000000000 --- a/src/generic/caret.cpp +++ /dev/null @@ -1,150 +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 -// ---------------------------------------------------------------------------- - -#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/dcclient.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 -// ============================================================================ - -wxCaretTimer::wxCaretTimer(wxCaret *caret) -{ - m_caret = caret; -} - -void wxCaretTimer::Notify() -{ - m_caret->Blink(); -} - -// ---------------------------------------------------------------------------- -// 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 5f82eb8ae0..0000000000 --- a/src/generic/choicdgg.cpp +++ /dev/null @@ -1,306 +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/button.h" - #include "wx/listbox.h" - #include "wx/stattext.h" - #include "wx/intl.h" - #include "wx/sizer.h" -#endif - -#if wxUSE_STATLINE - #include "wx/statline.h" -#endif - -#include "wx/generic/choicdgg.h" - -#define wxID_LISTBOX 3000 - -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 _T(""); -} - -// 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]; - for ( int 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, (char **)client_data); - if ( dialog.ShowModal() == wxID_OK ) - return (wxChar *)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 - -#if defined(__WXMSW__) || defined(__WXMAC__) -#define wxCHOICEDLG_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE | \ - wxDIALOG_MODAL | \ - wxTAB_TRAVERSAL) -#else -#define wxCHOICEDLG_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE | \ - wxDIALOG_MODAL | \ - wxRESIZE_BORDER | \ - wxTAB_TRAVERSAL) -#endif - - -wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - char **clientData, - long style, - const wxPoint& pos) - : wxDialog(parent, -1, caption, pos, wxDefaultSize, - wxCHOICEDLG_DIALOG_STYLE) -{ - Create(parent, message, caption, n, choices, clientData, style); -} - -wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxStringList& choices, - char **clientData, - long style, - const wxPoint& pos) - : wxDialog(parent, -1, caption, pos, wxDefaultSize, - wxCHOICEDLG_DIALOG_STYLE) -{ - Create(parent, message, caption, choices, clientData, style); -} - -bool wxSingleChoiceDialog::Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxStringList& choices, - char **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, - char **clientData, - long style, - const wxPoint& WXUNUSED(pos) ) -{ - m_selection = 0; - m_clientData = NULL; - m_stringSelection = _T(""); - - m_dialogStyle = style; - - wxBeginBusyCursor(); - - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // 1) text message - topsizer->Add( CreateTextSizer( message ), 0, wxALL, 10 ); - - // 2) list box - m_listbox = new wxListBox( this, wxID_LISTBOX, wxDefaultPosition, wxSize(160,100) , - n, choices, wxLB_ALWAYS_SB ); - m_listbox->SetSelection( m_selection ); - if (clientData) - { - for (int i = 0; i < n; i++) - m_listbox->SetClientData(i, clientData[i]); - } - topsizer->Add( m_listbox, 1, wxEXPAND | wxLEFT|wxRIGHT, 15 ); - -#if wxUSE_STATLINE - // 3) static line - topsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif - - // 4) buttons - topsizer->Add( CreateButtonSizer( wxOK|wxCANCEL ), 0, wxCENTRE | wxALL, 10 ); - - SetAutoLayout( TRUE ); - SetSizer( topsizer ); - - topsizer->SetSizeHints( this ); - topsizer->Fit( this ); - - Centre( wxBOTH ); - - m_listbox->SetFocus(); - - wxEndBusyCursor(); - - return TRUE; -} - -// Set the selection -void wxSingleChoiceDialog::SetSelection(int sel) -{ - m_listbox->SetSelection(sel); - m_selection = sel; -} - -void wxSingleChoiceDialog::OnOK(wxCommandEvent& WXUNUSED(event)) -{ - m_selection = m_listbox->GetSelection(); - m_stringSelection = m_listbox->GetStringSelection(); - m_clientData = m_listbox->GetClientData(m_selection); - - EndModal(wxID_OK); -} - -void wxSingleChoiceDialog::OnListBoxDClick(wxCommandEvent& WXUNUSED(event)) -{ - m_selection = m_listbox->GetSelection(); - m_stringSelection = m_listbox->GetStringSelection(); - m_clientData = m_listbox->GetClientData(m_selection); - - EndModal(wxID_OK); -} - diff --git a/src/generic/colrdlgg.cpp b/src/generic/colrdlgg.cpp deleted file mode 100644 index d99432194e..0000000000 --- a/src/generic/colrdlgg.cpp +++ /dev/null @@ -1,489 +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) -{ -#ifndef __WXMOTIF__ - wxDialog::OnPaint(event); -#endif - - 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 + bh + 20); - 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 8fb105fc8f..0000000000 --- a/src/generic/dcpsg.cpp +++ /dev/null @@ -1,2383 +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_PRINTING_ARCHITECTURE - -#if wxUSE_POSTSCRIPT - -#include "wx/window.h" -#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 = (FILE*) 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 - // HH: Doesn't seem to work for wxMSW... - #ifndef __WXMSW__ - m_printData = * wxThePrintSetupData; - #endif -} - -wxPostScriptDC::wxPostScriptDC (const wxString& file, bool interactive, wxWindow *parent) -{ - m_pstream = (FILE*) 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 = (FILE*) 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) - { - fclose( m_pstream ); - m_pstream = (FILE*) NULL; - } -} - -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; - fprintf( m_pstream, - "gsave\n newpath\n" - "%ld %ld moveto\n" - "%ld %ld lineto\n" - "%ld %ld lineto\n" - "%ld %ld lineto\n" - "closepath clip newpath\n", - XLOG2DEV(x), YLOG2DEV(y), - XLOG2DEV(x+w), YLOG2DEV(y), - XLOG2DEV(x+w), YLOG2DEV(y+h), - XLOG2DEV(x), YLOG2DEV(y+h) ); -} - -void wxPostScriptDC::SetClippingRegion( const wxRegion &WXUNUSED(region) ) -{ - wxFAIL_MSG( _T("wxPostScriptDC::SetClippingRegion not implemented.") ); -} - -void wxPostScriptDC::DestroyClippingRegion() -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - wxDC::DestroyClippingRegion(); - - if (m_clipping) - { - m_clipping = FALSE; - fprintf( 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 ); - - fprintf( m_pstream, - "newpath\n" - "%ld %ld moveto\n" - "%ld %ld lineto\n" - "stroke\n", - XLOG2DEV(x1), YLOG2DEV(y1), - XLOG2DEV(x2), YLOG2DEV (y2) ); - - 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 ); - - fprintf( m_pstream, - "newpath\n" - "%ld %ld %ld %ld %ld %ld ellipse\n" - "%ld %ld lineto\n" - "closepath\n" - "fill\n", - XLOG2DEV(xc), YLOG2DEV(yc), XLOG2DEVREL(radius), YLOG2DEVREL(radius), (long)alpha1, (long) alpha2, - XLOG2DEV(xc), YLOG2DEV(yc) ); - - CalcBoundingBox( xc-radius, yc-radius ); - CalcBoundingBox( xc+radius, yc+radius ); - } - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - SetPen( m_pen ); - - fprintf( m_pstream, - "newpath\n" - "%ld %ld %ld %ld %ld %ld ellipse\n" - "%ld %ld lineto\n" - "stroke\n" - "fill\n", - XLOG2DEV(xc), YLOG2DEV(yc), XLOG2DEVREL(radius), YLOG2DEVREL(radius), (long)alpha1, (long) alpha2, - XLOG2DEV(xc), YLOG2DEV(yc) ); - - 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 ); - - fprintf( m_pstream, - "newpath\n" - "%ld %ld %ld %ld %ld %ld true ellipticarc\n", - XLOG2DEV(x+w/2), YLOG2DEV(y+h/2), XLOG2DEVREL(w/2), YLOG2DEVREL(h/2), (long)sa, (long)ea ); - - CalcBoundingBox( x ,y ); - CalcBoundingBox( x+w, y+h ); - } - - if (m_pen.GetStyle () != wxTRANSPARENT) - { - SetPen( m_pen ); - - fprintf( m_pstream, - "newpath\n" - "%ld %ld %ld %ld %ld %ld false ellipticarc\n", - XLOG2DEV(x+w/2), YLOG2DEV(y+h/2), XLOG2DEVREL(w/2), YLOG2DEVREL(h/2), (long)sa, (long)ea ); - - 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); - - fprintf( m_pstream, - "newpath\n" - "%ld %ld moveto\n" - "%ld %ld lineto\n" - "stroke\n", - XLOG2DEV(x), YLOG2DEV(y), - XLOG2DEV(x+1), YLOG2DEV(y) ); - - 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 ); - - fprintf( m_pstream, "newpath\n" ); - - long xx = XLOG2DEV(points[0].x + xoffset); - long yy = YLOG2DEV(points[0].y + yoffset); - - fprintf( m_pstream, "%ld %ld moveto\n", xx, yy ); - - 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); - - fprintf( m_pstream, "%ld %ld lineto\n", xx, yy ); - - CalcBoundingBox( points[i].x + xoffset, points[i].y + yoffset); - } - - fprintf( m_pstream, "fill\n" ); - } - - if (m_pen.GetStyle () != wxTRANSPARENT) - { - SetPen( m_pen ); - - fprintf( m_pstream, "newpath\n" ); - - long xx = XLOG2DEV(points[0].x + xoffset); - long yy = YLOG2DEV(points[0].y + yoffset); - - fprintf( m_pstream, "%ld %ld moveto\n", xx, yy ); - - 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); - - fprintf( m_pstream, "%ld %ld lineto\n", xx, yy ); - - CalcBoundingBox( points[i].x + xoffset, points[i].y + yoffset); - } - - fprintf( m_pstream, "fill\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 */ - fprintf(m_pstream, "\\%o", c); - } - else - { - tmpbuf[0] = (char) c; - fprintf( m_pstream, tmpbuf ); - } - } - - fprintf( m_pstream, ") show\n" ); - - if (m_font.GetUnderlined()) - { - long uy = (long)(y + size - m_underlinePosition); - long w, h; - GetTextExtent(text, &w, &h); - - fprintf( m_pstream, - "gsave\n" - "%ld %ld moveto\n" - "%ld setlinewidth\n" - "%ld %ld lineto\n" - "stroke\n" - "grestore\n", - XLOG2DEV(x), YLOG2DEV(uy), - (long)m_underlineThickness, - XLOG2DEV(x + w), YLOG2DEV(uy) ); - } - - 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; - - fprintf( m_pstream, - "newpath\n" - "%ld %ld moveto\n" - "%ld %ld lineto\n", - XLOG2DEV((long)x1), YLOG2DEV((long)y1), - XLOG2DEV((long)x3), YLOG2DEV((long)y3) ); - - 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; - - fprintf( m_pstream, - "%ld %ld %ld %ld %ld %ld DrawSplineSection\n", - XLOG2DEV((long)x1), YLOG2DEV((long)y1), - XLOG2DEV((long)x2), YLOG2DEV((long)y2), - XLOG2DEV((long)x3), YLOG2DEV((long)y3) ); - - 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 -*/ - - fprintf( m_pstream, - "%ld %ld lineto\n" - "stroke\n", - XLOG2DEV((long)c), YLOG2DEV((long)d) ); -} - -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_pstream = fopen( m_printData.GetFilename().fn_str(), "w+" ); - - if (!m_pstream) - { - wxMessageBox( _("Cannot open file for PostScript printing!"), _("Error"), wxOK ); - m_ok = FALSE; - return FALSE; - } - - m_ok = TRUE; - - fprintf( m_pstream, "%%%%BeginProlog\n" ); - fprintf( m_pstream, wxPostScriptHeaderEllipse ); - fprintf( m_pstream, wxPostScriptHeaderEllipticArc ); - fprintf( m_pstream, wxPostScriptHeaderColourImage ); - fprintf( m_pstream, wxPostScriptHeaderReencodeISO1 ); - fprintf( m_pstream, wxPostScriptHeaderReencodeISO2 ); - if (wxPostScriptHeaderSpline) - fprintf( m_pstream, wxPostScriptHeaderSpline ); - fprintf( m_pstream, "%%%%EndProlog\n" ); - - 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; - fprintf( m_pstream, "grestore\n" ); - } - - fclose( m_pstream ); - m_pstream = (FILE *) NULL; - - wxChar *header_file = wxGetTempFileName("ps"); - - m_pstream = fopen( wxConvFile.cWX2MB(header_file) , "w+" ); - - fprintf( m_pstream, "%%!PS-Adobe-2.0\n" ); // PostScript magic strings - fprintf( m_pstream, "%%%%Title: %s\n", (const char *)m_title.mb_str() ); - fprintf( m_pstream, "%%%%Creator: %s\n", (const char*)wxConvLibc.cWX2MB(wxTheApp->argv[0]) ); - fprintf( m_pstream, "%%%%CreationDate: %s\n", (const char *)wxNow().mb_str() ); - - wxChar userID[256]; - if ( wxGetEmailAddress(userID, sizeof(userID)) ) - { - fprintf( m_pstream, "%%%%For: %s ", MBSTRINGCAST wxConvCurrent->cWX2MB(userID) ); - wxChar userName[245]; - if (wxGetUserName(userName, sizeof(userName))) - fprintf( m_pstream, " (%s)", MBSTRINGCAST wxConvCurrent->cWX2MB(userName) ); - fprintf( m_pstream, "\n" ); - } - else if ( wxGetUserName(userID, sizeof(userID)) ) - { - fprintf( m_pstream, "%%%%For: %s\n", MBSTRINGCAST wxConvCurrent->cWX2MB(userID) );; - } - - // 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) - fprintf( m_pstream, "%%%%Orientation: Landscape\n" ); - else - fprintf( 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. - fprintf( m_pstream, - "%%%%BoundingBox: %ld %ld %ld %ld\n", - (long)floor((double)llx), (long)floor((double)lly), - (long)ceil((double)urx), (long)ceil((double)ury) ); - fprintf( m_pstream, "%%%%Pages: %d\n", (wxPageNumber - 1) ); - fprintf( 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. - fprintf( m_pstream, "%% newpath\n" ); - fprintf( m_pstream, "%% %ld %ld moveto\n", llx, lly ); - fprintf( m_pstream, "%% %ld %ld lineto\n", urx, lly ); - fprintf( m_pstream, "%% %ld %ld lineto\n", urx, ury ); - fprintf( m_pstream, "%% %ld %ld lineto closepath stroke\n", llx, ury ); - - fclose( m_pstream ); - m_pstream = (FILE*) 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") ); - - fprintf( m_pstream, "%%%%Page: %d\n", wxPageNumber++ ); - -// *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; -// fprintf( m_pstream, "90 rotate\n" ); - - printf( "Hi.\n" ); - - fprintf( m_pstream, "90 rotate llx neg ury nef translate\n" ); - } - -// fprintf( m_pstream, "%.8f %.8f scale\n", scale_x, scale_y ); -// fprintf( m_pstream, "%ld %ld translate\n", translate_x, translate_y ); -} - -void wxPostScriptDC::EndPage () -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - fprintf( 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().fn_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 "gsview" -#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 - -#endif - // wxUSE_PRINTING_ARCHITECTURE diff --git a/src/generic/dirdlgg.cpp b/src/generic/dirdlgg.cpp deleted file mode 100644 index 8ea3fa571e..0000000000 --- a/src/generic/dirdlgg.cpp +++ /dev/null @@ -1,536 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp -// Purpose: wxDirDialog -// Author: Harm van der Heijden and Robert Roebling -// Modified by: -// Created: 12/12/98 -// RCS-ID: $Id$ -// 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" - -#if wxUSE_DIRDLG - -#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/log.h" -#include "wx/sizer.h" - -#if wxUSE_STATLINE - #include "wx/statline.h" -#endif - -#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 -//----------------------------------------------------------------------------- - -wxDirItemData::wxDirItemData(wxString& path, wxString& name) -{ - m_path = path; - m_name = 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() -{ -} - -void wxDirItemData::SetNewDirName( wxString path ) -{ - m_path = path; - m_name = wxFileNameFromPath( path ); -} - -bool wxDirItemData::HasSubDirs() -{ - wxString search = m_path + "/*"; - wxLogNull log; - 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) - EVT_TREE_BEGIN_LABEL_EDIT (-1, wxDirCtrl::OnBeginEditItem) - EVT_TREE_END_LABEL_EDIT (-1, wxDirCtrl::OnEndEditItem) -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::OnBeginEditItem(wxTreeEvent &event) -{ - // don't rename the main entry "Sections" - if (event.GetItem() == m_rootId) - { - event.Veto(); - return; - } - - // don't rename the individual sections - if (GetParent( event.GetItem() ) == m_rootId) - { - event.Veto(); - return; - } -} - -void wxDirCtrl::OnEndEditItem(wxTreeEvent &event) -{ - if ((event.GetLabel().IsEmpty()) || - (event.GetLabel() == _(".")) || - (event.GetLabel() == _("..")) || - (event.GetLabel().First( _T("/") ) != wxNOT_FOUND)) - { - wxMessageDialog dialog(this, _("Illegal directory name."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - event.Veto(); - return; - } - - wxTreeItemId id = event.GetItem(); - wxDirItemData *data = (wxDirItemData*)GetItemData( id ); - wxASSERT( data ); - - wxString new_name( wxPathOnly( data->m_path ) ); - new_name += _T("/"); - new_name += event.GetLabel(); - - wxLogNull log; - - if (wxFileExists(new_name)) - { - wxMessageDialog dialog(this, _("File name exists already."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - event.Veto(); - } - - if (wxRenameFile(data->m_path,new_name)) - { - data->SetNewDirName( new_name ); - } - else - { - wxMessageDialog dialog(this, _("Operation not permitted."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - event.Veto(); - } -} - -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() ); - SortChildren( event.GetItem() ); - - wxEndBusyCursor(); -} - -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 | wxRESIZE_BORDER) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - - m_path = defaultPath; - - wxBeginBusyCursor(); - - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // 1) dir ctrl - m_dir = new wxDirCtrl( this, ID_DIRCTRL, "/", wxDefaultPosition, wxSize(200,200), - wxTR_HAS_BUTTONS | wxSUNKEN_BORDER | wxTR_EDIT_LABELS); - topsizer->Add( m_dir, 1, wxTOP|wxLEFT|wxRIGHT | wxEXPAND, 10 ); - - // 2) text ctrl - m_input = new wxTextCtrl( this, ID_TEXTCTRL, m_path, wxDefaultPosition ); - topsizer->Add( m_input, 0, wxTOP|wxLEFT|wxRIGHT | wxEXPAND, 10 ); - - // m_check = new wxCheckBox( this, ID_CHECK, _("Show hidden") ); - // m_check->SetValue(TRUE); - -#if wxUSE_STATLINE - // 3) static line - topsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif - - // 4) buttons - wxSizer* buttonsizer = new wxBoxSizer( wxHORIZONTAL ); - m_ok = new wxButton( this, ID_OK, _("OK") ); - buttonsizer->Add( m_ok, 0, wxLEFT|wxRIGHT, 10 ); - m_cancel = new wxButton( this, ID_CANCEL, _("Cancel") ); - buttonsizer->Add( m_cancel, 0, wxLEFT|wxRIGHT, 10 ); - m_new = new wxButton( this, ID_NEW, _("New...") ); - buttonsizer->Add( m_new, 0, wxLEFT|wxRIGHT, 10 ); - - topsizer->Add( buttonsizer, 0, wxALL | wxCENTER, 10 ); - - m_ok->SetDefault(); - m_dir->SetFocus(); - - SetAutoLayout( TRUE ); - SetSizer( topsizer ); - - topsizer->SetSizeHints( this ); - topsizer->Fit( this ); - - Centre( wxBOTH ); - - wxEndBusyCursor(); -} - -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 | wxICON_WARNING ); - if ( dialog.ShowModal() == wxID_YES ) { - // Okay, let's make it - wxLogNull log; - 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 | wxICON_ERROR); - 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) ) -{ - wxTreeItemId id = m_dir->GetSelection(); - if ((id == m_dir->GetRootItem()) || - (m_dir->GetParent(id) == m_dir->GetRootItem())) - { - wxMessageDialog msg(this, _("You cannot add a new directory to this section."), - _("Create directory"), wxOK | wxICON_INFORMATION ); - msg.ShowModal(); - return; - } - - wxTreeItemId parent = m_dir->GetParent( id ); - wxDirItemData *data = (wxDirItemData*)m_dir->GetItemData( parent ); - wxASSERT( data ); - - wxString new_name( _T("NewName") ); - wxString path( data->m_path ); - path += _T( "/" ); - path += new_name; - if (wxFileExists(path)) - { - // try NewName0, NewName1 etc. - int i = 0; - do { - new_name = _T("NewName"); - wxString num; - num.Printf( "%d", i ); - new_name += num; - - path = data->m_path; - path += _T( "/" ); - path += new_name; - i++; - } while (wxFileExists(path)); - } - - wxLogNull log; - if (!wxMkdir(path)) - { - wxMessageDialog dialog(this, _("Operation not permitted."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - return; - } - - wxDirItemData *new_data = new wxDirItemData( path, new_name ); - wxTreeItemId new_id = m_dir->AppendItem( parent, new_name, 0, 1, new_data ); - m_dir->EnsureVisible( new_id ); - m_dir->EditLabel( new_id ); -} - -/* -void wxDirDialog::OnCheck( wxCommandEvent& WXUNUSED(event) ) -{ - printf("Checkbox clicked: %s\n", ( m_check->GetValue() ? "on" : "off" ) ); -} -*/ - -#endif diff --git a/src/generic/filedlgg.cpp b/src/generic/filedlgg.cpp deleted file mode 100644 index 234b5b841a..0000000000 --- a/src/generic/filedlgg.cpp +++ /dev/null @@ -1,891 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlgg.cpp -// Purpose: wxFileDialog -// Author: Robert Roebling -// Modified by: -// Created: 12/12/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef __UNIX__ -#error wxFileDialog currently only supports unix -#endif - -#include "wx/filedlg.h" -#include "wx/debug.h" -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/msgdlg.h" -#include "wx/sizer.h" -#include "wx/bmpbuttn.h" -#include "wx/tokenzr.h" - -#if wxUSE_TOOLTIPS - #include "wx/tooltip.h" -#endif - -#include "sys/types.h" -#include "sys/stat.h" -#include "dirent.h" -#include "pwd.h" -#include "grp.h" -#include "time.h" - -#include "wx/generic/home.xpm" -#include "wx/generic/listview.xpm" -#include "wx/generic/repview.xpm" -#include "wx/generic/new_dir.xpm" -#include "wx/generic/dir_up.xpm" - -/* XPM */ -static char * folder_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 */ -" ", -" @@@@@ ", -" @#+#+#@ ", -" @#+#+#+#@@@@@@ ", -" @$$$$$$$$$$$$@.", -" @$#+#+#+#+#+#@.", -" @$+#+#+#+#+#+@.", -" @$#+#+#+#+#+#@.", -" @$+#+#+#+#+#+@.", -" @$#+#+#+#+#+#@.", -" @$+#+#+#+#+#+@.", -" @$#+#+#+#+#+#@.", -" @@@@@@@@@@@@@@.", -" ..............", -" ", -" "}; - -//----------------------------------------------------------------------------- -// 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() const -{ - return m_name; -} - -wxString wxFileData::GetFullName() const -{ - return m_fileName; -} - -wxString wxFileData::GetHint() const -{ - wxString s = m_fileName; - s += " "; - if (m_isDir) s += _(" "); - else if (m_isLink) s += _(" "); - else - { - s += LongToString( m_size ); - s += _(" bytes "); - } - s += IntToString( m_day ); - s += _T("."); - s += IntToString( m_month ); - s += _T("."); - s += IntToString( m_year ); - s += _T(" "); - s += IntToString( m_hour ); - s += _T(":"); - s += IntToString( m_minute ); - s += _T(" "); - 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 = _T("0"); else s = _T(""); - s += IntToString( m_day ); - s += _T("."); - if (m_month < 10) s += _T("0"); - s += IntToString( m_month ); - s += _T("."); - if (m_year < 10) s += _T("0"); // this should happen real soon... - s += IntToString( m_year ); - break; - case 3: - if (m_hour < 10) s = _T("0"); else s = _T(""); - s += IntToString( m_hour ); - s += _T(":"); - if (m_minute < 10) s += _T("0"); - s += IntToString( m_minute ); - break; - case 4: - s = m_permissions; - break; - default: - s = _T("No entry"); - break; - } - return s; -} - -bool wxFileData::IsDir() -{ - return m_isDir; -} - -bool wxFileData::IsExe() -{ - return m_isExe; -} - -bool wxFileData::IsLink() -{ - return m_isLink; -} - -long wxFileData::GetSize() -{ - return m_size; -} - -void wxFileData::SetNewName( const wxString &name, const wxString &fname ) -{ - m_name = name; - m_fileName = fname; -} - -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 (IsDir()) item.m_image = 0; else item.m_image = -1; - 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_LIST_DELETE_ITEM(-1, wxFileCtrl::OnListDeleteItem) - EVT_LIST_END_LABEL_EDIT(-1, wxFileCtrl::OnListEndLabelEdit) -END_EVENT_TABLE() - -wxFileCtrl::wxFileCtrl() -{ - m_dirName = _T("/"); - m_showHidden = FALSE; -} - -wxFileCtrl::wxFileCtrl( wxWindow *win, wxWindowID id, - const wxString &dirName, const wxString &wild, - const wxPoint &pos, const wxSize &size, - long style, const wxValidator &validator, const wxString &name ) : - wxListCtrl( win, id, pos, size, style, validator, name ) -{ - wxImageList *imageList = new wxImageList( 16, 16 ); - imageList->Add( wxBitmap( folder_xpm ) ); - SetImageList( imageList, wxIMAGE_LIST_SMALL ); - - m_dirName = dirName; - m_wild = wild; - m_showHidden = FALSE; - Update(); -} - -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->GetName() == _T("..")) return -1; - if (fd2->GetName() == _T("..")) return 1; - if (fd1->IsDir() && !fd2->IsDir()) return -1; - if (fd2->IsDir() && !fd1->IsDir()) return 1; - return strcmp( fd1->GetName(), fd2->GetName() ); -} - -long wxFileCtrl::Add( wxFileData *fd, wxListItem &item ) -{ - long ret = -1; - item.m_mask = wxLIST_MASK_TEXT + wxLIST_MASK_DATA + wxLIST_MASK_IMAGE; - fd->MakeItem( item ); - long my_style = GetWindowStyleFlag(); - if (my_style & wxLC_REPORT) - { - ret = InsertItem( item ); - for (int i = 1; i < 5; i++) SetItem( item.m_itemId, i, fd->GetEntry( i) ); - } - else if (my_style & wxLC_LIST) - { - ret = InsertItem( item ); - } - return ret; -} - -void wxFileCtrl::Update() -{ - ClearAll(); - long my_style = GetWindowStyleFlag(); - if (my_style & wxLC_REPORT) - { - InsertColumn( 0, _("Name"), wxLIST_FORMAT_LEFT, 130 ); - 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_itemId = 0; - item.m_col = 0; - - if (m_dirName != _T("/")) - { - wxString p( wxPathOnly(m_dirName) ); - if (p.IsEmpty()) p = _T("/"); - fd = new wxFileData( _T(".."), p ); - Add( fd, item ); - item.m_itemId++; - } - - wxString res = m_dirName + _T("/*"); - wxString f( wxFindFirstFile( res.GetData(), wxDIR ) ); - while (!f.IsEmpty()) - { - res = wxFileNameFromPath( f ); - fd = new wxFileData( res, f ); - wxString s = fd->GetName(); - if (m_showHidden || (s[0] != _T('.'))) - { - Add( fd, item ); - item.m_itemId++; - } - f = wxFindNextFile(); - } - - res = m_dirName + _T("/") + m_wild; - f = wxFindFirstFile( res.GetData(), wxFILE ); - while (!f.IsEmpty()) - { - res = wxFileNameFromPath( f ); - fd = new wxFileData( res, f ); - wxString s = fd->GetName(); - if (m_showHidden || (s[0] != _T('.'))) - { - Add( fd, item ); - item.m_itemId++; - } - f = wxFindNextFile(); - } - - SortItems( ListCompare, 0 ); -} - -void wxFileCtrl::SetWild( const wxString &wild ) -{ - m_wild = wild; - Update(); -} - -void wxFileCtrl::MakeDir() -{ - wxString new_name( _T("NewName") ); - wxString path( m_dirName ); - path += _T( "/" ); - path += new_name; - if (wxFileExists(path)) - { - // try NewName0, NewName1 etc. - int i = 0; - do { - new_name = _("NewName"); - wxString num; - num.Printf( _T("%d"), i ); - new_name += num; - - path = m_dirName; - path += _T("/"); - path += new_name; - i++; - } while (wxFileExists(path)); - } - - wxLogNull log; - if (!wxMkdir(path)) - { - wxMessageDialog dialog(this, _("Operation not permitted."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - return; - } - - wxFileData *fd = new wxFileData( new_name, path ); - wxListItem item; - item.m_itemId = 0; - item.m_col = 0; - int id = Add( fd, item ); - - if (id != -1) - { - SortItems( ListCompare, 0 ); - id = FindItem( 0, (long)fd ); - EnsureVisible( id ); - EditLabel( id ); - } -} - -void wxFileCtrl::GoToParentDir() -{ - if (m_dirName != _T("/")) - { - wxString fname( wxFileNameFromPath(m_dirName) ); - m_dirName = wxPathOnly( m_dirName ); - if (m_dirName.IsEmpty()) m_dirName = _T("/"); - Update(); - int id = FindItem( 0, fname ); - if (id != -1) - { - SetItemState( id, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED ); - EnsureVisible( id ); - } - } -} - -void wxFileCtrl::GoToHomeDir() -{ - wxString s = wxGetUserHome( wxString() ); - m_dirName = s; - Update(); - SetItemState( 0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED ); - EnsureVisible( 0 ); -} - -void wxFileCtrl::GoToDir( const wxString &dir ) -{ - m_dirName = dir; - Update(); - SetItemState( 0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED ); - EnsureVisible( 0 ); -} - -void wxFileCtrl::GetDir( wxString &dir ) -{ - dir = m_dirName; -} - -void wxFileCtrl::OnListDeleteItem( wxListEvent &event ) -{ - wxFileData *fd = (wxFileData*)event.m_item.m_data; - delete fd; -} - -void wxFileCtrl::OnListEndLabelEdit( wxListEvent &event ) -{ - wxFileData *fd = (wxFileData*)event.m_item.m_data; - wxASSERT( fd ); - - if ((event.GetLabel().IsEmpty()) || - (event.GetLabel() == _(".")) || - (event.GetLabel() == _("..")) || - (event.GetLabel().First( _T("/") ) != wxNOT_FOUND)) - { - wxMessageDialog dialog(this, _("Illegal directory name."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - event.Veto(); - return; - } - - wxString new_name( wxPathOnly( fd->GetFullName() ) ); - new_name += _T("/"); - new_name += event.GetLabel(); - - wxLogNull log; - - if (wxFileExists(new_name)) - { - wxMessageDialog dialog(this, _("File name exists already."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - event.Veto(); - } - - if (wxRenameFile(fd->GetFullName(),new_name)) - { - fd->SetNewName( new_name, event.GetLabel() ); - SetItemState( event.GetItem(), wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED ); - EnsureVisible( event.GetItem() ); - } - else - { - wxMessageDialog dialog(this, _("Operation not permitted."), _("Error"), wxOK | wxICON_ERROR ); - dialog.ShowModal(); - event.Veto(); - } -} - -//----------------------------------------------------------------------------- -// wxFileDialog -//----------------------------------------------------------------------------- - -#define ID_LIST_MODE 5000 -#define ID_REPORT_MODE 5001 -#define ID_UP_DIR 5005 -#define ID_PARENT_DIR 5006 -#define ID_NEW_DIR 5007 -#define ID_CHOICE 5008 -#define ID_TEXT 5009 -#define ID_LIST_CTRL 5010 - -IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxDialog) - -BEGIN_EVENT_TABLE(wxFileDialog,wxDialog) - EVT_BUTTON(ID_LIST_MODE, wxFileDialog::OnList) - EVT_BUTTON(ID_REPORT_MODE, wxFileDialog::OnReport) - EVT_BUTTON(ID_UP_DIR, wxFileDialog::OnUp) - EVT_BUTTON(ID_PARENT_DIR, wxFileDialog::OnHome) - EVT_BUTTON(ID_NEW_DIR, wxFileDialog::OnNew) - EVT_BUTTON(wxID_OK, wxFileDialog::OnListOk) - EVT_LIST_ITEM_SELECTED(ID_LIST_CTRL, wxFileDialog::OnSelected) - EVT_LIST_ITEM_ACTIVATED(ID_LIST_CTRL, wxFileDialog::OnActivated) - EVT_CHOICE(ID_CHOICE,wxFileDialog::OnChoice) - EVT_TEXT_ENTER(ID_TEXT,wxFileDialog::OnTextEnter) -END_EVENT_TABLE() - -wxFileDialog::wxFileDialog(wxWindow *parent, - const wxString& message, - const wxString& defaultDir, - const wxString& defaultFile, - const wxString& wildCard, - long style, - const wxPoint& pos ) : - wxDialog( parent, -1, message, pos, wxDefaultSize, style | wxRESIZE_BORDER ) -{ - wxBeginBusyCursor(); - - m_message = message; - m_dialogStyle = style; - m_dir = defaultDir; - if (m_dir.IsEmpty()) m_dir = wxGetUserHome(); - m_path = defaultDir; - m_path += _T("/"); - m_path += defaultFile; - m_fileName = defaultFile; - m_wildCard = wildCard; - m_filterIndex = 0; - - // interpret wildcards - - if (m_wildCard.IsEmpty()) - m_wildCard = _("All files (*)|*"); - - wxStringTokenizer tokens( m_wildCard, _T("|") ); - wxString firstWild; - wxString firstWildText; - if (tokens.CountTokens() == 1) - { - firstWildText = tokens.GetNextToken(); - firstWild = firstWildText; - } - else - { - wxASSERT_MSG( tokens.CountTokens() % 2 == 0, _T("Wrong file type descripition") ); - firstWildText = tokens.GetNextToken(); - firstWild = tokens.GetNextToken(); - } - - // layout - - wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer *buttonsizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBitmapButton *but; - - but = new wxBitmapButton( this, ID_LIST_MODE, wxBitmap( listview_xpm ) ); -#if wxUSE_TOOLTIPS - but->SetToolTip( _("View files as a list view") ); -#endif - buttonsizer->Add( but, 0, wxALL, 5 ); - - but = new wxBitmapButton( this, ID_REPORT_MODE, wxBitmap( repview_xpm ) ); -#if wxUSE_TOOLTIPS - but->SetToolTip( _("View files as a detailed view") ); -#endif - buttonsizer->Add( but, 0, wxALL, 5 ); - - buttonsizer->Add( 30, 5, 1 ); - - but = new wxBitmapButton( this, ID_UP_DIR, wxBitmap( dir_up_xpm ) ); -#if wxUSE_TOOLTIPS - but->SetToolTip( _("Go to parent directory") ); -#endif - buttonsizer->Add( but, 0, wxALL, 5 ); - - but = new wxBitmapButton( this, ID_PARENT_DIR, wxBitmap(home_xpm) ); -#if wxUSE_TOOLTIPS - but->SetToolTip( _("Go to home directory") ); -#endif - buttonsizer->Add( but, 0, wxALL, 5); - - buttonsizer->Add( 20, 20 ); - - but = new wxBitmapButton( this, ID_NEW_DIR, wxBitmap(new_dir_xpm) ); -#if wxUSE_TOOLTIPS - but->SetToolTip( _("Create new directory") ); -#endif - buttonsizer->Add( but, 0, wxALL, 5 ); - - mainsizer->Add( buttonsizer, 0, wxALL | wxEXPAND, 5 ); - - m_list = new wxFileCtrl( this, ID_LIST_CTRL, m_dir, firstWild, wxDefaultPosition, wxSize(440,180), - wxLC_LIST | wxSUNKEN_BORDER | wxLC_SINGLE_SEL ); - mainsizer->Add( m_list, 1, wxEXPAND | wxLEFT|wxRIGHT, 10 ); - - wxBoxSizer *textsizer = new wxBoxSizer( wxHORIZONTAL ); - m_text = new wxTextCtrl( this, ID_TEXT, m_fileName, wxDefaultPosition, wxDefaultSize, wxPROCESS_ENTER ); - textsizer->Add( m_text, 1, wxCENTER | wxLEFT|wxRIGHT|wxTOP, 10 ); - textsizer->Add( new wxButton( this, wxID_OK, _("OK") ), 0, wxCENTER | wxLEFT|wxRIGHT|wxTOP, 10 ); - mainsizer->Add( textsizer, 0, wxEXPAND ); - - wxBoxSizer *choicesizer = new wxBoxSizer( wxHORIZONTAL ); - m_choice = new wxChoice( this, ID_CHOICE ); - choicesizer->Add( m_choice, 1, wxCENTER|wxALL, 10 ); - choicesizer->Add( new wxButton( this, wxID_CANCEL, _("Cancel") ), 0, wxCENTER | wxALL, 10 ); - mainsizer->Add( choicesizer, 0, wxEXPAND ); - - m_choice->Append( firstWildText, (void*) new wxString( firstWild ) ); - while (tokens.HasMoreTokens()) - { - firstWildText = tokens.GetNextToken(); - firstWild = tokens.GetNextToken(); - m_choice->Append( firstWildText, (void*) new wxString( firstWild ) ); - } - m_choice->SetSelection( 0 ); - - SetAutoLayout( TRUE ); - SetSizer( mainsizer ); - - mainsizer->Fit( this ); - mainsizer->SetSizeHints( this ); - - Centre( wxBOTH ); - - m_list->SetFocus(); - - wxEndBusyCursor(); -} - -wxFileDialog::~wxFileDialog() -{ -} - -void wxFileDialog::OnChoice( wxCommandEvent &event ) -{ - wxString *str = (wxString*) m_choice->GetClientData( event.GetInt() ); - m_list->SetWild( *str ); -} - -void wxFileDialog::OnActivated( wxListEvent &WXUNUSED(event) ) -{ - wxCommandEvent cevent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK); - cevent.SetEventObject( this ); - GetEventHandler()->ProcessEvent( cevent ); -} - -void wxFileDialog::OnTextEnter( wxCommandEvent &WXUNUSED(event) ) -{ - wxCommandEvent cevent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK); - cevent.SetEventObject( this ); - GetEventHandler()->ProcessEvent( cevent ); -} - -void wxFileDialog::OnSelected( wxListEvent &event ) -{ - if (FindFocus() == m_list) - m_text->SetValue( event.m_item.m_text ); -} - -void wxFileDialog::OnListOk( wxCommandEvent &event ) -{ - wxString filename( m_text->GetValue() ); - wxString dir; - m_list->GetDir( dir ); - if (filename.IsEmpty()) return; - if (filename == _T(".")) return; - - if (filename == _T("..")) - { - m_list->GoToParentDir(); - m_list->SetFocus(); - return; - } - - if ((filename.Find(_T('*')) != wxNOT_FOUND) || - (filename.Find(_T('?')) != wxNOT_FOUND)) - { - if (filename.Find(_T('/')) != wxNOT_FOUND) - { - wxMessageBox(_("Illegal file specification."), _("Error"), wxOK | wxICON_ERROR ); - return; - } - m_list->SetWild( filename ); - return; - } - - if (dir != _T("/")) dir += _T("/"); - dir += filename; - filename = dir; - - if (wxDirExists(filename)) - { - m_list->GoToDir( filename ); - m_text->SetValue( _T("") ); - return; - } - - if ( (m_dialogStyle & wxSAVE) && (m_dialogStyle & wxOVERWRITE_PROMPT) ) - { - if (wxFileExists( filename )) - { - wxString msg; - msg.Printf( _("File '%s' already exists, do you really want to " - "overwrite it?"), filename.c_str() ); - - if (wxMessageBox(msg, _("Confirm"), wxYES_NO) != wxYES) - return; - } - } - else if ( (m_dialogStyle & wxOPEN) && (m_dialogStyle & wxFILE_MUST_EXIST) ) - { - if ( !wxFileExists( filename ) ) - { - wxMessageBox(_("Please choose an existing file."), _("Error"), wxOK | wxICON_ERROR ); - return; - } - } - - SetPath( filename ); - event.Skip(); -} - -void wxFileDialog::OnList( wxCommandEvent &WXUNUSED(event) ) -{ - m_list->ChangeToListMode(); - m_list->SetFocus(); -} - -void wxFileDialog::OnReport( wxCommandEvent &WXUNUSED(event) ) -{ - m_list->ChangeToReportMode(); - m_list->SetFocus(); -} - -void wxFileDialog::OnUp( wxCommandEvent &WXUNUSED(event) ) -{ - m_list->GoToParentDir(); - m_list->SetFocus(); -} - -void wxFileDialog::OnHome( wxCommandEvent &WXUNUSED(event) ) -{ - m_list->GoToHomeDir(); - m_list->SetFocus(); -} - -void wxFileDialog::OnNew( wxCommandEvent &WXUNUSED(event) ) -{ - m_list->MakeDir(); -} - -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); - if (!ext.IsEmpty()) - { - m_fileName += _T("."); - 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/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp deleted file mode 100644 index 5f1ad03f4c..0000000000 --- a/src/generic/fontdlgg.cpp +++ /dev/null @@ -1,455 +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) -{ - 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 b8ccc24fc7..0000000000 --- a/src/generic/gridg.cpp +++ /dev/null @@ -1,2854 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gridg.cpp -// Purpose: wxGenericGrid -// Author: Julian Smart -// Modified by: Michael Bedward -// Added edit in place facility, 20 Apr 1999 -// Added cursor key control, 29 Jun 1999 -// Gerhard Gruber -// Added keyboard navigation, client data, other fixes -// 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/utils.h" - #include "wx/dcclient.h" - #include "wx/dcmemory.h" - #include "wx/textctrl.h" - #include "wx/settings.h" -#endif - -#include - -#include "wx/string.h" - -#include "wx/generic/gridg.h" - - -// Values used to adjust the size of the in-place-edit control, and other -// goodies. Per-platform tweaks should be done here. -#ifdef __WXMSW__ -#define wxIPE_ADJUST -2 -#define wxIPE_STYLE wxNO_BORDER -#define wxIPE_HIGHLIGHT 1 -#define wxUSE_DOUBLE_BUFFERING 1 -#endif - -#ifdef __WXPM__ -#define wxIPE_ADJUST -1 -#define wxIPE_STYLE wxNO_BORDER -#define wxIPE_HIGHLIGHT 1 -#define wxUSE_DOUBLE_BUFFERING 1 -#endif - -#ifdef __WXGTK__ -#define wxIPE_ADJUST -1 -#define wxIPE_STYLE wxNO_BORDER -#define wxIPE_HIGHLIGHT 0 -#define wxUSE_DOUBLE_BUFFERING 1 -#endif - -#ifdef __WXMOTIF__ -#define wxIPE_ADJUST 2 -#define wxIPE_STYLE wxNO_BORDER -#define wxIPE_HIGHLIGHT 0 -#define wxUSE_DOUBLE_BUFFERING 0 -#endif - -#ifndef wxIPE_ADJUST -#define wxIPE_ADJUST 2 -#define wxIPE_STYLE wxNO_BORDER -#define wxIPE_HIGHLIGHT 0 -#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_TEXT(wxGRID_EDIT_IN_PLACE_TEXT_CTRL, wxGenericGrid::OnTextInPlace) - EVT_TEXT_ENTER(wxGRID_TEXT_CTRL, wxGenericGrid::OnTextEnter) - EVT_TEXT_ENTER(wxGRID_EDIT_IN_PLACE_TEXT_CTRL, wxGenericGrid::OnTextInPlaceEnter) - 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() -{ - m_viewWidth = 0; - m_viewHeight = 0; - 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; - - m_editInPlace = FALSE; - m_inOnTextInPlace = FALSE; - m_inScroll = FALSE; - -#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_highlightPen = 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_viewWidth = 0; - m_viewHeight = 0; - 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; - m_editInPlace = FALSE; - m_inOnTextInPlace = FALSE; - m_inScroll = FALSE; -#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_highlightPen = * wxBLACK_PEN; - 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), - wxTE_PROCESS_ENTER); - 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); - - m_inPlaceTextItem = new wxTextCtrl( (wxPanel*)this, wxGRID_EDIT_IN_PLACE_TEXT_CTRL, "", - wxPoint( m_currentRect.x-wxIPE_ADJUST, m_currentRect.y-wxIPE_ADJUST ), - wxSize( m_currentRect.width+wxIPE_ADJUST*2, m_currentRect.height+wxIPE_ADJUST*2 ), - wxNO_BORDER | wxTE_PROCESS_ENTER ); - m_inPlaceTextItem->Show(m_editInPlace); - if ( m_editInPlace ) - m_inPlaceTextItem->SetFocus(); - - return TRUE; -} - -wxGenericGrid::~wxGenericGrid() -{ - ClearGrid(); -} - -void wxGenericGrid::ClearGrid() -{ - 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() -{ - 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 && (wxIPE_HIGHLIGHT || !(m_editable && m_editInPlace))) - HighlightCell(& dc, TRUE); - - 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() -{ - 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) - { - 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; - } - m_viewWidth = noHorizSteps; - - if (m_totalGridHeight + horizScrollBarHeight > ch) - { - 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; - } - - m_viewHeight = noVertSteps; - - 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 && (wxIPE_HIGHLIGHT || !(m_editable && m_editInPlace))) - { - HighlightCell(dc, FALSE); - } - - - // 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); - - - if ( m_editable && m_editInPlace ) - { - int x, y, width, height; - if ( m_currentRect.x <= 0 ) - { - x = 0; - width = m_currentRect.width + wxIPE_ADJUST; - } - else - { - x = m_currentRect.x - wxIPE_ADJUST; - width = m_currentRect.width + wxIPE_ADJUST*2; - } - - if ( m_currentRect.y <= 0 ) - { - y = 0; - height = m_currentRect.height + wxIPE_ADJUST; - } - else - { - y = m_currentRect.y - wxIPE_ADJUST; - height = m_currentRect.height + wxIPE_ADJUST*2; - } - - m_inPlaceTextItem->SetSize( x, y, width, height ); - - if ( cell ) { - m_inPlaceTextItem->SetFont( cell->GetFont() ); - m_inPlaceTextItem->SetBackgroundColour(cell->GetBackgroundColour()); - m_inPlaceTextItem->SetForegroundColour(cell->GetTextColour()); - - if ( cell->GetTextValue().IsNull() ) { - m_inPlaceTextItem->SetValue( "" ); - } - else { - m_inPlaceTextItem->SetValue( cell->GetTextValue() ); - } - } - - m_inPlaceTextItem->Show(TRUE); - m_inPlaceTextItem->SetFocus(); -#if defined(__VISAGECPP__) - { - int highlight = wxIPE_HIGHLIGHT; - if (highlight != 0) - HighlightCell(dc, TRUE); - } -#else - if (wxIPE_HIGHLIGHT != 0) - HighlightCell(dc, TRUE); -#endif - } - else - { - // 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. - // - // 3) It *is* needed for Motif - michael - // -#if defined(__WXMOTIF__) - if ((wxIPE_HIGHLIGHT || !(m_editable && m_editInPlace))) - HighlightCell(dc, TRUE); -#endif - } - - dc->DestroyClippingRegion(); - - OnSelectCell(row, col); - wxGridEvent g_evt2(GetId(), wxEVT_GRID_SELECT_CELL, this, row, col); - GetEventHandler()->ProcessEvent(g_evt2); -} - -wxGridCell *wxGenericGrid::OnCreateCell() -{ - return new wxGridCell(this); -} - -void wxGenericGrid::OnChangeLabels() -{ - 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() -{ - 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, bool doHighlight) -{ - wxPen savePen = dc->GetPen(); - if (doHighlight) - dc->SetPen(m_highlightPen); - else - dc->SetPen(*wxThePenList->FindOrCreatePen(m_cellBackgroundColour, 1, wxSOLID)); - - // 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->SetPen(savePen); -} - -void wxGenericGrid::DrawCellText() -{ - if (!m_currentRectVisible) - return; - - wxGridCell *cell = GetCell(GetCursorRow(), GetCursorColumn()); - if (!cell) - return; - - wxClientDC dc(this); - dc.BeginDrawing(); - - SetGridClippingRegion(& dc); - - dc.SetBackgroundMode(wxTRANSPARENT); - dc.SetBrush(cell->GetBackgroundBrush()); - - wxString editValue = m_textItem->GetValue(); - - wxRect rect; - rect = m_currentRect; - rect.x += 3; - rect.y += 2; - rect.width -= 5; - rect.height -= 4; - - // FIXME: what's this string of spaces supposed to represent? - DrawTextRect(& dc, " ", &rect, wxLEFT); - DrawTextRect(& dc, editValue, &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(); - } - - if (m_inPlaceTextItem) - { - m_inPlaceTextItem->Show(TRUE); - m_inPlaceTextItem->SetFocus(); - } - } - else - { - m_topOfSheet = 0; - if (m_textItem) - { - m_textItem->Show(FALSE); - m_editingPanel->Show(FALSE); - } - - if ( m_inPlaceTextItem ) - { - m_inPlaceTextItem->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::SetEditInPlace(bool edit) -{ - if ( m_editInPlace != edit ) - { - m_editInPlace = edit; - - if ( m_editInPlace ) // switched on - { - if ( m_currentRectVisible && m_editable ) - { - m_inPlaceTextItem->SetSize( m_currentRect.x-wxIPE_ADJUST, - m_currentRect.y-wxIPE_ADJUST, - m_currentRect.width+wxIPE_ADJUST*2, - m_currentRect.height+wxIPE_ADJUST*2 ); - - wxGridCell *cell = GetCell(m_wCursorRow, m_wCursorColumn); - - if ( cell ) { - m_inPlaceTextItem->SetFont( cell->GetFont() ); - m_inPlaceTextItem->SetBackgroundColour(cell->GetBackgroundColour()); - m_inPlaceTextItem->SetForegroundColour(cell->GetTextColour()); - - if ( cell->GetTextValue().IsNull() ) { - m_inPlaceTextItem->SetValue( "" ); - } - else { - m_inPlaceTextItem->SetValue( cell->GetTextValue() ); - } - } - - m_inPlaceTextItem->Show( TRUE ); - m_inPlaceTextItem->SetFocus(); - } - } - else // switched off - { - m_inPlaceTextItem->Show( FALSE ); - } - } -} - - -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 && (wxIPE_HIGHLIGHT || !(m_editable && m_editInPlace))) - HighlightCell(& dc, FALSE); - - m_wCursorRow = row; - m_wCursorColumn = col; - - int cw, ch; - GetClientSize(&cw, &ch); - - SetCurrentRect(row, col, cw, ch); - - if (m_currentRectVisible && (wxIPE_HIGHLIGHT || !(m_editable && m_editInPlace))) - HighlightCell(& dc, TRUE); - - 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; - - cellData = (void *)NULL; -} - -wxGridCell::~wxGridCell() -{ -} - -void wxGridCell::SetBackgroundColour(const wxColour& colour) -{ - backgroundColour = colour; - backgroundBrush = * wxTheBrushList->FindOrCreateBrush(backgroundColour, wxSOLID); -} - -void wxGenericGrid::OnText(wxCommandEvent& WXUNUSED(ev) ) -{ - // michael - added this conditional to prevent change to - // grid cell text when edit control is hidden but still has - // focus - // - if ( m_editable ) - { - wxGenericGrid *grid = this; - wxGridCell *cell = grid->GetCell(grid->GetCursorRow(), grid->GetCursorColumn()); - if (cell && grid->CurrentCellVisible()) - { - cell->SetTextValue(grid->GetTextItem()->GetValue()); - if ( m_editInPlace && !m_inOnTextInPlace ) - { - m_inPlaceTextItem->SetValue( grid->GetTextItem()->GetValue() ); - } - - if (!m_editInPlace) { - 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, TRUE); - 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::OnTextEnter(wxCommandEvent& WXUNUSED(ev) ) -{ - // move the cursor down the current row (if possible) - // when the enter key has been pressed - // - if ( m_editable ) - { - if ( GetCursorRow() < GetRows()-1 ) - { - wxClientDC dc( this ); - dc.BeginDrawing(); - OnSelectCellImplementation(& dc, - GetCursorRow()+1, - GetCursorColumn() ); - dc.EndDrawing(); - } - } -} - -void wxGenericGrid::OnTextInPlace(wxCommandEvent& ev ) -{ - if ( m_editable ) - { - wxGenericGrid *grid = this; - wxGridCell *cell = grid->GetCell(grid->GetCursorRow(), grid->GetCursorColumn()); - if (cell && grid->CurrentCellVisible()) - { - m_inOnTextInPlace = TRUE; - grid->GetTextItem()->SetValue( m_inPlaceTextItem->GetValue() ); - OnText( ev ); - m_inOnTextInPlace = FALSE; - } - } -} - -void wxGenericGrid::OnTextInPlaceEnter(wxCommandEvent& WXUNUSED(ev) ) -{ - // move the cursor down the current row (if possible) - // when the enter key has been pressed - // - if ( m_editable ) - { - if ( GetCursorRow() < GetRows()-1 ) - { - wxClientDC dc( this ); - dc.BeginDrawing(); - OnSelectCellImplementation(& dc, - GetCursorRow()+1, - GetCursorColumn() ); - dc.EndDrawing(); - } - } -} - -void wxGenericGrid::OnGridScroll(wxScrollEvent& ev) -{ - if ( m_inScroll ) - return; - - if ( m_editInPlace ) m_inPlaceTextItem->Show(FALSE); - - m_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); - - if ( m_editInPlace && m_currentRectVisible ) - { - m_inPlaceTextItem->SetSize( m_currentRect.x-wxIPE_ADJUST, - m_currentRect.y-wxIPE_ADJUST, - m_currentRect.width+wxIPE_ADJUST*2, - m_currentRect.height+wxIPE_ADJUST*2 ); - m_inPlaceTextItem->Show( TRUE ); - m_inPlaceTextItem->SetFocus(); - } - - m_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); -} - -void *wxGenericGrid::SetCellData(void *data, int row, int col) -{ - void *rc = NULL; - - wxGridCell *cell = GetCell(row, col); - if ( cell ) - rc = cell->SetCellData(data); - - return rc; -} - -void *wxGenericGrid::GetCellData(int row, int col) -{ - void *rc = NULL; - - wxGridCell *cell = GetCell(row, col); - if ( cell ) - rc = cell->GetCellData(); - - return rc; -} - diff --git a/src/generic/helpext.cpp b/src/generic/helpext.cpp deleted file mode 100644 index 057d510387..0000000000 --- a/src/generic/helpext.cpp +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpext.cpp -// Purpose: an external help controller for wxWindows -// Author: Karsten Ballueder -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Karsten Ballueder -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -# pragma implementation "wxexthlp.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_HELP - -#ifndef WX_PRECOMP - #include "wx/setup.h" - #include "wx/string.h" - #include "wx/utils.h" - #include "wx/list.h" - #include "wx/intl.h" -#endif - -#include "wx/helpbase.h" -#include "wx/generic/helpext.h" - -#include -#include -#include - -#ifndef __WINDOWS__ - #include -#endif - -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 - - -#ifdef __WXMSW__ - wxString url; - url << m_MapFile << '\\' << relativeURL.BeforeFirst('#'); - bool bOk = (int)ShellExecute(NULL, "open", url, - NULL, NULL, SW_SHOWNORMAL ) > 32; - if ( !bOk ) - { - wxLogSysError(_("Cannot open URL '%s'"), relativeURL.c_str()); - return false; - } - else - return true; -#else - // assume UNIX - 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; -#endif -} - -#endif // wxUSE_HELP - diff --git a/src/generic/helphtml.cpp b/src/generic/helphtml.cpp deleted file mode 100644 index c595157f3f..0000000000 --- a/src/generic/helphtml.cpp +++ /dev/null @@ -1,333 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helphtml.cpp -// Purpose: base class for html help systems -// Author: Karsten Ballueder -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Karsten Ballueder -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -# pragma implementation "helphtml.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_HELP - -#ifndef WX_PRECOMP - #include "wx/setup.h" - #include "wx/string.h" - #include "wx/utils.h" - #include "wx/list.h" - #include "wx/intl.h" - #include "wx/msgdlg.h" - #include "wx/choicdlg.h" -#endif - -#include "wx/helpbase.h" -#include "wx/generic/helpext.h" - -#include -#include -#include - -#ifndef __WINDOWS__ - #include -#endif - -#define CONTENTS_ID 0 - -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 wxUSE_INTL - // 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; - } - } -#endif - - 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; - - wxString contents; - wxNode *node = m_MapList->First(); - wxExtHelpMapEntry *entry; - while(node) - { - entry = (wxExtHelpMapEntry *)node->Data(); - if(entry->id == CONTENTS_ID) - { - contents = entry->url; - break; - } - node = node->Next(); - } - - bool rc = FALSE; - wxString file; - file << m_MapFile << WXEXTHELP_SEPARATOR << contents; - if(file.Contains(_T('#'))) - file = file.BeforeLast(_T('#')); - if(contents.Length() && wxFileExists(file)) - rc = DisplaySection(CONTENTS_ID); - - // if not found, open homemade toc: - return rc ? TRUE : KeywordSearch(_T("")); -} - -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; - - 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; - - { - wxBusyCursor b; // display a busy cursor - 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() -{ -} - -#endif // wxUSE_HELP diff --git a/src/generic/helpwxht.cpp b/src/generic/helpwxht.cpp deleted file mode 100644 index 336273ba87..0000000000 --- a/src/generic/helpwxht.cpp +++ /dev/null @@ -1,308 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpext.cpp -// Purpose: an external help controller for wxWindows -// Author: Karsten Ballueder -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Karsten Ballueder -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -# pragma implementation "helpwxht.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -# pragma hdrstop -#endif - -#if wxUSE_HTML - -#ifndef WX_PRECOMP -# include "wx/string.h" -# include "wx/utils.h" -# include "wx/list.h" -# include "wx/intl.h" -# include "wx/layout.h" -# include "wx/combobox.h" -#endif - -#include "wx/helpbase.h" -#include "wx/generic/helpwxht.h" -#include "wx/html/htmlwin.h" - -#include -#include -#include - -#ifndef __WINDOWS__ -# include -#endif - -IMPLEMENT_CLASS(wxHelpControllerHtml, wxHTMLHelpControllerBase) - -/** - This class implements help via wxHTML. - It requires the name of a directory containing the documentation - and a file mapping numerical Section numbers to relative URLS. -*/ - -class wxForceHtmlFilter : public wxHtmlFilter -{ -public: - virtual wxString ReadFile(const wxFSFile& file) const - { - wxInputStream *s = file.GetStream(); - char *src; - wxString doc; - - if (s == NULL) return wxEmptyString; - src = new char[s -> GetSize()+1]; - src[s -> GetSize()] = 0; - s -> Read(src, s -> GetSize()); - doc = src; - delete [] src; - return doc; - } - - virtual bool CanRead(const wxFSFile& file) const - { - wxString filename = file.GetLocation(); - if(filename.Length() >= 5 && - ( - filename.Right(4).MakeUpper() == ".HTM" || - filename.Right(5).MakeUpper() == ".HTML")) - return TRUE; - else - return FALSE; - } -}; - -#define FRAME_WIDTH 500 -#define FRAME_HEIGHT 400 -#define LAYOUT_X_MARGIN 2 -#define LAYOUT_Y_MARGIN 2 -#define OFFSET 10 -#define BUTTON_WIDTH 70 -#define MAX_COMBO_ENTRIES 25 - -class wxHelpFrame : public wxFrame -{ -public: - wxHelpFrame(wxWindow *parent, int id, const wxString &title, - const wxPoint &pos, const wxSize &size, - wxHelpControllerHtml *controller); - ~wxHelpFrame(); - void OnClose(wxCloseEvent &ev); - void OnButton(wxCommandEvent &ev); - bool LoadPage(const wxString &url) { return m_htmlwin->LoadPage(url); } -private: - wxHelpControllerHtml *m_controller; - wxHtmlWindow *m_htmlwin; - wxHtmlFilter *m_filter; - wxComboBox *m_combo; - long m_IdBack, m_IdFwd, m_IdContents, m_IdCombo, m_IdSearch; - DECLARE_EVENT_TABLE() -}; - -BEGIN_EVENT_TABLE(wxHelpFrame, wxFrame) - EVT_CLOSE(wxHelpFrame::OnClose) - EVT_BUTTON(-1, wxHelpFrame::OnButton) -END_EVENT_TABLE() - - -void -wxHelpFrame::OnButton(wxCommandEvent &ev) -{ - long id =ev.GetId(); - - if(id == m_IdBack) - m_htmlwin->HistoryBack(); - else if(id == m_IdFwd) - m_htmlwin->HistoryForward(); - else if(id == m_IdContents) - m_controller->DisplayContents(); - else if(id == m_IdSearch) - { - wxString str = m_combo->GetValue(); - if(m_combo->FindString(str) == -1 && m_combo->Number() < MAX_COMBO_ENTRIES) - m_combo->Append(str); - m_controller->KeywordSearch(str); - } -} - -wxHelpFrame::wxHelpFrame(wxWindow *parent, int id, - const wxString &title, - const wxPoint &pos, const wxSize &size, - wxHelpControllerHtml *controller) - : wxFrame(parent, id, title, pos, size) -{ - - m_controller = controller; - m_htmlwin = new wxHtmlWindow(this,-1,wxDefaultPosition,wxSize(FRAME_WIDTH, - FRAME_HEIGHT)); - - m_IdBack = wxWindow::NewControlId(); - m_IdFwd = wxWindow::NewControlId(); - m_IdContents = wxWindow::NewControlId(); - m_IdCombo = wxWindow::NewControlId(); - m_IdSearch = wxWindow::NewControlId(); - - wxButton *btn_back = new wxButton(this, m_IdBack, _("Back")); - wxButton *btn_fwd = new wxButton(this, m_IdFwd, _("Forward")); - wxButton *btn_contents = new wxButton(this, m_IdContents, _("Contents")); - m_combo = new wxComboBox(this, m_IdCombo); - wxButton *btn_search = new wxButton(this, m_IdSearch, _("Search")); - - m_filter = new wxForceHtmlFilter; - - wxLayoutConstraints *c; - - c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft, 2*LAYOUT_X_MARGIN); - c->width.Absolute(BUTTON_WIDTH); - c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN); - c->height.AsIs(); - btn_back->SetConstraints(c); - - c = new wxLayoutConstraints; - c->left.SameAs(btn_back, wxRight, 2*LAYOUT_X_MARGIN); - c->width.Absolute(BUTTON_WIDTH); - c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN); - c->height.AsIs(); - btn_fwd->SetConstraints(c); - - c = new wxLayoutConstraints; - c->left.SameAs(btn_fwd, wxRight, 2*LAYOUT_X_MARGIN); - c->width.Absolute(BUTTON_WIDTH); - c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN); - c->height.AsIs(); - btn_contents->SetConstraints(c); - - c = new wxLayoutConstraints; - c->left.SameAs(btn_contents, wxRight, 2*LAYOUT_X_MARGIN); - c->width.Absolute(3*BUTTON_WIDTH); - c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN); - c->height.AsIs(); - m_combo->SetConstraints(c); - - c = new wxLayoutConstraints; - c->left.SameAs(m_combo, wxRight, 2*LAYOUT_X_MARGIN); - c->width.Absolute(BUTTON_WIDTH); - c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN); - c->height.AsIs(); - btn_search->SetConstraints(c); - - - c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft, 2*LAYOUT_X_MARGIN); - c->right.SameAs(this, wxRight, 2*LAYOUT_X_MARGIN); - c->top.SameAs(btn_back, wxBottom, 2*LAYOUT_Y_MARGIN); - c->bottom.SameAs(this, wxBottom, 2*LAYOUT_Y_MARGIN); - m_htmlwin->SetConstraints(c); - SetAutoLayout(TRUE); - CreateStatusBar(); - - m_htmlwin->SetRelatedFrame(this, title); - m_htmlwin->SetRelatedStatusBar(0); - m_htmlwin->AddFilter(m_filter); - - Show(TRUE); -} - -wxHelpFrame::~wxHelpFrame() -{ -} - -void -wxHelpFrame::OnClose(wxCloseEvent &ev) -{ - wxASSERT(m_controller); - m_controller->m_Frame = NULL; - bool newFrame; - int x,y; - GetPosition(&x,&y); - - m_controller->GetFrameParameters(NULL, NULL, &newFrame); - m_controller->SetFrameParameters(GetTitle(), GetSize(), - wxPoint(x,y), - newFrame); - Destroy(); -} - -wxHelpControllerHtml::wxHelpControllerHtml(void) -{ - m_Frame = NULL; - m_offset = 0; - - SetFrameParameters(_("Help: %s"), - wxSize(FRAME_WIDTH, FRAME_HEIGHT), - wxDefaultPosition); -} - -wxHelpControllerHtml::~wxHelpControllerHtml(void) -{ - if(m_Frame && ! m_NewFrameEachTime) - m_Frame->Close(); -} - - -#ifdef __WXMSW__ -# define SEP '\\' -#else -# define SEP '/' -#endif - -bool -wxHelpControllerHtml::DisplayHelp(wxString const &relativeURL) -{ - wxBusyCursor b; // display a busy cursor - - wxString url; - url << m_MapFile << SEP<< relativeURL; - if(! m_Frame || m_NewFrameEachTime) - { - m_Frame = new wxHelpFrame(NULL, -1, m_FrameTitle, - m_FramePosition+wxPoint(m_offset,m_offset), - m_FrameSize, - this); - if(m_NewFrameEachTime) - { - m_offset += OFFSET; - if(m_offset > 200) - m_offset = 0; - } - - } - m_Frame->Raise(); - return m_Frame->LoadPage(url); -} - - -void -wxHelpControllerHtml::SetFrameParameters(const wxString &title, - const wxSize &size, - const wxPoint &pos, - bool newFrame) -{ - m_FrameTitle = title; - m_FrameSize = size; - m_FramePosition = pos; - m_NewFrameEachTime = newFrame; -} - -wxFrame * -wxHelpControllerHtml::GetFrameParameters(wxSize *size, - wxPoint *pos, - bool *newframe) -{ - if(size) *size = m_FrameSize; - if(pos) *pos = m_FramePosition; - if(newframe) *newframe = m_NewFrameEachTime; - return m_Frame; -} - -#endif // wxUSE_HTML 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 969b7369e2..0000000000 --- a/src/generic/listctrl.cpp +++ /dev/null @@ -1,3028 +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/listctrl.h" -#include "wx/generic/imaglist.h" - -//----------------------------------------------------------------------------- -// wxListItemData -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListItemData,wxObject); - -wxListItemData::wxListItemData() -{ - 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() const -{ - return (m_image >= 0); -} - -bool wxListItemData::HasText() 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() const -{ - return m_xpos; -} - -int wxListItemData::GetY() const -{ - return m_ypos; -} - -int wxListItemData::GetWidth() const -{ - return m_width; -} - -int wxListItemData::GetHeight() const -{ - return m_height; -} - -int wxListItemData::GetImage() const -{ - return m_image; -} - -void wxListItemData::GetItem( wxListItem &info ) -{ - info.m_text = m_text; - info.m_image = m_image; - info.m_data = m_data; - info.m_colour = m_colour; -} - -wxColour *wxListItemData::GetColour() -{ - return m_colour; -} - -//----------------------------------------------------------------------------- -// wxListHeaderData -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListHeaderData,wxObject); - -wxListHeaderData::wxListHeaderData() -{ - 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() const -{ - return (m_image != 0); -} - -bool wxListHeaderData::HasText() 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() const -{ - return m_image; -} - -int wxListHeaderData::GetWidth() const -{ - return m_width; -} - -int wxListHeaderData::GetFormat() 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; - if (item->HasImage()) - { - int w = 0; - int h = 0; - m_owner->GetImageSize( item->GetImage(), w, h ); - m_bound_all.width += 4 + w; - if (h > m_bound_all.height) m_bound_all.height = h; - } - } - 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 lh; - dc->GetTextExtent( s, (long*) NULL, &lh ); - item->SetSize( item->GetWidth(), lh ); - 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 ); - wxNode *node = m_items.First(); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - if (item->HasImage()) - { - m_bound_icon.x = m_bound_all.x + 2; - m_bound_icon.y = m_bound_all.y + 2; - int w; - int h; - m_owner->GetImageSize( item->GetImage(), w, h ); - m_bound_icon.width = w; - m_bound_icon.height = h; - m_bound_label.x += 4 + w; - m_bound_label.width -= 4 + w; - } - } - 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, m_bound_all ); - AssignRect( m_bound_icon, 0, 0, 0, 0 ); - wxNode *node = m_items.First(); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - wxString s; - item->GetText( s ); - if (s.IsEmpty()) s = _T("H"); - long lw,lh; - dc->GetTextExtent( s, &lw, &lh ); - m_bound_label.width = lw; - m_bound_label.height = lh; - if (item->HasImage()) - { - m_bound_icon.x = m_bound_all.x + 2; - m_bound_icon.y = m_bound_all.y + 2; - int w; - int h; - m_owner->GetImageSize( item->GetImage(), w, h ); - m_bound_icon.width = w; - m_bound_icon.height = h; - m_bound_label.x += 4 + w; - } - } - 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; - (*m_accept) = FALSE; - (*m_res) = ""; - m_startValue = value; -} - -void wxListTextCtrl::OnChar( wxKeyEvent &event ) -{ - if (event.m_keyCode == WXK_RETURN) - { - (*m_accept) = TRUE; - (*m_res) = GetValue(); - m_owner->SetFocus(); - return; - } - if (event.m_keyCode == WXK_ESCAPE) - { - (*m_accept) = FALSE; - (*m_res) = ""; - m_owner->SetFocus(); - return; - } - event.Skip(); -} - -void wxListTextCtrl::OnKillFocus( wxFocusEvent &WXUNUSED(event) ) -{ - if (wxPendingDelete.Member(this)) return; - - wxPendingDelete.Append(this); - - if ((*m_accept) && ((*m_res) != m_startValue)) - m_owner->OnRenameAccept(); -} - -//----------------------------------------------------------------------------- -// 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() -{ - 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() -{ - 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::EditLabel( long item ) -{ - wxNode *node = m_lines.Nth( item ); - wxCHECK_RET( node, _T("wrong index in wxListCtrl::Edit()") ); - - m_currentEdit = (wxListLineData*) node->Data(); - - wxListEvent le( wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, GetParent()->GetId() ); - le.SetEventObject( GetParent() ); - le.m_itemIndex = GetIndexOfLine( m_currentEdit ); - m_currentEdit->GetItem( 0, le.m_item ); - GetParent()->GetEventHandler()->ProcessEvent( le ); - - if (!le.IsAllowed()) - return; - - // We have to call this here because the label in - // question might just have been added and no screen - // update taken place. - if (m_dirty) wxYield(); - - wxString s; - m_currentEdit->GetText( 0, s ); - int x = 0; - int y = 0; - int w = 0; - int h = 0; - m_currentEdit->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::OnRenameTimer() -{ - wxCHECK_RET( m_current, _T("invalid m_current") ); - - Edit( m_lines.IndexOf( m_current ) ); -} - -void wxListMainWindow::OnRenameAccept() -{ - wxListEvent le( wxEVT_COMMAND_LIST_END_LABEL_EDIT, GetParent()->GetId() ); - le.SetEventObject( GetParent() ); - le.m_itemIndex = GetIndexOfLine( m_currentEdit ); - m_currentEdit->GetItem( 0, le.m_item ); - le.m_item.m_text = m_renameRes; - GetParent()->GetEventHandler()->ProcessEvent( le ); - - if (!le.IsAllowed()) return; - - wxListItem info; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = le.m_itemIndex; - info.m_text = m_renameRes; - info.m_colour = le.m_item.m_colour; - SetItem( info ); -} - -void wxListMainWindow::OnMouse( wxMouseEvent &event ) -{ - if (GetParent()->GetEventHandler()->ProcessEvent( event)) return; - - if (!m_current) return; - if (m_dirty) return; - if ( !(event.Dragging() || event.ButtonDown() || event.LeftUp() || event.ButtonDClick()) ) 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()) - { - if (m_dragCount == 0) - m_dragStart = wxPoint(x,y); - - m_dragCount++; - - if (m_dragCount != 3) return; - - int command = wxEVT_COMMAND_LIST_BEGIN_DRAG; - if (event.RightIsDown()) command = wxEVT_COMMAND_LIST_BEGIN_RDRAG; - - wxListEvent le( command, GetParent()->GetId() ); - le.SetEventObject( GetParent() ); - le.m_pointDrag = m_dragStart; - GetParent()->GetEventHandler()->ProcessEvent( le ); - - return; - } - else - { - m_dragCount = 0; - } - - 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() -{ - 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; -} - -#ifdef __WXGTK__ -extern wxWindow *g_focusWindow; -#endif - -void wxListMainWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) ) -{ - m_hasFocus = TRUE; - RefreshLine( m_current ); - - if (!GetParent()) return; - -#ifdef __WXGTK__ - g_focusWindow = GetParent(); -#endif - - 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_LIST) && (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_LIST) && (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 = (wxNode*) NULL; - - if (width == wxLIST_AUTOSIZE_USEHEADER) width = 80; - if (width == wxLIST_AUTOSIZE) - { - wxClientDC dc(this); - dc.SetFont( GetFont() ); - int max = 10; - 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(); - int current = 0, ix = 0, iy = 0; - long lx = 0, ly = 0; - if (item->HasImage()) - { - GetImageSize( item->GetImage(), ix, iy ); - current = ix + 5; - } - if (item->HasText()) - { - wxString str; - item->GetText( str ); - dc.GetTextExtent( str, &lx, &ly ); - current += lx; - } - if (current > max) max = current; - } - node = node->Next(); - } - width = max+10; - } - - 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() -{ - return m_columns.Number(); -} - -int wxListMainWindow::GetCountPerPage() -{ - 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() -{ - 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() -{ - 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() const -{ - return m_mode; -} - -void wxListMainWindow::CalculatePositions() -{ - 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; - m_visibleLines = 0; - int m_currentVisibleLines = 0; - wxNode *node = m_lines.First(); - while (node) - { - m_currentVisibleLines++; - 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" - { - if (m_currentVisibleLines > m_visibleLines) - m_visibleLines = m_currentVisibleLines; - m_currentVisibleLines = 0; - 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 - m_visibleLines = 0; - m_currentVisibleLines = 0; - break; - } - if (!node) tries = 1; // everything fits, no second try required - } - } -// m_visibleLines = (5+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 ) -{ - // We have to call this here because the label in - // question might just have been added and no screen - // update taken place. - if (m_dirty) wxYield(); - - 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() -{ - 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() -{ - m_imageListNormal = (wxImageList *) NULL; - m_imageListSmall = (wxImageList *) NULL; - m_imageListState = (wxImageList *) NULL; - m_mainWin = (wxListMainWindow*) NULL; - m_headerWin = (wxListHeaderWindow*) NULL; -} - -wxListCtrl::~wxListCtrl() -{ -} - -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 ); - -#if wxUSE_VALIDATORS - SetValidator( validator ); -#endif - - 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() const -{ - return m_mainWin->GetCountPerPage(); // different from Windows ? -} - -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() const -{ - return m_mainWin->GetItemCount(); -} - -int wxListCtrl::GetColumnCount() 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() const -{ - return m_mainWin->GetSelectedItemCount(); -} - -/* -wxColour wxListCtrl::GetTextColour() const -{ -} - -void wxListCtrl::SetTextColour(const wxColour& WXUNUSED(col)) -{ -} -*/ - -long wxListCtrl::GetTopItem() 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() -{ - 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; -} - -void wxListCtrl::Edit( long item ) -{ - m_mainWin->Edit( 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 19aefb7c06..0000000000 --- a/src/generic/msgdlgg.cpp +++ /dev/null @@ -1,132 +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/button.h" - #include "wx/stattext.h" - #include "wx/statbmp.h" - #include "wx/layout.h" - #include "wx/intl.h" - #include "wx/icon.h" - #include "wx/sizer.h" - #include "wx/app.h" -#endif - -#include -#include - -#include "wx/generic/msgdlgg.h" - -#if wxUSE_STATLINE - #include "wx/statline.h" -#endif - -// ---------------------------------------------------------------------------- -// icons -// ---------------------------------------------------------------------------- - -#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; - - wxBeginBusyCursor(); - - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer *icon_text = new wxBoxSizer( wxHORIZONTAL ); - - // 1) icon - if (style & wxICON_MASK) - { - wxStaticBitmap *icon = new wxStaticBitmap( - this, -1, wxTheApp->GetStdIcon(style & wxICON_MASK)); - icon_text->Add( icon, 0, wxCENTER ); - } - - // 2) text - icon_text->Add( CreateTextSizer( message ), 0, wxCENTER | wxLEFT, 10 ); - - topsizer->Add( icon_text, 0, wxCENTER | wxLEFT|wxRIGHT|wxTOP, 10 ); - -#if wxUSE_STATLINE - // 3) static line - topsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif - - // 4) buttons - topsizer->Add( CreateButtonSizer( style ), 0, wxCENTRE | wxALL, 10 ); - - SetAutoLayout( TRUE ); - SetSizer( topsizer ); - - topsizer->SetSizeHints( this ); - topsizer->Fit( this ); - wxSize size( GetSize() ); - if (size.x < size.y*3/2) - { - size.x = size.y*3/2; - SetSize( size ); - } - - Centre( wxBOTH | wxCENTER_FRAME); - - wxEndBusyCursor(); -} - -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/numdlgg.cpp b/src/generic/numdlgg.cpp deleted file mode 100644 index c6100c88ff..0000000000 --- a/src/generic/numdlgg.cpp +++ /dev/null @@ -1,189 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: numdlgg.cpp -// Purpose: wxGetNumberFromUser implementation -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.07.99 -// RCS-ID: $Id$ -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "numdlgg.h" - #pragma implementation "numdlgg.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/button.h" - #include "wx/stattext.h" - #include "wx/textctrl.h" - #include "wx/intl.h" - #include "wx/sizer.h" -#endif - -#if wxUSE_STATLINE - #include "wx/statline.h" -#endif - -// this is where wxGetNumberFromUser() is declared -#include "wx/generic/textdlgg.h" - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxNumberEntryDialog : public wxDialog -{ -public: - wxNumberEntryDialog(wxWindow *parent, - const wxString& message, - const wxString& prompt, - const wxString& caption, - long value, long min, long max, - const wxPoint& pos); - - long GetValue() const { return m_value; } - - // implementation only - void OnOK(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - -protected: - wxTextCtrl *m_spinctrl; // TODO replace it with wxSpinCtrl once it's done - - long m_value, m_min, m_max; - -private: - DECLARE_EVENT_TABLE() -}; - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxNumberEntryDialog -// ---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxNumberEntryDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxNumberEntryDialog::OnOK) - EVT_BUTTON(wxID_CANCEL, wxNumberEntryDialog::OnCancel) -END_EVENT_TABLE() - -wxNumberEntryDialog::wxNumberEntryDialog(wxWindow *parent, - const wxString& message, - const wxString& prompt, - const wxString& caption, - long value, - long min, - long max, - const wxPoint& pos) - : wxDialog(parent, -1, caption, - pos, wxDefaultSize, - wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL ) -{ - m_value = value; - m_max = max; - m_min = min; - - wxBeginBusyCursor(); - - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // 1) text message - topsizer->Add( CreateTextSizer( message ), 0, wxALL, 10 ); - - // 2) prompt and text ctrl - wxBoxSizer *inputsizer = new wxBoxSizer( wxHORIZONTAL ); - // prompt if any - if (!prompt.IsEmpty()) - inputsizer->Add( new wxStaticText( this, -1, prompt ), 0, wxCENTER | wxLEFT, 10 ); - // spin ctrl - wxString valStr; - valStr.Printf(_T("%lu"), m_value); - m_spinctrl = new wxTextCtrl(this, -1, valStr, wxDefaultPosition, wxSize( 140, -1 ) ); - inputsizer->Add( m_spinctrl, 1, wxCENTER | wxLEFT | wxRIGHT, 10 ); - // add both - topsizer->Add( inputsizer, 1, wxEXPAND | wxLEFT|wxRIGHT, 5 ); - -#if wxUSE_STATLINE - // 3) static line - topsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif - - // 4) buttons - topsizer->Add( CreateButtonSizer( wxOK|wxCANCEL ), 0, wxCENTRE | wxALL, 10 ); - - SetSizer( topsizer ); - SetAutoLayout( TRUE ); - - topsizer->SetSizeHints( this ); - topsizer->Fit( this ); - - Centre( wxBOTH ); - - m_spinctrl->SetFocus(); - - wxEndBusyCursor(); -} - -void wxNumberEntryDialog::OnOK(wxCommandEvent& event) -{ - if ( (wxSscanf(m_spinctrl->GetValue(), _T("%lu"), &m_value) != 1) || - (m_value < m_min) || (m_value > m_max) ) - { - // not a number or out of range - m_value = -1; - } - - EndModal(wxID_OK); -} - -void wxNumberEntryDialog::OnCancel(wxCommandEvent& event) -{ - m_value = -1; - - EndModal(wxID_CANCEL); -} - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// wxGetTextFromUser is in utilscmn.cpp - -long wxGetNumberFromUser(const wxString& msg, - const wxString& prompt, - const wxString& title, - long value, - long min, - long max, - wxWindow *parent, - const wxPoint& pos) -{ - wxNumberEntryDialog dialog(parent, msg, prompt, title, - value, min, max, pos); - (void)dialog.ShowModal(); - - return dialog.GetValue(); -} diff --git a/src/generic/panelg.cpp b/src/generic/panelg.cpp deleted file mode 100644 index a37cabb6ed..0000000000 --- a/src/generic/panelg.cpp +++ /dev/null @@ -1,175 +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 - -void wxPanel::Init() -{ - m_winLastFocused = (wxWindow *)NULL; - m_btnDefault = (wxButton *)NULL; -} - -bool wxPanel::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - 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().Find( m_winLastFocused ); - if ( !start_node ) - start_node = GetChildren().GetFirst(); - - wxWindowList::Node *node = event.GetDirection() ? start_node->GetNext() - : start_node->GetPrevious(); - - while ( node != start_node ) - { - if ( !node ) - { - // check if our (may be grand) parent is another panel: if this is - // the case, they will know what to do with this navigation key and - // so give them the chance to process it instead of looping inside - // this panel (normally, the focus will go to the next/previous - // item after this panel in the parent panel) - for ( wxWindow *p = GetParent(); p; p = p->GetParent() ) - { - if ( wxDynamicCast(p, wxPanel) ) - { - event.Skip(); - - return; - } - } - - // no, we are not inside another panel so process this ourself - 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_winLastFocused ) - { - // it might happen that the window got reparented... - if ( m_winLastFocused->GetParent() != this ) - m_winLastFocused = (wxWindow *)NULL; - else - m_winLastFocused->SetFocus(); - } - else - event.Skip(); -} diff --git a/src/generic/printps.cpp b/src/generic/printps.cpp deleted file mode 100644 index ec2b99b5d3..0000000000 --- a/src/generic/printps.cpp +++ /dev/null @@ -1,353 +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" - -#if wxUSE_PRINTING_ARCHITECTURE - -#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/generic/progdlgg.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, - wxPD_CAN_ABORT|wxPD_AUTO_HIDE|wxPD_APP_MODAL); - - 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; - } - } - wxYield(); - } - 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; - } -} - -#endif diff --git a/src/generic/prntdlgg.cpp b/src/generic/prntdlgg.cpp deleted file mode 100644 index 53fa919d26..0000000000 --- a/src/generic/prntdlgg.cpp +++ /dev/null @@ -1,820 +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" - -#if wxUSE_PRINTING_ARCHITECTURE - -#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 "wx/combobox.h" - #include - #include "wx/sizer.h" -#endif - -#if wxUSE_STATLINE - #include "wx/statline.h" -#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); - - wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL ); - - // 1) top row - - wxStaticBoxSizer *topsizer = new wxStaticBoxSizer( - new wxStaticBox( this, -1, _( "Printer options" ) ), wxHORIZONTAL ); - m_printToFileCheckBox = new wxCheckBox( this, wxPRINTID_PRINTTOFILE, _("Print to File") ); - topsizer->Add( m_printToFileCheckBox, 0, wxCENTER|wxALL, 5 ); - - topsizer->Add( 60,2,1 ); - - m_setupButton = new wxButton(this, wxPRINTID_SETUP, _("Setup...") ); - topsizer->Add( m_setupButton, 0, wxCENTER|wxALL, 5 ); - - mainsizer->Add( topsizer, 0, wxLEFT|wxTOP|wxRIGHT, 10 ); - - // 2) middle row with radio box - - 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"), - wxDefaultPosition, wxDefaultSize, - 2, choices, - 1, wxRA_VERTICAL); - m_rangeRadioBox->SetSelection(1); - - mainsizer->Add( m_rangeRadioBox, 0, wxLEFT|wxTOP|wxRIGHT, 10 ); - } - - // 3) bottom row - - wxBoxSizer *bottomsizer = new wxBoxSizer( wxHORIZONTAL ); - - if (m_printDialogData.GetFromPage() != 0) - { - bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("From:") ), 0, wxCENTER|wxALL, 5 ); - m_fromText = new wxTextCtrl(this, wxPRINTID_FROM, "", wxDefaultPosition, wxSize(40, -1)); - bottomsizer->Add( m_fromText, 1, wxCENTER|wxRIGHT, 10 ); - - bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("To:") ), 0, wxCENTER|wxALL, 5); - m_toText = new wxTextCtrl(this, wxPRINTID_TO, "", wxDefaultPosition, wxSize(40, -1)); - bottomsizer->Add( m_toText, 1, wxCENTER|wxRIGHT, 10 ); - } - - bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("Copies:") ), 0, wxCENTER|wxALL, 5 ); - m_noCopiesText = new wxTextCtrl(this, wxPRINTID_COPIES, "", wxPoint(252, 130), wxSize(40, -1)); - bottomsizer->Add( m_noCopiesText, 1, wxCENTER|wxRIGHT, 10 ); - - mainsizer->Add( bottomsizer, 0, wxTOP|wxLEFT|wxRIGHT, 12 ); - -#if wxUSE_STATLINE - // 4) static line - mainsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif - - // 5) buttons - - mainsizer->Add( CreateButtonSizer( wxOK|wxCANCEL), 0, wxCENTER|wxALL, 10 ); - - SetAutoLayout( TRUE ); - SetSizer( mainsizer ); - - mainsizer->Fit( this ); - 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(80, -1)); - (void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(320, 200), wxSize(80, -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; -} - -wxComboBox *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; - - wxComboBox *choice = new wxComboBox(this, wxPRINTID_PAPERSIZE, - _("Paper Size"), - 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 textWidth = 80; - - wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL ); - - // 1) top - wxStaticBoxSizer *topsizer = new wxStaticBoxSizer( - new wxStaticBox(this,wxPRINTID_STATIC, _("Paper size")), wxHORIZONTAL ); - - 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(); - } - - m_paperTypeChoice = new wxComboBox(this, wxPRINTID_PAPERSIZE, _("Paper Size"), - wxDefaultPosition, wxSize(300, -1), n, choices); - topsizer->Add( m_paperTypeChoice, 1, wxEXPAND|wxALL, 5 ); -// m_paperTypeChoice->SetSelection(sel); - - mainsizer->Add( topsizer, 0, wxTOP|wxLEFT|wxRIGHT | wxEXPAND, 10 ); - - // 2) middle sizer with radio box - - wxString *choices2 = new wxString[2]; - choices2[0] = _("Portrait"); - choices2[1] = _("Landscape"); - m_orientationRadioBox = new wxRadioBox(this, wxPRINTID_ORIENTATION, _("Orientation"), - wxDefaultPosition, wxDefaultSize, 2, choices2, 2); - m_orientationRadioBox->SetSelection(0); - - mainsizer->Add( m_orientationRadioBox, 0, wxTOP|wxLEFT|wxRIGHT, 10 ); - - // 3) margins - - wxBoxSizer *table = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer *column1 = new wxBoxSizer( wxVERTICAL ); - column1->Add( new wxStaticText(this, wxPRINTID_STATIC, _("Left margin (mm):")),1,wxALL|wxALIGN_RIGHT,5 ); - column1->Add( new wxStaticText(this, wxPRINTID_STATIC, _("Top margin (mm):")),1,wxALL|wxALIGN_RIGHT,5 ); - table->Add( column1, 0, wxALL | wxEXPAND, 5 ); - - wxBoxSizer *column2 = new wxBoxSizer( wxVERTICAL ); - m_marginLeftText = new wxTextCtrl(this, wxPRINTID_LEFTMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1)); - m_marginTopText = new wxTextCtrl(this, wxPRINTID_TOPMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1)); - column2->Add( m_marginLeftText, 1, wxALL, 5 ); - column2->Add( m_marginTopText, 1, wxALL, 5 ); - table->Add( column2, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, 5 ); - - wxBoxSizer *column3 = new wxBoxSizer( wxVERTICAL ); - column3->Add( new wxStaticText(this, wxPRINTID_STATIC, _("Right margin (mm):")),1,wxALL|wxALIGN_RIGHT,5 ); - column3->Add( new wxStaticText(this, wxPRINTID_STATIC, _("Bottom margin (mm):")),1,wxALL|wxALIGN_RIGHT,5 ); - table->Add( column3, 0, wxALL | wxEXPAND, 5 ); - - wxBoxSizer *column4 = new wxBoxSizer( wxVERTICAL ); - m_marginRightText = new wxTextCtrl(this, wxPRINTID_RIGHTMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1)); - m_marginBottomText = new wxTextCtrl(this, wxPRINTID_BOTTOMMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1)); - column4->Add( m_marginRightText, 1, wxALL, 5 ); - column4->Add( m_marginBottomText, 1, wxALL, 5 ); - table->Add( column4, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, 5 ); - - mainsizer->Add( table, 0 ); - -#if wxUSE_STATLINE - // 5) static line - mainsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif - - // 6) buttons - - wxSizer* buttonsizer = CreateButtonSizer( wxOK|wxCANCEL); - m_printerButton = new wxButton(this, wxPRINTID_SETUP, _("Printer...") ); - buttonsizer->Add( m_printerButton, 0, wxLEFT|wxRIGHT, 10 ); - if ( !m_pageData.GetEnablePrinter() ) - m_printerButton->Enable(FALSE); - // if (m_printData.GetEnableHelp()) - // wxButton *helpButton = new wxButton(this, (wxFunction)wxGenericPageSetupHelpProc, _("Help"), -1, -1, buttonWidth, buttonHeight); - mainsizer->Add( buttonsizer, 0, wxCENTER|wxALL, 10 ); - - - SetAutoLayout( TRUE ); - SetSizer( mainsizer ); - - mainsizer->Fit( this ); - Centre(wxBOTH); - - InitDialog(); - - delete[] choices; - delete [] choices2; -} - -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; -} - -wxComboBox *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; - - wxComboBox *choice = new wxComboBox(this, wxPRINTID_PAPERSIZE, - _("Paper Size"), - wxPoint(*x, *y), wxSize(300, -1), n, - choices); - *y += 35; - delete[] choices; - -// choice->SetSelection(sel); - return choice; -} - -#endif diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp deleted file mode 100644 index 281efc5183..0000000000 --- a/src/generic/progdlgg.cpp +++ /dev/null @@ -1,384 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "progdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_PROGRESSDLG - -#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" - #include "wx/settings.h" - #include "wx/dcclient.h" - #include "wx/timer.h" -#endif - -#include "wx/generic/progdlgg.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#define LAYOUT_X_MARGIN 8 -#define LAYOUT_Y_MARGIN 8 - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -// update the label to show the given time (in seconds) -static void SetTimeLabel(unsigned long val, wxStaticText *label); - -// ---------------------------------------------------------------------------- -// event tables -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - BEGIN_EVENT_TABLE(wxProgressDialog, wxDialog) - EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel) - EVT_CLOSE(wxProgressDialog::OnClose) - END_EVENT_TABLE() - - IMPLEMENT_CLASS(wxProgressDialog, wxDialog) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxProgressDialog -// ---------------------------------------------------------------------------- - -wxProgressDialog::wxProgressDialog(wxString const &title, - wxString const &message, - int maximum, - wxWindow *parent, - int style) - : wxDialog(parent, -1, title) -{ - bool hasAbortButton = (style & wxPD_CAN_ABORT) != 0; - m_state = hasAbortButton ? Continue : Uncancelable; - m_disableParentOnly = (style & wxPD_APP_MODAL) == 0; - m_AutoHide = (style & wxPD_AUTO_HIDE) != 0; - m_parent = parent; - m_maximum = maximum; - - wxLayoutConstraints *c; - - wxClientDC dc(this); - dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - long widthText; -#if defined(__VISAGECPP__) -// have two versions of this in wxWindowDC tp avoid function hiding -// since there are two of these in wxDCBase, and in turn in wxDC. -// VA cannot resolve this so: - dc.GetTextExtent(message, &widthText, NULL, NULL, NULL, NULL, FALSE); -#else - dc.GetTextExtent(message, &widthText, (long*)NULL); -#endif - - m_msg = new wxStaticText(this, -1, message); - c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft, 2*LAYOUT_X_MARGIN); - c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN); - c->width.AsIs(); - c->height.AsIs(); - m_msg->SetConstraints(c); - - wxSize sizeDlg, sizeLabel = m_msg->GetSize(); - sizeDlg.y = 2*LAYOUT_Y_MARGIN + sizeLabel.y; - - wxWindow *lastWindow = m_msg; - - if ( maximum > 0 ) - { - m_gauge = new wxGauge(this, -1, maximum, - wxDefaultPosition, wxDefaultSize, - wxGA_HORIZONTAL | wxRAISED_BORDER); - 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); - lastWindow = m_gauge; - - wxSize sizeGauge = m_gauge->GetSize(); - sizeDlg.y += 2*LAYOUT_Y_MARGIN + sizeGauge.y; - } - else - m_gauge = (wxGauge *)NULL; - - // create the estimated/remaining/total time zones if requested - m_elapsed = m_estimated = m_remaining = (wxStaticText*)NULL; - - int nTimeLabels = 0; - if ( style & wxPD_ELAPSED_TIME ) - { - nTimeLabels++; - - m_elapsed = CreateLabel(_T("Elapsed time : "), &lastWindow); - } - - if ( style & wxPD_ESTIMATED_TIME ) - { - nTimeLabels++; - - m_estimated = CreateLabel(_T("Estimated time : "), &lastWindow); - } - - if ( style & wxPD_REMAINING_TIME ) - { - nTimeLabels++; - - m_remaining = CreateLabel(_T("Remaining time : "), &lastWindow); - } - - if ( nTimeLabels > 0 ) - { - // set it to the current time - m_timeStart = wxGetCurrentTime(); - - sizeDlg.y += nTimeLabels * (sizeLabel.y + LAYOUT_Y_MARGIN); - } - - if ( hasAbortButton ) - { - m_btnAbort = new wxButton(this, wxID_CANCEL, _("Cancel")); - c = new wxLayoutConstraints; - - // Windows dialogs usually have buttons in the lower right corner -#ifdef __WXMSW__ - c->right.SameAs(this, wxRight, 2*LAYOUT_X_MARGIN); -#else // !MSW - c->centreX.SameAs(this, wxCentreX); -#endif // MSW/!MSW - c->bottom.SameAs(this, wxBottom, 2*LAYOUT_Y_MARGIN); - - wxSize sizeBtn = wxButton::GetDefaultSize(); - c->width.Absolute(sizeBtn.x); - c->height.Absolute(sizeBtn.y); - - m_btnAbort->SetConstraints(c); - - sizeDlg.y += 2*LAYOUT_Y_MARGIN + sizeBtn.y; - } - else - m_btnAbort = (wxButton *)NULL; - - SetAutoLayout(TRUE); - Layout(); - - sizeDlg.y += 2*LAYOUT_Y_MARGIN; - - // try to make the dialog not square but rectangular of reasonabel width - sizeDlg.x = wxMax(widthText, 4*sizeDlg.y/3); - sizeDlg.x *= 3; - sizeDlg.x /= 2; - SetClientSize(sizeDlg); - - Centre(wxCENTER_FRAME | wxBOTH); - - if (m_disableParentOnly ) - { - if ( m_parent ) - m_parent->Enable(FALSE); - } - else - { - wxEnableTopLevelWindows(FALSE); - } - - Show(TRUE); - Enable(TRUE); // enable this window - - // Update the display (especially on X, GTK) - wxYield(); -} - -wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, - wxWindow **lastWindow) -{ - wxLayoutConstraints *c; - - wxStaticText *label = new wxStaticText(this, -1, _T("unknown")); - c = new wxLayoutConstraints; - - // VZ: I like the labels be centered - if the others don't mind, you may - // remove "#ifdef __WXMSW__" and use it for all ports -#ifdef __WXMSW__ - c->left.SameAs(this, wxCentreX, LAYOUT_X_MARGIN); -#else // !MSW - c->right.SameAs(this, wxRight, 2*LAYOUT_X_MARGIN); -#endif // MSW/!MSW - c->top.Below(*lastWindow, LAYOUT_Y_MARGIN); - c->width.AsIs(); - c->height.AsIs(); - label->SetConstraints(c); - - wxStaticText *dummy = new wxStaticText(this, -1, text); - c = new wxLayoutConstraints; - c->right.LeftOf(label); - c->top.SameAs(label, wxTop, 0); - c->width.AsIs(); - c->height.AsIs(); - dummy->SetConstraints(c); - - *lastWindow = label; - - return label; -} - -bool -wxProgressDialog::Update(int value, const wxString& newmsg) -{ - wxASSERT_MSG( value == -1 || m_gauge, _T("cannot 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); - - if ( (m_elapsed || m_remaining || m_estimated) && (value != 0) ) - { - unsigned long elapsed = wxGetCurrentTime() - m_timeStart; - unsigned long estimated = elapsed * m_maximum / value; - unsigned long remaining = estimated - elapsed; - - SetTimeLabel(elapsed, m_elapsed); - SetTimeLabel(estimated, m_estimated); - SetTimeLabel(remaining, m_remaining); - } - - if ( (value == m_maximum ) && !m_AutoHide ) - { - 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.")); - } - - // so that we return TRUE below and that out [Cancel] handler knew what - // to do - m_state = Finished; - - wxYield(); - - (void)ShowModal(); - } - else - { - // update the display - wxYield(); - } - - return m_state != Canceled; -} - -// ---------------------------------------------------------------------------- -// event handlers -// ---------------------------------------------------------------------------- - -void wxProgressDialog::OnCancel(wxCommandEvent& event) -{ - if ( m_state == Finished ) - { - // this means that the count down is already finished and we're being - // shown as a modal dialog - so just let the default handler do the job - event.Skip(); - } - else - { - // request to cancel was received, the next time Update() is called we - // will handle it - m_state = Canceled; - } -} - -void wxProgressDialog::OnClose(wxCloseEvent& event) -{ - if ( m_state == Uncancelable ) - event.Veto(TRUE); - else - m_state = Canceled; -} - -// ---------------------------------------------------------------------------- -// destruction -// ---------------------------------------------------------------------------- - -wxProgressDialog::~wxProgressDialog() -{ - if ( m_disableParentOnly ) - { - if ( m_parent ) - m_parent->Enable(TRUE); - } - else - { - wxEnableTopLevelWindows(TRUE); - } -} - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -static void SetTimeLabel(unsigned long val, wxStaticText *label) -{ - if ( label ) - { - wxString s; - unsigned long hours = val / 3600; - unsigned long minutes = (val % 3600) / 60; - unsigned long seconds = val % 60; - s.Printf(_T("%lu:%02lu:%02lu"), hours, minutes, seconds); - - if ( s != label->GetLabel() ) - label->SetLabel(s); - } -} - -#endif // wxUSE_PROGRESSDLG diff --git a/src/generic/prop.cpp b/src/generic/prop.cpp deleted file mode 100644 index 178d82bc97..0000000000 --- a/src/generic/prop.cpp +++ /dev/null @@ -1,1110 +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 "wx/debug.h" -#include "wx/prop.h" - -#include -#include -#include -#include - - -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: - wxFAIL_MSG( _T("Should never get here!\n" ) ); - 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(); - // what is this? are you trying to assign a bool or a string? VA can't figure it out.. -#if defined(__VISAGECPP__) - (*this) = s; -#else - (*this) = s != 0; -#endif - 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: - wxFAIL_MSG( _T("Should never get here!\n" ) ); - 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(wxString& 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.Append( _T("(") ); - node = node->m_next; - bool first = TRUE; - while (node) - { - if (!first) - stream.Append( _T(" ") ); - node->WritePropertyType(stream); - node = node->m_next; - if (node) - stream.Append( _T(",\n" ) ); - first = FALSE; - } - stream.Append( _T(").\n\n") ); - } -} - -void wxPropertyValue::WritePropertyType(wxString& stream) // Write as any other subexpression -{ - wxString tmp; - switch (m_type) - { - case wxPropertyValueInteger: - { - tmp.Printf( _T("%ld"), m_value.integer ); - stream.Append( tmp ); - break; - } - case wxPropertyValueIntegerPtr: - { - tmp.Printf( _T("%ld"), *m_value.integerPtr ); - stream.Append( tmp ); - break; - } - case wxPropertyValuebool: - { - if (m_value.integer) - stream.Append( _T("True") ); - else - stream.Append( _T("False") ); - break; - } - case wxPropertyValueboolPtr: - { - if (*m_value.integerPtr) - stream.Append( _T("True") ); - else - stream.Append( _T("False") ); - break; - } - case wxPropertyValueReal: - { - double d = m_value.real; - tmp.Printf( _T("%.6g"), d ); - stream.Append( tmp ); - break; - } - case wxPropertyValueRealPtr: - { - double d = *m_value.realPtr; - tmp.Printf( _T("%.6g"), d ); - stream.Append( tmp ); - break; - } - case wxPropertyValueString: - { - stream.Append( m_value.string ); - 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.Append( _T("[]") ); - else - { - wxPropertyValue *expr = m_value.first; - - stream.Append( _T("[") ); - while (expr) - { - expr->WritePropertyType(stream); - expr = expr->m_next; - if (expr) - stream.Append( _T(", ") ); - } - stream.Append( _T("]") ); - } - break; - } - case wxPropertyValueNull: break; - } -} - -wxString wxPropertyValue::GetStringRepresentation(void) -{ - wxString str; - WritePropertyType(str); - return str; -} - -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(); -} - -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()) != NULL) - { - 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 686db00abf..0000000000 --- a/src/generic/propform.cpp +++ /dev/null @@ -1,739 +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 "wx/propform.h" - -#include -#include -#include -#include - - -/* - * 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() != _T("")) - { - 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() == _T("")) - 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 b35a76fb74..0000000000 --- a/src/generic/proplist.cpp +++ /dev/null @@ -1,1868 +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/window.h" -#include "wx/font.h" -#include "wx/button.h" -#include "wx/bmpbuttn.h" -#include "wx/textctrl.h" -#include "wx/listbox.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/filedlg.h" -#endif - -#include "wx/sizer.h" -#include "wx/module.h" -#include "wx/intl.h" - -#include "wx/colordlg.h" -#include "wx/proplist.h" - -#include -#include -#include -#include - -#ifndef __WXMSW__ -#include "wx/generic/cross.xpm" -#include "wx/generic/tick.xpm" -#endif - - -/* - * global data, urgh. - */ - -static wxBitmap* gs_tickBitmap = (wxBitmap*) NULL; -static wxBitmap* gs_crossBitmap = (wxBitmap*) NULL; - - -/* - * 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 - */ - -bool wxPropertyListView::sm_dialogCancelled = FALSE; - -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() - -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) -{ -} - -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(), (void *)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() -{ - wxPanel *panel = (wxPanel *)m_propertyWindow; - - wxSize largeButtonSize( 60, 25 ); - wxSize smallButtonSize( 23, 23 ); - - if (m_valueText) - return TRUE; - - if (!panel) - return FALSE; - - 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); - - wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL ); - - // top row with optional buttons and input line - - wxBoxSizer *topsizer = new wxBoxSizer( wxHORIZONTAL ); - int buttonborder = 3; - - if (m_buttonFlags & wxPROP_BUTTON_CHECK_CROSS) - { - if (gs_tickBitmap && gs_crossBitmap) - { - m_confirmButton = new wxBitmapButton(panel, wxID_PROP_CHECK, *gs_tickBitmap, wxPoint(-1, -1), smallButtonSize ); - m_cancelButton = new wxBitmapButton(panel, wxID_PROP_CROSS, *gs_crossBitmap, wxPoint(-1, -1), smallButtonSize ); - } - else - { - m_confirmButton = new wxButton(panel, wxID_PROP_CHECK, ":-)", wxPoint(-1, -1), smallButtonSize ); - m_cancelButton = new wxButton(panel, wxID_PROP_CROSS, "X", wxPoint(-1, -1), smallButtonSize ); - } - - topsizer->Add( m_confirmButton, 0, wxLEFT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder ); - topsizer->Add( m_cancelButton, 0, wxLEFT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder ); - } - - m_valueText = new wxPropertyTextEdit(this, panel, wxID_PROP_TEXT, "", - wxPoint(-1, -1), wxSize(-1, smallButtonSize.y), wxPROCESS_ENTER); - m_valueText->Enable(FALSE); - topsizer->Add( m_valueText, 1, wxALL | wxEXPAND, buttonborder ); - - if (m_buttonFlags & wxPROP_PULLDOWN) - { - m_editButton = new wxButton(panel, wxID_PROP_EDIT, "...", wxPoint(-1, -1), smallButtonSize); - m_editButton->Enable(FALSE); - topsizer->Add( m_editButton, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder ); - } - - mainsizer->Add( topsizer, 0, wxEXPAND ); - - // middle section with two list boxes - - m_middleSizer = new wxBoxSizer( wxVERTICAL ); - - m_valueList = new wxListBox(panel, wxID_PROP_VALUE_SELECT, wxPoint(-1, -1), wxSize(-1, 60)); - m_valueList->Show(FALSE); - - m_propertyScrollingList = new wxListBox(panel, wxID_PROP_SELECT, wxPoint(-1, -1), wxSize(100, 100)); - m_propertyScrollingList->SetFont(* boringFont); - m_middleSizer->Add( m_propertyScrollingList, 1, wxALL|wxEXPAND, buttonborder ); - - mainsizer->Add( m_middleSizer, 1, wxEXPAND ); - - // bottom row with buttons - - if ((m_buttonFlags & wxPROP_BUTTON_OK) || - (m_buttonFlags & wxPROP_BUTTON_CLOSE) || - (m_buttonFlags & wxPROP_BUTTON_CANCEL) || - (m_buttonFlags & wxPROP_BUTTON_HELP)) - { - wxBoxSizer *bottomsizer = new wxBoxSizer( wxHORIZONTAL ); - buttonborder = 5; - - if (m_buttonFlags & wxPROP_BUTTON_OK) - { - m_windowCloseButton = new wxButton(panel, wxID_OK, _("OK"), wxPoint(-1, -1), largeButtonSize ); - m_windowCloseButton->SetDefault(); - m_windowCloseButton->SetFocus(); - bottomsizer->Add( m_windowCloseButton, 0, wxLEFT|wxTOP|wxBOTTOM, buttonborder ); - } - else if (m_buttonFlags & wxPROP_BUTTON_CLOSE) - { - m_windowCloseButton = new wxButton(panel, wxID_OK, _("Close"), wxPoint(-1, -1), largeButtonSize ); - bottomsizer->Add( m_windowCloseButton, 0, wxALL, buttonborder ); - } - if (m_buttonFlags & wxPROP_BUTTON_CANCEL) - { - m_windowCancelButton = new wxButton(panel, wxID_CANCEL, _("Cancel"), wxPoint(-1, -1), largeButtonSize ); - bottomsizer->Add( m_windowCancelButton, 0, wxALL, buttonborder ); - } - if (m_buttonFlags & wxPROP_BUTTON_HELP) - { - m_windowHelpButton = new wxButton(panel, wxID_HELP, _("Help"), wxPoint(-1, -1), largeButtonSize ); - bottomsizer->Add( m_windowHelpButton, 0, wxALL, buttonborder ); - } - - mainsizer->Add( bottomsizer, 1, wxALIGN_RIGHT | wxEXPAND ); - } - - panel->SetSizer( mainsizer ); - - return TRUE; -} - -void wxPropertyListView::ShowTextControl(bool show) -{ - if (m_valueText) - m_valueText->Show(show); -} - -void wxPropertyListView::ShowListBoxControl(bool show) -{ - if (!m_valueList) return; - - m_valueList->Show(show); - - if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD) - { - if (show) - m_middleSizer->Prepend( m_valueList, 0, wxTOP|wxLEFT|wxRIGHT | wxEXPAND, 3 ); - else - m_middleSizer->Remove( 0 ); - - 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 != _T("")) - { - 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 != _T("")) - { - 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)); - -#ifndef __WXGTK__ - okButton->SetDefault(); -#endif - - 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, (void *)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); -} - -//----------------------------------------------------------------------------- -// wxPropertyModule -//----------------------------------------------------------------------------- - -class wxPropertyModule: public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxPropertyModule) - -public: - wxPropertyModule() {} - bool OnInit(); - void OnExit(); -}; - -IMPLEMENT_DYNAMIC_CLASS(wxPropertyModule,wxModule) - -bool wxPropertyModule::OnInit() -{ -#ifdef __WXMSW__ - gs_tickBitmap = new wxBitmap("tick_bmp", wxBITMAP_TYPE_RESOURCE); - gs_crossBitmap = new wxBitmap("cross_bmp", wxBITMAP_TYPE_RESOURCE); -#else - gs_tickBitmap = new wxBitmap( tick_xpm ); - gs_crossBitmap = new wxBitmap( cross_xpm ); -#endif - if (!gs_tickBitmap || !gs_crossBitmap || !gs_tickBitmap->Ok() || !gs_crossBitmap->Ok()) - { - if (gs_tickBitmap) delete gs_tickBitmap; - if (gs_crossBitmap) delete gs_crossBitmap; - gs_tickBitmap = (wxBitmap*) NULL; - gs_crossBitmap = (wxBitmap*) NULL; - } - - return TRUE; -} - -void wxPropertyModule::OnExit() -{ - if (gs_tickBitmap) - delete gs_tickBitmap; - if (gs_crossBitmap) - delete gs_crossBitmap; -} - diff --git a/src/generic/sashwin.cpp b/src/generic/sashwin.cpp deleted file mode 100644 index 9b9b7a1156..0000000000 --- a/src/generic/sashwin.cpp +++ /dev/null @@ -1,673 +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; - - // the new height and width of the window - if -1, it didn't change - int newHeight = -1, - newWidth = -1; - - // NB: x and y may be negative and they're relative to the sash window - // upper left corner, while xp and yp are expressed in the parent - // window system of coordinates, so adjust them! After this - // adjustment, all coordinates are relative to the parent window. - y += yp; - x += xp; - - switch (edge) - { - case wxSASH_TOP: - if ( y > yp + h ) - { - // top sash shouldn't get below the bottom one - status = wxSASH_STATUS_OUT_OF_RANGE; - } - else - { - newHeight = h - (y - yp); - } - break; - - case wxSASH_BOTTOM: - if ( y < yp ) - { - // bottom sash shouldn't get above the top one - status = wxSASH_STATUS_OUT_OF_RANGE; - } - else - { - newHeight = y - yp; - } - break; - - case wxSASH_LEFT: - if ( x > xp + w ) - { - // left sash shouldn't get beyond the right one - status = wxSASH_STATUS_OUT_OF_RANGE; - } - else - { - newWidth = w - (x - xp); - } - break; - - case wxSASH_RIGHT: - if ( x < xp ) - { - // and the right sash, finally, shouldn't be beyond the - // left one - status = wxSASH_STATUS_OUT_OF_RANGE; - } - else - { - newWidth = x - xp; - } - break; - - case wxSASH_NONE: - // can this happen at all? - break; - } - - if ( newHeight == -1 ) - { - // didn't change - newHeight = h; - } - else - { - // make sure it's in m_minimumPaneSizeY..m_maximumPaneSizeY range - newHeight = wxMax(newHeight, m_minimumPaneSizeY); - newHeight = wxMin(newHeight, m_maximumPaneSizeY); - } - - if ( newWidth == -1 ) - { - // didn't change - newWidth = w; - } - else - { - // make sure it's in m_minimumPaneSizeY..m_maximumPaneSizeY range - newWidth = wxMax(newWidth, m_minimumPaneSizeX); - newWidth = wxMin(newWidth, m_maximumPaneSizeX); - } - - dragRect = wxRect(x, y, newWidth, newHeight); - - 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 8078c767b4..0000000000 --- a/src/generic/scrolwin.cpp +++ /dev/null @@ -1,517 +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); -} - -void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const -{ - if ( xx ) - *xx = (float)(x + m_xScrollPosition * m_xScrollPixelsPerLine); - if ( yy ) - *yy = (float)(y + m_yScrollPosition * m_yScrollPixelsPerLine); -} -#endif // WXWIN_COMPATIBILITY - -void wxScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const -{ - if ( x_unit ) - *x_unit = m_xScrollPixelsPerLine; - if ( y_unit ) - *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 -{ - if ( x ) - *x = m_xScrollPixelsPerLine * m_xScrollLines; - if ( y ) - *y = m_yScrollPixelsPerLine * m_yScrollLines; -} - -// Where the current view starts from -void wxScrolledWindow::ViewStart (int *x, int *y) const -{ - if ( x ) - *x = m_xScrollPosition; - if ( y ) - *y = m_yScrollPosition; -} - -void wxScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) const -{ - if ( xx ) - *xx = x - m_xScrollPosition * m_xScrollPixelsPerLine; - if ( yy ) - *yy = y - m_yScrollPosition * m_yScrollPixelsPerLine; -} - -void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const -{ - if ( xx ) - *xx = x + m_xScrollPosition * m_xScrollPixelsPerLine; - if ( yy ) - *yy = y + m_yScrollPosition * m_yScrollPixelsPerLine; -} diff --git a/src/generic/splitter.cpp b/src/generic/splitter.cpp deleted file mode 100644 index 9e680e1748..0000000000 --- a/src/generic/splitter.cpp +++ /dev/null @@ -1,907 +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& event) -{ - // only process this message if we're not iconized - otherwise iconizing - // and restoring a window containing the splitter has a funny side effect - // of changing the splitter position! - wxWindow *parent = GetParent(); - while ( parent && !parent->IsTopLevel() ) - { - parent = parent->GetParent(); - } - - bool iconized = FALSE; - wxFrame *frame = wxDynamicCast(parent, wxFrame); - if ( frame ) - iconized = frame->IsIconized(); - else - { - wxDialog *dialog = wxDynamicCast(parent, wxDialog); - if ( dialog ) - iconized = dialog->IsIconized(); - else - wxFAIL_MSG(_T("should have a top level frame or dialog parent!")); - } - - if ( iconized ) - { - event.Skip(); - } - else - { - 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/statline.cpp b/src/generic/statline.cpp deleted file mode 100644 index 21ad893852..0000000000 --- a/src/generic/statline.cpp +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: generic/statline.cpp -// Purpose: a generic wxStaticLine class -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Version: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "statline.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/statline.h" -#include "wx/statbox.h" - -// ============================================================================ -// implementation -// ============================================================================ - -IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl) - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -bool wxStaticLine::Create( wxWindow *parent, - wxWindowID id, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name) -{ - if ( !CreateBase(parent, id, pos, size, style, name) ) - return FALSE; - - // ok, this is ugly but it's better than nothing: use a thin static box to - // emulate static line - - wxSize sizeReal = AdjustSize(size); - - m_statbox = new wxStaticBox(parent, id, _T(""), pos, sizeReal, style, name); - - return TRUE; -} 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 40ca7ba6a3..0000000000 --- a/src/generic/textdlgg.cpp +++ /dev/null @@ -1,121 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#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/button.h" - #include "wx/stattext.h" - #include "wx/textctrl.h" - #include "wx/intl.h" - #include "wx/sizer.h" -#endif - -#if wxUSE_STATLINE - #include "wx/statline.h" -#endif - -#include "wx/generic/textdlgg.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -static const int wxID_TEXT = 3000; - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxTextEntryDialog -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK) -END_EVENT_TABLE() - -IMPLEMENT_CLASS(wxTextEntryDialog, wxDialog) -#endif - -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), - m_value(value) -{ - m_dialogStyle = style; - m_value = value; - - wxBeginBusyCursor(); - - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // 1) text message - topsizer->Add( CreateTextSizer( message ), 0, wxALL, 10 ); - - // 2) text ctrl - m_textctrl = new wxTextCtrl(this, wxID_TEXT, value, wxDefaultPosition, wxSize(300, -1)); - topsizer->Add( m_textctrl, 1, wxEXPAND | wxLEFT|wxRIGHT, 15 ); - -#if wxUSE_STATLINE - // 3) static line - topsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif - - // 4) buttons - topsizer->Add( CreateButtonSizer( style ), 0, wxCENTRE | wxALL, 10 ); - - SetAutoLayout( TRUE ); - SetSizer( topsizer ); - - topsizer->SetSizeHints( this ); - topsizer->Fit( this ); - - Centre( wxBOTH ); - - m_textctrl->SetFocus(); - - wxEndBusyCursor(); -} - -void wxTextEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event) ) -{ - m_value = m_textctrl->GetValue(); - - EndModal(wxID_OK); -} diff --git a/src/generic/tipdlg.cpp b/src/generic/tipdlg.cpp deleted file mode 100644 index 72f4675b25..0000000000 --- a/src/generic/tipdlg.cpp +++ /dev/null @@ -1,245 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: tipdlg.cpp -// Purpose: implementation of wxTipDialog -// Author: Vadim Zeitlin -// Modified by: -// Created: 28.06.99 -// RCS-ID: $Id$ -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "tipdlg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_STARTUP_TIPS - -#ifndef WX_PRECOMP - #include "wx/button.h" - #include "wx/checkbox.h" - #include "wx/statbox.h" - #include "wx/dialog.h" - #include "wx/icon.h" - #include "wx/intl.h" - #include "wx/settings.h" - #include "wx/textctrl.h" - #include "wx/statbmp.h" - #include "wx/sizer.h" -#endif // WX_PRECOMP - -#include "wx/statline.h" - -#include "wx/tipdlg.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -static const int wxID_NEXT_TIP = -100; // whatever - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// an implementation which takes the tips from the text file - each line -// represents a tip -class WXDLLEXPORT wxFileTipProvider : public wxTipProvider -{ -public: - wxFileTipProvider(const wxString& filename, size_t currentTip); - - virtual wxString GetTip(); - -private: - wxTextFile m_textfile; -}; - -#ifdef __WIN32__ -// TODO an implementation which takes the tips from the given registry key -class WXDLLEXPORT wxRegTipProvider : public wxTipProvider -{ -public: - wxRegTipProvider(const wxString& keyname); - - virtual wxString GetTip(); -}; - -// Empty implementation for now to keep the linker happy -wxString wxRegTipProvider::GetTip() -{ - return ""; -} - -#endif // __WIN32__ - -// the dialog we show in wxShowTip() -class WXDLLEXPORT wxTipDialog : public wxDialog -{ -public: - wxTipDialog(wxWindow *parent, - wxTipProvider *tipProvider, - bool showAtStartup); - - // the tip dialog has "Show tips on startup" checkbox - return TRUE if it - // was checked (or wasn't unchecked) - bool ShowTipsOnStartup() const { return m_checkbox->GetValue(); } - - // sets the (next) tip text - void SetTipText() { m_text->SetValue(m_tipProvider->GetTip()); } - - // "Next" button handler - void OnNextTip(wxCommandEvent& WXUNUSED(event)) { SetTipText(); } - -private: - wxTipProvider *m_tipProvider; - - wxTextCtrl *m_text; - wxCheckBox *m_checkbox; - - DECLARE_EVENT_TABLE() -}; - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxFileTipProvider -// ---------------------------------------------------------------------------- - -wxFileTipProvider::wxFileTipProvider(const wxString& filename, - size_t currentTip) - : wxTipProvider(currentTip), m_textfile(filename) -{ - m_textfile.Open(); -} - -wxString wxFileTipProvider::GetTip() -{ - size_t count = m_textfile.GetLineCount(); - if ( !count ) - return _("Tips not available, sorry!"); - - // notice that it may be greater, actually, if we remembered it from the - // last time and the number of tips changed - if ( m_currentTip == count ) - { - // wrap - m_currentTip = 0; - } - - return m_textfile.GetLine(m_currentTip++); -} - -// ---------------------------------------------------------------------------- -// wxTipDialog -// ---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxTipDialog, wxDialog) - EVT_BUTTON(wxID_NEXT_TIP, wxTipDialog::OnNextTip) -END_EVENT_TABLE() - -wxTipDialog::wxTipDialog(wxWindow *parent, - wxTipProvider *tipProvider, - bool showAtStartup) - : wxDialog(parent, -1, _("Tip of the Day"), - wxDefaultPosition, wxDefaultSize, - wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) -{ - m_tipProvider = tipProvider; - - // 1) create all controls in tab order - - wxButton *btnClose = new wxButton(this, wxID_CANCEL, _("&Close")); - - m_checkbox = new wxCheckBox(this, -1, _("&Show tips at startup")); - m_checkbox->SetValue(showAtStartup); - - wxButton *btnNext = new wxButton(this, wxID_NEXT_TIP, _("&Next")); - - wxTextCtrl *text = new wxTextCtrl(this, -1, _("Did you know..."), - wxDefaultPosition, wxDefaultSize, - wxTE_READONLY | wxNO_BORDER); - text->SetFont(wxFont(18, wxSWISS, wxNORMAL, wxBOLD)); - text->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNFACE)); - - m_text = new wxTextCtrl(this, -1, _T(""), - wxDefaultPosition, wxSize(200, 160), - wxTE_MULTILINE | wxTE_READONLY | wxSUNKEN_BORDER); - m_text->SetFont(wxFont(14, wxROMAN, wxNORMAL, wxNORMAL)); - -#if defined(__WXMSW__) || defined(__WXPM__) - wxIcon icon("wxICON_TIP"); -#else - #include "wx/generic/tip.xpm" - wxIcon icon(tipIcon); -#endif - wxStaticBitmap *bmp = new wxStaticBitmap(this, -1, icon); - - // 2) put them in boxes - - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer *icon_text = new wxBoxSizer( wxHORIZONTAL ); - icon_text->Add( bmp, 0, wxCENTER ); - icon_text->Add( text, 1, wxCENTER | wxLEFT, 10 ); - topsizer->Add( icon_text, 0, wxEXPAND | wxALL, 10 ); - - topsizer->Add( m_text, 1, wxEXPAND | wxLEFT|wxRIGHT, 10 ); - - wxBoxSizer *bottom = new wxBoxSizer( wxHORIZONTAL ); - bottom->Add( m_checkbox, 0, wxCENTER ); - bottom->Add( btnNext, 0, wxCENTER | wxLEFT, 10 ); - bottom->Add( btnClose, 0, wxCENTER | wxLEFT, 10 ); - topsizer->Add( bottom, 0, wxALIGN_RIGHT | wxALL, 10 ); - - SetTipText(); - - SetAutoLayout(TRUE); - SetSizer( topsizer ); - - topsizer->SetSizeHints( this ); - topsizer->Fit( this ); - - Centre(wxBOTH | wxCENTER_FRAME); - -} - -// ---------------------------------------------------------------------------- -// our public interface -// ---------------------------------------------------------------------------- - -wxTipProvider *wxCreateFileTipProvider(const wxString& filename, - size_t currentTip) -{ - return new wxFileTipProvider(filename, currentTip); -} - -bool wxShowTip(wxWindow *parent, - wxTipProvider *tipProvider, - bool showAtStartup) -{ - wxTipDialog dlg(parent, tipProvider, showAtStartup); - dlg.ShowModal(); - - return dlg.ShowTipsOnStartup(); -} - -#endif // wxUSE_STARTUP_TIPS - diff --git a/src/generic/treectrl.cpp b/src/generic/treectrl.cpp deleted file mode 100644 index 3dd2b16562..0000000000 --- a/src/generic/treectrl.cpp +++ /dev/null @@ -1,2099 +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/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/arrimpl.cpp" -#include "wx/dcclient.h" -#include "wx/msgdlg.h" - -// ----------------------------------------------------------------------------- -// array types -// ----------------------------------------------------------------------------- - -class WXDLLEXPORT wxGenericTreeItem; - -WX_DEFINE_ARRAY(wxGenericTreeItem *, wxArrayGenericTreeItems); -WX_DEFINE_OBJARRAY(wxArrayTreeItemIds); - -// ----------------------------------------------------------------------------- -// 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 - wxArrayGenericTreeItems& 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 ); - 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 SetX(int x) { m_x = x; } - void SetY(int y) { m_y = y; } - - int GetHeight() const { return m_height; } - int GetWidth() const { return m_width; } - - void SetHeight(int h) { m_height = h; } - void SetWidth(int w) { m_width = w; } - - - 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, const wxTreeCtrl* ); - - // 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, const wxTreeCtrl *, int &flags); - - 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_height, m_width; - int m_xCross, m_yCross; - int m_level; - wxArrayGenericTreeItems m_children; - wxGenericTreeItem *m_parent; -}; - -// ============================================================================= -// implementation -// ============================================================================= - - -// ----------------------------------------------------------------------------- -// wxTreeRenameTimer (internal) -// ----------------------------------------------------------------------------- - -wxTreeRenameTimer::wxTreeRenameTimer( wxTreeCtrl *owner ) -{ - m_owner = owner; -} - -void wxTreeRenameTimer::Notify() -{ - m_owner->OnRenameTimer(); -} - -//----------------------------------------------------------------------------- -// wxTreeTextCtrl (internal) -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTreeTextCtrl,wxTextCtrl); - -BEGIN_EVENT_TABLE(wxTreeTextCtrl,wxTextCtrl) - EVT_CHAR (wxTreeTextCtrl::OnChar) - EVT_KILL_FOCUS (wxTreeTextCtrl::OnKillFocus) -END_EVENT_TABLE() - -wxTreeTextCtrl::wxTreeTextCtrl( wxWindow *parent, const wxWindowID id, - bool *accept, wxString *res, wxTreeCtrl *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; - (*m_accept) = FALSE; - (*m_res) = ""; - m_startValue = value; -} - -void wxTreeTextCtrl::OnChar( wxKeyEvent &event ) -{ - if (event.m_keyCode == WXK_RETURN) - { - (*m_accept) = TRUE; - (*m_res) = GetValue(); - m_owner->SetFocus(); - return; - } - if (event.m_keyCode == WXK_ESCAPE) - { - (*m_accept) = FALSE; - (*m_res) = ""; - m_owner->SetFocus(); - return; - } - event.Skip(); -} - -void wxTreeTextCtrl::OnKillFocus( wxFocusEvent &WXUNUSED(event) ) -{ - if (wxPendingDelete.Member(this)) return; - - wxPendingDelete.Append(this); - - if ((*m_accept) && ((*m_res) != m_startValue)) - m_owner->OnRenameAccept(); -} - -#define PIXELS_PER_UNIT 10 -// ----------------------------------------------------------------------------- -// 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_width, &m_height ); - // TODO : Add the width of the image - // PB : We don't know which image is shown (image, selImage) - // We don't even know imageList from the treectrl this item belongs to !!! - // At this point m_width doesn't mean much, this can be remove ! -} - -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 ) -{ - m_text = text; -} - -void wxGenericTreeItem::Reset() -{ - m_text.Empty(); - m_image = - m_selImage = -1; - m_data = NULL; - m_x = m_y = - m_height = m_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, const wxTreeCtrl *theTree ) -{ - int bottomY=m_y+theTree->GetLineHeight(this); - if ( y < bottomY ) y = bottomY; - int width = m_x + m_width; - if ( x < width ) x = width; - - if (IsExpanded()) - { - size_t count = m_children.Count(); - for ( size_t n = 0; n < count; ++n ) - { - m_children[n]->GetSize( x, y, theTree ); - } - } -} - -wxGenericTreeItem *wxGenericTreeItem::HitTest( const wxPoint& point, - const wxTreeCtrl *theTree, - int &flags) -{ - if ((point.y > m_y) && (point.y < m_y + theTree->GetLineHeight(this))) - { - if (point.yGetLineHeight(this)/2) flags|=wxTREE_HITTEST_ONITEMUPPERPART; - else flags|=wxTREE_HITTEST_ONITEMLOWERPART; - - // 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())) - { - flags|=wxTREE_HITTEST_ONITEMBUTTON; - return this; - } - - if ((point.x >= m_x) && (point.x <= m_x+m_width)) - { - int image_w = -1; - int image_h; - - // assuming every image (normal and selected ) has the same size ! - if ((m_image!=-1) && theTree->m_imageListNormal) - theTree->m_imageListNormal->GetSize(m_image, image_w, image_h); - - if ((image_w != -1) && (point.x <= m_x + image_w + 1)) - flags|=wxTREE_HITTEST_ONITEMICON; - else - flags|=wxTREE_HITTEST_ONITEMLABEL; - - return this; - } - - if (point.x < m_x) flags|=wxTREE_HITTEST_ONITEMIDENT; - if (point.x > m_x+m_width) flags|=wxTREE_HITTEST_ONITEMRIGHT; - - 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, theTree, flags ); - if ( res != NULL ) - return res; - } - } - } - - flags|=wxTREE_HITTEST_NOWHERE; - 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_key_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; - - m_renameTimer = new wxTreeRenameTimer( this ); -} - -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 ); - -#if wxUSE_VALIDATORS - SetValidator( validator ); -#endif - - SetBackgroundColour( *wxWHITE ); -// m_dottedPen = wxPen( "grey", 0, wxDOT ); - m_dottedPen = wxPen( "grey", 0, 0 ); - - return TRUE; -} - -wxTreeCtrl::~wxTreeCtrl() -{ - wxDELETE( m_hilightBrush ); - - DeleteAllItems(); - - delete m_renameTimer; -} - -// ----------------------------------------------------------------------------- -// 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); - CalculateSize(pItem, dc); - RefreshLine(pItem); -} - -void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - wxClientDC dc(this); - wxGenericTreeItem *pItem = item.m_pItem; - pItem->SetImage(image); - CalculateSize(pItem, dc); - RefreshLine(pItem); -} - -void wxTreeCtrl::SetItemSelectedImage(const wxTreeItemId& item, int image) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - wxClientDC dc(this); - wxGenericTreeItem *pItem = item.m_pItem; - pItem->SetSelectedImage(image); - CalculateSize(pItem, dc); - 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") ); - - wxArrayGenericTreeItems& 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") ); - - wxArrayGenericTreeItems& 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(); - } - - wxArrayGenericTreeItems& 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(); - } - - wxArrayGenericTreeItems& 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; - } - - Refresh(); - AdjustMyScrollbars(); - - 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(); - - wxArrayGenericTreeItems& 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()) - { - wxArrayGenericTreeItems& 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); - - wxArrayGenericTreeItems& 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()) - { - wxArrayGenericTreeItems& 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; - - TagNextChildren(first,last,select); -} - -void wxTreeCtrl::SelectItem(const wxTreeItemId& itemId, - bool unselect_others, - bool extended_select) -{ - wxCHECK_RET( itemId.IsOk(), _T("invalid tree item") ); - - bool is_single=!(GetWindowStyleFlag() & wxTR_MULTIPLE); - wxGenericTreeItem *item = itemId.m_pItem; - - //wxCHECK_RET( ( (!unselect_others) && is_single), - // _T("this is a single selection tree") ); - - // to keep going anyhow !!! - if (is_single) - { - if (item->HasHilight()) return; // nothing to do - unselect_others=TRUE; - extended_select=FALSE; - } - else // check if selection will really change - if (unselect_others && item->HasHilight()) - { - // selection change if there is more than one item currently selected - wxArrayTreeItemIds selected_items; - if (GetSelections(selected_items)==1) return; - } - - wxTreeEvent event( wxEVT_COMMAND_TREE_SEL_CHANGING, GetId() ); - event.m_item = item; - event.m_itemOld = m_current; - event.SetEventObject( this ); - // TODO : Here we don't send any selection mode yet ! - - if ( GetEventHandler()->ProcessEvent( event ) && !event.IsAllowed() ) - return; - - // 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=m_key_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 = m_key_current = item; - m_current->SetHilight(select); - RefreshLine( m_current ); - } - - event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGED); - GetEventHandler()->ProcessEvent( event ); -} - -void wxTreeCtrl::FillArray(wxGenericTreeItem *item, - wxArrayTreeItemIds &array) const -{ - if ( item->HasHilight() ) - array.Add(wxTreeItemId(item)); - - if ( item->HasChildren() ) - { - wxArrayGenericTreeItems& children = item->GetChildren(); - size_t count = children.GetCount(); - for ( size_t n = 0; n < count; ++n ) - FillArray(children[n],array); - } -} - -size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds &array) const -{ - array.Empty(); - FillArray(GetRootItem().m_pItem, array); - - return array.Count(); -} - -void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item) -{ - if (!item.IsOk()) return; - - wxGenericTreeItem *gitem = item.m_pItem; - - // first expand all parent branches - wxGenericTreeItem *parent = gitem->GetParent(); - while ( parent ) - { - Expand(parent); - parent = parent->GetParent(); - } - - //if (parent) CalculatePositions(); - - ScrollTo(item); -} - -void wxTreeCtrl::ScrollTo(const wxTreeItemId &item) -{ - if (!item.IsOk()) return; - - // We have to call this here because the label in - // question might just have been added and no screen - // update taken place. - if (m_dirty) wxYield(); - - wxGenericTreeItem *gitem = item.m_pItem; - - // 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 *= PIXELS_PER_UNIT; - - int client_h = 0; - int client_w = 0; - GetClientSize( &client_w, &client_h ); - - if (item_y < start_y+3) - { - // going down - int x = 0; - int y = 0; - m_anchor->GetSize( x, y, this ); - y += PIXELS_PER_UNIT+2; // one more scrollbar unit + 2 pixels - int x_pos = GetScrollPos( wxHORIZONTAL ); - // Item should appear at top - SetScrollbars( PIXELS_PER_UNIT, PIXELS_PER_UNIT, x/PIXELS_PER_UNIT, y/PIXELS_PER_UNIT, x_pos, item_y/PIXELS_PER_UNIT ); - } - else if (item_y+GetLineHeight(gitem) > start_y+client_h) - { - // going up - int x = 0; - int y = 0; - m_anchor->GetSize( x, y, this ); - y += PIXELS_PER_UNIT+2; // one more scrollbar unit + 2 pixels - item_y += PIXELS_PER_UNIT+2; - int x_pos = GetScrollPos( wxHORIZONTAL ); - // Item should appear at bottom - SetScrollbars( PIXELS_PER_UNIT, PIXELS_PER_UNIT, x/PIXELS_PER_UNIT, y/PIXELS_PER_UNIT, x_pos, (item_y+GetLineHeight(gitem)-client_h)/PIXELS_PER_UNIT ); - } -} - -// 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") ); - - wxArrayGenericTreeItems& 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. - // May be toggle off. Then wxTreeCtrl will spread when - // necessary (which might look ugly). -#if 1 - wxPaintDC dc(this); - 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); - if(height > m_lineHeight) m_lineHeight = height; - } - - if (m_lineHeight<40) m_lineHeight+=4; // at least 4 pixels (odd such that a line can be drawn in between) - else m_lineHeight+=m_lineHeight/10; // otherwise 10% extra spacing - -#endif -} - -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, this ); - //y += GetLineHeight(m_anchor); - y += PIXELS_PER_UNIT+2; // one more scrollbar unit + 2 pixels - int x_pos = GetScrollPos( wxHORIZONTAL ); - int y_pos = GetScrollPos( wxVERTICAL ); - SetScrollbars( PIXELS_PER_UNIT, PIXELS_PER_UNIT, x/PIXELS_PER_UNIT, y/PIXELS_PER_UNIT, x_pos, y_pos ); - } - else - { - SetScrollbars( 0, 0, 0, 0 ); - } -} - -int wxTreeCtrl::GetLineHeight(wxGenericTreeItem *item) const -{ - if (GetWindowStyleFlag() & wxTR_HAS_VARIABLE_ROW_HEIGHT) - return item->GetHeight(); - else - return m_lineHeight; -} - -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 = GetLineHeight(item); - - dc.DrawRectangle( item->GetX()-2, item->GetY(), item->GetWidth()+2, 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); - } -} - -// Now y stands for the top of the item, whereas it used to stand for middle ! -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 ); - - int oldY = y; - y+=GetLineHeight(item)/2; - - item->SetCross( horizX+m_indent, y ); - - int exposed_x = dc.LogicalToDeviceX( 0 ); - int exposed_y = dc.LogicalToDeviceY( item->GetY() ); - - if (IsExposed( exposed_x, exposed_y, 10000, GetLineHeight(item) )) // 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 ); - - dc.SetPen( m_dottedPen ); - } - - 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( m_dottedPen ); - dc.SetTextForeground( *wxBLACK ); - dc.SetBrush( *wxWHITE_BRUSH ); - } - else - { - dc.SetBrush( *wxWHITE_BRUSH ); - dc.SetPen( *wxTRANSPARENT_PEN ); - - PaintItem(item, dc); - - dc.SetPen( m_dottedPen ); - } - } - - y = oldY+GetLineHeight(item); - - if (item->IsExpanded()) - { - oldY+=GetLineHeight(item)/2; - int semiOldY=y; // (=y) for stupid compilator - - wxArrayGenericTreeItems& children = item->GetChildren(); - size_t n, count = children.Count(); - for ( n = 0; n < count; ++n ) - { - 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) - { - semiOldY+=GetLineHeight(children[--n])/2; - dc.DrawLine( horizX+m_indent, oldY+5, horizX+m_indent, semiOldY ); - } - } -} - -void wxTreeCtrl::DrawBorder(wxTreeItemId &item) -{ - if (!item) return; - - wxGenericTreeItem *i=item.m_pItem; - - wxPaintDC dc(this); - PrepareDC( dc ); - dc.SetLogicalFunction(wxINVERT); - - int w,h,x; - ViewStart(&x,&h); // we only need x - GetClientSize(&w,&h); // we only need w - - h=GetLineHeight(i)+1; - // 2 white column at border - dc.DrawRectangle( PIXELS_PER_UNIT*x+2, i->GetY()-1, w-6, h); -} - -void wxTreeCtrl::DrawLine(wxTreeItemId &item, bool below) -{ - if (!item) return; - - wxGenericTreeItem *i=item.m_pItem; - - wxPaintDC dc(this); - PrepareDC( dc ); - dc.SetLogicalFunction(wxINVERT); - - int w,h,y; - GetSize(&w,&h); - - if (below) y=i->GetY()+GetLineHeight(i)-1; - else y=i->GetY(); - - dc.DrawLine( 0, y, w, y); -} - -// ----------------------------------------------------------------------------- -// 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 = 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) || (m_key_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_key_current ); - if (!prev) - { - prev = GetParent( m_key_current ); - if (prev) - { - long cockie = 0; - wxTreeItemId current = m_key_current; - if (current == GetFirstChild( prev, cockie )) - { - // otherwise we return to where we came from - SelectItem( prev, unselect_others, extended_select ); - m_key_current=prev.m_pItem; - EnsureVisible( prev ); - break; - } - } - } - if (prev) - { - while ( IsExpanded(prev) && HasChildren(prev) ) - { - wxTreeItemId child = GetLastChild(prev); - if ( child ) - { - prev = child; - } - } - - SelectItem( prev, unselect_others, extended_select ); - m_key_current=prev.m_pItem; - 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_key_current) && HasChildren(m_key_current)) - { - long cookie = 0; - wxTreeItemId child = GetFirstChild( m_key_current, cookie ); - SelectItem( child, unselect_others, extended_select ); - m_key_current=child.m_pItem; - EnsureVisible( child ); - } - else - { - wxTreeItemId next = GetNextSibling( m_key_current ); -// if (next == 0) - if (!next) - { - wxTreeItemId current = m_key_current; - while (current && !next) - { - current = GetParent( current ); - if (current) next = GetNextSibling( current ); - } - } -// if (next != 0) - if (next) - { - SelectItem( next, unselect_others, extended_select ); - m_key_current=next.m_pItem; - 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& flags) -{ - // We have to call this here because the label in - // question might just have been added and no screen - // update taken place. - if (m_dirty) wxYield(); - - wxClientDC dc(this); - PrepareDC(dc); - long x = dc.DeviceToLogicalX( (long)point.x ); - long y = dc.DeviceToLogicalY( (long)point.y ); - int w, h; - GetSize(&w, &h); - - flags=0; - if (point.x<0) flags|=wxTREE_HITTEST_TOLEFT; - if (point.x>w) flags|=wxTREE_HITTEST_TORIGHT; - if (point.y<0) flags|=wxTREE_HITTEST_ABOVE; - if (point.y>h) flags|=wxTREE_HITTEST_BELOW; - - return m_anchor->HitTest( wxPoint(x, y), this, flags); -} - -/* **** */ - -void wxTreeCtrl::Edit( const wxTreeItemId& item ) -{ - if (!item.IsOk()) return; - - m_currentEdit = item.m_pItem; - - wxTreeEvent te( wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, GetId() ); - te.m_item = m_currentEdit; - te.SetEventObject( this ); - GetEventHandler()->ProcessEvent( te ); - - if (!te.IsAllowed()) return; - - // We have to call this here because the label in - // question might just have been added and no screen - // update taken place. - if (m_dirty) wxYield(); - - wxString s = m_currentEdit->GetText(); - int x = m_currentEdit->GetX(); - int y = m_currentEdit->GetY(); - int w = m_currentEdit->GetWidth(); - int h = m_currentEdit->GetHeight(); - - int image_h = 0; - int image_w = 0; - if ((m_currentEdit->IsExpanded()) && (m_currentEdit->GetSelectedImage() != -1)) - { - m_imageListNormal->GetSize( m_currentEdit->GetSelectedImage(), image_w, image_h ); - image_w += 4; - } - else if (m_currentEdit->GetImage() != -1) - { - m_imageListNormal->GetSize( m_currentEdit->GetImage(), image_w, image_h ); - image_w += 4; - } - x += image_w; - w -= image_w + 4; // I don't know why +4 is needed - - wxClientDC dc(this); - PrepareDC( dc ); - x = dc.LogicalToDeviceX( x ); - y = dc.LogicalToDeviceY( y ); - - wxTreeTextCtrl *text = new wxTreeTextCtrl( - this, -1, &m_renameAccept, &m_renameRes, this, s, wxPoint(x-4,y-4), wxSize(w+11,h+8) ); - text->SetFocus(); -} - -void wxTreeCtrl::OnRenameTimer() -{ - Edit( m_current ); -} - -void wxTreeCtrl::OnRenameAccept() -{ - wxTreeEvent le( wxEVT_COMMAND_TREE_END_LABEL_EDIT, GetId() ); - le.m_item = m_currentEdit; - le.SetEventObject( this ); - le.m_label = m_renameRes; - GetEventHandler()->ProcessEvent( le ); - - if (!le.IsAllowed()) return; - - SetItemText( m_currentEdit, m_renameRes ); -} - -void wxTreeCtrl::OnMouse( wxMouseEvent &event ) -{ - if ( !(event.LeftUp() || 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() ); - - int flags=0; - wxGenericTreeItem *item = m_anchor->HitTest( wxPoint(x,y), this, flags); - bool onButton = flags & wxTREE_HITTEST_ONITEMBUTTON; - - if (event.Dragging()) - { - if (m_dragCount == 0) - m_dragStart = wxPoint(x,y); - - m_dragCount++; - - if (m_dragCount != 3) return; - - int command = wxEVT_COMMAND_TREE_BEGIN_DRAG; - if (event.RightIsDown()) command = wxEVT_COMMAND_TREE_BEGIN_RDRAG; - - wxTreeEvent nevent( command, GetId() ); - nevent.m_item = m_current; - nevent.SetEventObject(this); - GetEventHandler()->ProcessEvent(nevent); - return; - } - else - { - m_dragCount = 0; - } - - if (item == NULL) return; /* we hit the blank area */ - - if (event.LeftUp() && (item == m_current) && - (flags & wxTREE_HITTEST_ONITEMLABEL) && - HasFlag(wxTR_EDIT_LABELS) ) - { - m_renameTimer->Start( 100, TRUE ); - return; - } - - bool is_multiple=(GetWindowStyleFlag() & wxTR_MULTIPLE); - bool extended_select=(event.ShiftDown() && is_multiple); - bool unselect_others=!(extended_select || (event.ControlDown() && is_multiple)); - - if (onButton) - { - Toggle( item ); - if (is_multiple) - return; - } - - 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 ); - } -} - -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(); - Refresh(); - AdjustMyScrollbars(); -} - -void wxTreeCtrl::CalculateSize( wxGenericTreeItem *item, wxDC &dc ) -{ - long text_w = 0; - long text_h = 0; - - 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!")); - } - } - - dc.GetTextExtent( item->GetText(), &text_w, &text_h ); - text_h+=2; - - // restore normal font for bold items - if (fontOld.Ok()) - dc.SetFont( fontOld); - - 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 (total_h<40) total_h+=4; // at least 4 pixels - else total_h+=total_h/10; // otherwise 10% extra spacing - - item->SetHeight(total_h); - if (total_h>m_lineHeight) m_lineHeight=total_h; - - item->SetWidth(image_w+text_w+2); -} - -// ----------------------------------------------------------------------------- -// for developper : y is now the top of the level -// not the middle of it ! -void wxTreeCtrl::CalculateLevel( wxGenericTreeItem *item, wxDC &dc, int level, int &y ) -{ - int horizX = level*m_indent; - - CalculateSize( item, dc ); - - // set its position - item->SetX( horizX+m_indent+m_spacing ); - item->SetY( y ); - y+=GetLineHeight(item); - - if ( !item->IsExpanded() ) - { - // we dont need to calculate collapsed branches - return; - } - - wxArrayGenericTreeItems& children = item->GetChildren(); - size_t n, count = children.Count(); - for (n = 0; n < count; ++n ) - 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 = 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 ); - - int cw = 0; - int ch = 0; - GetClientSize( &cw, &ch ); - - wxRect rect; - rect.x = dc.LogicalToDeviceX( 0 ); - rect.y = dc.LogicalToDeviceY( item->GetY() ); - rect.width = cw; - rect.height = GetLineHeight(item); //dc.GetCharHeight() + 6; - - Refresh( TRUE, &rect ); -} - diff --git a/src/generic/wizard.cpp b/src/generic/wizard.cpp deleted file mode 100644 index 14ecb1d6d6..0000000000 --- a/src/generic/wizard.cpp +++ /dev/null @@ -1,356 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: generic/wizard.cpp -// Purpose: generic implementation of wxWizard class -// Author: Vadim Zeitlin -// Modified by: -// Created: 15.08.99 -// RCS-ID: $Id$ -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation ".h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/dynarray.h" - #include "wx/intl.h" - #include "wx/statbmp.h" -#endif //WX_PRECOMP - -#include "wx/statline.h" - -#include "wx/wizard.h" - -// ---------------------------------------------------------------------------- -// simple types -// ---------------------------------------------------------------------------- - -WX_DEFINE_ARRAY(wxPanel *, wxArrayPages); - -// ---------------------------------------------------------------------------- -// wxWizardGeneric - generic implementation of wxWizard -// ---------------------------------------------------------------------------- - -class wxWizardGeneric : public wxWizard -{ -public: - // ctor - wxWizardGeneric(wxWindow *parent, - int id, - const wxString& title, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size); - - // implement base class pure virtuals - virtual void AddPage(wxPanel *page); - virtual void InsertPage(int nPage, wxPanel *page); - virtual bool RunWizard(); - virtual wxPanel *GetCurrentPage() const; - - // implementation only from now on - // ------------------------------- - - // is the wizard running? - bool IsRunning() const { return m_page != -1; } - - // show the given page calling TransferDataFromWindow - if it returns - // FALSE, the old page is not hidden and the function returns FALSE - bool ShowPage(size_t page); - - // get the current page assuming the wizard is running - wxPanel *DoGetCurrentPage() const - { - wxASSERT_MSG( IsRunning(), _T("no current page!") ); - - return m_pages[(size_t)m_page]; - } - - // place the given page correctly and hide it - void DoAddPage(wxPanel *page); - -private: - // event handlers - void OnCancel(wxCommandEvent& event); - void OnBackOrNext(wxCommandEvent& event); - - // wizard dimensions - int m_x, m_y; // the origin for the pages - int m_width, // the size of the page itself - m_height; // (total width is m_width + m_x) - - // wizard state - int m_page; // the current page or -1 - wxArrayPages m_pages; // the array with all wizards pages - - // wizard controls - wxButton *m_btnPrev, // the "" or "Finish" button - - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// event tables and such -// ---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxWizardGeneric, wxDialog) - EVT_BUTTON(wxID_CANCEL, OnCancel) - EVT_BUTTON(-1, OnBackOrNext) -END_EVENT_TABLE() - -IMPLEMENT_ABSTRACT_CLASS(wxWizard, wxDialog) -IMPLEMENT_DYNAMIC_CLASS(wxWizardEvent, wxNotifyEvent) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// generic wxWizard implementation -// ---------------------------------------------------------------------------- - -wxWizardGeneric::wxWizardGeneric(wxWindow *parent, - int id, - const wxString& title, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size) -{ - // constants defining the dialog layout - // ------------------------------------ - - // these constants define the position of the upper left corner of the - // bitmap or the page in the wizard - static const int X_MARGIN = 10; - static const int Y_MARGIN = 10; - - // margin between the bitmap and the panel - static const int BITMAP_X_MARGIN = 15; - - // margin between the bitmap and the static line - static const int BITMAP_Y_MARGIN = 15; - - // margin between the static line and the buttons - static const int SEPARATOR_LINE_MARGIN = 15; - - // margin between "Next >" and "Cancel" buttons - static const int BUTTON_MARGIN = 10; - - // default width and height of the page - static const int DEFAULT_PAGE_WIDTH = 270; - static const int DEFAULT_PAGE_HEIGHT = 290; - - // init members - // ------------ - - m_page = -1; - - // create controls - // --------------- - - wxSize sizeBtn = wxButton::GetDefaultSize(); - - (void)wxDialog::Create(parent, id, title, pos, size); - - // the global dialog layout is: a row of buttons at the bottom (aligned to - // the right), the static line above them, the bitmap (if any) on the left - // of the upper part of the dialog and the panel in the remaining space - m_x = X_MARGIN; - m_y = Y_MARGIN; - if ( bitmap.Ok() ) - { - (void)new wxStaticBitmap(this, -1, bitmap, wxPoint(m_x, m_y)); - - m_x += bitmap.GetWidth() + BITMAP_X_MARGIN; - m_height = bitmap.GetHeight(); - } - else - { - m_height = DEFAULT_PAGE_HEIGHT; - } - - m_width = DEFAULT_PAGE_WIDTH; - - int x = X_MARGIN; - int y = m_y + m_height + BITMAP_Y_MARGIN; - (void)new wxStaticLine(this, -1, wxPoint(x, y), - wxSize(m_x + m_width - x, 2)); - - x = m_x + m_width - 3*sizeBtn.x - BUTTON_MARGIN; - y += SEPARATOR_LINE_MARGIN; - m_btnPrev = new wxButton(this, -1, _("< &Back"), wxPoint(x, y), sizeBtn); - - x += sizeBtn.x; - m_btnNext = new wxButton(this, -1, _("&Next >"), wxPoint(x, y), sizeBtn); - - x += sizeBtn.x + BUTTON_MARGIN; - (void)new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(x, y), sizeBtn); - - // position and size the dialog - // ---------------------------- - - if ( size == wxDefaultSize ) - { - SetClientSize(m_x + m_width + X_MARGIN, - m_y + m_height + BITMAP_Y_MARGIN + - SEPARATOR_LINE_MARGIN + sizeBtn.y + Y_MARGIN); - } - - if ( pos == wxDefaultPosition ) - { - Centre(); - } -} - -bool wxWizardGeneric::ShowPage(size_t page) -{ - wxCHECK_MSG( page < m_pages.GetCount(), FALSE, - _T("invalid wizard page index") ); - - wxASSERT_MSG( page != (size_t)m_page, _T("this is useless") ); - - size_t last = m_pages.GetCount() - 1; - bool mustChangeNextBtnLabel = (size_t)m_page == last || page == last; - - if ( m_page != -1 ) - { - wxPanel *panel = DoGetCurrentPage(); - if ( !panel->TransferDataFromWindow() ) - return FALSE; - - panel->Hide(); - } - - m_page = page; - DoGetCurrentPage()->Show(); - - // update the buttons state - m_btnPrev->Enable(m_page != 0); - if ( mustChangeNextBtnLabel ) - { - m_btnNext->SetLabel((size_t)m_page == last ? _("&Finish") - : _("&Next >")); - } - - return TRUE; -} - -void wxWizardGeneric::DoAddPage(wxPanel *page) -{ - page->Hide(); - page->SetSize(m_x, m_y, m_width, m_height); -} - -void wxWizardGeneric::AddPage(wxPanel *page) -{ - m_pages.Add(page); - - DoAddPage(page); -} - -void wxWizardGeneric::InsertPage(int nPage, wxPanel *page) -{ - m_pages.Insert(page, nPage); - if ( nPage < m_page ) - { - // the indices of all pages after the inserted one are shifted by 1 - m_page++; - } - - DoAddPage(page); -} - -bool wxWizardGeneric::RunWizard() -{ - wxCHECK_MSG( m_pages.GetCount() != 0, FALSE, _T("can't run empty wizard") ); - - // can't return FALSE here because there is no old page - (void)ShowPage(0u); - - return ShowModal() == wxID_OK; -} - -wxPanel *wxWizardGeneric::GetCurrentPage() const -{ - return IsRunning() ? DoGetCurrentPage() : (wxPanel *)NULL; -} - -void wxWizardGeneric::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ - wxWizardEvent event(wxEVT_WIZARD_CANCEL, GetId()); - if ( !GetEventHandler()->ProcessEvent(event) || event.IsAllowed() ) - { - // no objections - close the dialog - EndModal(wxID_CANCEL); - } - //else: request to Cancel ignored -} - -void wxWizardGeneric::OnBackOrNext(wxCommandEvent& event) -{ - wxASSERT_MSG( (event.GetEventObject() == m_btnNext) || - (event.GetEventObject() == m_btnPrev), - _T("unknown button") ); - - int delta = event.GetEventObject() == m_btnNext ? 1 : -1; - int page = m_page + delta; - - wxASSERT_MSG( page >= 0, _T("'Back' button should have been disabled!") ); - - if ( (size_t)page == m_pages.GetCount() ) - { - // check that we have valid data in the last page too - if ( m_pages.Last()->TransferDataFromWindow() ) - { - // that's all, folks! - EndModal(wxID_OK); - } - } - else - { - // just pass to the next page (or may be not - but we don't care here) - (void)ShowPage(page); - } -} - -// ---------------------------------------------------------------------------- -// our public interface -// ---------------------------------------------------------------------------- - -/* static */ wxWizard *wxWizard::Create(wxWindow *parent, - int id, - const wxString& title, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size) -{ - return new wxWizardGeneric(parent, id, title, bitmap, pos, size); -} - -// ---------------------------------------------------------------------------- -// wxWizardEvent -// ---------------------------------------------------------------------------- - -wxWizardEvent::wxWizardEvent(wxEventType type, int id) - : wxNotifyEvent(type, id) -{ - m_page = m_pageOld = -1; -} diff --git a/src/gtk/.cvsignore b/src/gtk/.cvsignore deleted file mode 100644 index 05bd4624c9..0000000000 --- a/src/gtk/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile.in -*.lo -*.la diff --git a/src/gtk/accel.cpp b/src/gtk/accel.cpp deleted file mode 100644 index 3d161f1c31..0000000000 --- a/src/gtk/accel.cpp +++ /dev/null @@ -1,92 +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" - -#if wxUSE_ACCEL - -#include - -//----------------------------------------------------------------------------- -// 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; -} - -#endif diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp deleted file mode 100644 index 2bce90acab..0000000000 --- a/src/gtk/app.cpp +++ /dev/null @@ -1,803 +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 "appbase.h" - #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" - -#if wxUSE_THREADS -#include "wx/thread.h" -#endif - -#include "unistd.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -wxApp *wxTheApp = (wxApp *) NULL; -wxAppInitializerFunction wxAppBase::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() -{ - bool has_idle = (wxTheApp->m_idleTag != 0); - - if (has_idle) - { - /* 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(); - - /* 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 (has_idle) - { - /* re-add idle handler */ - wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - } - - 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 - -/* forward declaration */ -static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ); - -void wxapp_install_thread_wakeup() -{ - if (wxTheApp->m_wakeUpTimerTag) return; - - wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 100, wxapp_wakeup_timerout_callback, (gpointer) NULL ); -} - -void wxapp_uninstall_thread_wakeup() -{ - if (!wxTheApp->m_wakeUpTimerTag) return; - - gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag ); - wxTheApp->m_wakeUpTimerTag = 0; -} - -static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ) -{ - wxapp_uninstall_thread_wakeup(); - -#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 - - wxapp_install_thread_wakeup(); - - 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 = 0; - wxapp_install_thread_wakeup(); -#endif - - m_colorCube = (unsigned char*) NULL; -} - -wxApp::~wxApp() -{ - if (m_idleTag) gtk_idle_remove( m_idleTag ); - -#if wxUSE_THREADS - wxapp_uninstall_thread_wakeup(); -#endif - - if (m_colorCube) free(m_colorCube); -} - -bool wxApp::OnInitGui() -{ - GdkVisual *visual = gdk_visual_get_system(); - - /* on some machines, the default visual is just 256 colours, so - we make sure we get the best. this can sometimes be wasteful, - of course, but what do these guys pay $30.000 for? */ -/* - if (gdk_visual_get_best() != gdk_visual_get_system()) - { - GdkVisual* vis = gdk_visual_get_best(); - gtk_widget_set_default_visual( vis ); - - GdkColormap *colormap = gdk_colormap_new( vis, FALSE ); - gtk_widget_set_default_colormap( colormap ); - - visual = vis; - } -*/ - - /* Nothing to do for 15, 16, 24, 32 bit displays */ - 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 - { -#if (GTK_MINOR_VERSION > 0) - /* 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; -#else - wxFAIL_MSG( _T("Unsupported graphics hardware") ); -#endif - } - 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 s_inOnIdle = FALSE; - - /* Avoid recursion (via ProcessEvent default case) */ - if (s_inOnIdle) - return; - - s_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); - - s_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->ProcessEvent(event); - - win->OnInternalIdle(); - - 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(); - } -} - -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 - - 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(); - - 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; -} - -#endif // wxUSE_LOG - -//----------------------------------------------------------------------------- -// wxEntry -//----------------------------------------------------------------------------- - -int wxEntry( int argc, char *argv[] ) -{ - gtk_set_locale(); - -#if wxUSE_WCHAR_T - if (!wxOKlibc()) wxConvCurrent = &wxConvLocal; -#else - if (!wxOKlibc()) wxConvCurrent = (wxMBConv*) NULL; -#endif - - 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; -#if wxUSE_UNICODE - wxTheApp->argv = new wxChar*[argc+1]; - int mb_argc = 0; - while (mb_argc < argc) { - wxTheApp->argv[mb_argc] = wxStrdup(wxConvLibc.cMB2WX(argv[mb_argc])); - mb_argc++; - } - wxTheApp->argv[mb_argc] = (wxChar *)NULL; -#else - wxTheApp->argv = argv; -#endif - - 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; -} - -#include "wx/gtk/info.xpm" -#include "wx/gtk/error.xpm" -#include "wx/gtk/question.xpm" -#include "wx/gtk/warning.xpm" - -wxIcon -wxApp::GetStdIcon(int which) const -{ - switch(which) - { - case wxICON_INFORMATION: - return wxIcon(info_xpm); - - case wxICON_QUESTION: - return wxIcon(question_xpm); - - case wxICON_EXCLAMATION: - return wxIcon(warning_xpm); - - default: - wxFAIL_MSG(_T("requested non existent standard icon")); - // still fall through - - case wxICON_HAND: - return wxIcon(error_xpm); - } -} 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 832600e1a2..0000000000 --- a/src/gtk/bitmap.cpp +++ /dev/null @@ -1,431 +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& bitmap, const wxColour& colour ) -{ - Create( bitmap, colour ); -} - -wxMask::wxMask( const wxBitmap& bitmap, int paletteIndex ) -{ - Create( bitmap, paletteIndex ); -} - -wxMask::wxMask( const wxBitmap& bitmap ) -{ - Create( bitmap ); -} - -wxMask::~wxMask() -{ - if (m_bitmap) gdk_bitmap_unref( m_bitmap ); -} - -bool wxMask::Create( const wxBitmap& bitmap, const wxColour& colour ) -{ - if (m_bitmap) - { - gdk_bitmap_unref( m_bitmap ); - m_bitmap = (GdkBitmap*) NULL; - } - - wxFAIL_MSG( _T("TODO") ); - - return FALSE; -} - -bool wxMask::Create( const wxBitmap& WXUNUSED(bitmap), int WXUNUSED(paletteIndex) ) -{ - if (m_bitmap) - { - gdk_bitmap_unref( m_bitmap ); - m_bitmap = (GdkBitmap*) NULL; - } - - wxFAIL_MSG( _T("not implemented") ); - - return FALSE; -} - -bool wxMask::Create( const wxBitmap& bitmap ) -{ - if (m_bitmap) - { - gdk_bitmap_unref( m_bitmap ); - m_bitmap = (GdkBitmap*) NULL; - } - - if (!bitmap.Ok()) return FALSE; - - wxCHECK_MSG( bitmap.GetBitmap(), FALSE, _T("Cannot create mask from colour bitmap") ); - - m_bitmap = gdk_pixmap_new( (GdkWindow*) &gdk_root_parent, bitmap.GetWidth(), bitmap.GetHeight(), 1 ); - - if (!m_bitmap) return FALSE; - - GdkGC *gc = gdk_gc_new( m_bitmap ); - - gdk_draw_bitmap( m_bitmap, gc, bitmap.GetBitmap(), 0, 0, 0, 0, bitmap.GetWidth(), bitmap.GetHeight() ); - - gdk_gc_unref( gc ); - - return TRUE; -} - -GdkBitmap *wxMask::GetBitmap() const -{ - return m_bitmap; -} - -//----------------------------------------------------------------------------- -// wxBitmap -//----------------------------------------------------------------------------- - -class wxBitmapRefData: public wxObjectRefData -{ -public: - wxBitmapRefData(); - ~wxBitmapRefData(); - - 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() const -{ - return (m_refData != NULL); -} - -int wxBitmap::GetHeight() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_height; -} - -int wxBitmap::GetWidth() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_width; -} - -int wxBitmap::GetDepth() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_bpp; -} - -wxMask *wxBitmap::GetMask() 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() 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() const -{ - wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_pixmap; -} - -GdkBitmap *wxBitmap::GetBitmap() 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 b9226adabf..0000000000 --- a/src/gtk/bmpbuttn.cpp +++ /dev/null @@ -1,318 +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" - -#if wxUSE_BMPBUTTON - -#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,wxButton) - -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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxBitmapButton creation failed") ); - return FALSE; - } - - 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()) - { - wxSize newSize = size; - - 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(); -} - -#endif \ No newline at end of file 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 2bb626f031..0000000000 --- a/src/gtk/button.cpp +++ /dev/null @@ -1,167 +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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxButton creation failed") ); - return FALSE; - } - - - 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); - - int x = 0; int y = 0; - wxFont new_font( parent->GetFont() ); - GetTextExtent( m_label, &x, &y, (int*)NULL, (int*)NULL, &new_font ); - - wxSize newSize = size; - if (newSize.x == -1) - { - newSize.x = 12+x; - if (newSize.x < 80) newSize.x = 80; - } - if (newSize.y == -1) - { - newSize.y = 11+y; - if (newSize.x < 26) newSize.x = 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 ); -} - -/* static */ -wxSize wxButton::GetDefaultSize() -{ - return wxSize(80,26); -} - -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 af1d2592c3..0000000000 --- a/src/gtk/checkbox.cpp +++ /dev/null @@ -1,189 +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" - -#if wxUSE_CHECKBOX - -#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 (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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxCheckBox creation failed") ); - return FALSE; - } - - 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); - - 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; - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widgetCheckbox), - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); - - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widgetCheckbox), state ); - - gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox), - "clicked", - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); -} - -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 ); -} - -#endif diff --git a/src/gtk/checklst.cpp b/src/gtk/checklst.cpp deleted file mode 100644 index 6c08581ae6..0000000000 --- a/src/gtk/checklst.cpp +++ /dev/null @@ -1,97 +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" - -#if wxUSE_CHECKLISTBOX - -#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 = wxString(label->label,*wxConv_current); - - return (str[1] == _T('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 = wxString(label->label,*wxConvCurrent); - - 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; -} - -#endif diff --git a/src/gtk/choice.cpp b/src/gtk/choice.cpp deleted file mode 100644 index c78d0a2e8f..0000000000 --- a/src/gtk/choice.cpp +++ /dev/null @@ -1,423 +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" - -#if wxUSE_CHOICE - -#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 - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxChoice creation failed") ); - return FALSE; - } - - 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 == wxString(label->label,*wxConvCurrent)) - 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++; - } - - 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 wxString(label->label,*wxConvCurrent); - } - child = child->next; - count++; - } - - wxFAIL_MSG( _T("wxChoice: invalid index in GetString()") ); - - return _T(""); -} - -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 wxString(label->label,*wxConvCurrent); -} - -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 ); -} - -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::DisableEvents() -{ -/* - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - GList *child = menu_shell->children; - while (child) - { - gtk_signal_disconnect_by_func( GTK_OBJECT( child->data ), - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - - child = child->next; - } -*/ -} - -void wxChoice::EnableEvents() -{ -/* - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - GList *child = menu_shell->children; - while (child) - { - gtk_signal_connect( GTK_OBJECT( child->data ), "activate", - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - - child = child->next; - } -*/ -} - -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; - } -} - -#endif diff --git a/src/gtk/clipbrd.cpp b/src/gtk/clipbrd.cpp deleted file mode 100644 index 827e86ea22..0000000000 --- a/src/gtk/clipbrd.cpp +++ /dev/null @@ -1,663 +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" - -//----------------------------------------------------------------------------- -// thread system -//----------------------------------------------------------------------------- - -#if wxUSE_THREADS -extern void wxapp_install_thread_wakeup(); -extern void wxapp_uninstall_thread_wakeup(); -#endif - -//----------------------------------------------------------------------------- -// 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) - { -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* 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; - } - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - } - - 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 - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* Tell the world we offer clipboard data */ - if (!gtk_selection_owner_set( m_clipboardWidget, - g_clipboardAtom, - GDK_CURRENT_TIME )) - { -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - return FALSE; - } - m_ownsClipboard = TRUE; - - if (!gtk_selection_owner_set( m_clipboardWidget, - GDK_SELECTION_PRIMARY, - GDK_CURRENT_TIME )) - { -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - return FALSE; - } - m_ownsPrimarySelection = TRUE; - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - - 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 da4657688f..0000000000 --- a/src/gtk/combobox.cpp +++ /dev/null @@ -1,663 +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" - -#if wxUSE_COMBOBOX - -#include "wx/settings.h" -#include "wx/intl.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; - -//----------------------------------------------------------------------------- -// "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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxComboBox creation failed") ); - return FALSE; - } - - 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_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - 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; - } - } - - 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") ); - - DisableEvents(); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - gtk_list_select_item( GTK_LIST(list), n ); - - EnableEvents(); -} - -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::DisableEvents() -{ - GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list ); - GList *child = list->children; - while (child) - { - gtk_signal_disconnect_by_func( GTK_OBJECT(child->data), - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - child = child->next; - } -} - -void wxComboBox::EnableEvents() -{ - GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list ); - GList *child = list->children; - while (child) - { - gtk_signal_connect( GTK_OBJECT(child->data), "select", - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - child = child->next; - } -} - -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 ) ); -} - -#endif diff --git a/src/gtk/control.cpp b/src/gtk/control.cpp deleted file mode 100644 index 578b12cb9f..0000000000 --- a/src/gtk/control.cpp +++ /dev/null @@ -1,60 +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() -{ - 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::SetLabel( const wxString &label ) -{ - m_label.Empty(); - 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 7a47bd6bd9..0000000000 --- a/src/gtk/cursor.cpp +++ /dev/null @@ -1,191 +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 "wx/utils.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_DEFAULT: gdk_cur = GDK_LEFT_PTR; break; - 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; - - wxYield(); -} - -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) ); - - wxYield(); -} - -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 d98edaf9ec..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 = *wxWHITE_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 81bd578de4..0000000000 --- a/src/gtk/dcclient.cpp +++ /dev/null @@ -1,1513 +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; - m_font = window->GetFont(); - - 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) && m_window) - 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(); - if (width <= 0) - { - // CMB: if width is non-zero scale it with the dc - 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; - } - - const static char dotted[] = {1, 1}; - const static char short_dashed[] = {2, 2}; - const static char long_dashed[] = {2, 4}; - const static char dotted_dashed[] = {3, 3, 1, 3}; - - // 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; - - GdkLineStyle lineStyle = GDK_LINE_SOLID; - switch (m_pen.GetStyle()) - { - case wxUSER_DASH: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = m_pen.GetDashCount(); - req_dash = m_pen.GetDash(); - break; - } - case wxDOT: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 2; - req_dash = dotted; - break; - } - case wxLONG_DASH: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 2; - req_dash = long_dashed; - break; - } - case wxSHORT_DASH: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 2; - req_dash = short_dashed; - break; - } - case wxDOT_DASH: - { -// lineStyle = GDK_LINE_DOUBLE_DASH; - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 4; - req_dash = dotted_dashed; - break; - } - - case wxTRANSPARENT: - case wxSTIPPLE: - case wxSOLID: - default: - { - lineStyle = GDK_LINE_SOLID; - req_dash = (wxDash*)NULL; - req_nb_dash = 0; - break; - } - } - -#if (GTK_MINOR_VERSION > 0) - if (req_dash && req_nb_dash) - { - char *real_req_dash = new char[req_nb_dash]; - if (real_req_dash) - { - for (int i = 0; i < req_nb_dash; i++) - real_req_dash[i] = req_dash[i] * width; - gdk_gc_set_dashes( m_penGC, 0, real_req_dash, req_nb_dash ); - delete[] real_req_dash; - } - else - { - // No Memory. We use non-scaled dash pattern... - gdk_gc_set_dashes( m_penGC, 0, (char*)req_dash, req_nb_dash ); - } - } -#endif - - 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() ); - - gdk_gc_set_fill( m_brushGC, GDK_SOLID ); - - if ((m_brush.GetStyle() == wxSTIPPLE) && (m_brush.GetStipple()->Ok())) - { - if (m_brush.GetStipple()->GetPixmap()) - { - gdk_gc_set_fill( m_brushGC, GDK_TILED ); - gdk_gc_set_tile( m_brushGC, m_brush.GetStipple()->GetPixmap() ); - } - else - { - gdk_gc_set_fill( m_brushGC, GDK_STIPPLED ); - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetBitmap() ); - } - } - - if (IS_HATCH(m_brush.GetStyle())) - { - gdk_gc_set_fill( m_brushGC, GDK_STIPPLED ); - 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() ); - - gdk_gc_set_fill( m_bgGC, GDK_SOLID ); - - if ((m_backgroundBrush.GetStyle() == wxSTIPPLE) && (m_backgroundBrush.GetStipple()->Ok())) - { - if (m_backgroundBrush.GetStipple()->GetPixmap()) - { - gdk_gc_set_fill( m_bgGC, GDK_TILED ); - gdk_gc_set_tile( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() ); - } - else - { - gdk_gc_set_fill( m_bgGC, GDK_STIPPLED ); - gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetBitmap() ); - } - } - - if (IS_HATCH(m_backgroundBrush.GetStyle())) - { - gdk_gc_set_fill( m_bgGC, GDK_STIPPLED ); - 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 ); -*/ - tmp_brush = m_backgroundBrush; - m_backgroundBrush = wxNullBrush; - SetBackground( *wxWHITE_BRUSH ); - m_backgroundBrush = 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 9812ec9c7b..0000000000 --- a/src/gtk/dialog.cpp +++ /dev/null @@ -1,646 +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" -#include "wx/cursor.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 -#if (GTK_MINOR_VERSON > 0) -gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDialog *win ) -#else -gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxDialog *win ) -#endif -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - -#if (GTK_MINOR_VERSON > 0) - 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; -#else - win->m_x = event->x; - win->m_y = event->y; -#endif - - 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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxDialog creation failed") ); - return FALSE; - } - - 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(); - } - - wxBusyCursorSuspender cs; // temporarily suppress the busy cursor - - 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 df6de3a991..0000000000 --- a/src/gtk/dnd.cpp +++ /dev/null @@ -1,925 +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; - -//----------------------------------------------------------------------------- -// thread system -//----------------------------------------------------------------------------- - -#if wxUSE_THREADS -extern void wxapp_install_thread_wakeup(); -extern void wxapp_uninstall_thread_wakeup(); -#endif - -//---------------------------------------------------------------------------- -// 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return TRUE; -} - -bool wxDropTarget::OnDrop( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return FALSE; -} - -bool wxDropTarget::OnData( long WXUNUSED(x), long 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") ); -*/ - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* this should trigger an "drag_data_received" event */ - gtk_drag_get_data( m_dragWidget, - m_dragContext, - format.GetAtom(), - m_dragTime ); - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - - 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return IsSupported( wxDF_TEXT ); -} - -bool wxTextDropTarget::OnDrop( long WXUNUSED(x), long WXUNUSED(y) ) -{ - if (IsSupported( wxDF_TEXT )) - { - RequestData( wxDF_TEXT ); - return TRUE; - } - - return FALSE; -} - -bool wxTextDropTarget::OnData( long x, long 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return IsSupported( m_id ); -} - -bool wxPrivateDropTarget::OnDrop( long WXUNUSED(x), long WXUNUSED(y) ) -{ - if (!IsSupported( m_id )) - { - RequestData( m_id ); - return FALSE; - } - - return FALSE; -} - -bool wxPrivateDropTarget::OnData( long x, long 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return IsSupported( wxDF_FILENAME ); -} - -bool wxFileDropTarget::OnDrop( long x, long y ) -{ - if (IsSupported( wxDF_FILENAME )) - { - RequestData( wxDF_FILENAME ); - return TRUE; - } - - return FALSE; -} - -bool wxFileDropTarget::OnData( long x, long 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 ); - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - gtk_selection_data_set( selection_data, - selection_data->target, - 8, // 8-bit - buffer, - data_size ); - -#if wxUSE_THREADS - /* enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - 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 ); -// printf( "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; - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* 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();; - } - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - - 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 f2c2c99011..0000000000 --- a/src/gtk/filedlg.cpp +++ /dev/null @@ -1,262 +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; - - if (!PreCreation( parent, pos, wxDefaultSize ) || - !CreateBase( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, wxDefaultValidator, _T("filedialog") )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return; - } - - 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 ), wxConvCurrent->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 ), wxConvCurrent->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); - if (!ext.IsEmpty()) - { - m_fileName += _T("."); - 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 656f947cc5..0000000000 --- a/src/gtk/font.cpp +++ /dev/null @@ -1,1014 +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 "wx/gdicmn.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( wxConvCurrent->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( wxConvCurrent->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 78247575e7..0000000000 --- a/src/gtk/frame.cpp +++ /dev/null @@ -1,1072 +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" -#if wxUSE_TOOLBAR -#include "wx/toolbar.h" -#endif -#if wxUSE_STATUSBAR -#include "wx/statusbr.h" -#endif -#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" -#include "gdk/gdkx.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 -#if (GTK_MINOR_VERSON > 0) -gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxFrame *win ) -#else -gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxFrame *win ) -#endif -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - -#if (GTK_MINOR_VERSON > 0) - 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; -#else - win->m_x = event->x; - win->m_y = event->y; -#endif - - 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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxFrame creation failed") ); - return FALSE; - } - - 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; - } - -#if wxUSE_STATUSBAR - /* status bar */ - if (m_frameStatusBar) (*height) -= wxSTATUS_HEIGHT; -#endif - -#if wxUSE_TOOLBAR - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - (*height) -= y; - } - else - (*height) -= wxPLACE_HOLDER; - } -#endif - - /* 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; - } - -#if wxUSE_STATUSBAR - /* status bar */ - if (m_frameStatusBar) height += wxSTATUS_HEIGHT; -#endif - -#if wxUSE_TOOLBAR - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - height += y; - } - else - height += wxPLACE_HOLDER; - } -#endif - - 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 wxUSE_TOOLBAR - 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; - } -#endif - - 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 wxUSE_STATUSBAR - 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 ); - } -#endif - - /* 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 wxUSE_TOOLBAR - if (m_frameToolBar) m_frameToolBar->OnInternalIdle(); -#endif -#if wxUSE_STATUSBAR - if (m_frameStatusBar) m_frameStatusBar->OnInternalIdle(); -#endif -} - -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 ); -} - -void wxFrame::Maximize(bool WXUNUSED(maximize)) -{ -} - -void wxFrame::Restore() -{ -} - -void wxFrame::Iconize( bool iconize ) -{ - if (iconize) - { - XIconifyWindow( GDK_WINDOW_XDISPLAY( m_widget->window ), - GDK_WINDOW_XWINDOW( m_widget->window ), - DefaultScreen( GDK_DISPLAY() ) ); - } -} - -bool wxFrame::IsIconized() const -{ - return FALSE; -} diff --git a/src/gtk/gauge.cpp b/src/gtk/gauge.cpp deleted file mode 100644 index 35d9ad6f37..0000000000 --- a/src/gtk/gauge.cpp +++ /dev/null @@ -1,87 +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" - -#if wxUSE_GAUGE - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxGauge creation failed") ); - return FALSE; - } - - 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() const -{ - return m_rangeMax; -} - -int wxGauge::GetValue() const -{ - return m_gaugePos; -} - -void wxGauge::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - -#endif 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/gsockgtk.c b/src/gtk/gsockgtk.c deleted file mode 100644 index 006a04fbf0..0000000000 --- a/src/gtk/gsockgtk.c +++ /dev/null @@ -1,113 +0,0 @@ -/* ------------------------------------------------------------------------- - * Project: GSocket (Generic Socket) for WX - * Name: gsockgtk.c - * Purpose: GSocket: GTK part - * CVSID: $Id$ - * ------------------------------------------------------------------------- - */ -#include "wx/setup.h" - -#if wxUSE_SOCKETS - -#include -#include "gdk/gdk.h" -#include "glib.h" -#include "wx/gsocket.h" -#include "../unix/gsockunx.h" - -void _GSocket_GDK_Input(gpointer data, gint source, GdkInputCondition condition) -{ - GSocket *socket = (GSocket *)data; - - switch (condition) { - case GDK_INPUT_READ: - _GSocket_Detected_Read(socket); - break; - case GDK_INPUT_WRITE: - _GSocket_Detected_Write(socket); - break; - default: - break; - } -} - -void _GSocket_GUI_Init(GSocket *socket) -{ - int i; - gint *m_id; - - socket->m_gui_dependent = (char *)malloc(sizeof(gint)*3); - m_id = (gint *)(socket->m_gui_dependent); - - for (i=0;i<3;i++) - m_id[i] = -1; -} - -void _GSocket_GUI_Destroy(GSocket *socket) -{ - int i; - gint *m_id; - - m_id = (gint *)(socket->m_gui_dependent); - - for (i=0;i<3;i++) - if (m_id[i] == -1) - gdk_input_remove(m_id[i]); - - free(socket->m_gui_dependent); -} - -void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) -{ - GdkInputCondition flag; - int c; - gint *m_id; - - m_id = (gint *)(socket->m_gui_dependent); - - switch (event) { - case GSOCK_CONNECTION: - case GSOCK_LOST: - case GSOCK_INPUT: c = 0; flag = GDK_INPUT_READ; break; - case GSOCK_OUTPUT: c = 1;flag = GDK_INPUT_WRITE; break; - default: return; - } - - if (m_id[c] != -1) - gdk_input_remove(m_id[c]); - - m_id[c] = gdk_input_add(socket->m_fd, flag, - _GSocket_GDK_Input, (gpointer)socket); -} - -void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) -{ - int c; - gint *m_id; - - m_id = (gint *)(socket->m_gui_dependent); - - switch (event) { - case GSOCK_CONNECTION: - case GSOCK_LOST: - case GSOCK_INPUT: c = 0; break; - case GSOCK_OUTPUT: c = 1; break; - default: return; - } - - if (m_id[c] != -1) - gdk_input_remove(m_id[c]); - - m_id[c] = -1; -} - -unsigned long GSocket_GetEventID(GSocket *socket) -{ - return 0; -} - -void GSocket_DoEvent(unsigned long evt_id) -{ -} - -#endif /* wxUSE_SOCKETS */ 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 d99c53a4b5..0000000000 --- a/src/gtk/listbox.cpp +++ /dev/null @@ -1,990 +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/listbox.h" - -#if wxUSE_LISTBOX - -#include "wx/dynarray.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" -//----------------------------------------------------------------------------- - -#if wxUSE_CHECKLISTBOX -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; - - 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 ); - - return FALSE; -} -#endif // wxUSE_CHECKLISTBOX - -//----------------------------------------------------------------------------- -// "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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxListBox creation failed") ); - return FALSE; - } - - 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),*wxConvCurrent); - 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") ); - - DisableEvents(); - - gtk_list_unselect_item( m_list, n ); - - EnableEvents(); -} - -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 = wxString(GET_REAL_LABEL(label->label),*wxConvCurrent); - - 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 = wxString(GET_REAL_LABEL(label->label),*wxConvCurrent); - - 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 = wxString(GET_REAL_LABEL(label->label),*wxConvCurrent); - - 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") ); - - DisableEvents(); - - if (select) - gtk_list_select_item( m_list, n ); - else - gtk_list_unselect_item( m_list, n ); - - EnableEvents(); -} - -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 ), wxConvCurrent->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 - -void wxListBox::DisableEvents() -{ - GList *child = m_list->children; - while (child) - { - gtk_signal_disconnect_by_func( GTK_OBJECT(child->data), - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (HasFlag(wxLB_MULTIPLE)) - gtk_signal_disconnect_by_func( GTK_OBJECT(child->data), - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - child = child->next; - } -} - -void wxListBox::EnableEvents() -{ - GList *child = m_list->children; - while (child) - { - gtk_signal_connect( GTK_OBJECT(child->data), "select", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (HasFlag(wxLB_MULTIPLE)) - gtk_signal_connect( GTK_OBJECT(child->data), "deselect", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - child = child->next; - } -} - -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; - } -} - -#endif \ No newline at end of file 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/mdi.cpp b/src/gtk/mdi.cpp deleted file mode 100644 index 0b98599d59..0000000000 --- a/src/gtk/mdi.cpp +++ /dev/null @@ -1,432 +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" - -#if wxUSE_MDI_ARCHITECTURE - -#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; - - if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) || - !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, _T("wxMDIClientWindow") )) - { - wxFAIL_MSG( _T("wxMDIClientWindow creation failed") ); - return FALSE; - } - - m_widget = gtk_notebook_new(); - - gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -#endif diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp deleted file mode 100644 index e1d680563e..0000000000 --- a/src/gtk/menu.cpp +++ /dev/null @@ -1,1122 +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; - m_style = style; - - if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) || - !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, _T("menubar") )) - { - wxFAIL_MSG( _T("wxMenuBar creation failed") ); - return; - } - - 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; - m_style = 0; - - if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) || - !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("menubar") )) - { - wxFAIL_MSG( _T("wxMenuBar creation failed") ); - return; - } - - 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 ); - - const wxChar *pc; - - /* GTK 1.2 wants to have "_" instead of "&" for accelerators */ - wxString str; - for ( 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 */ - wxString buf; - buf << _T('/') << str.c_str(); - - char *cbuf = new char[buf.Length()+1]; - strcpy(cbuf, buf.mbc_str()); - - GtkItemFactoryEntry entry; - entry.path = (gchar *)cbuf; // const_cast - 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 ( 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 ); - delete [] cbuf; -#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 ); - - 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) - -void -wxMenu::Init( const wxString& title, - long style, - const wxFunction func - ) -{ - m_title = title; - m_items.DeleteContents( TRUE ); - m_invokingWindow = (wxWindow *) NULL; - m_style = style; - -#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; - -#if (GTK_MINOR_VERSION > 0) - /* Tearoffs are entries, just like separators. So if we want this - menu to be a tear-off one, we just append a tearoff entry - immediately. */ - if(m_style & wxMENU_TEAROFF) - { - GtkItemFactoryEntry entry; - entry.path = "/tearoff"; - 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 ? */ - //GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, "
    /tearoff" ); - } -#endif -} - -wxMenu::~wxMenu() -{ - /* how do we delete an item-factory ? */ - gtk_widget_destroy( m_menu ); - -} - -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 ); -} - -#if (GTK_MINOR_VERSION > 0) -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; -} -#endif - -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 9da9393c89..0000000000 --- a/src/gtk/minifram.cpp +++ /dev/null @@ -1,327 +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" - -#if wxUSE_MINIFRAME - -#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_window_raise( win->m_widget->window ); - - 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; -} - -#endif diff --git a/src/gtk/notebook.cpp b/src/gtk/notebook.cpp deleted file mode 100644 index 6cac1f9135..0000000000 --- a/src/gtk/notebook.cpp +++ /dev/null @@ -1,635 +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" - -#if wxUSE_NOTEBOOK - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxNoteBook creation failed") ); - return FALSE; - } - - - 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 ); - - gtk_signal_connect( GTK_OBJECT(win->m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)win ); - - 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 = (GtkNotebookPage*) g_list_last(notebook->children)->data; - - /* 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) - -#endif \ No newline at end of file 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 00a092953f..0000000000 --- a/src/gtk/pen.cpp +++ /dev/null @@ -1,225 +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(); - wxPenRefData( const wxPenRefData& data ); - - int m_width; - int m_style; - int m_joinStyle; - int m_capStyle; - wxColour m_colour; - int m_countDashes; - wxDash *m_dash; -}; - -wxPenRefData::wxPenRefData() -{ - m_width = 1; - m_style = wxSOLID; - m_joinStyle = wxJOIN_ROUND; - m_capStyle = wxCAP_ROUND; - m_dash = (wxDash*) NULL; - m_countDashes = 0; -} - -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; - m_countDashes = data.m_countDashes; -/* - if (data.m_dash) TODO - m_dash = new -*/ - m_dash = data.m_dash; -} - -//----------------------------------------------------------------------------- - -#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::SetDashes( int number_of_dashes, const wxDash *dash ) -{ - Unshare(); - M_PENDATA->m_countDashes = number_of_dashes; - M_PENDATA->m_dash = (wxDash *)dash; /* TODO */ -} - -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::GetDashes( wxDash **ptr ) const -{ - *ptr = (M_PENDATA ? M_PENDATA->m_dash : (wxDash*) NULL); - return (M_PENDATA ? M_PENDATA->m_countDashes : 0); -} - -int wxPen::GetDashCount() const -{ - return (M_PENDATA->m_countDashes); -} - -wxDash* wxPen::GetDash() const -{ - return (M_PENDATA->m_dash); -} - -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 dcd089fa7e..0000000000 --- a/src/gtk/radiobox.cpp +++ /dev/null @@ -1,584 +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" - -#if wxUSE_RADIOBOX - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxRadioBox creation failed") ); - return FALSE; - } - - m_widget = gtk_frame_new( title.mbc_str() ); - - m_majorDim = majorDim; - - GtkRadioButton *m_radio = (GtkRadioButton*) NULL; - - wxString label; - GSList *radio_button_group = (GSList *) NULL; - for (int i = 0; i < n; i++) - { - if ( i != 0 ) - radio_button_group = gtk_radio_button_group( GTK_RADIO_BUTTON(m_radio) ); - - label.Empty(); - for ( const wxChar *pc = choices[i]; *pc; pc++ ) - { - if ( *pc != _T('&') ) - label += *pc; - } - - m_radio = GTK_RADIO_BUTTON( gtk_radio_button_new_with_label( radio_button_group, label.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; - - if ( m_majorDim == 0 ) - { - // avoid dividing by 0 below - wxFAIL_MSG( _T("dimension of radiobox should not be 0!") ); - - m_majorDim = 1; - } - - int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1; - - wxSize res( 0, 0 ); - - int num_of_cols = 0; - int num_of_rows = 0; - if (HasFlag(wxRA_SPECIFY_COLS)) - { - num_of_cols = m_majorDim; - num_of_rows = num_per_major; - } - else - { - num_of_cols = num_per_major; - num_of_rows = m_majorDim; - } - - if ( HasFlag(wxRA_SPECIFY_COLS) || - (HasFlag(wxRA_SPECIFY_ROWS) && (num_of_cols > 1)) ) - { - for (int j = 0; j < num_of_cols; j++) - { - y = 15; - - int max_len = 0; - wxNode *node = m_boxes.Nth( j*num_of_rows ); - for (int i1 = 0; i1< num_of_rows; 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 += 22; - - node = node->Next(); - if (!node) break; - } - - // we don't know the max_len before - - node = m_boxes.Nth( j*num_of_rows ); - for (int i2 = 0; i2< num_of_rows; 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 = 40; - } - - 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() ); - - DisableEvents(); - - gtk_toggle_button_set_state( button, 1 ); - - EnableEvents(); -} - -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::DisableEvents() -{ - wxNode *node = m_boxes.First(); - while (node) - { - gtk_signal_disconnect_by_func( GTK_OBJECT(node->Data()), - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - node = node->Next(); - } -} - -void wxRadioBox::EnableEvents() -{ - wxNode *node = m_boxes.First(); - while (node) - { - gtk_signal_connect( GTK_OBJECT(node->Data()), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - node = node->Next(); - } -} - -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; -} - -#endif diff --git a/src/gtk/radiobut.cpp b/src/gtk/radiobut.cpp deleted file mode 100644 index f7771f4ea6..0000000000 --- a/src/gtk/radiobut.cpp +++ /dev/null @@ -1,189 +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" - -#if wxUSE_RADIOBOX - -#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 (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; - m_isRadioButton = TRUE; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxRadioButton creation failed") ); - return FALSE; - } - - if (HasFlag(wxRB_GROUP)) - { - /* start a new group */ - m_radioButtonGroup = (GSList*) NULL; - } - else - { - /* search backward for last group start */ - wxRadioButton *chief = (wxRadioButton*) NULL; - wxWindowList::Node *node = parent->GetChildren().GetLast(); - while (node) - { - wxWindow *child = node->GetData(); - if (child->m_isRadioButton) - { - chief = (wxRadioButton*) child; - if (child->HasFlag(wxRB_GROUP)) break; - } - node = node->GetPrevious(); - } - if (chief) - { - /* we are part of the group started by chief */ - m_radioButtonGroup = gtk_radio_button_group( GTK_RADIO_BUTTON(chief->m_widget) ); - } - else - { - /* start a new group */ - m_radioButtonGroup = (GSList*) NULL; - } - } - - m_widget = gtk_radio_button_new_with_label( m_radioButtonGroup, label.mbc_str() ); - - SetLabel(label); - - wxSize newSize = size; - 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; - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - if (val) - { - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widget), TRUE ); - } - else - { - // should give an assert - } - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); -} - -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 ); -} - -#endif 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 56cc1d6d58..0000000000 --- a/src/gtk/scrolbar.cpp +++ /dev/null @@ -1,316 +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" - -#if wxUSE_SCROLLBAR - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxScrollBar creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif 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 5d115ba3b8..0000000000 --- a/src/gtk/slider.cpp +++ /dev/null @@ -1,299 +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" - -#if wxUSE_SLIDER - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxSlider creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif diff --git a/src/gtk/spinbutt.cpp b/src/gtk/spinbutt.cpp deleted file mode 100644 index 898eb4f4b9..0000000000 --- a/src/gtk/spinbutt.cpp +++ /dev/null @@ -1,213 +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" - -#ifdef wxUSE_SPINBTN - -#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; - - if (fabs(diff-line_step) < sensitivity) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < sensitivity) command = wxEVT_SCROLL_LINEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - - int value = (int)ceil(win->m_adjust->value); - - wxSpinEvent event( command, win->GetId()); - event.SetPosition( value ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - /* always send a thumbtrack event */ - if (command != wxEVT_SCROLL_THUMBTRACK) - { - command = wxEVT_SCROLL_THUMBTRACK; - wxSpinEvent event2( command, win->GetId()); - event2.SetPosition( value ); - event2.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event2 ); - } -} - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton,wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent); - -BEGIN_EVENT_TABLE(wxSpinButton, wxControl) - EVT_SIZE(wxSpinButton::OnSize) -END_EVENT_TABLE() - -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; - - if (!PreCreation( parent, pos, new_size ) || - !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif diff --git a/src/gtk/statbmp.cpp b/src/gtk/statbmp.cpp deleted file mode 100644 index f9e6700b8f..0000000000 --- a/src/gtk/statbmp.cpp +++ /dev/null @@ -1,123 +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" - -#if wxUSE_STATBMP - -#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 ); -} - -void wxStaticBitmap::CreatePixmapWidget() -{ - wxCHECK_RET( m_bitmap.Ok(), _T("should only be called if we have a bitmap") ); - - GdkBitmap *mask = (GdkBitmap *) NULL; - if ( m_bitmap.GetMask() ) - mask = m_bitmap.GetMask()->GetBitmap(); - m_widget = gtk_pixmap_new( m_bitmap.GetPixmap(), mask ); - - /* insert GTK representation */ - (*m_parent->m_insertCallback)(m_parent, this); - - gtk_widget_show( m_widget ); - - PostCreation(); -} - -bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return FALSE; - } - - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - wxSize newSize = size; - - 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" ); - - PostCreation(); - } - - m_parent->DoAddChild( this ); - - Show( TRUE ); - - return TRUE; -} - -void wxStaticBitmap::SetBitmap( const wxBitmap &bitmap ) -{ - bool hasWidget = m_bitmap.Ok(); - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - if (!hasWidget) - { - gtk_widget_destroy( m_widget ); - - /* recreate m_widget because we've created a label - and not a bitmap above */ - CreatePixmapWidget(); - } - else - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - gtk_pixmap_set( GTK_PIXMAP(m_widget), m_bitmap.GetPixmap(), mask ); - } - - SetSize( m_bitmap.GetWidth(), m_bitmap.GetHeight() ); - } -} - -#endif diff --git a/src/gtk/statbox.cpp b/src/gtk/statbox.cpp deleted file mode 100644 index d39006cda7..0000000000 --- a/src/gtk/statbox.cpp +++ /dev/null @@ -1,83 +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" - -#if wxUSE_STATBOX - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxStaticBox creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif diff --git a/src/gtk/statline.cpp b/src/gtk/statline.cpp deleted file mode 100644 index cd67c8a642..0000000000 --- a/src/gtk/statline.cpp +++ /dev/null @@ -1,81 +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" - -#if wxUSE_STATLINE - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl) - -wxStaticLine::wxStaticLine() -{ -} - -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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxStaticLine creation failed") ); - return FALSE; - } - - if ( IsVertical() ) - { - m_widget = gtk_vseparator_new(); - if (size.x == -1) - { - wxSize new_size( size ); - new_size.x = 4; - SetSize( new_size ); - } - } - else - { - m_widget = gtk_hseparator_new(); - if (size.y == -1) - { - wxSize new_size( size ); - new_size.y = 4; - SetSize( new_size ); - } - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -#endif diff --git a/src/gtk/stattext.cpp b/src/gtk/stattext.cpp deleted file mode 100644 index af8c6a1063..0000000000 --- a/src/gtk/stattext.cpp +++ /dev/null @@ -1,130 +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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return FALSE; - } - - // 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 ); - - wxSize newSize = size; - 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 0f90b72a74..0000000000 --- a/src/gtk/tbargtk.cpp +++ /dev/null @@ -1,601 +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" - -#if wxUSE_TOOLBAR - -#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; - -#if (GTK_MINOR_VERSION == 0) - /* we grey-out the tip text of disabled tool in GTK 1.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 ); - - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); - } - } - 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 ); - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); - } - } -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxToolBar creation failed") ); - return FALSE; - } - - 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 ); -#if (GTK_MINOR_VERSION > 0) - gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE ); -#endif - - 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; - -#if (GTK_MINOR_VERSION > 0) - /* we don't disable the tools for GTK 1.0 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 ); -#endif - - 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) - { - if ((tool->m_item) && (GTK_IS_TOGGLE_BUTTON(tool->m_item))) - { - tool->m_toggleState = toggle; - - 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 ); - } - - gtk_signal_disconnect_by_func( GTK_OBJECT(tool->m_item), - GTK_SIGNAL_FUNC(gtk_toolbar_callback), (gpointer*)tool ); - - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(tool->m_item), toggle ); - - gtk_signal_connect( GTK_OBJECT(tool->m_item), "clicked", - GTK_SIGNAL_FUNC(gtk_toolbar_callback), (gpointer*)tool ); - } - - 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(); - } -} - -#endif diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp deleted file mode 100644 index 04809dc193..0000000000 --- a/src/gtk/textctrl.cpp +++ /dev/null @@ -1,924 +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() - -wxTextCtrl::wxTextCtrl() -{ - m_modified = FALSE; -} - -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 ); -} - -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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxTextCtrl creation failed") ); - return FALSE; - } - - - m_vScrollbarVisible = FALSE; - - bool multi_line = (style & wxTE_MULTILINE) != 0; - if (multi_line) - { -#if (GTK_MINOR_VERSION > 2) - /* a multi-line edit control: create a vertical scrollbar by default and - horizontal if requested */ - bool bHasHScrollbar = (style & wxHSCROLL) != 0; -#else - bool bHasHScrollbar = FALSE; -#endif - - /* 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 ); - -#if (GTK_MINOR_VERSION > 2) - /* 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); - - /* 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,*wxConvCurrent); - g_free( text ); - } - else - { - tmp = wxString(gtk_entry_get_text( GTK_ENTRY(m_text) ),*wxConvCurrent); - } - return tmp; -} - -void wxTextCtrl::SetValue( const wxString &value ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - 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() ); - } -} - -void wxTextCtrl::WriteText( const wxString &text ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (text.IsEmpty()) 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 (text.IsEmpty()) return; - - if (m_windowStyle & wxTE_MULTILINE) - { - bool hasSpecialAttributes = m_font.Ok() || - m_foregroundColour.Ok() || - m_backgroundColour.Ok(); - if ( hasSpecialAttributes ) - { - gtk_text_insert( GTK_TEXT(m_text), - m_font.GetInternalFont(), - m_foregroundColour.GetColor(), - m_backgroundColour.GetColor(), - text.mbc_str(), text.length()); - - } - else - { - /* 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() ); - } -} - -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") ); -} - -bool 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::DiscardEdits() -{ - m_modified = FALSE; -} - -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.IsEmpty()) - { - 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; -} - -bool wxTextCtrl::IsModified() const -{ - return m_modified; -} - -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(); -} - -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); -} - -// the font will change for subsequent text insertiongs -bool wxTextCtrl::SetFont( const wxFont &font ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - if ( !wxWindowBase::SetFont(font) ) - { - // font didn't change, nothing to do - return FALSE; - } - - if ( m_windowStyle & wxTE_MULTILINE ) - { - // for compatibility with other ports: the font is a global controls - // characteristic, so change the font globally - wxString value = GetValue(); - if ( !value.IsEmpty() ) - { - Clear(); - - AppendText(value); - } - } - - return TRUE; -} - -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 a27905231d..0000000000 --- a/src/gtk/timer.cpp +++ /dev/null @@ -1,128 +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; - -#if (GTK_MINOR_VERSION > 0) - /* when getting called from GDK's timer handler we - are no longer within GDK's grab on the GUI - thread so we must lock it here ourselves */ - GDK_THREADS_ENTER (); -#endif - - timer->Notify(); - -#if (GTK_MINOR_VERSION > 0) - /* release lock again */ - GDK_THREADS_LEAVE (); -#endif - - 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 403880e328..0000000000 --- a/src/gtk/tooltip.cpp +++ /dev/null @@ -1,108 +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 5f563ac295..0000000000 --- a/src/gtk/utilsgtk.cpp +++ /dev/null @@ -1,125 +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 "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gtk/gtkfeatures.h" -#include "gdk/gdkx.h" - -#ifdef HAVE_X11_XKBLIB_H - /* under HP-UX and Solaris 2.6, at least, XKBlib.h defines structures with - * field named "explicit" - which is, of course, an error for a C++ - * compiler. To be on the safe side, just redefine it everywhere. */ - #define explicit __wx_explicit - - #include "X11/XKBlib.h" - - #undef explicit -#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 6082cd387e..0000000000 --- a/src/gtk/utilsres.cpp +++ /dev/null @@ -1,368 +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 "wx/log.h" -#include "wx/gdicmn.h" - -#include -#include -#include -//#ifdef __SVR4__ -//#include -//#endif - -#include "gdk/gdkx.h" // GDK_DISPLAY -#include "gdk/gdkprivate.h" // gdk_progclass - -#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 _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(wxConvCurrent->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(wxConvCurrent->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, wxConvCurrent->cMB2WX(hostbuf)); -#endif - } - if ((homeDB = XrmGetFileDatabase(wxConvCurrent->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, wxConvCurrent->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(wxConvCurrent->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(wxConvCurrent->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 b100588180..0000000000 --- a/src/gtk/wave.cpp +++ /dev/null @@ -1,228 +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 a9552bd63b..0000000000 --- a/src/gtk/win_gtk.c +++ /dev/null @@ -1,728 +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" -#include "gtk/gtkscrolledwindow.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) && GTK_IS_NOTEBOOK(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; - - if (GTK_WIDGET_VISIBLE (child->widget)) - { -/* please look at the text in wxWindow::DoSetSize() on why the - test GTK_WIDGET_REALIZED() has to be here */ -/* 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 fa872fc36f..0000000000 --- a/src/gtk/window.cpp +++ /dev/null @@ -1,3228 +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; -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) -/* these functions are copied verbatim from GTK 1.2 */ -static void -gdkx_XConvertCase (KeySym symbol, - KeySym *lower, - KeySym *upper) -{ - register KeySym sym = symbol; - - g_return_if_fail (lower != NULL); - g_return_if_fail (upper != NULL); - - *lower = sym; - *upper = sym; - - switch (sym >> 8) - { -#if defined (GDK_A) && defined (GDK_Ooblique) - case 0: /* Latin 1 */ - if ((sym >= GDK_A) && (sym <= GDK_Z)) - *lower += (GDK_a - GDK_A); - else if ((sym >= GDK_a) && (sym <= GDK_z)) - *upper -= (GDK_a - GDK_A); - else if ((sym >= GDK_Agrave) && (sym <= GDK_Odiaeresis)) - *lower += (GDK_agrave - GDK_Agrave); - else if ((sym >= GDK_agrave) && (sym <= GDK_odiaeresis)) - *upper -= (GDK_agrave - GDK_Agrave); - else if ((sym >= GDK_Ooblique) && (sym <= GDK_Thorn)) - *lower += (GDK_oslash - GDK_Ooblique); - else if ((sym >= GDK_oslash) && (sym <= GDK_thorn)) - *upper -= (GDK_oslash - GDK_Ooblique); - break; -#endif /* LATIN1 */ - -#if defined (GDK_Aogonek) && defined (GDK_tcedilla) - case 1: /* Latin 2 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym == GDK_Aogonek) - *lower = GDK_aogonek; - else if (sym >= GDK_Lstroke && sym <= GDK_Sacute) - *lower += (GDK_lstroke - GDK_Lstroke); - else if (sym >= GDK_Scaron && sym <= GDK_Zacute) - *lower += (GDK_scaron - GDK_Scaron); - else if (sym >= GDK_Zcaron && sym <= GDK_Zabovedot) - *lower += (GDK_zcaron - GDK_Zcaron); - else if (sym == GDK_aogonek) - *upper = GDK_Aogonek; - else if (sym >= GDK_lstroke && sym <= GDK_sacute) - *upper -= (GDK_lstroke - GDK_Lstroke); - else if (sym >= GDK_scaron && sym <= GDK_zacute) - *upper -= (GDK_scaron - GDK_Scaron); - else if (sym >= GDK_zcaron && sym <= GDK_zabovedot) - *upper -= (GDK_zcaron - GDK_Zcaron); - else if (sym >= GDK_Racute && sym <= GDK_Tcedilla) - *lower += (GDK_racute - GDK_Racute); - else if (sym >= GDK_racute && sym <= GDK_tcedilla) - *upper -= (GDK_racute - GDK_Racute); - break; -#endif /* LATIN2 */ - -#if defined (GDK_Hstroke) && defined (GDK_Cabovedot) - case 2: /* Latin 3 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Hstroke && sym <= GDK_Hcircumflex) - *lower += (GDK_hstroke - GDK_Hstroke); - else if (sym >= GDK_Gbreve && sym <= GDK_Jcircumflex) - *lower += (GDK_gbreve - GDK_Gbreve); - else if (sym >= GDK_hstroke && sym <= GDK_hcircumflex) - *upper -= (GDK_hstroke - GDK_Hstroke); - else if (sym >= GDK_gbreve && sym <= GDK_jcircumflex) - *upper -= (GDK_gbreve - GDK_Gbreve); - else if (sym >= GDK_Cabovedot && sym <= GDK_Scircumflex) - *lower += (GDK_cabovedot - GDK_Cabovedot); - else if (sym >= GDK_cabovedot && sym <= GDK_scircumflex) - *upper -= (GDK_cabovedot - GDK_Cabovedot); - break; -#endif /* LATIN3 */ - -#if defined (GDK_Rcedilla) && defined (GDK_Amacron) - case 3: /* Latin 4 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Rcedilla && sym <= GDK_Tslash) - *lower += (GDK_rcedilla - GDK_Rcedilla); - else if (sym >= GDK_rcedilla && sym <= GDK_tslash) - *upper -= (GDK_rcedilla - GDK_Rcedilla); - else if (sym == GDK_ENG) - *lower = GDK_eng; - else if (sym == GDK_eng) - *upper = GDK_ENG; - else if (sym >= GDK_Amacron && sym <= GDK_Umacron) - *lower += (GDK_amacron - GDK_Amacron); - else if (sym >= GDK_amacron && sym <= GDK_umacron) - *upper -= (GDK_amacron - GDK_Amacron); - break; -#endif /* LATIN4 */ - -#if defined (GDK_Serbian_DJE) && defined (GDK_Cyrillic_yu) - case 6: /* Cyrillic */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Serbian_DJE && sym <= GDK_Serbian_DZE) - *lower -= (GDK_Serbian_DJE - GDK_Serbian_dje); - else if (sym >= GDK_Serbian_dje && sym <= GDK_Serbian_dze) - *upper += (GDK_Serbian_DJE - GDK_Serbian_dje); - else if (sym >= GDK_Cyrillic_YU && sym <= GDK_Cyrillic_HARDSIGN) - *lower -= (GDK_Cyrillic_YU - GDK_Cyrillic_yu); - else if (sym >= GDK_Cyrillic_yu && sym <= GDK_Cyrillic_hardsign) - *upper += (GDK_Cyrillic_YU - GDK_Cyrillic_yu); - break; -#endif /* CYRILLIC */ - -#if defined (GDK_Greek_ALPHAaccent) && defined (GDK_Greek_finalsmallsigma) - case 7: /* Greek */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Greek_ALPHAaccent && sym <= GDK_Greek_OMEGAaccent) - *lower += (GDK_Greek_alphaaccent - GDK_Greek_ALPHAaccent); - else if (sym >= GDK_Greek_alphaaccent && sym <= GDK_Greek_omegaaccent && - sym != GDK_Greek_iotaaccentdieresis && - sym != GDK_Greek_upsilonaccentdieresis) - *upper -= (GDK_Greek_alphaaccent - GDK_Greek_ALPHAaccent); - else if (sym >= GDK_Greek_ALPHA && sym <= GDK_Greek_OMEGA) - *lower += (GDK_Greek_alpha - GDK_Greek_ALPHA); - else if (sym >= GDK_Greek_alpha && sym <= GDK_Greek_omega && - sym != GDK_Greek_finalsmallsigma) - *upper -= (GDK_Greek_alpha - GDK_Greek_ALPHA); - break; -#endif /* GREEK */ - } -} - -static guint -gdk_keyval_to_upper (guint keyval) -{ - if (keyval) - { - KeySym lower_val = 0; - KeySym upper_val = 0; - - gdkx_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; - - if (gdk_event->window != win->m_wxwindow->window) - 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; - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - -/* - wxPrintf( "OnExpose from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( " %d %d %d %d\n", (int)gdk_event->area.x, - (int)gdk_event->area.y, - (int)gdk_event->area.width, - (int)gdk_event->area.height ); -*/ - - 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 ); - -/* - wxPrintf( "OnDraw from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - wxPrintf( " %d %d %d %d\n", (int)rect->x, - (int)rect->y, - (int)rect->width, - (int)rect->height ); -*/ - - 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 ); - -#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 - /* wxMSW doesn't send char events with Alt pressed */ - /* Only send wxEVT_CHAR event if not processed yet. Thus, ALT-x - will only be sent if it is not a menu accelerator. */ - if ((key_code != 0) && ! ret ) - { - 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 )); - } - - - /* 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_isRadioButton = 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 ) -{ - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxWindow creation failed") ); - return FALSE; - } - - 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; - } -} - -bool wxWindow::PreCreation( wxWindow *parent, const wxPoint &pos, const wxSize &size ) -{ - wxCHECK_MSG( !m_needParent || parent, FALSE, _T("Need complete parent.") ); - - /* this turns -1 into 20 so that a minimal window is - visible even although -1,-1 has been given as the - size of the window. the same trick is used in other - ports and should make debugging easier */ - m_width = WidthDefault(size.x); - m_height = HeightDefault(size.y); - - m_x = (int)pos.x; - m_y = (int)pos.y; - - /* some reasonable defaults */ - if (!parent) - { - 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; - } - } - - return TRUE; -} - -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() -{ - wxCursor cursor = m_cursor; - if (g_globalCursor.Ok()) cursor = g_globalCursor; - - if (cursor.Ok() && m_currentGdkCursor != cursor) - { - m_currentGdkCursor = cursor; - - if (m_wxwindow) - { - GdkWindow *window = m_wxwindow->window; - if (window) - gdk_window_set_cursor( window, cursor.GetCursor() ); - - if (!g_globalCursor.Ok()) - cursor = *wxSTANDARD_CURSOR; - - window = m_widget->window; - if (window) - gdk_window_set_cursor( window, cursor.GetCursor() ); - } - else - { - GdkWindow *window = m_widget->window; - if (window) - gdk_window_set_cursor( window, cursor.GetCursor() ); - } - } - - 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 (GTK_MINOR_VERSION == 0) - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - if (HasScrolling()) - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } - } -#else - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - /* when using GTK 1.2 we set the border size to 2 */ - dw += 2 * 2; - dh += 2 * 2; - } -#endif - - if (HasScrolling()) - { -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - 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 (GTK_MINOR_VERSION == 0) - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - if (HasScrolling()) - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } - } -#else - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - /* when using GTK 1.2 we set the border size to 2 */ - dw += 2 * 2; - dh += 2 * 2; - } -#endif - if (HasScrolling()) - { -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - 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), FALSE, _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(), wxConvCurrent->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() -{ -} - -//----------------------------------------------------------------------------- -// Pop-up menu stuff -//----------------------------------------------------------------------------- - -static void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting ) -{ - *is_waiting = FALSE; -} - -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::DoPopupMenu( 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; - - bool is_waiting = TRUE; - - gtk_signal_connect( GTK_OBJECT(menu->m_menu), "hide", - GTK_SIGNAL_FUNC(gtk_pop_hide_callback), (gpointer)&is_waiting ); - - 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 - ); - - while (is_waiting) - { - while (gtk_events_pending()) - gtk_main_iteration(); - } - - 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 05bd4624c9..0000000000 --- a/src/gtk1/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile.in -*.lo -*.la diff --git a/src/gtk1/accel.cpp b/src/gtk1/accel.cpp deleted file mode 100644 index 3d161f1c31..0000000000 --- a/src/gtk1/accel.cpp +++ /dev/null @@ -1,92 +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" - -#if wxUSE_ACCEL - -#include - -//----------------------------------------------------------------------------- -// 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; -} - -#endif diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp deleted file mode 100644 index 2bce90acab..0000000000 --- a/src/gtk1/app.cpp +++ /dev/null @@ -1,803 +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 "appbase.h" - #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" - -#if wxUSE_THREADS -#include "wx/thread.h" -#endif - -#include "unistd.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -wxApp *wxTheApp = (wxApp *) NULL; -wxAppInitializerFunction wxAppBase::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() -{ - bool has_idle = (wxTheApp->m_idleTag != 0); - - if (has_idle) - { - /* 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(); - - /* 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 (has_idle) - { - /* re-add idle handler */ - wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - } - - 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 - -/* forward declaration */ -static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ); - -void wxapp_install_thread_wakeup() -{ - if (wxTheApp->m_wakeUpTimerTag) return; - - wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 100, wxapp_wakeup_timerout_callback, (gpointer) NULL ); -} - -void wxapp_uninstall_thread_wakeup() -{ - if (!wxTheApp->m_wakeUpTimerTag) return; - - gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag ); - wxTheApp->m_wakeUpTimerTag = 0; -} - -static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ) -{ - wxapp_uninstall_thread_wakeup(); - -#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 - - wxapp_install_thread_wakeup(); - - 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 = 0; - wxapp_install_thread_wakeup(); -#endif - - m_colorCube = (unsigned char*) NULL; -} - -wxApp::~wxApp() -{ - if (m_idleTag) gtk_idle_remove( m_idleTag ); - -#if wxUSE_THREADS - wxapp_uninstall_thread_wakeup(); -#endif - - if (m_colorCube) free(m_colorCube); -} - -bool wxApp::OnInitGui() -{ - GdkVisual *visual = gdk_visual_get_system(); - - /* on some machines, the default visual is just 256 colours, so - we make sure we get the best. this can sometimes be wasteful, - of course, but what do these guys pay $30.000 for? */ -/* - if (gdk_visual_get_best() != gdk_visual_get_system()) - { - GdkVisual* vis = gdk_visual_get_best(); - gtk_widget_set_default_visual( vis ); - - GdkColormap *colormap = gdk_colormap_new( vis, FALSE ); - gtk_widget_set_default_colormap( colormap ); - - visual = vis; - } -*/ - - /* Nothing to do for 15, 16, 24, 32 bit displays */ - 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 - { -#if (GTK_MINOR_VERSION > 0) - /* 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; -#else - wxFAIL_MSG( _T("Unsupported graphics hardware") ); -#endif - } - 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 s_inOnIdle = FALSE; - - /* Avoid recursion (via ProcessEvent default case) */ - if (s_inOnIdle) - return; - - s_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); - - s_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->ProcessEvent(event); - - win->OnInternalIdle(); - - 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(); - } -} - -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 - - 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(); - - 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; -} - -#endif // wxUSE_LOG - -//----------------------------------------------------------------------------- -// wxEntry -//----------------------------------------------------------------------------- - -int wxEntry( int argc, char *argv[] ) -{ - gtk_set_locale(); - -#if wxUSE_WCHAR_T - if (!wxOKlibc()) wxConvCurrent = &wxConvLocal; -#else - if (!wxOKlibc()) wxConvCurrent = (wxMBConv*) NULL; -#endif - - 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; -#if wxUSE_UNICODE - wxTheApp->argv = new wxChar*[argc+1]; - int mb_argc = 0; - while (mb_argc < argc) { - wxTheApp->argv[mb_argc] = wxStrdup(wxConvLibc.cMB2WX(argv[mb_argc])); - mb_argc++; - } - wxTheApp->argv[mb_argc] = (wxChar *)NULL; -#else - wxTheApp->argv = argv; -#endif - - 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; -} - -#include "wx/gtk/info.xpm" -#include "wx/gtk/error.xpm" -#include "wx/gtk/question.xpm" -#include "wx/gtk/warning.xpm" - -wxIcon -wxApp::GetStdIcon(int which) const -{ - switch(which) - { - case wxICON_INFORMATION: - return wxIcon(info_xpm); - - case wxICON_QUESTION: - return wxIcon(question_xpm); - - case wxICON_EXCLAMATION: - return wxIcon(warning_xpm); - - default: - wxFAIL_MSG(_T("requested non existent standard icon")); - // still fall through - - case wxICON_HAND: - return wxIcon(error_xpm); - } -} 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 832600e1a2..0000000000 --- a/src/gtk1/bitmap.cpp +++ /dev/null @@ -1,431 +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& bitmap, const wxColour& colour ) -{ - Create( bitmap, colour ); -} - -wxMask::wxMask( const wxBitmap& bitmap, int paletteIndex ) -{ - Create( bitmap, paletteIndex ); -} - -wxMask::wxMask( const wxBitmap& bitmap ) -{ - Create( bitmap ); -} - -wxMask::~wxMask() -{ - if (m_bitmap) gdk_bitmap_unref( m_bitmap ); -} - -bool wxMask::Create( const wxBitmap& bitmap, const wxColour& colour ) -{ - if (m_bitmap) - { - gdk_bitmap_unref( m_bitmap ); - m_bitmap = (GdkBitmap*) NULL; - } - - wxFAIL_MSG( _T("TODO") ); - - return FALSE; -} - -bool wxMask::Create( const wxBitmap& WXUNUSED(bitmap), int WXUNUSED(paletteIndex) ) -{ - if (m_bitmap) - { - gdk_bitmap_unref( m_bitmap ); - m_bitmap = (GdkBitmap*) NULL; - } - - wxFAIL_MSG( _T("not implemented") ); - - return FALSE; -} - -bool wxMask::Create( const wxBitmap& bitmap ) -{ - if (m_bitmap) - { - gdk_bitmap_unref( m_bitmap ); - m_bitmap = (GdkBitmap*) NULL; - } - - if (!bitmap.Ok()) return FALSE; - - wxCHECK_MSG( bitmap.GetBitmap(), FALSE, _T("Cannot create mask from colour bitmap") ); - - m_bitmap = gdk_pixmap_new( (GdkWindow*) &gdk_root_parent, bitmap.GetWidth(), bitmap.GetHeight(), 1 ); - - if (!m_bitmap) return FALSE; - - GdkGC *gc = gdk_gc_new( m_bitmap ); - - gdk_draw_bitmap( m_bitmap, gc, bitmap.GetBitmap(), 0, 0, 0, 0, bitmap.GetWidth(), bitmap.GetHeight() ); - - gdk_gc_unref( gc ); - - return TRUE; -} - -GdkBitmap *wxMask::GetBitmap() const -{ - return m_bitmap; -} - -//----------------------------------------------------------------------------- -// wxBitmap -//----------------------------------------------------------------------------- - -class wxBitmapRefData: public wxObjectRefData -{ -public: - wxBitmapRefData(); - ~wxBitmapRefData(); - - 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() const -{ - return (m_refData != NULL); -} - -int wxBitmap::GetHeight() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_height; -} - -int wxBitmap::GetWidth() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_width; -} - -int wxBitmap::GetDepth() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_bpp; -} - -wxMask *wxBitmap::GetMask() 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() 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() const -{ - wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_pixmap; -} - -GdkBitmap *wxBitmap::GetBitmap() 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 b9226adabf..0000000000 --- a/src/gtk1/bmpbuttn.cpp +++ /dev/null @@ -1,318 +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" - -#if wxUSE_BMPBUTTON - -#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,wxButton) - -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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxBitmapButton creation failed") ); - return FALSE; - } - - 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()) - { - wxSize newSize = size; - - 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(); -} - -#endif \ No newline at end of file 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 2bb626f031..0000000000 --- a/src/gtk1/button.cpp +++ /dev/null @@ -1,167 +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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxButton creation failed") ); - return FALSE; - } - - - 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); - - int x = 0; int y = 0; - wxFont new_font( parent->GetFont() ); - GetTextExtent( m_label, &x, &y, (int*)NULL, (int*)NULL, &new_font ); - - wxSize newSize = size; - if (newSize.x == -1) - { - newSize.x = 12+x; - if (newSize.x < 80) newSize.x = 80; - } - if (newSize.y == -1) - { - newSize.y = 11+y; - if (newSize.x < 26) newSize.x = 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 ); -} - -/* static */ -wxSize wxButton::GetDefaultSize() -{ - return wxSize(80,26); -} - -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 af1d2592c3..0000000000 --- a/src/gtk1/checkbox.cpp +++ /dev/null @@ -1,189 +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" - -#if wxUSE_CHECKBOX - -#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 (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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxCheckBox creation failed") ); - return FALSE; - } - - 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); - - 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; - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widgetCheckbox), - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); - - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widgetCheckbox), state ); - - gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox), - "clicked", - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); -} - -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 ); -} - -#endif diff --git a/src/gtk1/checklst.cpp b/src/gtk1/checklst.cpp deleted file mode 100644 index 6c08581ae6..0000000000 --- a/src/gtk1/checklst.cpp +++ /dev/null @@ -1,97 +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" - -#if wxUSE_CHECKLISTBOX - -#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 = wxString(label->label,*wxConv_current); - - return (str[1] == _T('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 = wxString(label->label,*wxConvCurrent); - - 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; -} - -#endif diff --git a/src/gtk1/choice.cpp b/src/gtk1/choice.cpp deleted file mode 100644 index c78d0a2e8f..0000000000 --- a/src/gtk1/choice.cpp +++ /dev/null @@ -1,423 +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" - -#if wxUSE_CHOICE - -#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 - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxChoice creation failed") ); - return FALSE; - } - - 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 == wxString(label->label,*wxConvCurrent)) - 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++; - } - - 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 wxString(label->label,*wxConvCurrent); - } - child = child->next; - count++; - } - - wxFAIL_MSG( _T("wxChoice: invalid index in GetString()") ); - - return _T(""); -} - -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 wxString(label->label,*wxConvCurrent); -} - -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 ); -} - -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::DisableEvents() -{ -/* - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - GList *child = menu_shell->children; - while (child) - { - gtk_signal_disconnect_by_func( GTK_OBJECT( child->data ), - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - - child = child->next; - } -*/ -} - -void wxChoice::EnableEvents() -{ -/* - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - GList *child = menu_shell->children; - while (child) - { - gtk_signal_connect( GTK_OBJECT( child->data ), "activate", - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - - child = child->next; - } -*/ -} - -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; - } -} - -#endif diff --git a/src/gtk1/clipbrd.cpp b/src/gtk1/clipbrd.cpp deleted file mode 100644 index 827e86ea22..0000000000 --- a/src/gtk1/clipbrd.cpp +++ /dev/null @@ -1,663 +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" - -//----------------------------------------------------------------------------- -// thread system -//----------------------------------------------------------------------------- - -#if wxUSE_THREADS -extern void wxapp_install_thread_wakeup(); -extern void wxapp_uninstall_thread_wakeup(); -#endif - -//----------------------------------------------------------------------------- -// 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) - { -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* 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; - } - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - } - - 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 - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* Tell the world we offer clipboard data */ - if (!gtk_selection_owner_set( m_clipboardWidget, - g_clipboardAtom, - GDK_CURRENT_TIME )) - { -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - return FALSE; - } - m_ownsClipboard = TRUE; - - if (!gtk_selection_owner_set( m_clipboardWidget, - GDK_SELECTION_PRIMARY, - GDK_CURRENT_TIME )) - { -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - return FALSE; - } - m_ownsPrimarySelection = TRUE; - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - - 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 da4657688f..0000000000 --- a/src/gtk1/combobox.cpp +++ /dev/null @@ -1,663 +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" - -#if wxUSE_COMBOBOX - -#include "wx/settings.h" -#include "wx/intl.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; - -//----------------------------------------------------------------------------- -// "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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxComboBox creation failed") ); - return FALSE; - } - - 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_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - 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; - } - } - - 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") ); - - DisableEvents(); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - gtk_list_select_item( GTK_LIST(list), n ); - - EnableEvents(); -} - -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::DisableEvents() -{ - GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list ); - GList *child = list->children; - while (child) - { - gtk_signal_disconnect_by_func( GTK_OBJECT(child->data), - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - child = child->next; - } -} - -void wxComboBox::EnableEvents() -{ - GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list ); - GList *child = list->children; - while (child) - { - gtk_signal_connect( GTK_OBJECT(child->data), "select", - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - child = child->next; - } -} - -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 ) ); -} - -#endif diff --git a/src/gtk1/control.cpp b/src/gtk1/control.cpp deleted file mode 100644 index 578b12cb9f..0000000000 --- a/src/gtk1/control.cpp +++ /dev/null @@ -1,60 +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() -{ - 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::SetLabel( const wxString &label ) -{ - m_label.Empty(); - 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 7a47bd6bd9..0000000000 --- a/src/gtk1/cursor.cpp +++ /dev/null @@ -1,191 +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 "wx/utils.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_DEFAULT: gdk_cur = GDK_LEFT_PTR; break; - 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; - - wxYield(); -} - -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) ); - - wxYield(); -} - -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 d98edaf9ec..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 = *wxWHITE_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 81bd578de4..0000000000 --- a/src/gtk1/dcclient.cpp +++ /dev/null @@ -1,1513 +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; - m_font = window->GetFont(); - - 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) && m_window) - 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(); - if (width <= 0) - { - // CMB: if width is non-zero scale it with the dc - 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; - } - - const static char dotted[] = {1, 1}; - const static char short_dashed[] = {2, 2}; - const static char long_dashed[] = {2, 4}; - const static char dotted_dashed[] = {3, 3, 1, 3}; - - // 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; - - GdkLineStyle lineStyle = GDK_LINE_SOLID; - switch (m_pen.GetStyle()) - { - case wxUSER_DASH: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = m_pen.GetDashCount(); - req_dash = m_pen.GetDash(); - break; - } - case wxDOT: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 2; - req_dash = dotted; - break; - } - case wxLONG_DASH: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 2; - req_dash = long_dashed; - break; - } - case wxSHORT_DASH: - { - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 2; - req_dash = short_dashed; - break; - } - case wxDOT_DASH: - { -// lineStyle = GDK_LINE_DOUBLE_DASH; - lineStyle = GDK_LINE_ON_OFF_DASH; - req_nb_dash = 4; - req_dash = dotted_dashed; - break; - } - - case wxTRANSPARENT: - case wxSTIPPLE: - case wxSOLID: - default: - { - lineStyle = GDK_LINE_SOLID; - req_dash = (wxDash*)NULL; - req_nb_dash = 0; - break; - } - } - -#if (GTK_MINOR_VERSION > 0) - if (req_dash && req_nb_dash) - { - char *real_req_dash = new char[req_nb_dash]; - if (real_req_dash) - { - for (int i = 0; i < req_nb_dash; i++) - real_req_dash[i] = req_dash[i] * width; - gdk_gc_set_dashes( m_penGC, 0, real_req_dash, req_nb_dash ); - delete[] real_req_dash; - } - else - { - // No Memory. We use non-scaled dash pattern... - gdk_gc_set_dashes( m_penGC, 0, (char*)req_dash, req_nb_dash ); - } - } -#endif - - 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() ); - - gdk_gc_set_fill( m_brushGC, GDK_SOLID ); - - if ((m_brush.GetStyle() == wxSTIPPLE) && (m_brush.GetStipple()->Ok())) - { - if (m_brush.GetStipple()->GetPixmap()) - { - gdk_gc_set_fill( m_brushGC, GDK_TILED ); - gdk_gc_set_tile( m_brushGC, m_brush.GetStipple()->GetPixmap() ); - } - else - { - gdk_gc_set_fill( m_brushGC, GDK_STIPPLED ); - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetBitmap() ); - } - } - - if (IS_HATCH(m_brush.GetStyle())) - { - gdk_gc_set_fill( m_brushGC, GDK_STIPPLED ); - 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() ); - - gdk_gc_set_fill( m_bgGC, GDK_SOLID ); - - if ((m_backgroundBrush.GetStyle() == wxSTIPPLE) && (m_backgroundBrush.GetStipple()->Ok())) - { - if (m_backgroundBrush.GetStipple()->GetPixmap()) - { - gdk_gc_set_fill( m_bgGC, GDK_TILED ); - gdk_gc_set_tile( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() ); - } - else - { - gdk_gc_set_fill( m_bgGC, GDK_STIPPLED ); - gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetBitmap() ); - } - } - - if (IS_HATCH(m_backgroundBrush.GetStyle())) - { - gdk_gc_set_fill( m_bgGC, GDK_STIPPLED ); - 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 ); -*/ - tmp_brush = m_backgroundBrush; - m_backgroundBrush = wxNullBrush; - SetBackground( *wxWHITE_BRUSH ); - m_backgroundBrush = 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 9812ec9c7b..0000000000 --- a/src/gtk1/dialog.cpp +++ /dev/null @@ -1,646 +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" -#include "wx/cursor.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 -#if (GTK_MINOR_VERSON > 0) -gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDialog *win ) -#else -gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxDialog *win ) -#endif -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - -#if (GTK_MINOR_VERSON > 0) - 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; -#else - win->m_x = event->x; - win->m_y = event->y; -#endif - - 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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxDialog creation failed") ); - return FALSE; - } - - 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(); - } - - wxBusyCursorSuspender cs; // temporarily suppress the busy cursor - - 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 df6de3a991..0000000000 --- a/src/gtk1/dnd.cpp +++ /dev/null @@ -1,925 +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; - -//----------------------------------------------------------------------------- -// thread system -//----------------------------------------------------------------------------- - -#if wxUSE_THREADS -extern void wxapp_install_thread_wakeup(); -extern void wxapp_uninstall_thread_wakeup(); -#endif - -//---------------------------------------------------------------------------- -// 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return TRUE; -} - -bool wxDropTarget::OnDrop( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return FALSE; -} - -bool wxDropTarget::OnData( long WXUNUSED(x), long 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") ); -*/ - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* this should trigger an "drag_data_received" event */ - gtk_drag_get_data( m_dragWidget, - m_dragContext, - format.GetAtom(), - m_dragTime ); - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - - 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return IsSupported( wxDF_TEXT ); -} - -bool wxTextDropTarget::OnDrop( long WXUNUSED(x), long WXUNUSED(y) ) -{ - if (IsSupported( wxDF_TEXT )) - { - RequestData( wxDF_TEXT ); - return TRUE; - } - - return FALSE; -} - -bool wxTextDropTarget::OnData( long x, long 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return IsSupported( m_id ); -} - -bool wxPrivateDropTarget::OnDrop( long WXUNUSED(x), long WXUNUSED(y) ) -{ - if (!IsSupported( m_id )) - { - RequestData( m_id ); - return FALSE; - } - - return FALSE; -} - -bool wxPrivateDropTarget::OnData( long x, long 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( long WXUNUSED(x), long WXUNUSED(y) ) -{ - return IsSupported( wxDF_FILENAME ); -} - -bool wxFileDropTarget::OnDrop( long x, long y ) -{ - if (IsSupported( wxDF_FILENAME )) - { - RequestData( wxDF_FILENAME ); - return TRUE; - } - - return FALSE; -} - -bool wxFileDropTarget::OnData( long x, long 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 ); - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - gtk_selection_data_set( selection_data, - selection_data->target, - 8, // 8-bit - buffer, - data_size ); - -#if wxUSE_THREADS - /* enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - 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 ); -// printf( "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; - -#if wxUSE_THREADS - /* disable GUI threads */ - wxapp_uninstall_thread_wakeup(); -#endif - - /* 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();; - } - -#if wxUSE_THREADS - /* re-enable GUI threads */ - wxapp_install_thread_wakeup(); -#endif - - 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 f2c2c99011..0000000000 --- a/src/gtk1/filedlg.cpp +++ /dev/null @@ -1,262 +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; - - if (!PreCreation( parent, pos, wxDefaultSize ) || - !CreateBase( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, wxDefaultValidator, _T("filedialog") )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return; - } - - 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 ), wxConvCurrent->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 ), wxConvCurrent->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); - if (!ext.IsEmpty()) - { - m_fileName += _T("."); - 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 656f947cc5..0000000000 --- a/src/gtk1/font.cpp +++ /dev/null @@ -1,1014 +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 "wx/gdicmn.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( wxConvCurrent->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( wxConvCurrent->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 78247575e7..0000000000 --- a/src/gtk1/frame.cpp +++ /dev/null @@ -1,1072 +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" -#if wxUSE_TOOLBAR -#include "wx/toolbar.h" -#endif -#if wxUSE_STATUSBAR -#include "wx/statusbr.h" -#endif -#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" -#include "gdk/gdkx.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 -#if (GTK_MINOR_VERSON > 0) -gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxFrame *win ) -#else -gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxFrame *win ) -#endif -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - -#if (GTK_MINOR_VERSON > 0) - 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; -#else - win->m_x = event->x; - win->m_y = event->y; -#endif - - 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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxFrame creation failed") ); - return FALSE; - } - - 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; - } - -#if wxUSE_STATUSBAR - /* status bar */ - if (m_frameStatusBar) (*height) -= wxSTATUS_HEIGHT; -#endif - -#if wxUSE_TOOLBAR - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - (*height) -= y; - } - else - (*height) -= wxPLACE_HOLDER; - } -#endif - - /* 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; - } - -#if wxUSE_STATUSBAR - /* status bar */ - if (m_frameStatusBar) height += wxSTATUS_HEIGHT; -#endif - -#if wxUSE_TOOLBAR - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - height += y; - } - else - height += wxPLACE_HOLDER; - } -#endif - - 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 wxUSE_TOOLBAR - 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; - } -#endif - - 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 wxUSE_STATUSBAR - 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 ); - } -#endif - - /* 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 wxUSE_TOOLBAR - if (m_frameToolBar) m_frameToolBar->OnInternalIdle(); -#endif -#if wxUSE_STATUSBAR - if (m_frameStatusBar) m_frameStatusBar->OnInternalIdle(); -#endif -} - -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 ); -} - -void wxFrame::Maximize(bool WXUNUSED(maximize)) -{ -} - -void wxFrame::Restore() -{ -} - -void wxFrame::Iconize( bool iconize ) -{ - if (iconize) - { - XIconifyWindow( GDK_WINDOW_XDISPLAY( m_widget->window ), - GDK_WINDOW_XWINDOW( m_widget->window ), - DefaultScreen( GDK_DISPLAY() ) ); - } -} - -bool wxFrame::IsIconized() const -{ - return FALSE; -} diff --git a/src/gtk1/gauge.cpp b/src/gtk1/gauge.cpp deleted file mode 100644 index 35d9ad6f37..0000000000 --- a/src/gtk1/gauge.cpp +++ /dev/null @@ -1,87 +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" - -#if wxUSE_GAUGE - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxGauge creation failed") ); - return FALSE; - } - - 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() const -{ - return m_rangeMax; -} - -int wxGauge::GetValue() const -{ - return m_gaugePos; -} - -void wxGauge::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - -#endif 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/gsockgtk.c b/src/gtk1/gsockgtk.c deleted file mode 100644 index 006a04fbf0..0000000000 --- a/src/gtk1/gsockgtk.c +++ /dev/null @@ -1,113 +0,0 @@ -/* ------------------------------------------------------------------------- - * Project: GSocket (Generic Socket) for WX - * Name: gsockgtk.c - * Purpose: GSocket: GTK part - * CVSID: $Id$ - * ------------------------------------------------------------------------- - */ -#include "wx/setup.h" - -#if wxUSE_SOCKETS - -#include -#include "gdk/gdk.h" -#include "glib.h" -#include "wx/gsocket.h" -#include "../unix/gsockunx.h" - -void _GSocket_GDK_Input(gpointer data, gint source, GdkInputCondition condition) -{ - GSocket *socket = (GSocket *)data; - - switch (condition) { - case GDK_INPUT_READ: - _GSocket_Detected_Read(socket); - break; - case GDK_INPUT_WRITE: - _GSocket_Detected_Write(socket); - break; - default: - break; - } -} - -void _GSocket_GUI_Init(GSocket *socket) -{ - int i; - gint *m_id; - - socket->m_gui_dependent = (char *)malloc(sizeof(gint)*3); - m_id = (gint *)(socket->m_gui_dependent); - - for (i=0;i<3;i++) - m_id[i] = -1; -} - -void _GSocket_GUI_Destroy(GSocket *socket) -{ - int i; - gint *m_id; - - m_id = (gint *)(socket->m_gui_dependent); - - for (i=0;i<3;i++) - if (m_id[i] == -1) - gdk_input_remove(m_id[i]); - - free(socket->m_gui_dependent); -} - -void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) -{ - GdkInputCondition flag; - int c; - gint *m_id; - - m_id = (gint *)(socket->m_gui_dependent); - - switch (event) { - case GSOCK_CONNECTION: - case GSOCK_LOST: - case GSOCK_INPUT: c = 0; flag = GDK_INPUT_READ; break; - case GSOCK_OUTPUT: c = 1;flag = GDK_INPUT_WRITE; break; - default: return; - } - - if (m_id[c] != -1) - gdk_input_remove(m_id[c]); - - m_id[c] = gdk_input_add(socket->m_fd, flag, - _GSocket_GDK_Input, (gpointer)socket); -} - -void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) -{ - int c; - gint *m_id; - - m_id = (gint *)(socket->m_gui_dependent); - - switch (event) { - case GSOCK_CONNECTION: - case GSOCK_LOST: - case GSOCK_INPUT: c = 0; break; - case GSOCK_OUTPUT: c = 1; break; - default: return; - } - - if (m_id[c] != -1) - gdk_input_remove(m_id[c]); - - m_id[c] = -1; -} - -unsigned long GSocket_GetEventID(GSocket *socket) -{ - return 0; -} - -void GSocket_DoEvent(unsigned long evt_id) -{ -} - -#endif /* wxUSE_SOCKETS */ 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 d99c53a4b5..0000000000 --- a/src/gtk1/listbox.cpp +++ /dev/null @@ -1,990 +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/listbox.h" - -#if wxUSE_LISTBOX - -#include "wx/dynarray.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" -//----------------------------------------------------------------------------- - -#if wxUSE_CHECKLISTBOX -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; - - 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 ); - - return FALSE; -} -#endif // wxUSE_CHECKLISTBOX - -//----------------------------------------------------------------------------- -// "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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxListBox creation failed") ); - return FALSE; - } - - 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),*wxConvCurrent); - 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") ); - - DisableEvents(); - - gtk_list_unselect_item( m_list, n ); - - EnableEvents(); -} - -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 = wxString(GET_REAL_LABEL(label->label),*wxConvCurrent); - - 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 = wxString(GET_REAL_LABEL(label->label),*wxConvCurrent); - - 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 = wxString(GET_REAL_LABEL(label->label),*wxConvCurrent); - - 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") ); - - DisableEvents(); - - if (select) - gtk_list_select_item( m_list, n ); - else - gtk_list_unselect_item( m_list, n ); - - EnableEvents(); -} - -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 ), wxConvCurrent->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 - -void wxListBox::DisableEvents() -{ - GList *child = m_list->children; - while (child) - { - gtk_signal_disconnect_by_func( GTK_OBJECT(child->data), - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (HasFlag(wxLB_MULTIPLE)) - gtk_signal_disconnect_by_func( GTK_OBJECT(child->data), - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - child = child->next; - } -} - -void wxListBox::EnableEvents() -{ - GList *child = m_list->children; - while (child) - { - gtk_signal_connect( GTK_OBJECT(child->data), "select", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (HasFlag(wxLB_MULTIPLE)) - gtk_signal_connect( GTK_OBJECT(child->data), "deselect", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - child = child->next; - } -} - -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; - } -} - -#endif \ No newline at end of file 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/mdi.cpp b/src/gtk1/mdi.cpp deleted file mode 100644 index 0b98599d59..0000000000 --- a/src/gtk1/mdi.cpp +++ /dev/null @@ -1,432 +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" - -#if wxUSE_MDI_ARCHITECTURE - -#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; - - if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) || - !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, _T("wxMDIClientWindow") )) - { - wxFAIL_MSG( _T("wxMDIClientWindow creation failed") ); - return FALSE; - } - - m_widget = gtk_notebook_new(); - - gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -#endif diff --git a/src/gtk1/menu.cpp b/src/gtk1/menu.cpp deleted file mode 100644 index e1d680563e..0000000000 --- a/src/gtk1/menu.cpp +++ /dev/null @@ -1,1122 +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; - m_style = style; - - if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) || - !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, _T("menubar") )) - { - wxFAIL_MSG( _T("wxMenuBar creation failed") ); - return; - } - - 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; - m_style = 0; - - if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) || - !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("menubar") )) - { - wxFAIL_MSG( _T("wxMenuBar creation failed") ); - return; - } - - 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 ); - - const wxChar *pc; - - /* GTK 1.2 wants to have "_" instead of "&" for accelerators */ - wxString str; - for ( 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 */ - wxString buf; - buf << _T('/') << str.c_str(); - - char *cbuf = new char[buf.Length()+1]; - strcpy(cbuf, buf.mbc_str()); - - GtkItemFactoryEntry entry; - entry.path = (gchar *)cbuf; // const_cast - 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 ( 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 ); - delete [] cbuf; -#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 ); - - 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) - -void -wxMenu::Init( const wxString& title, - long style, - const wxFunction func - ) -{ - m_title = title; - m_items.DeleteContents( TRUE ); - m_invokingWindow = (wxWindow *) NULL; - m_style = style; - -#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; - -#if (GTK_MINOR_VERSION > 0) - /* Tearoffs are entries, just like separators. So if we want this - menu to be a tear-off one, we just append a tearoff entry - immediately. */ - if(m_style & wxMENU_TEAROFF) - { - GtkItemFactoryEntry entry; - entry.path = "/tearoff"; - 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 ? */ - //GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, "
    /tearoff" ); - } -#endif -} - -wxMenu::~wxMenu() -{ - /* how do we delete an item-factory ? */ - gtk_widget_destroy( m_menu ); - -} - -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 ); -} - -#if (GTK_MINOR_VERSION > 0) -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; -} -#endif - -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 9da9393c89..0000000000 --- a/src/gtk1/minifram.cpp +++ /dev/null @@ -1,327 +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" - -#if wxUSE_MINIFRAME - -#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_window_raise( win->m_widget->window ); - - 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; -} - -#endif diff --git a/src/gtk1/notebook.cpp b/src/gtk1/notebook.cpp deleted file mode 100644 index 6cac1f9135..0000000000 --- a/src/gtk1/notebook.cpp +++ /dev/null @@ -1,635 +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" - -#if wxUSE_NOTEBOOK - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxNoteBook creation failed") ); - return FALSE; - } - - - 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 ); - - gtk_signal_connect( GTK_OBJECT(win->m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)win ); - - 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 = (GtkNotebookPage*) g_list_last(notebook->children)->data; - - /* 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) - -#endif \ No newline at end of file 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 00a092953f..0000000000 --- a/src/gtk1/pen.cpp +++ /dev/null @@ -1,225 +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(); - wxPenRefData( const wxPenRefData& data ); - - int m_width; - int m_style; - int m_joinStyle; - int m_capStyle; - wxColour m_colour; - int m_countDashes; - wxDash *m_dash; -}; - -wxPenRefData::wxPenRefData() -{ - m_width = 1; - m_style = wxSOLID; - m_joinStyle = wxJOIN_ROUND; - m_capStyle = wxCAP_ROUND; - m_dash = (wxDash*) NULL; - m_countDashes = 0; -} - -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; - m_countDashes = data.m_countDashes; -/* - if (data.m_dash) TODO - m_dash = new -*/ - m_dash = data.m_dash; -} - -//----------------------------------------------------------------------------- - -#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::SetDashes( int number_of_dashes, const wxDash *dash ) -{ - Unshare(); - M_PENDATA->m_countDashes = number_of_dashes; - M_PENDATA->m_dash = (wxDash *)dash; /* TODO */ -} - -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::GetDashes( wxDash **ptr ) const -{ - *ptr = (M_PENDATA ? M_PENDATA->m_dash : (wxDash*) NULL); - return (M_PENDATA ? M_PENDATA->m_countDashes : 0); -} - -int wxPen::GetDashCount() const -{ - return (M_PENDATA->m_countDashes); -} - -wxDash* wxPen::GetDash() const -{ - return (M_PENDATA->m_dash); -} - -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 dcd089fa7e..0000000000 --- a/src/gtk1/radiobox.cpp +++ /dev/null @@ -1,584 +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" - -#if wxUSE_RADIOBOX - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxRadioBox creation failed") ); - return FALSE; - } - - m_widget = gtk_frame_new( title.mbc_str() ); - - m_majorDim = majorDim; - - GtkRadioButton *m_radio = (GtkRadioButton*) NULL; - - wxString label; - GSList *radio_button_group = (GSList *) NULL; - for (int i = 0; i < n; i++) - { - if ( i != 0 ) - radio_button_group = gtk_radio_button_group( GTK_RADIO_BUTTON(m_radio) ); - - label.Empty(); - for ( const wxChar *pc = choices[i]; *pc; pc++ ) - { - if ( *pc != _T('&') ) - label += *pc; - } - - m_radio = GTK_RADIO_BUTTON( gtk_radio_button_new_with_label( radio_button_group, label.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; - - if ( m_majorDim == 0 ) - { - // avoid dividing by 0 below - wxFAIL_MSG( _T("dimension of radiobox should not be 0!") ); - - m_majorDim = 1; - } - - int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1; - - wxSize res( 0, 0 ); - - int num_of_cols = 0; - int num_of_rows = 0; - if (HasFlag(wxRA_SPECIFY_COLS)) - { - num_of_cols = m_majorDim; - num_of_rows = num_per_major; - } - else - { - num_of_cols = num_per_major; - num_of_rows = m_majorDim; - } - - if ( HasFlag(wxRA_SPECIFY_COLS) || - (HasFlag(wxRA_SPECIFY_ROWS) && (num_of_cols > 1)) ) - { - for (int j = 0; j < num_of_cols; j++) - { - y = 15; - - int max_len = 0; - wxNode *node = m_boxes.Nth( j*num_of_rows ); - for (int i1 = 0; i1< num_of_rows; 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 += 22; - - node = node->Next(); - if (!node) break; - } - - // we don't know the max_len before - - node = m_boxes.Nth( j*num_of_rows ); - for (int i2 = 0; i2< num_of_rows; 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 = 40; - } - - 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() ); - - DisableEvents(); - - gtk_toggle_button_set_state( button, 1 ); - - EnableEvents(); -} - -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::DisableEvents() -{ - wxNode *node = m_boxes.First(); - while (node) - { - gtk_signal_disconnect_by_func( GTK_OBJECT(node->Data()), - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - node = node->Next(); - } -} - -void wxRadioBox::EnableEvents() -{ - wxNode *node = m_boxes.First(); - while (node) - { - gtk_signal_connect( GTK_OBJECT(node->Data()), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - node = node->Next(); - } -} - -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; -} - -#endif diff --git a/src/gtk1/radiobut.cpp b/src/gtk1/radiobut.cpp deleted file mode 100644 index f7771f4ea6..0000000000 --- a/src/gtk1/radiobut.cpp +++ /dev/null @@ -1,189 +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" - -#if wxUSE_RADIOBOX - -#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 (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; - m_isRadioButton = TRUE; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxRadioButton creation failed") ); - return FALSE; - } - - if (HasFlag(wxRB_GROUP)) - { - /* start a new group */ - m_radioButtonGroup = (GSList*) NULL; - } - else - { - /* search backward for last group start */ - wxRadioButton *chief = (wxRadioButton*) NULL; - wxWindowList::Node *node = parent->GetChildren().GetLast(); - while (node) - { - wxWindow *child = node->GetData(); - if (child->m_isRadioButton) - { - chief = (wxRadioButton*) child; - if (child->HasFlag(wxRB_GROUP)) break; - } - node = node->GetPrevious(); - } - if (chief) - { - /* we are part of the group started by chief */ - m_radioButtonGroup = gtk_radio_button_group( GTK_RADIO_BUTTON(chief->m_widget) ); - } - else - { - /* start a new group */ - m_radioButtonGroup = (GSList*) NULL; - } - } - - m_widget = gtk_radio_button_new_with_label( m_radioButtonGroup, label.mbc_str() ); - - SetLabel(label); - - wxSize newSize = size; - 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; - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - if (val) - { - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widget), TRUE ); - } - else - { - // should give an assert - } - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); -} - -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 ); -} - -#endif 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 56cc1d6d58..0000000000 --- a/src/gtk1/scrolbar.cpp +++ /dev/null @@ -1,316 +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" - -#if wxUSE_SCROLLBAR - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxScrollBar creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif 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 5d115ba3b8..0000000000 --- a/src/gtk1/slider.cpp +++ /dev/null @@ -1,299 +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" - -#if wxUSE_SLIDER - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxSlider creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif diff --git a/src/gtk1/spinbutt.cpp b/src/gtk1/spinbutt.cpp deleted file mode 100644 index 898eb4f4b9..0000000000 --- a/src/gtk1/spinbutt.cpp +++ /dev/null @@ -1,213 +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" - -#ifdef wxUSE_SPINBTN - -#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; - - if (fabs(diff-line_step) < sensitivity) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < sensitivity) command = wxEVT_SCROLL_LINEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - - int value = (int)ceil(win->m_adjust->value); - - wxSpinEvent event( command, win->GetId()); - event.SetPosition( value ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - /* always send a thumbtrack event */ - if (command != wxEVT_SCROLL_THUMBTRACK) - { - command = wxEVT_SCROLL_THUMBTRACK; - wxSpinEvent event2( command, win->GetId()); - event2.SetPosition( value ); - event2.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event2 ); - } -} - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton,wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent); - -BEGIN_EVENT_TABLE(wxSpinButton, wxControl) - EVT_SIZE(wxSpinButton::OnSize) -END_EVENT_TABLE() - -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; - - if (!PreCreation( parent, pos, new_size ) || - !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif diff --git a/src/gtk1/statbmp.cpp b/src/gtk1/statbmp.cpp deleted file mode 100644 index f9e6700b8f..0000000000 --- a/src/gtk1/statbmp.cpp +++ /dev/null @@ -1,123 +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" - -#if wxUSE_STATBMP - -#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 ); -} - -void wxStaticBitmap::CreatePixmapWidget() -{ - wxCHECK_RET( m_bitmap.Ok(), _T("should only be called if we have a bitmap") ); - - GdkBitmap *mask = (GdkBitmap *) NULL; - if ( m_bitmap.GetMask() ) - mask = m_bitmap.GetMask()->GetBitmap(); - m_widget = gtk_pixmap_new( m_bitmap.GetPixmap(), mask ); - - /* insert GTK representation */ - (*m_parent->m_insertCallback)(m_parent, this); - - gtk_widget_show( m_widget ); - - PostCreation(); -} - -bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return FALSE; - } - - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - wxSize newSize = size; - - 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" ); - - PostCreation(); - } - - m_parent->DoAddChild( this ); - - Show( TRUE ); - - return TRUE; -} - -void wxStaticBitmap::SetBitmap( const wxBitmap &bitmap ) -{ - bool hasWidget = m_bitmap.Ok(); - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - if (!hasWidget) - { - gtk_widget_destroy( m_widget ); - - /* recreate m_widget because we've created a label - and not a bitmap above */ - CreatePixmapWidget(); - } - else - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - gtk_pixmap_set( GTK_PIXMAP(m_widget), m_bitmap.GetPixmap(), mask ); - } - - SetSize( m_bitmap.GetWidth(), m_bitmap.GetHeight() ); - } -} - -#endif diff --git a/src/gtk1/statbox.cpp b/src/gtk1/statbox.cpp deleted file mode 100644 index d39006cda7..0000000000 --- a/src/gtk1/statbox.cpp +++ /dev/null @@ -1,83 +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" - -#if wxUSE_STATBOX - -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxStaticBox creation failed") ); - return FALSE; - } - - 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 ); -} - -#endif diff --git a/src/gtk1/statline.cpp b/src/gtk1/statline.cpp deleted file mode 100644 index cd67c8a642..0000000000 --- a/src/gtk1/statline.cpp +++ /dev/null @@ -1,81 +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" - -#if wxUSE_STATLINE - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl) - -wxStaticLine::wxStaticLine() -{ -} - -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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxStaticLine creation failed") ); - return FALSE; - } - - if ( IsVertical() ) - { - m_widget = gtk_vseparator_new(); - if (size.x == -1) - { - wxSize new_size( size ); - new_size.x = 4; - SetSize( new_size ); - } - } - else - { - m_widget = gtk_hseparator_new(); - if (size.y == -1) - { - wxSize new_size( size ); - new_size.y = 4; - SetSize( new_size ); - } - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -#endif diff --git a/src/gtk1/stattext.cpp b/src/gtk1/stattext.cpp deleted file mode 100644 index af8c6a1063..0000000000 --- a/src/gtk1/stattext.cpp +++ /dev/null @@ -1,130 +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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxXX creation failed") ); - return FALSE; - } - - // 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 ); - - wxSize newSize = size; - 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 0f90b72a74..0000000000 --- a/src/gtk1/tbargtk.cpp +++ /dev/null @@ -1,601 +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" - -#if wxUSE_TOOLBAR - -#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; - -#if (GTK_MINOR_VERSION == 0) - /* we grey-out the tip text of disabled tool in GTK 1.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 ); - - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); - } - } - 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 ); - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); - } - } -#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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxToolBar creation failed") ); - return FALSE; - } - - 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 ); -#if (GTK_MINOR_VERSION > 0) - gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE ); -#endif - - 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; - -#if (GTK_MINOR_VERSION > 0) - /* we don't disable the tools for GTK 1.0 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 ); -#endif - - 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) - { - if ((tool->m_item) && (GTK_IS_TOGGLE_BUTTON(tool->m_item))) - { - tool->m_toggleState = toggle; - - 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 ); - } - - gtk_signal_disconnect_by_func( GTK_OBJECT(tool->m_item), - GTK_SIGNAL_FUNC(gtk_toolbar_callback), (gpointer*)tool ); - - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(tool->m_item), toggle ); - - gtk_signal_connect( GTK_OBJECT(tool->m_item), "clicked", - GTK_SIGNAL_FUNC(gtk_toolbar_callback), (gpointer*)tool ); - } - - 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(); - } -} - -#endif diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp deleted file mode 100644 index 04809dc193..0000000000 --- a/src/gtk1/textctrl.cpp +++ /dev/null @@ -1,924 +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() - -wxTextCtrl::wxTextCtrl() -{ - m_modified = FALSE; -} - -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 ); -} - -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; - - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, validator, name )) - { - wxFAIL_MSG( _T("wxTextCtrl creation failed") ); - return FALSE; - } - - - m_vScrollbarVisible = FALSE; - - bool multi_line = (style & wxTE_MULTILINE) != 0; - if (multi_line) - { -#if (GTK_MINOR_VERSION > 2) - /* a multi-line edit control: create a vertical scrollbar by default and - horizontal if requested */ - bool bHasHScrollbar = (style & wxHSCROLL) != 0; -#else - bool bHasHScrollbar = FALSE; -#endif - - /* 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 ); - -#if (GTK_MINOR_VERSION > 2) - /* 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); - - /* 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,*wxConvCurrent); - g_free( text ); - } - else - { - tmp = wxString(gtk_entry_get_text( GTK_ENTRY(m_text) ),*wxConvCurrent); - } - return tmp; -} - -void wxTextCtrl::SetValue( const wxString &value ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - 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() ); - } -} - -void wxTextCtrl::WriteText( const wxString &text ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (text.IsEmpty()) 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 (text.IsEmpty()) return; - - if (m_windowStyle & wxTE_MULTILINE) - { - bool hasSpecialAttributes = m_font.Ok() || - m_foregroundColour.Ok() || - m_backgroundColour.Ok(); - if ( hasSpecialAttributes ) - { - gtk_text_insert( GTK_TEXT(m_text), - m_font.GetInternalFont(), - m_foregroundColour.GetColor(), - m_backgroundColour.GetColor(), - text.mbc_str(), text.length()); - - } - else - { - /* 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() ); - } -} - -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") ); -} - -bool 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::DiscardEdits() -{ - m_modified = FALSE; -} - -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.IsEmpty()) - { - 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; -} - -bool wxTextCtrl::IsModified() const -{ - return m_modified; -} - -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(); -} - -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); -} - -// the font will change for subsequent text insertiongs -bool wxTextCtrl::SetFont( const wxFont &font ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - if ( !wxWindowBase::SetFont(font) ) - { - // font didn't change, nothing to do - return FALSE; - } - - if ( m_windowStyle & wxTE_MULTILINE ) - { - // for compatibility with other ports: the font is a global controls - // characteristic, so change the font globally - wxString value = GetValue(); - if ( !value.IsEmpty() ) - { - Clear(); - - AppendText(value); - } - } - - return TRUE; -} - -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 a27905231d..0000000000 --- a/src/gtk1/timer.cpp +++ /dev/null @@ -1,128 +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; - -#if (GTK_MINOR_VERSION > 0) - /* when getting called from GDK's timer handler we - are no longer within GDK's grab on the GUI - thread so we must lock it here ourselves */ - GDK_THREADS_ENTER (); -#endif - - timer->Notify(); - -#if (GTK_MINOR_VERSION > 0) - /* release lock again */ - GDK_THREADS_LEAVE (); -#endif - - 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 403880e328..0000000000 --- a/src/gtk1/tooltip.cpp +++ /dev/null @@ -1,108 +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 5f563ac295..0000000000 --- a/src/gtk1/utilsgtk.cpp +++ /dev/null @@ -1,125 +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 "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gtk/gtkfeatures.h" -#include "gdk/gdkx.h" - -#ifdef HAVE_X11_XKBLIB_H - /* under HP-UX and Solaris 2.6, at least, XKBlib.h defines structures with - * field named "explicit" - which is, of course, an error for a C++ - * compiler. To be on the safe side, just redefine it everywhere. */ - #define explicit __wx_explicit - - #include "X11/XKBlib.h" - - #undef explicit -#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 6082cd387e..0000000000 --- a/src/gtk1/utilsres.cpp +++ /dev/null @@ -1,368 +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 "wx/log.h" -#include "wx/gdicmn.h" - -#include -#include -#include -//#ifdef __SVR4__ -//#include -//#endif - -#include "gdk/gdkx.h" // GDK_DISPLAY -#include "gdk/gdkprivate.h" // gdk_progclass - -#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 _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(wxConvCurrent->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(wxConvCurrent->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, wxConvCurrent->cMB2WX(hostbuf)); -#endif - } - if ((homeDB = XrmGetFileDatabase(wxConvCurrent->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, wxConvCurrent->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(wxConvCurrent->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(wxConvCurrent->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 b100588180..0000000000 --- a/src/gtk1/wave.cpp +++ /dev/null @@ -1,228 +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 a9552bd63b..0000000000 --- a/src/gtk1/win_gtk.c +++ /dev/null @@ -1,728 +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" -#include "gtk/gtkscrolledwindow.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) && GTK_IS_NOTEBOOK(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; - - if (GTK_WIDGET_VISIBLE (child->widget)) - { -/* please look at the text in wxWindow::DoSetSize() on why the - test GTK_WIDGET_REALIZED() has to be here */ -/* 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 fa872fc36f..0000000000 --- a/src/gtk1/window.cpp +++ /dev/null @@ -1,3228 +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; -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) -/* these functions are copied verbatim from GTK 1.2 */ -static void -gdkx_XConvertCase (KeySym symbol, - KeySym *lower, - KeySym *upper) -{ - register KeySym sym = symbol; - - g_return_if_fail (lower != NULL); - g_return_if_fail (upper != NULL); - - *lower = sym; - *upper = sym; - - switch (sym >> 8) - { -#if defined (GDK_A) && defined (GDK_Ooblique) - case 0: /* Latin 1 */ - if ((sym >= GDK_A) && (sym <= GDK_Z)) - *lower += (GDK_a - GDK_A); - else if ((sym >= GDK_a) && (sym <= GDK_z)) - *upper -= (GDK_a - GDK_A); - else if ((sym >= GDK_Agrave) && (sym <= GDK_Odiaeresis)) - *lower += (GDK_agrave - GDK_Agrave); - else if ((sym >= GDK_agrave) && (sym <= GDK_odiaeresis)) - *upper -= (GDK_agrave - GDK_Agrave); - else if ((sym >= GDK_Ooblique) && (sym <= GDK_Thorn)) - *lower += (GDK_oslash - GDK_Ooblique); - else if ((sym >= GDK_oslash) && (sym <= GDK_thorn)) - *upper -= (GDK_oslash - GDK_Ooblique); - break; -#endif /* LATIN1 */ - -#if defined (GDK_Aogonek) && defined (GDK_tcedilla) - case 1: /* Latin 2 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym == GDK_Aogonek) - *lower = GDK_aogonek; - else if (sym >= GDK_Lstroke && sym <= GDK_Sacute) - *lower += (GDK_lstroke - GDK_Lstroke); - else if (sym >= GDK_Scaron && sym <= GDK_Zacute) - *lower += (GDK_scaron - GDK_Scaron); - else if (sym >= GDK_Zcaron && sym <= GDK_Zabovedot) - *lower += (GDK_zcaron - GDK_Zcaron); - else if (sym == GDK_aogonek) - *upper = GDK_Aogonek; - else if (sym >= GDK_lstroke && sym <= GDK_sacute) - *upper -= (GDK_lstroke - GDK_Lstroke); - else if (sym >= GDK_scaron && sym <= GDK_zacute) - *upper -= (GDK_scaron - GDK_Scaron); - else if (sym >= GDK_zcaron && sym <= GDK_zabovedot) - *upper -= (GDK_zcaron - GDK_Zcaron); - else if (sym >= GDK_Racute && sym <= GDK_Tcedilla) - *lower += (GDK_racute - GDK_Racute); - else if (sym >= GDK_racute && sym <= GDK_tcedilla) - *upper -= (GDK_racute - GDK_Racute); - break; -#endif /* LATIN2 */ - -#if defined (GDK_Hstroke) && defined (GDK_Cabovedot) - case 2: /* Latin 3 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Hstroke && sym <= GDK_Hcircumflex) - *lower += (GDK_hstroke - GDK_Hstroke); - else if (sym >= GDK_Gbreve && sym <= GDK_Jcircumflex) - *lower += (GDK_gbreve - GDK_Gbreve); - else if (sym >= GDK_hstroke && sym <= GDK_hcircumflex) - *upper -= (GDK_hstroke - GDK_Hstroke); - else if (sym >= GDK_gbreve && sym <= GDK_jcircumflex) - *upper -= (GDK_gbreve - GDK_Gbreve); - else if (sym >= GDK_Cabovedot && sym <= GDK_Scircumflex) - *lower += (GDK_cabovedot - GDK_Cabovedot); - else if (sym >= GDK_cabovedot && sym <= GDK_scircumflex) - *upper -= (GDK_cabovedot - GDK_Cabovedot); - break; -#endif /* LATIN3 */ - -#if defined (GDK_Rcedilla) && defined (GDK_Amacron) - case 3: /* Latin 4 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Rcedilla && sym <= GDK_Tslash) - *lower += (GDK_rcedilla - GDK_Rcedilla); - else if (sym >= GDK_rcedilla && sym <= GDK_tslash) - *upper -= (GDK_rcedilla - GDK_Rcedilla); - else if (sym == GDK_ENG) - *lower = GDK_eng; - else if (sym == GDK_eng) - *upper = GDK_ENG; - else if (sym >= GDK_Amacron && sym <= GDK_Umacron) - *lower += (GDK_amacron - GDK_Amacron); - else if (sym >= GDK_amacron && sym <= GDK_umacron) - *upper -= (GDK_amacron - GDK_Amacron); - break; -#endif /* LATIN4 */ - -#if defined (GDK_Serbian_DJE) && defined (GDK_Cyrillic_yu) - case 6: /* Cyrillic */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Serbian_DJE && sym <= GDK_Serbian_DZE) - *lower -= (GDK_Serbian_DJE - GDK_Serbian_dje); - else if (sym >= GDK_Serbian_dje && sym <= GDK_Serbian_dze) - *upper += (GDK_Serbian_DJE - GDK_Serbian_dje); - else if (sym >= GDK_Cyrillic_YU && sym <= GDK_Cyrillic_HARDSIGN) - *lower -= (GDK_Cyrillic_YU - GDK_Cyrillic_yu); - else if (sym >= GDK_Cyrillic_yu && sym <= GDK_Cyrillic_hardsign) - *upper += (GDK_Cyrillic_YU - GDK_Cyrillic_yu); - break; -#endif /* CYRILLIC */ - -#if defined (GDK_Greek_ALPHAaccent) && defined (GDK_Greek_finalsmallsigma) - case 7: /* Greek */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= GDK_Greek_ALPHAaccent && sym <= GDK_Greek_OMEGAaccent) - *lower += (GDK_Greek_alphaaccent - GDK_Greek_ALPHAaccent); - else if (sym >= GDK_Greek_alphaaccent && sym <= GDK_Greek_omegaaccent && - sym != GDK_Greek_iotaaccentdieresis && - sym != GDK_Greek_upsilonaccentdieresis) - *upper -= (GDK_Greek_alphaaccent - GDK_Greek_ALPHAaccent); - else if (sym >= GDK_Greek_ALPHA && sym <= GDK_Greek_OMEGA) - *lower += (GDK_Greek_alpha - GDK_Greek_ALPHA); - else if (sym >= GDK_Greek_alpha && sym <= GDK_Greek_omega && - sym != GDK_Greek_finalsmallsigma) - *upper -= (GDK_Greek_alpha - GDK_Greek_ALPHA); - break; -#endif /* GREEK */ - } -} - -static guint -gdk_keyval_to_upper (guint keyval) -{ - if (keyval) - { - KeySym lower_val = 0; - KeySym upper_val = 0; - - gdkx_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; - - if (gdk_event->window != win->m_wxwindow->window) - 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; - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - -/* - wxPrintf( "OnExpose from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( " %d %d %d %d\n", (int)gdk_event->area.x, - (int)gdk_event->area.y, - (int)gdk_event->area.width, - (int)gdk_event->area.height ); -*/ - - 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 ); - -/* - wxPrintf( "OnDraw from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - wxPrintf( " %d %d %d %d\n", (int)rect->x, - (int)rect->y, - (int)rect->width, - (int)rect->height ); -*/ - - 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 ); - -#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 - /* wxMSW doesn't send char events with Alt pressed */ - /* Only send wxEVT_CHAR event if not processed yet. Thus, ALT-x - will only be sent if it is not a menu accelerator. */ - if ((key_code != 0) && ! ret ) - { - 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 )); - } - - - /* 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_isRadioButton = 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 ) -{ - if (!PreCreation( parent, pos, size ) || - !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) - { - wxFAIL_MSG( _T("wxWindow creation failed") ); - return FALSE; - } - - 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; - } -} - -bool wxWindow::PreCreation( wxWindow *parent, const wxPoint &pos, const wxSize &size ) -{ - wxCHECK_MSG( !m_needParent || parent, FALSE, _T("Need complete parent.") ); - - /* this turns -1 into 20 so that a minimal window is - visible even although -1,-1 has been given as the - size of the window. the same trick is used in other - ports and should make debugging easier */ - m_width = WidthDefault(size.x); - m_height = HeightDefault(size.y); - - m_x = (int)pos.x; - m_y = (int)pos.y; - - /* some reasonable defaults */ - if (!parent) - { - 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; - } - } - - return TRUE; -} - -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() -{ - wxCursor cursor = m_cursor; - if (g_globalCursor.Ok()) cursor = g_globalCursor; - - if (cursor.Ok() && m_currentGdkCursor != cursor) - { - m_currentGdkCursor = cursor; - - if (m_wxwindow) - { - GdkWindow *window = m_wxwindow->window; - if (window) - gdk_window_set_cursor( window, cursor.GetCursor() ); - - if (!g_globalCursor.Ok()) - cursor = *wxSTANDARD_CURSOR; - - window = m_widget->window; - if (window) - gdk_window_set_cursor( window, cursor.GetCursor() ); - } - else - { - GdkWindow *window = m_widget->window; - if (window) - gdk_window_set_cursor( window, cursor.GetCursor() ); - } - } - - 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 (GTK_MINOR_VERSION == 0) - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - if (HasScrolling()) - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } - } -#else - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - /* when using GTK 1.2 we set the border size to 2 */ - dw += 2 * 2; - dh += 2 * 2; - } -#endif - - if (HasScrolling()) - { -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - 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 (GTK_MINOR_VERSION == 0) - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - if (HasScrolling()) - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } - } -#else - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - /* when using GTK 1.2 we set the border size to 2 */ - dw += 2 * 2; - dh += 2 * 2; - } -#endif - if (HasScrolling()) - { -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - - 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), FALSE, _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(), wxConvCurrent->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() -{ -} - -//----------------------------------------------------------------------------- -// Pop-up menu stuff -//----------------------------------------------------------------------------- - -static void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting ) -{ - *is_waiting = FALSE; -} - -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::DoPopupMenu( 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; - - bool is_waiting = TRUE; - - gtk_signal_connect( GTK_OBJECT(menu->m_menu), "hide", - GTK_SIGNAL_FUNC(gtk_pop_hide_callback), (gpointer)&is_waiting ); - - 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 - ); - - while (is_waiting) - { - while (gtk_events_pending()) - gtk_main_iteration(); - } - - 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/html/bitmaps/back.xpm b/src/html/bitmaps/back.xpm deleted file mode 100644 index fbb4378bf6..0000000000 --- a/src/html/bitmaps/back.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char * back_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"+ c #C0E4CB", -"@ c #77C490", -"# c #808080", -" ", -" ", -" . ", -" .. ", -" .+. ", -" .++........ ", -" .++@+++++++. ", -" .++@@@@@@@@@. ", -" .+@@@@@@@@@. ", -" #.+@........ ", -" #.+.####### ", -" #..# ", -" #.# ", -" ## ", -" # ", -" "}; diff --git a/src/html/bitmaps/book.xpm b/src/html/bitmaps/book.xpm deleted file mode 100644 index 3146053f85..0000000000 --- a/src/html/bitmaps/book.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -static char * book_xpm[] = { -"16 16 21 1", -" c None", -". c #007F7F", -"+ c #660000", -"@ c #CC0000", -"# c #E50000", -"$ c #FF0000", -"% c #F20000", -"& c #D80000", -"* c #720000", -"= c #7F0000", -"- c #BFBFBF", -"; c #E57F7F", -"> c #7F7F7F", -", c #FFFFFF", -"' c #F2BFBF", -") c #723F3F", -"! c #A5A5A5", -"~ c #E5E5E5", -"{ c #B2B2B2", -"] c #003F3F", -"^ c #000000", -" ", -" ......... ", -" +@#$$$$$%&+ ", -" +##$$$$$$$* ", -" +##$$$$$$$=- ", -" +##$$$$$$$=;> ", -" +##$$$$$$$=;,. ", -" +##$$$$$$$=;,. ", -" +##$$$$$$$=''. ", -" +##$$$$$$$=,;. ", -" +##$$$$$$%+,;. ", -" +&++++++++),;. ", -" ++!~~~~~~~~~,. ", -" ++!~~~~~~~~~{. ", -" ]^^^^^^^^^^^ ", -" "}; diff --git a/src/html/bitmaps/folder.xpm b/src/html/bitmaps/folder.xpm deleted file mode 100644 index a7fbf85369..0000000000 --- a/src/html/bitmaps/folder.xpm +++ /dev/null @@ -1,50 +0,0 @@ -/* XPM */ -static char * folder_xpm[] = { -"16 16 31 1", -" c None", -". c #000000", -"+ c #7F6E54", -"@ c #555555", -"# c #7F6140", -"$ c #FFCF94", -"% c #FFFFFF", -"& c #D5D5D5", -"* c #4B4336", -"= c #FFDCA8", -"- c #BFA57E", -"; c #EFEFEF", -"> c #DFDFDF", -", c #B8B8B9", -"' c #6E6E6F", -") c #BF7E42", -"! c #FFA858", -"~ c #FFC280", -"{ c #CFCFCF", -"] c #55402C", -"^ c #3C2C2C", -"/ c #7F542C", -"( c #C0C0C0", -"_ c #B0B0B2", -": c #969698", -"< c #A8A8AB", -"[ c #A0A0A4", -"} c #2C2C2C", -"| c #7C7C7E", -"1 c #161616", -"2 c #3F2A16", -" .+. ", -".@#$+. ", -".%&@#$+.+* ", -".%%%&@#$==-. ", -".%%;>,')!~$+ ", -".%;>{{,']^/~. ", -".;>{{((,,_:]/ ", -".>{{((,,_<[}/ ", -".{{((,,_<[[^/ ", -"._((,,_<[[[}/ ", -" }|_,_<[[[[}/ ", -" .}|<[[[[[}/ ", -" .}|[[[[}/ ", -" .}|[[}/.. ", -" .}|}/.. ", -" .12. "}; diff --git a/src/html/bitmaps/forward.xpm b/src/html/bitmaps/forward.xpm deleted file mode 100644 index 6e3de64511..0000000000 --- a/src/html/bitmaps/forward.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char * forward_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"+ c #C0E4CB", -"@ c #77C490", -"# c #808080", -" ", -" ", -" . ", -" .. ", -" .+. ", -" ........++. ", -" .+++++++@++. ", -" .@@@@@@@@@++. ", -" .@@@@@@@@@+. ", -" ........@+.# ", -" #######.+.# ", -" #..# ", -" #.# ", -" ## ", -" # ", -" "}; diff --git a/src/html/bitmaps/page.xpm b/src/html/bitmaps/page.xpm deleted file mode 100644 index f8bf0c0057..0000000000 --- a/src/html/bitmaps/page.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char * page_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 3 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #ffffff", -/* pixels */ -" ", -" ........ ", -" .++++++.. ", -" .+.+.++.+. ", -" .++++++.... ", -" .+.+.+++++. ", -" .+++++++++. ", -" .+.+.+.+.+. ", -" .+++++++++. ", -" .+.+.+.+.+. ", -" .+++++++++. ", -" .+.+.+.+.+. ", -" .+++++++++. ", -" ........... ", -" ", -" "}; diff --git a/src/html/bitmaps/panel.xpm b/src/html/bitmaps/panel.xpm deleted file mode 100644 index 42798ebbe3..0000000000 --- a/src/html/bitmaps/panel.xpm +++ /dev/null @@ -1,122 +0,0 @@ -/* XPM */ -static char * panel_xpm[] = { -"16 15 104 2", -" c None", -". c #7F7C7C", -"+ c #8A8E8E", -"@ c #D03232", -"# c #BA7E7E", -"$ c #555858", -"% c #5F5F5F", -"& c #656565", -"* c #5D5D5D", -"= c #939696", -"- c #FFFFFF", -"; c #F4C8C8", -"> c #DCDCF4", -", c #D3D3D3", -"' c #4E5151", -") c #7E7E7E", -"! c #9E9E9E", -"~ c #A7A7A7", -"{ c #5C5C5C", -"] c #9B9E9E", -"^ c #A3A3FF", -"/ c #BBBBFF", -"( c #DBDBDB", -"_ c #808B8B", -": c #5E5E5E", -"< c #858571", -"[ c #AEAE4B", -"} c #90902D", -"| c #8B8B8B", -"1 c #000027", -"2 c #D7D7FF", -"3 c #C3C3FF", -"4 c #A7A7FF", -"5 c #9B9BFF", -"6 c #D7D7D7", -"7 c #717474", -"8 c #727D7D", -"9 c #575721", -"0 c #BFBF7F", -"a c #DFDF8F", -"b c #DFDF60", -"c c #7F7F3B", -"d c #2F2F7F", -"e c #AFAFF3", -"f c #E7E7E7", -"g c #9797E7", -"h c #8787F3", -"i c #AFAFC3", -"j c #4F4F37", -"k c #8E9898", -"l c #484824", -"m c #4D4D0B", -"n c #8C8C8C", -"o c #7D7D36", -"p c #74742D", -"q c #535353", -"r c #636363", -"s c #5C5C4C", -"t c #818149", -"u c #78784C", -"v c #787840", -"w c #7E7E40", -"x c #787E46", -"y c #757F7F", -"z c #616121", -"A c #87874B", -"B c #C8C88C", -"C c #F6F6B6", -"D c #D4D498", -"E c #6C6C30", -"F c #424242", -"G c #9D9D23", -"H c #FDFD7B", -"I c #FFFF7F", -"J c #7F7F3F", -"K c #737C7C", -"L c #808038", -"M c #6B6B5F", -"N c #797935", -"O c #6E6E62", -"P c #8B8B43", -"Q c #8D8D8D", -"R c #1C4B4B", -"S c #959523", -"T c #F9F973", -"U c #7F7F43", -"V c #737D7D", -"W c #939343", -"X c #4FD3D3", -"Y c #185353", -"Z c #8D8D27", -"` c #F5F56B", -" . c #9B9B43", -".. c #57CFCF", -"+. c #145B5B", -"@. c #85851E", -"#. c #A3A343", -"$. c #3BA7A7", -"%. c #636300", -"&. c #CFCF67", -"*. c #F3F367", -"=. c #909A9A", -"-. c #4B4B07", -";. c #434325", -" . ", -" + @ # ", -" $ % & * = - ; > , ", -" ' ) ! ~ ~ { ] - - ^ / - ( ", -"_ : < [ [ } | 1 2 - 3 / 4 5 6 7 ", -"8 9 0 a b c 3 d e f f g h i j ", -"k l m n o p q r s t t t u v w x ", -"y z A B C D E F G H I I I I I J ", -"K I L M N O P Q R S T I I I I U ", -"V I I I I I I W X Y Z ` I I I U ", -"8 I I I I I I I ...+.@.I I I U ", -"K I I I I I I I I #.$.%.I I I U ", -"8 I I I I I I I I I &.*.I I I U ", -"V I I I I I I I I I I I I I I U ", -"=.-.-.-.-.-.-.-.-.-.-.-.-.-.-.;."}; diff --git a/src/html/htmlcell.cpp b/src/html/htmlcell.cpp deleted file mode 100644 index 1019e1367f..0000000000 --- a/src/html/htmlcell.cpp +++ /dev/null @@ -1,500 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlcell.cpp -// Purpose: wxHtmlCell - basic element of HTML output -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "htmlcell.h" -#endif - -#include "wx/wxprec.h" - -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include "wx/wx.h" -#endif - -#include "wx/html/htmlcell.h" -#include "wx/html/htmlwin.h" -#include - - -//----------------------------------------------------------------------------- -// wxHtmlCell -//----------------------------------------------------------------------------- - - -void wxHtmlCell::OnMouseClick(wxWindow *parent, int x, int y, bool left, bool middle, bool right) -{ - wxString lnk = GetLink(x, y); - if (lnk != wxEmptyString) - ((wxHtmlWindow*)parent) -> OnLinkClicked(lnk); - // note : this overcasting is legal because parent is *always* wxHtmlWindow -} - - - -//----------------------------------------------------------------------------- -// wxHtmlWordCell -//----------------------------------------------------------------------------- - -wxHtmlWordCell::wxHtmlWordCell(const wxString& word, wxDC& dc) : wxHtmlCell() -{ - m_Word = word; - m_Word.Replace(" ", " ", TRUE); - m_Word.Replace(""", "\"", TRUE); - m_Word.Replace("<", "<", TRUE); - m_Word.Replace(">", ">", TRUE); - m_Word.Replace("&", "&", TRUE); - dc.GetTextExtent(m_Word, &m_Width, &m_Height, &m_Descent); -} - - - -void wxHtmlWordCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - dc.DrawText(m_Word, x + m_PosX, y + m_PosY); - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - - - -//----------------------------------------------------------------------------- -// wxHtmlContainerCell -//----------------------------------------------------------------------------- - - -wxHtmlContainerCell::wxHtmlContainerCell(wxHtmlContainerCell *parent) : wxHtmlCell() -{ - m_Cells = m_LastCell = NULL; - m_Parent = parent; - if (m_Parent) m_Parent -> InsertCell(this); - m_AlignHor = HTML_ALIGN_LEFT; - m_AlignVer = HTML_ALIGN_BOTTOM; - m_IndentLeft = m_IndentRight = m_IndentTop = m_IndentBottom = 0; - m_WidthFloat = 100; m_WidthFloatUnits = HTML_UNITS_PERCENT; - m_UseBkColour = FALSE; - m_UseBorder = FALSE; - m_MinHeight = m_MaxLineWidth = 0; - m_MinHeightAlign = HTML_ALIGN_TOP; -} - - - -void wxHtmlContainerCell::SetIndent(int i, int what, int units) -{ - int val = (units == HTML_UNITS_PIXELS) ? i : -i; - if (what & HTML_INDENT_LEFT) m_IndentLeft = val; - if (what & HTML_INDENT_RIGHT) m_IndentRight = val; - if (what & HTML_INDENT_TOP) m_IndentTop = val; - if (what & HTML_INDENT_BOTTOM) m_IndentBottom = val; -} - - - -int wxHtmlContainerCell::GetIndent(int ind) const -{ - if (ind & HTML_INDENT_LEFT) return m_IndentLeft; - else if (ind & HTML_INDENT_RIGHT) return m_IndentRight; - else if (ind & HTML_INDENT_TOP) return m_IndentTop; - else if (ind & HTML_INDENT_BOTTOM) return m_IndentBottom; - else return -1; /* BUG! Should not be called... */ -} - - - - -int wxHtmlContainerCell::GetIndentUnits(int ind) const -{ - bool p = FALSE; - if (ind & HTML_INDENT_LEFT) p = m_IndentLeft < 0; - else if (ind & HTML_INDENT_RIGHT) p = m_IndentRight < 0; - else if (ind & HTML_INDENT_TOP) p = m_IndentTop < 0; - else if (ind & HTML_INDENT_BOTTOM) p = m_IndentBottom < 0; - if (p) return HTML_UNITS_PERCENT; - else return HTML_UNITS_PIXELS; -} - - - -void wxHtmlContainerCell::Layout(int w) -{ - wxHtmlCell *cell = m_Cells, *line = m_Cells; - long xpos = 0, ypos = m_IndentTop; - int xdelta = 0, ybasicpos = 0, ydiff; - int s_width, s_indent; - int ysizeup = 0, ysizedown = 0; - - /* - - WIDTH ADJUSTING : - - */ - - if (m_WidthFloatUnits == HTML_UNITS_PERCENT) { - if (m_WidthFloat < 0) m_Width = (100 + m_WidthFloat) * w / 100; - else m_Width = m_WidthFloat * w / 100; - } - else { - if (m_WidthFloat < 0) m_Width = w + m_WidthFloat; - else m_Width = m_WidthFloat; - } - - if (m_Cells) { - int l = (m_IndentLeft < 0) ? (-m_IndentLeft * m_Width / 100) : m_IndentLeft; - int r = (m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight; - m_Cells -> Layout(m_Width - (l + r)); - } - - /* - - LAYOUTING : - - */ - - // adjust indentation: - s_indent = (m_IndentLeft < 0) ? (-m_IndentLeft * m_Width / 100) : m_IndentLeft; - s_width = m_Width - s_indent - ((m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight); - - m_MaxLineWidth = 0; - - // my own layouting: - while (cell != NULL) { - switch (m_AlignVer) { - case HTML_ALIGN_TOP : ybasicpos = 0; break; - case HTML_ALIGN_BOTTOM : ybasicpos = - cell -> GetHeight(); break; - case HTML_ALIGN_CENTER : ybasicpos = - cell -> GetHeight() / 2; break; - } - ydiff = cell -> GetHeight() + ybasicpos; - - if (cell -> GetDescent() + ydiff > ysizedown) ysizedown = cell -> GetDescent() + ydiff; - if (ybasicpos + cell -> GetDescent() < -ysizeup) ysizeup = - (ybasicpos + cell -> GetDescent()); - - cell -> SetPos(xpos, ybasicpos + cell -> GetDescent()); - xpos += cell -> GetWidth(); - cell = cell -> GetNext(); - - // force new line if occured: - if ((cell == NULL) || (xpos + cell -> GetWidth() > s_width)) { - if (xpos > m_MaxLineWidth) m_MaxLineWidth = xpos; - if (ysizeup < 0) ysizeup = 0; - if (ysizedown < 0) ysizedown = 0; - switch (m_AlignHor) { - case HTML_ALIGN_LEFT : xdelta = 0; break; - case HTML_ALIGN_RIGHT : xdelta = 0 + (s_width - xpos); break; - case HTML_ALIGN_CENTER : xdelta = 0 + (s_width - xpos) / 2; break; - } - if (xdelta < 0) xdelta = 0; - xdelta += s_indent; - - ypos += ysizeup; - while (line != cell) { - line -> SetPos(line -> GetPosX() + xdelta, ypos + line -> GetPosY()); - line = line -> GetNext(); - } - - ypos += ysizedown; - xpos = 0; - ysizeup = ysizedown = 0; - line = cell; - } - } - - // setup height & width, depending on container layout: - m_Height = ypos + (ysizedown + ysizeup) + m_IndentBottom; - - if (m_Height < m_MinHeight) { - if (m_MinHeightAlign != HTML_ALIGN_TOP) { - int diff = m_MinHeight - m_Height; - if (m_MinHeightAlign == HTML_ALIGN_CENTER) diff /= 2; - cell = m_Cells; - while (cell) { - cell -> SetPos(cell -> GetPosX(), cell -> GetPosY() + diff); - cell = cell -> GetNext(); - } - } - m_Height = m_MinHeight; - } - - m_MaxLineWidth += s_indent + ((m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight); - if (m_Width < m_MaxLineWidth) m_Width = m_MaxLineWidth; - - wxHtmlCell::Layout(w); -} - - -#define mMin(a, b) (((a) < (b)) ? (a) : (b)) -#define mMax(a, b) (((a) < (b)) ? (b) : (a)) - -void wxHtmlContainerCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - // container visible, draw it: - if ((y + m_PosY < view_y2) && (y + m_PosY + m_Height > view_y1)) { - - if (m_UseBkColour) { - wxBrush myb = wxBrush(m_BkColour, wxSOLID); - - int real_y1 = mMax(y + m_PosY, view_y1); - int real_y2 = mMin(y + m_PosY + m_Height - 1, view_y2); - - dc.SetBrush(myb); - dc.SetPen(*wxTRANSPARENT_PEN); - dc.DrawRectangle(x + m_PosX, real_y1, m_Width, real_y2 - real_y1 + 1); - } - - if (m_UseBorder) { - wxPen mypen1(m_BorderColour1, 1, wxSOLID); - wxPen mypen2(m_BorderColour2, 1, wxSOLID); - - dc.SetPen(mypen1); - dc.DrawLine(x + m_PosX, y + m_PosY, x + m_PosX, y + m_PosY + m_Height - 1); - dc.DrawLine(x + m_PosX, y + m_PosY, x + m_PosX + m_Width - 1, y + m_PosY); - dc.SetPen(mypen2); - dc.DrawLine(x + m_PosX + m_Width - 1, y + m_PosY, x + m_PosX + m_Width - 1, y + m_PosY + m_Height - 1); - dc.DrawLine(x + m_PosX, y + m_PosY + m_Height - 1, x + m_PosX + m_Width - 1, y + m_PosY + m_Height - 1); - } - - if (m_Cells) m_Cells -> Draw(dc, x + m_PosX, y + m_PosY, view_y1, view_y2); - } - // container invisible, just proceed font+color changing: - else { - if (m_Cells) m_Cells -> DrawInvisible(dc, x + m_PosX, y + m_PosY); - } - - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - - - -void wxHtmlContainerCell::DrawInvisible(wxDC& dc, int x, int y) -{ - if (m_Cells) m_Cells -> DrawInvisible(dc, x + m_PosX, y + m_PosY); - wxHtmlCell::DrawInvisible(dc, x, y); -} - - - -wxString wxHtmlContainerCell::GetLink(int x, int y) const -{ - wxHtmlCell *c = m_Cells; - int cx, cy, cw, ch; - - while (c) { - cx = c -> GetPosX(), cy = c -> GetPosY(); - cw = c -> GetWidth(), ch = c -> GetHeight(); - if ((x >= cx) && (x < cx + cw) && (y >= cy) && (y < cy + ch)) - return c -> GetLink(x - cx, y - cy); - c = c -> GetNext(); - } - return wxEmptyString; -} - - - -void wxHtmlContainerCell::InsertCell(wxHtmlCell *f) -{ - if (!m_Cells) m_Cells = m_LastCell = f; - else { - m_LastCell -> SetNext(f); - m_LastCell = f; - if (m_LastCell) while (m_LastCell -> GetNext()) m_LastCell = m_LastCell -> GetNext(); - } - f -> SetParent(this); -} - - - -void wxHtmlContainerCell::SetAlign(const wxHtmlTag& tag) -{ - if (tag.HasParam("ALIGN")) { - wxString alg = tag.GetParam("ALIGN"); - alg.MakeUpper(); - if (alg == "CENTER") - SetAlignHor(HTML_ALIGN_CENTER); - else if (alg == "LEFT") - SetAlignHor(HTML_ALIGN_LEFT); - else if (alg == "RIGHT") - SetAlignHor(HTML_ALIGN_RIGHT); - } -} - - - -void wxHtmlContainerCell::SetWidthFloat(const wxHtmlTag& tag) -{ - if (tag.HasParam("WIDTH")) { - int wdi; - wxString wd = tag.GetParam("WIDTH"); - - if (wd[wd.Length()-1] == '%') { - sscanf(wd.c_str(), "%i%%", &wdi); - SetWidthFloat(wdi, HTML_UNITS_PERCENT); - } - else { - sscanf(wd.c_str(), "%i", &wdi); - SetWidthFloat(wdi, HTML_UNITS_PIXELS); - } - } -} - - - -const wxHtmlCell* wxHtmlContainerCell::Find(int condition, const void* param) const -{ - const wxHtmlCell *r = NULL; - - if (m_Cells) { - r = m_Cells -> Find(condition, param); - if (r) return r; - } - - return wxHtmlCell::Find(condition, param); -} - - - -void wxHtmlContainerCell::OnMouseClick(wxWindow *parent, int x, int y, bool left, bool middle, bool right) -{ - if (m_Cells) { - wxHtmlCell *c = m_Cells; - while (c) { - if ( (c -> GetPosX() <= x) && - (c -> GetPosY() <= y) && - (c -> GetPosX() + c -> GetWidth() > x) && - (c -> GetPosY() + c -> GetHeight() > y)) { - c -> OnMouseClick(parent, x - c -> GetPosX(), y - c -> GetPosY(), left, middle, right); - break; - } - c = c -> GetNext(); - } - } -} - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlColourCell -//-------------------------------------------------------------------------------- - -void wxHtmlColourCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - if (m_Flags & HTML_CLR_FOREGROUND) - dc.SetTextForeground(m_Colour); - if (m_Flags & HTML_CLR_BACKGROUND) { - dc.SetBackground(wxBrush(m_Colour, wxSOLID)); - dc.SetTextBackground(m_Colour); - } - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - -void wxHtmlColourCell::DrawInvisible(wxDC& dc, int x, int y) -{ - if (m_Flags & HTML_CLR_FOREGROUND) - dc.SetTextForeground(m_Colour); - if (m_Flags & HTML_CLR_BACKGROUND) { - dc.SetBackground(wxBrush(m_Colour, wxSOLID)); - dc.SetTextBackground(m_Colour); - } - wxHtmlCell::DrawInvisible(dc, x, y); -} - - - - -//-------------------------------------------------------------------------------- -// wxHtmlFontCell -//-------------------------------------------------------------------------------- - -void wxHtmlFontCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - dc.SetFont(*m_Font); - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - -void wxHtmlFontCell::DrawInvisible(wxDC& dc, int x, int y) -{ - dc.SetFont(*m_Font); - wxHtmlCell::DrawInvisible(dc, x, y); -} - - - - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlWidgetCell -//-------------------------------------------------------------------------------- - -wxHtmlWidgetCell::wxHtmlWidgetCell(wxWindow *wnd, int w) -{ - int sx, sy; - m_Wnd = wnd; - m_Wnd -> GetSize(&sx, &sy); - m_Width = sx, m_Height = sy; - m_WidthFloat = w; -} - - -void wxHtmlWidgetCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - int absx = 0, absy = 0, stx, sty; - wxHtmlCell *c = this; - - while (c) { - absx += c -> GetPosX(); - absy += c -> GetPosY(); - c = c -> GetParent(); - } - - ((wxScrolledWindow*)(m_Wnd -> GetParent())) -> ViewStart(&stx, &sty); - - m_Wnd -> SetSize(absx - HTML_SCROLL_STEP * stx, absy - HTML_SCROLL_STEP * sty, m_Width, m_Height); -// m_Wnd -> Refresh(); - - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - - - -void wxHtmlWidgetCell::DrawInvisible(wxDC& dc, int x, int y) -{ - int absx = 0, absy = 0, stx, sty; - wxHtmlCell *c = this; - - while (c) { - absx += c -> GetPosX(); - absy += c -> GetPosY(); - c = c -> GetParent(); - } - ((wxScrolledWindow*)(m_Wnd -> GetParent())) -> ViewStart(&stx, &sty); - - m_Wnd -> SetSize(absx - HTML_SCROLL_STEP * stx, absy - HTML_SCROLL_STEP * sty, m_Width, m_Height); - wxHtmlCell::DrawInvisible(dc, x, y); -} - - - -void wxHtmlWidgetCell::Layout(int w) -{ - if (m_WidthFloat != 0) { - m_Width = (w * m_WidthFloat) / 100; - m_Wnd -> SetSize(m_Width, m_Height); - } - - wxHtmlCell::Layout(w); -} - -#endif diff --git a/src/html/htmlfilter.cpp b/src/html/htmlfilter.cpp deleted file mode 100644 index 37215c5170..0000000000 --- a/src/html/htmlfilter.cpp +++ /dev/null @@ -1,173 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filter.cpp -// Purpose: wxHtmlFilter - input filter for translating into HTML format -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "htmlfilter.h" -#endif - -#include "wx/wxprec.h" - -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include "wx/wx.h" -#endif - -#include "wx/html/htmlfilter.h" -#include "wx/html/htmlwin.h" - - -/* - -There is code for several default filters: - -*/ - -IMPLEMENT_ABSTRACT_CLASS(wxHtmlFilter, wxObject) - -//-------------------------------------------------------------------------------- -// wxHtmlFilterPlainText -// filter for text/plain or uknown -//-------------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterPlainText, wxHtmlFilter) - -bool wxHtmlFilterPlainText::CanRead(const wxFSFile& file) const -{ - return TRUE; -} - - - -wxString wxHtmlFilterPlainText::ReadFile(const wxFSFile& file) const -{ - wxInputStream *s = file.GetStream(); - char *src; - wxString doc, doc2; - - if (s == NULL) return wxEmptyString; - src = new char[s -> GetSize()+1]; - src[s -> GetSize()] = 0; - s -> Read(src, s -> GetSize()); - doc = src; - delete [] src; - - doc.Replace("<", "<", TRUE); - doc.Replace(">", ">", TRUE); - doc2 = "
    \n" + doc + "\n
    "; - return doc2; -} - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlFilterImage -// filter for image/* -//-------------------------------------------------------------------------------- - -class wxHtmlFilterImage : public wxHtmlFilter -{ - DECLARE_DYNAMIC_CLASS(wxHtmlFilterImage) - - public: - virtual bool CanRead(const wxFSFile& file) const; - virtual wxString ReadFile(const wxFSFile& file) const; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterImage, wxHtmlFilter) - - - -bool wxHtmlFilterImage::CanRead(const wxFSFile& file) const -{ - return (file.GetMimeType().Left(6) == "image/"); -} - - - -wxString wxHtmlFilterImage::ReadFile(const wxFSFile& file) const -{ - return (""); -} - - - - -//-------------------------------------------------------------------------------- -// wxHtmlFilterPlainText -// filter for text/plain or uknown -//-------------------------------------------------------------------------------- - -class wxHtmlFilterHTML : public wxHtmlFilter -{ - DECLARE_DYNAMIC_CLASS(wxHtmlFilterHTML) - - public: - virtual bool CanRead(const wxFSFile& file) const; - virtual wxString ReadFile(const wxFSFile& file) const; -}; - - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterHTML, wxHtmlFilter) - -bool wxHtmlFilterHTML::CanRead(const wxFSFile& file) const -{ -// return (file.GetMimeType() == "text/html"); -// This is true in most case but some page can return: -// "text/html; char-encoding=...." -// So we use Find instead - return (file.GetMimeType().Find(_T("text/html")) == 0); -} - - - -wxString wxHtmlFilterHTML::ReadFile(const wxFSFile& file) const -{ - wxInputStream *s = file.GetStream(); - char *src; - wxString doc; - - if (s == NULL) return wxEmptyString; - src = new char[s -> GetSize() + 1]; - src[s -> GetSize()] = 0; - s -> Read(src, s -> GetSize()); - doc = src; - delete[] src; - - return doc; -} - - - - -///// Module: - -class wxHtmlFilterModule : public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxHtmlFilterModule) - - public: - virtual bool OnInit() - { - wxHtmlWindow::AddFilter(new wxHtmlFilterHTML); - wxHtmlWindow::AddFilter(new wxHtmlFilterImage); - return TRUE; - } - virtual void OnExit() {} -}; - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterModule, wxModule) - -#endif diff --git a/src/html/htmlhelp.cpp b/src/html/htmlhelp.cpp deleted file mode 100644 index d9bf5d2b11..0000000000 --- a/src/html/htmlhelp.cpp +++ /dev/null @@ -1,865 +0,0 @@ -// Name: htmlhelp.cpp -// Purpose: Help controller -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "htmlhelp.h" -#endif - -#include "wx/wxprec.h" - -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - -#include -#include -#include -#include -#include -#include -#include -#include - -#if !((wxVERSION_NUMBER < 2100) || ((wxVERSION_NUMBER == 2100) && (wxBETA_NUMBER < 7))) -#include -#endif - - -// Bitmaps: - -#ifndef __WXMSW__ -#include "bitmaps/panel.xpm" -#include "bitmaps/back.xpm" -#include "bitmaps/forward.xpm" -#include "bitmaps/book.xpm" -#include "bitmaps/folder.xpm" -#include "bitmaps/page.xpm" -#endif - -#include "search.h" - - - -//----------------------------------------------------------------------------- -// Helper constants -//----------------------------------------------------------------------------- - - -// Command IDs : - -enum { - wxID_HTML_PANEL = wxID_HIGHEST + 1, - wxID_HTML_BACK, - wxID_HTML_FORWARD, - wxID_HTML_TREECTRL, - wxID_HTML_INDEXPAGE, - wxID_HTML_INDEXLIST, - wxID_HTML_NOTEBOOK, - wxID_HTML_SEARCHPAGE, - wxID_HTML_SEARCHTEXT, - wxID_HTML_SEARCHLIST, - wxID_HTML_SEARCHBUTTON -}; - - -// Images: - -enum { - IMG_Book = 0, - IMG_Folder, - IMG_Page -}; - - - - - - -class HtmlHelpTreeItemData : public wxTreeItemData -{ - private: - wxString m_Page; - - public: - HtmlHelpTreeItemData(HtmlContentsItem *it) : wxTreeItemData() {m_Page = it -> m_Book -> GetBasePath() + it -> m_Page;} - const wxString& GetPage() {return m_Page;} -}; - - - - - -#include -WX_DEFINE_OBJARRAY(HtmlBookRecArray) - - - - - - - - - -//----------------------------------------------------------------------------- -// wxHtmlHelpController -//----------------------------------------------------------------------------- - - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxEvtHandler) - - -wxHtmlHelpController::wxHtmlHelpController() : wxEvtHandler() -{ - m_Frame = NULL; - m_Config = NULL; - m_ConfigRoot = wxEmptyString; - m_TitleFormat = _("Help : %s"); - m_TempPath = wxEmptyString; - - m_Cfg.x = m_Cfg.y = 0; - m_Cfg.w = 700; m_Cfg.h = 480; - m_Cfg.sashpos = 240; - m_Cfg.navig_on = TRUE; - - m_ContentsImageList = new wxImageList(12, 12); - m_ContentsImageList -> Add(wxICON(book)); - m_ContentsImageList -> Add(wxICON(folder)); - m_ContentsImageList -> Add(wxICON(page)); - - m_Contents = NULL; - m_ContentsCnt = 0; - m_Index = NULL; - m_IndexCnt = 0; -} - - - -wxHtmlHelpController::~wxHtmlHelpController() -{ - int i; - - m_BookRecords.Empty(); - delete m_ContentsImageList; - if (m_Contents) { - for (i = 0; i < m_ContentsCnt; i++) { - delete[] m_Contents[i].m_Page; - delete[] m_Contents[i].m_Name; - } - free(m_Contents); - } - if (m_Index) { - for (i = 0; i < m_IndexCnt; i++) { - delete[] m_Index[i].m_Page; - delete[] m_Index[i].m_Name; - } - free(m_Index); - } -} - - - -void wxHtmlHelpController::SetTempDir(const wxString& path) -{ - if (path == wxEmptyString) m_TempPath = path; - else { - if (wxIsAbsolutePath(path)) m_TempPath = path; - else m_TempPath = wxGetCwd() + "/" + path; - - if (m_TempPath[m_TempPath.Length() - 1] != '/') - m_TempPath << "/"; - } -} - - - - -// Reads one line, stores it into buf and returns pointer to new line or NULL. -static char* ReadLine(char *line, char *buf) -{ - char *writeptr = buf, *readptr = line; - - while (*readptr != 0 && *readptr != '\r' && *readptr != '\n') *(writeptr++) = *(readptr++); - *writeptr = 0; - while (*readptr == '\r' || *readptr == '\n') readptr++; - if (*readptr == 0) return NULL; - else return readptr; -} - - -static wxString SafeFileName(const wxString& s) -{ - wxString res = s; - res.Replace(":", "_", TRUE); - res.Replace(" ", "_", TRUE); - res.Replace("/", "_", TRUE); - res.Replace("\\", "_", TRUE); - res.Replace("#", "_", TRUE); - res.Replace(".", "_", TRUE); - return res; -} - - -static int IndexCompareFunc(const void *a, const void *b) -{ - return strcmp(((HtmlContentsItem*)a) -> m_Name, ((HtmlContentsItem*)b) -> m_Name); -} - - - -bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) -{ - wxFSFile *fi; - wxFileSystem fsys; - wxInputStream *s; - HtmlBookRecord *bookr; - wxString bookFull; - - int sz; - char *buff, *lineptr; - char linebuf[300]; - - wxString title = _("noname"), - safetitle, - start = wxEmptyString, - contents = wxEmptyString, index = wxEmptyString; - - if (wxIsAbsolutePath(book)) bookFull = book; - else bookFull = wxGetCwd() + "/" + book; - - fi = fsys.OpenFile(bookFull); - if (fi == NULL) return FALSE; - fsys.ChangePathTo(bookFull); - s = fi -> GetStream(); - sz = s -> GetSize(); - buff = new char[sz+1]; - buff[sz] = 0; - s -> Read(buff, sz); - lineptr = buff; - delete fi; - - while ((lineptr = ReadLine(lineptr, linebuf)) != NULL) { - if (strstr(linebuf, "Title=") == linebuf) - title = linebuf + strlen("Title="); - if (strstr(linebuf, "Default topic=") == linebuf) - start = linebuf + strlen("Default topic="); - if (strstr(linebuf, "Index file=") == linebuf) - index = linebuf + strlen("Index file="); - if (strstr(linebuf, "Contents file=") == linebuf) - contents = linebuf + strlen("Contents file="); - } - delete[] buff; - - bookr = new HtmlBookRecord(fsys.GetPath(), title, start); - - if (m_ContentsCnt % HTML_REALLOC_STEP == 0) - m_Contents = (HtmlContentsItem*) realloc(m_Contents, (m_ContentsCnt + HTML_REALLOC_STEP) * sizeof(HtmlContentsItem)); - m_Contents[m_ContentsCnt].m_Level = 0; - m_Contents[m_ContentsCnt].m_ID = 0; - m_Contents[m_ContentsCnt].m_Page = new char[start.Length() + 1]; - strcpy(m_Contents[m_ContentsCnt].m_Page, start.c_str()); - m_Contents[m_ContentsCnt].m_Name = new char [title.Length() + 1]; - strcpy(m_Contents[m_ContentsCnt].m_Name, title.c_str()); - m_Contents[m_ContentsCnt].m_Book = bookr; - m_ContentsCnt++; - - // Try to find cached binary versions: - safetitle = SafeFileName(title); - fi = fsys.OpenFile(safetitle + ".cached"); - if (fi == NULL) fi = fsys.OpenFile(m_TempPath + safetitle + ".cached"); - if ((fi == NULL) || (m_TempPath == wxEmptyString)) { - LoadMSProject(bookr, fsys, index, contents, show_wait_msg); - if (m_TempPath != wxEmptyString) { - wxFileOutputStream *outs = new wxFileOutputStream(m_TempPath + safetitle + ".cached"); - SaveCachedBook(bookr, outs); - delete outs; - } - } - else { - LoadCachedBook(bookr, fi -> GetStream()); - delete fi; - } - - m_BookRecords.Add(bookr); - if (m_IndexCnt > 0) - qsort(m_Index, m_IndexCnt, sizeof(HtmlContentsItem), IndexCompareFunc); - - return TRUE; -} - - - - -void wxHtmlHelpController::Display(const wxString& x) -{ - int cnt; - int i; - wxFileSystem fsys; - wxFSFile *f; - - CreateHelpWindow(); - - /* 1. try to open given file: */ - - cnt = m_BookRecords.GetCount(); - for (i = 0; i < cnt; i++) { - f = fsys.OpenFile(m_BookRecords[i].GetBasePath() + x); - if (f) { - m_HtmlWin -> LoadPage(m_BookRecords[i].GetBasePath() + x); - delete f; - return; - } - } - - - /* 2. try to find a book: */ - - for (i = 0; i < cnt; i++) { - if (m_BookRecords[i].GetTitle() == x) { - m_HtmlWin -> LoadPage(m_BookRecords[i].GetBasePath() + m_BookRecords[i].GetStart()); - return; - } - } - - /* 3. try to find in contents: */ - - cnt = m_ContentsCnt; - for (i = 0; i < cnt; i++) { - if (strcmp(m_Contents[i].m_Name, x) == 0) { - m_HtmlWin -> LoadPage(m_Contents[i].m_Book -> GetBasePath() + m_Contents[i].m_Page); - return; - } - } - - - /* 4. try to find in index: */ - - cnt = m_IndexCnt; - for (i = 0; i < cnt; i++) { - if (strcmp(m_Index[i].m_Name, x) == 0) { - m_HtmlWin -> LoadPage(m_Index[i].m_Book -> GetBasePath() + m_Index[i].m_Page); - return; - } - } - - - /* 5. if everything failed, search the documents: */ - - KeywordSearch(x); -} - - - -void wxHtmlHelpController::Display(const int id) -{ - CreateHelpWindow(); - - for (int i = 0; i < m_ContentsCnt; i++) { - if (m_Contents[i].m_ID == id) { - m_HtmlWin -> LoadPage(m_Contents[i].m_Book -> GetBasePath() + m_Contents[i].m_Page); - return; - } - } -} - - - -void wxHtmlHelpController::DisplayContents() -{ - CreateHelpWindow(); - m_Frame -> Raise(); - if (!m_Splitter -> IsSplit()) { - m_NavigPan -> Show(TRUE); - m_HtmlWin -> Show(TRUE); - m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); - } - m_NavigPan -> SetSelection(0); -} - - - -void wxHtmlHelpController::DisplayIndex() -{ - CreateHelpWindow(); - m_Frame -> Raise(); - if (!m_Splitter -> IsSplit()) { - m_NavigPan -> Show(TRUE); - m_HtmlWin -> Show(TRUE); - m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); - } - m_NavigPan -> SetSelection(1); -} - - - - -#if (wxVERSION_NUMBER < 2100) || ((wxVERSION_NUMBER == 2100) && (wxBETA_NUMBER < 7)) - -class MyProgressDlg : public wxDialog -{ - public: - bool m_Canceled; - - MyProgressDlg(wxWindow *parent) : wxDialog(parent, -1, - _("Searching..."), - wxPoint(0, 0), -#ifdef __WXGTK__ - wxSize(300, 110)) -#else - wxSize(300, 130)) -#endif - {m_Canceled = FALSE;} - void OnCancel(wxCommandEvent& event) {m_Canceled = TRUE;} - DECLARE_EVENT_TABLE() -}; -BEGIN_EVENT_TABLE(MyProgressDlg, wxDialog) - EVT_BUTTON(wxID_CANCEL, MyProgressDlg::OnCancel) -END_EVENT_TABLE() - -#endif - - -bool wxHtmlHelpController::KeywordSearch(const wxString& keyword) -{ - int foundcnt = 0; - - CreateHelpWindow(); - m_Frame -> Raise(); - if (!m_Splitter -> IsSplit()) { - m_NavigPan -> Show(TRUE); - m_HtmlWin -> Show(TRUE); - m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); - } - m_NavigPan -> SetSelection(2); - m_SearchList -> Clear(); - m_SearchText -> SetValue(keyword); - m_SearchButton -> Enable(FALSE); - - { - int cnt = m_ContentsCnt; - wxSearchEngine engine; - wxFileSystem fsys; - wxFSFile *file; - wxString lastpage = wxEmptyString; - wxString foundstr; - -#if (wxVERSION_NUMBER < 2100) || ((wxVERSION_NUMBER == 2100) && (wxBETA_NUMBER < 7)) - MyProgressDlg progress(m_Frame); - - wxStaticText *prompt = new wxStaticText(&progress, -1, "", wxPoint(20, 50), wxSize(260, 25), wxALIGN_CENTER); - wxGauge *gauge = new wxGauge(&progress, -1, cnt, wxPoint(20, 20), wxSize(260, 25)); - wxButton *btn = new wxButton(&progress, wxID_CANCEL, _("Cancel"), wxPoint(110, 70), wxSize(80, 25)); - btn = btn; /* fool compiler :-) */ - prompt -> SetLabel(_("No matching page found yet")); - - progress.Centre(wxBOTH); - progress.Show(TRUE); -#else - wxProgressDialog progress(_("Searching..."), _("No matching page found yet"), cnt, m_Frame, wxPD_APP_MODAL | wxPD_CAN_ABORT | wxPD_AUTO_HIDE); -#endif - - engine.LookFor(keyword); - - for (int i = 0; i < cnt; i++) { -#if (wxVERSION_NUMBER < 2100) || ((wxVERSION_NUMBER == 2100) && (wxBETA_NUMBER < 7)) - gauge -> SetValue(i); - if (progress.m_Canceled) break; -#else - if (progress.Update(i) == FALSE) break; -#endif - wxYield(); - - file = fsys.OpenFile(m_Contents[i].m_Book -> GetBasePath() + m_Contents[i].m_Page); - if (file) { - if (lastpage != file -> GetLocation()) { - lastpage = file -> GetLocation(); - if (engine.Scan(file -> GetStream())) { - foundstr.Printf(_("Found %i matches"), ++foundcnt); -#if (wxVERSION_NUMBER < 2100) || ((wxVERSION_NUMBER == 2100) && (wxBETA_NUMBER < 7)) - prompt -> SetLabel(foundstr); -#else - progress.Update(i, foundstr); -#endif - wxYield(); - m_SearchList -> Append(m_Contents[i].m_Name, (char*)(m_Contents + i)); - } - } - delete file; - } - } - -#if (wxVERSION_NUMBER < 2100) || ((wxVERSION_NUMBER == 2100) && (wxBETA_NUMBER < 7)) - progress.Close(TRUE); -#endif - } - - m_SearchButton -> Enable(TRUE); - m_SearchText -> SetSelection(0, keyword.Length()); - m_SearchText -> SetFocus(); - if (foundcnt) { - HtmlContentsItem *it = (HtmlContentsItem*) m_SearchList -> GetClientData(0); - if (it) m_HtmlWin -> LoadPage(it -> m_Book -> GetBasePath() + it -> m_Page); - } - return (foundcnt > 0); -} - - - - - - -void wxHtmlHelpController::CreateHelpWindow() -{ - wxBusyCursor cur; - wxString oldpath; - wxStatusBar *sbar; - - if (m_Frame) { - m_Frame -> Raise(); - m_Frame -> Show(TRUE); - return; - } - -#if wxUSE_BUSYINFO - wxBusyInfo busyinfo(_("Preparing help window...")); -#endif - - if (m_Config) ReadCustomization(m_Config, m_ConfigRoot); - - m_Frame = new wxFrame(NULL, -1, "", wxPoint(m_Cfg.x, m_Cfg.y), wxSize(m_Cfg.w, m_Cfg.h)); - m_Frame -> PushEventHandler(this); - sbar = m_Frame -> CreateStatusBar(); - - { - wxToolBar *toolBar; - toolBar = m_Frame -> CreateToolBar(wxNO_BORDER | wxTB_HORIZONTAL | wxTB_FLAT | wxTB_DOCKABLE); - toolBar -> SetMargins(2, 2); - wxBitmap* toolBarBitmaps[3]; - -#ifdef __WXMSW__ - toolBarBitmaps[0] = new wxBitmap("panel"); - toolBarBitmaps[1] = new wxBitmap("back"); - toolBarBitmaps[2] = new wxBitmap("forward"); - int width = 24; -#else - toolBarBitmaps[0] = new wxBitmap(panel_xpm); - toolBarBitmaps[1] = new wxBitmap(back_xpm); - toolBarBitmaps[2] = new wxBitmap(forward_xpm); - int width = 16; -#endif - - int currentX = 5; - - toolBar -> AddTool(wxID_HTML_PANEL, *(toolBarBitmaps[0]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, _("Show/hide navigation panel")); - currentX += width + 5; - toolBar -> AddSeparator(); - toolBar -> AddTool(wxID_HTML_BACK, *(toolBarBitmaps[1]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, _("Go back to the previous HTML page")); - currentX += width + 5; - toolBar -> AddTool(wxID_HTML_FORWARD, *(toolBarBitmaps[2]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, _("Go forward to the next HTML page")); - currentX += width + 5; - - toolBar -> Realize(); - - // Can delete the bitmaps since they're reference counted - for (int i = 0; i < 3; i++) delete toolBarBitmaps[i]; - } - - - { - m_Splitter = new wxSplitterWindow(m_Frame); - - m_HtmlWin = new wxHtmlWindow(m_Splitter); - m_HtmlWin -> SetRelatedFrame(m_Frame, m_TitleFormat); - m_HtmlWin -> SetRelatedStatusBar(0); - if (m_Config) m_HtmlWin -> ReadCustomization(m_Config, m_ConfigRoot); - - m_NavigPan = new wxNotebook(m_Splitter, wxID_HTML_NOTEBOOK, wxDefaultPosition, wxDefaultSize); - { - m_ContentsBox = new wxTreeCtrl(m_NavigPan, wxID_HTML_TREECTRL, wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS | wxSUNKEN_BORDER); - m_ContentsBox -> SetImageList(m_ContentsImageList); - m_NavigPan -> AddPage(m_ContentsBox, _("Contents")); - } - - { - wxWindow *dummy = new wxPanel(m_NavigPan, wxID_HTML_INDEXPAGE); - wxLayoutConstraints *b1 = new wxLayoutConstraints; - b1 -> top.SameAs (dummy, wxTop, 0); - b1 -> left.SameAs (dummy, wxLeft, 0); - b1 -> width.PercentOf (dummy, wxWidth, 100); - b1 -> bottom.SameAs (dummy, wxBottom, 0); - m_IndexBox = new wxListBox(dummy, wxID_HTML_INDEXLIST, wxDefaultPosition, wxDefaultSize, 0); - m_IndexBox -> SetConstraints(b1); - dummy -> SetAutoLayout(TRUE); - m_NavigPan -> AddPage(dummy, _("Index")); - } - - { - wxWindow *dummy = new wxPanel(m_NavigPan, wxID_HTML_SEARCHPAGE); - - wxLayoutConstraints *b1 = new wxLayoutConstraints; - m_SearchText = new wxTextCtrl(dummy, wxID_HTML_SEARCHTEXT); - b1 -> top.SameAs (dummy, wxTop, 0); - b1 -> left.SameAs (dummy, wxLeft, 0); - b1 -> right.SameAs (dummy, wxRight, 0); - b1 -> height.AsIs(); - m_SearchText -> SetConstraints(b1); - - wxLayoutConstraints *b2 = new wxLayoutConstraints; - m_SearchButton = new wxButton(dummy, wxID_HTML_SEARCHBUTTON, _("Search!")); - b2 -> top.Below (m_SearchText, 10); - b2 -> right.SameAs (dummy, wxRight, 10); - b2 -> width.AsIs(); - b2 -> height.AsIs(); - m_SearchButton -> SetConstraints(b2); - - wxLayoutConstraints *b3 = new wxLayoutConstraints; - m_SearchList = new wxListBox(dummy, wxID_HTML_SEARCHLIST, wxDefaultPosition, wxDefaultSize, 0); - b3 -> top.Below (m_SearchButton, 10); - b3 -> left.SameAs (dummy, wxLeft, 0); - b3 -> right.SameAs (dummy, wxRight, 0); - b3 -> bottom.SameAs (dummy, wxBottom, 0); - m_SearchList -> SetConstraints(b3); - - dummy -> SetAutoLayout(TRUE); - dummy -> Layout(); - m_NavigPan -> AddPage(dummy, _("Search")); - } - - RefreshLists(); - m_NavigPan -> Show(TRUE); - m_HtmlWin -> Show(TRUE); - m_Splitter -> SetMinimumPaneSize(20); - m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); - if (!m_Cfg.navig_on) m_Splitter -> Unsplit(m_NavigPan); - wxYield(); - } - - m_Frame -> Show(TRUE); - wxYield(); -} - - - -#define MAX_ROOTS 64 - -void wxHtmlHelpController::CreateContents() -{ - HtmlContentsItem *it; - wxTreeItemId roots[MAX_ROOTS]; - bool imaged[MAX_ROOTS]; - int count = m_ContentsCnt; - - m_ContentsBox -> DeleteAllItems(); - roots[0] = m_ContentsBox -> AddRoot(_("(Help)")); - imaged[0] = TRUE; - - for (int i = 0; i < count; i++) { - it = m_Contents + i; - roots[it -> m_Level + 1] = m_ContentsBox -> AppendItem(roots[it -> m_Level], it -> m_Name, IMG_Page, -1, new HtmlHelpTreeItemData(it)); - if (it -> m_Level == 0) { - m_ContentsBox -> SetItemBold(roots[1], TRUE); - m_ContentsBox -> SetItemImage(roots[1], IMG_Book); - m_ContentsBox -> SetItemSelectedImage(roots[1], IMG_Book); - imaged[1] = TRUE; - } - else imaged[it -> m_Level + 1] = FALSE; - - if (!imaged[it -> m_Level]) { - m_ContentsBox -> SetItemImage(roots[it -> m_Level], IMG_Folder); - m_ContentsBox -> SetItemSelectedImage(roots[it -> m_Level], IMG_Folder); - imaged[it -> m_Level] = TRUE; - } - } - - m_ContentsBox -> Expand(roots[0]); -} - - - - -void wxHtmlHelpController::CreateIndex() -{ - m_IndexBox -> Clear(); - - for (int i = 0; i < m_IndexCnt; i++) - m_IndexBox -> Append(m_Index[i].m_Name, (char*)(m_Index + i)); -} - - - -void wxHtmlHelpController::RefreshLists() -{ - if (m_Frame) { - CreateContents(); - CreateIndex(); - m_SearchList -> Clear(); - } -} - - - - - - - -void wxHtmlHelpController::ReadCustomization(wxConfigBase *cfg, wxString path) -{ - wxString oldpath; - wxString tmp; - - if (path != wxEmptyString) { - oldpath = cfg -> GetPath(); - cfg -> SetPath(path); - } - - m_Cfg.navig_on = cfg -> Read("hcNavigPanel", m_Cfg.navig_on) != 0; - m_Cfg.sashpos = cfg -> Read("hcSashPos", m_Cfg.sashpos); - m_Cfg.x = cfg -> Read("hcX", m_Cfg.x); - m_Cfg.y = cfg -> Read("hcY", m_Cfg.y); - m_Cfg.w = cfg -> Read("hcW", m_Cfg.w); - m_Cfg.h = cfg -> Read("hcH", m_Cfg.h); - - if (path != wxEmptyString) - cfg -> SetPath(oldpath); -} - - - -void wxHtmlHelpController::WriteCustomization(wxConfigBase *cfg, wxString path) -{ - wxString oldpath; - wxString tmp; - - if (path != wxEmptyString) { - oldpath = cfg -> GetPath(); - cfg -> SetPath(path); - } - - cfg -> Write("hcNavigPanel", m_Cfg.navig_on); - cfg -> Write("hcSashPos", (long)m_Cfg.sashpos); - cfg -> Write("hcX", (long)m_Cfg.x); - cfg -> Write("hcY", (long)m_Cfg.y); - cfg -> Write("hcW", (long)m_Cfg.w); - cfg -> Write("hcH", (long)m_Cfg.h); - - if (path != wxEmptyString) - cfg -> SetPath(oldpath); -} - - - - - -/* -EVENT HANDLING : -*/ - - -void wxHtmlHelpController::OnToolbar(wxCommandEvent& event) -{ - switch (event.GetId()) { - case wxID_HTML_BACK : - m_HtmlWin -> HistoryBack(); - break; - case wxID_HTML_FORWARD : - m_HtmlWin -> HistoryForward(); - break; - case wxID_HTML_PANEL : - if (m_Splitter -> IsSplit()) { - m_Cfg.sashpos = m_Splitter -> GetSashPosition(); - m_Splitter -> Unsplit(m_NavigPan); - } - else { - m_NavigPan -> Show(TRUE); - m_HtmlWin -> Show(TRUE); - m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); - } - break; - } -} - - - -void wxHtmlHelpController::OnContentsSel(wxTreeEvent& event) -{ - HtmlHelpTreeItemData *pg; - - pg = (HtmlHelpTreeItemData*) m_ContentsBox -> GetItemData(event.GetItem()); - if (pg) m_HtmlWin -> LoadPage(pg -> GetPage()); -} - - - -void wxHtmlHelpController::OnIndexSel(wxCommandEvent& event) -{ - HtmlContentsItem *it = (HtmlContentsItem*) m_IndexBox -> GetClientData(m_IndexBox -> GetSelection()); - if (it) m_HtmlWin -> LoadPage(it -> m_Book -> GetBasePath() + it -> m_Page); -} - - - -void wxHtmlHelpController::OnSearchSel(wxCommandEvent& event) -{ - HtmlContentsItem *it = (HtmlContentsItem*) m_SearchList -> GetClientData(m_SearchList -> GetSelection()); - if (it) m_HtmlWin -> LoadPage(it -> m_Book -> GetBasePath() + it -> m_Page); -} - - - -void wxHtmlHelpController::OnCloseWindow(wxCloseEvent& event) -{ - int a, b; - - m_Cfg.navig_on = m_Splitter -> IsSplit(); - if (m_Cfg.navig_on) - m_Cfg.sashpos = m_Splitter -> GetSashPosition(); - m_Frame -> GetPosition(&a, &b); - m_Cfg.x = a, m_Cfg.y = b; - m_Frame -> GetSize(&a, &b); - m_Cfg.w = a, m_Cfg.h = b; - - if (m_Config) { - WriteCustomization(m_Config, m_ConfigRoot); - m_HtmlWin -> WriteCustomization(m_Config, m_ConfigRoot); - } - m_Frame = NULL; - - event.Skip(); -} - - - -void wxHtmlHelpController::OnSearch(wxCommandEvent& event) -{ - wxString sr = m_SearchText -> GetLineText(0); - - if (sr != wxEmptyString) KeywordSearch(sr); -} - - - -BEGIN_EVENT_TABLE(wxHtmlHelpController, wxEvtHandler) - EVT_TOOL_RANGE(wxID_HTML_PANEL, wxID_HTML_FORWARD, wxHtmlHelpController::OnToolbar) - EVT_TREE_SEL_CHANGED(wxID_HTML_TREECTRL, wxHtmlHelpController::OnContentsSel) - EVT_LISTBOX(wxID_HTML_INDEXLIST, wxHtmlHelpController::OnIndexSel) - EVT_LISTBOX(wxID_HTML_SEARCHLIST, wxHtmlHelpController::OnSearchSel) - EVT_CLOSE(wxHtmlHelpController::OnCloseWindow) - EVT_BUTTON(wxID_HTML_SEARCHBUTTON, wxHtmlHelpController::OnSearch) - EVT_TEXT_ENTER(wxID_HTML_SEARCHTEXT, wxHtmlHelpController::OnSearch) -END_EVENT_TABLE() - - - -#endif - diff --git a/src/html/htmlhelp_io.cpp b/src/html/htmlhelp_io.cpp deleted file mode 100644 index 78353f4725..0000000000 --- a/src/html/htmlhelp_io.cpp +++ /dev/null @@ -1,250 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlhelp.cpp -// Purpose: Help controller -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -//#ifdef __GNUG__ -//#pragma implementation "htmlhelp.h" -//#endif -// --- already in htmlhelp.cpp - -#include - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - -#include -#include - - - - -class HP_Parser : public wxHtmlParser -{ - public: - void AddText(const char* text) {} - wxObject* GetProduct() {return NULL;} -}; - - - -class HP_TagHandler : public wxHtmlTagHandler -{ - private: - wxString m_Name, m_Page; - int m_Level; - int m_ID; - int m_Index; - HtmlContentsItem *m_Items; - int m_ItemsCnt; - HtmlBookRecord *m_Book; - - public: - HP_TagHandler(HtmlBookRecord *b) : wxHtmlTagHandler() {m_Book = b; m_Items = NULL; m_ItemsCnt = 0; m_Name = m_Page = wxEmptyString; m_Level = 0;} - wxString GetSupportedTags() {return "UL,OBJECT,PARAM";} - bool HandleTag(const wxHtmlTag& tag); - void WriteOut(HtmlContentsItem*& array, int& size); - void ReadIn(HtmlContentsItem* array, int size); -}; - - -bool HP_TagHandler::HandleTag(const wxHtmlTag& tag) -{ - if (tag.GetName() == "UL") { - m_Level++; - ParseInner(tag); - m_Level--; - return TRUE; - } - - else if (tag.GetName() == "OBJECT") { - m_Name = m_Page = wxEmptyString; - ParseInner(tag); - if (m_Page != wxEmptyString) { - if (m_ItemsCnt % HTML_REALLOC_STEP == 0) - m_Items = (HtmlContentsItem*) realloc(m_Items, (m_ItemsCnt + HTML_REALLOC_STEP) * sizeof(HtmlContentsItem)); - m_Items[m_ItemsCnt].m_Level = m_Level; - m_Items[m_ItemsCnt].m_ID = m_ID; - m_Items[m_ItemsCnt].m_Page = new char[m_Page.Length() + 1]; - strcpy(m_Items[m_ItemsCnt].m_Page, m_Page.c_str()); - m_Items[m_ItemsCnt].m_Name = new char [m_Name.Length() + 1]; - strcpy(m_Items[m_ItemsCnt].m_Name, m_Name.c_str()); - m_Items[m_ItemsCnt].m_Book = m_Book; - m_ItemsCnt++; - } - return TRUE; - } - - else { // "PARAM" - if (m_Name == wxEmptyString && tag.GetParam("NAME") == "Name") m_Name = tag.GetParam("VALUE"); - if (tag.GetParam("NAME") == "Local") m_Page = tag.GetParam("VALUE"); - if (tag.GetParam("NAME") == "ID") tag.ScanParam("VALUE", "%i", &m_ID); - return FALSE; - } -} - - - -void HP_TagHandler::WriteOut(HtmlContentsItem*& array, int& size) -{ - array = m_Items; - size = m_ItemsCnt; - m_Items = NULL; - m_ItemsCnt = 0; -} - -void HP_TagHandler::ReadIn(HtmlContentsItem* array, int size) -{ - m_Items = array; - m_ItemsCnt = size; -} - - - - -void wxHtmlHelpController::LoadMSProject(HtmlBookRecord *book, wxFileSystem& fsys, const wxString& indexfile, const wxString& contentsfile, bool show_wait_msg) -{ - wxFSFile *f; - char *buf; - int sz; - wxString string; - wxBusyInfo *busyinfo = (show_wait_msg) ? new wxBusyInfo(_("Importing help file : \n") + book -> m_Title) : NULL; - - HP_Parser parser; - HP_TagHandler *handler = new HP_TagHandler(book); - parser.AddTagHandler(handler); - - f = fsys.OpenFile(contentsfile); - if (f) { - sz = f -> GetStream() -> GetSize(); - buf = new char[sz+1]; - buf[sz] = 0; - f -> GetStream() -> Read(buf, sz); - delete f; - handler -> ReadIn(m_Contents, m_ContentsCnt); - parser.Parse(buf); - handler -> WriteOut(m_Contents, m_ContentsCnt); - delete[] buf; - } - - f = fsys.OpenFile(indexfile); - if (f) { - sz = f -> GetStream() -> GetSize(); - buf = new char[sz+1]; - buf[sz] = 0; - f -> GetStream() -> Read(buf, sz); - delete f; - handler -> ReadIn(m_Index, m_IndexCnt); - parser.Parse(buf); - handler -> WriteOut(m_Index, m_IndexCnt); - delete[] buf; - } - if (show_wait_msg) delete busyinfo; -} - - - - - - -void wxHtmlHelpController::LoadCachedBook(HtmlBookRecord *book, wxInputStream *f) -{ - int i, st; - int x; - - /* load contents : */ - - f -> Read(&x, sizeof(x)); - st = m_ContentsCnt; - m_ContentsCnt += x; - m_Contents = (HtmlContentsItem*) realloc(m_Contents, (m_ContentsCnt / HTML_REALLOC_STEP + 1) * HTML_REALLOC_STEP * sizeof(HtmlContentsItem)); - for (i = st; i < m_ContentsCnt; i++) { - f -> Read(&x, sizeof(x)); - m_Contents[i].m_Level = x; - f -> Read(&x, sizeof(x)); - m_Contents[i].m_ID = x; - f -> Read(&x, sizeof(x)); - m_Contents[i].m_Name = new char[x]; - f -> Read(m_Contents[i].m_Name, x); - f -> Read(&x, sizeof(x)); - m_Contents[i].m_Page = new char[x]; - f -> Read(m_Contents[i].m_Page, x); - m_Contents[i].m_Book = book; - } - - /* load index : */ - - f -> Read(&x, sizeof(x)); - st = m_IndexCnt; - m_IndexCnt += x; - m_Index = (HtmlContentsItem*) realloc(m_Index, (m_IndexCnt / HTML_REALLOC_STEP + 1) * HTML_REALLOC_STEP * sizeof(HtmlContentsItem)); - for (i = st; i < m_IndexCnt; i++) { - f -> Read(&x, sizeof(x)); - m_Index[i].m_Name = new char[x]; - f -> Read(m_Index[i].m_Name, x); - f -> Read(&x, sizeof(x)); - m_Index[i].m_Page = new char[x]; - f -> Read(m_Index[i].m_Page, x); - m_Index[i].m_Book = book; - } -} - - - - - - -void wxHtmlHelpController::SaveCachedBook(HtmlBookRecord *book, wxOutputStream *f) -{ - int i; - int x; - - /* save contents : */ - - x = 0; - for (i = 0; i < m_ContentsCnt; i++) if (m_Contents[i].m_Book == book && m_Contents[i].m_Level > 0) x++; - f -> Write(&x, sizeof(x)); - for (i = 0; i < m_ContentsCnt; i++) { - if (m_Contents[i].m_Book != book || m_Contents[i].m_Level == 0) continue; - x = m_Contents[i].m_Level; - f -> Write(&x, sizeof(x)); - x = m_Contents[i].m_ID; - f -> Write(&x, sizeof(x)); - x = strlen(m_Contents[i].m_Name) + 1; - f -> Write(&x, sizeof(x)); - f -> Write(m_Contents[i].m_Name, x); - x = strlen(m_Contents[i].m_Page) + 1; - f -> Write(&x, sizeof(x)); - f -> Write(m_Contents[i].m_Page, x); - } - - /* save index : */ - - x = 0; - for (i = 0; i < m_IndexCnt; i++) if (m_Index[i].m_Book == book && m_Index[i].m_Level > 0) x++; - f -> Write(&x, sizeof(x)); - for (i = 0; i < m_IndexCnt; i++) { - if (m_Index[i].m_Book != book || m_Index[i].m_Level == 0) continue; - x = strlen(m_Index[i].m_Name) + 1; - f -> Write(&x, sizeof(x)); - f -> Write(m_Index[i].m_Name, x); - x = strlen(m_Index[i].m_Page) + 1; - f -> Write(&x, sizeof(x)); - f -> Write(m_Index[i].m_Page, x); - } -} - -#endif \ No newline at end of file diff --git a/src/html/htmlparser.cpp b/src/html/htmlparser.cpp deleted file mode 100644 index ff72c7d6cb..0000000000 --- a/src/html/htmlparser.cpp +++ /dev/null @@ -1,169 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlparser.cpp -// Purpose: wxHtmlParser class (generic parser) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - -#include -#include -#include -#include -#include - - - -//----------------------------------------------------------------------------- -// wxHtmlParser -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxHtmlParser,wxObject) - - -wxObject* wxHtmlParser::Parse(const wxString& source) -{ - wxObject *result; - - InitParser(source); - DoParsing(); - result = GetProduct(); - DoneParser(); - return result; -} - - - -void wxHtmlParser::InitParser(const wxString& source) -{ - m_Source = source; - m_Cache = new wxHtmlTagsCache(m_Source); -} - - - -void wxHtmlParser::DoneParser() -{ - delete m_Cache; - m_Cache = NULL; -} - - - -#define HTML_MAX_BUFLEN 1024 - -void wxHtmlParser::DoParsing(int begin_pos, int end_pos) -{ - char temp[HTML_BUFLEN], c; - int i; - int templen; - - templen = 0; - i = begin_pos; - - while (i < end_pos) { - c = m_Source[i]; - - // continue building word: - if (c != '<') { - temp[templen++] = c; - if (templen == HTML_BUFLEN-1) { - temp[templen] = 0; - AddText(temp); - templen = 0; - } - i++; - } - - else if (c == '<') { - wxHtmlTag tag(m_Source, i, end_pos, m_Cache); - - if (templen) { - temp[templen] = 0; - AddText(temp); - templen = 0; - } - AddTag(tag); - if (tag.HasEnding()) i = tag.GetEndPos2(); - else i = tag.GetBeginPos(); - } - } - - if (templen) { // last word of block :-( - temp[templen] = 0; - AddText(temp); - } -} - - - -void wxHtmlParser::AddTag(const wxHtmlTag& tag) -{ - wxHtmlTagHandler *h; - bool inner = FALSE; - - h = (wxHtmlTagHandler*) m_HandlersHash.Get(tag.GetName()); - if (h) - inner = h -> HandleTag(tag); - if (!inner) { - if (tag.HasEnding()) - DoParsing(tag.GetBeginPos(), tag.GetEndPos1()); - } -} - - - -void wxHtmlParser::AddTagHandler(wxHtmlTagHandler *handler) -{ - wxString s(handler -> GetSupportedTags()); - wxStringTokenizer tokenizer(s, ", "); - -#if (wxVERSION_NUMBER < 2100) - while (tokenizer.HasMoreToken()) -#else - while (tokenizer.HasMoreTokens()) -#endif - m_HandlersHash.Put(tokenizer.NextToken(), handler); - - if (m_HandlersList.IndexOf(handler) == wxNOT_FOUND) - m_HandlersList.Append(handler); - - handler -> SetParser(this); -} - - - -wxHtmlParser::~wxHtmlParser() -{ - m_HandlersHash.Clear(); - m_HandlersList.DeleteContents(TRUE); - m_HandlersList.Clear(); -} - - - -//----------------------------------------------------------------------------- -// wxHtmlTagHandler -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxHtmlTagHandler,wxObject) - -#endif \ No newline at end of file diff --git a/src/html/htmltag.cpp b/src/html/htmltag.cpp deleted file mode 100644 index 65253c20aa..0000000000 --- a/src/html/htmltag.cpp +++ /dev/null @@ -1,250 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmltag.cpp -// Purpose: wxHtmlTag class (represents single tag) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - -#include -#include // for vsscanf -#include - - - - -//----------------------------------------------------------------------------- -// wxHtmlTagsCache -//----------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxHtmlTagsCache,wxObject) - -#define CACHE_INCREMENT 64 - -wxHtmlTagsCache::wxHtmlTagsCache(const wxString& source) -{ - const char *src = source.c_str(); - int i, tg, pos, stpos; - int lng = source.Length(); - char dummy[256]; - - m_Cache = NULL; - m_CacheSize = 0; - m_CachePos = 0; - - pos = 0; - while (pos < lng) { - if (src[pos] == '<') { // tag found: - if (m_CacheSize % CACHE_INCREMENT == 0) - m_Cache = (sCacheItem*) realloc(m_Cache, (m_CacheSize + CACHE_INCREMENT) * sizeof(sCacheItem)); - tg = m_CacheSize++; - m_Cache[tg].Key = stpos = pos++; - dummy[0] = 0; i = 0; - while ((src[pos] != '>') && (src[pos] != ' ')) { - dummy[i] = src[pos++]; - if ((dummy[i] >= 'a') && (dummy[i] <= 'z')) dummy[i] -= ('a' - 'A'); - i++; - } - dummy[i] = 0; - m_Cache[tg].Name = new char[i+1]; - memcpy(m_Cache[tg].Name, dummy, i+1); - - while (src[pos] != '>') pos++; - - if (src[stpos+1] == '/') { // ending tag: - m_Cache[tg].End1 = m_Cache[tg].End2 = -2; - // find matching begin tag: - for (i = tg; i >= 0; i--) - if ((m_Cache[i].End1 == -1) && (strcmp(m_Cache[i].Name, dummy+1) == 0)) { - m_Cache[i].End1 = stpos; - m_Cache[i].End2 = pos + 1; - break; - } - } - else { - m_Cache[tg].End1 = m_Cache[tg].End2 = -1; - } - } - - pos++; - } - - // ok, we're done, now we'll free .Name members of cache - we don't need it anymore: - for (i = 0; i < m_CacheSize; i++) { - delete[] m_Cache[i].Name; - m_Cache[i].Name = NULL; - } -} - - - -void wxHtmlTagsCache::QueryTag(int at, int* end1, int* end2) -{ - if (m_Cache == NULL) return; - if (m_Cache[m_CachePos].Key != at) { - int delta = (at < m_Cache[m_CachePos].Key) ? -1 : 1; - do {m_CachePos += delta;} while (m_Cache[m_CachePos].Key != at); - } - *end1 = m_Cache[m_CachePos].End1; - *end2 = m_Cache[m_CachePos].End2; -} - - - - -//----------------------------------------------------------------------------- -// wxHtmlTag -//----------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxHtmlTag,wxObject) - -wxHtmlTag::wxHtmlTag(const wxString& source, int pos, int end_pos, wxHtmlTagsCache* cache) : wxObject() -{ - int i; - char c; - - // fill-in name, params and begin pos: - m_Name = m_Params = wxEmptyString; - i = pos+1; - if (source[i] == '/') {m_Ending = TRUE; i++;} - else m_Ending = FALSE; - - while ((i < end_pos) && ((c = source[i++]) != ' ') && (c != '>')) { - if ((c >= 'a') && (c <= 'z')) c -= ('a' - 'A'); - m_Name += c; - } - - if (source[i-1] != '>') - while ((i < end_pos) && ((c = source[i++]) != '>')) { - if ((c >= 'a') && (c <= 'z')) c -= ('a' - 'A'); - m_Params += c; - if (c == '"') { - while ((i < end_pos) && ((c = source[i++]) != '"')) m_Params += c; - m_Params += c; - } - } - m_Begin = i; - - cache -> QueryTag(pos, &m_End1, &m_End2); - if (m_End1 > end_pos) m_End1 = end_pos; - if (m_End2 > end_pos) m_End2 = end_pos; -} - - - -bool wxHtmlTag::HasParam(const wxString& par) const -{ - const char *st = m_Params, *p = par; - const char *st2, *p2; - - if (*st == 0) return FALSE; - if (*p == 0) return FALSE; - for (st2 = st, p2 = p; ; st2++) { - if (*p2 == 0) return TRUE; - if (*st2 == 0) return FALSE; - if (*p2 != *st2) p2 = p; - if (*p2 == *st2) p2++; - if (*st2 == ' ') p2 = p; - else if (*st2 == '=') { - p2 = p; - while (*st2 != ' ') { - if (*st2 == '"') { - st2++; - while (*st2 != '"') st2++; - } - st2++; - if (*st2 == 0) return FALSE; - } - } - } -} - - - -wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const -{ - const char *st = m_Params, *p = par; - const char *st2, *p2; - bool comma; - - if (*st == 0) return ""; - if (*p == 0) return ""; - for (st2 = st, p2 = p; ; st2++) { - if (*p2 == 0) { // found - wxString fnd = ""; - st2++; // '=' character - comma = FALSE; - if (!with_commas && (*(st2) == '"')) {st2++; comma = TRUE;} - while (*st2 != 0) { - if (*st2 == '"') comma = !comma; - else if ((*st2 == ' ') && (!comma)) break; - fnd += (*(st2++)); - } - if (!with_commas && (*(st2-1) == '"')) fnd.RemoveLast(); - return fnd; - } - if (*st2 == 0) return ""; - if (*p2 != *st2) p2 = p; - if (*p2 == *st2) p2++; - if (*st2 == ' ') p2 = p; - else if (*st2 == '=') { - p2 = p; - while (*st2 != ' ') { - if (*st2 == '"') { - st2++; - while (*st2 != '"') st2++; - } - st2++; - } - } - } -} - - - -void wxHtmlTag::ScanParam(const wxString& par, char *format, ...) const -{ - va_list argptr; - wxString parval = GetParam(par); - - va_start(argptr, format); - -//#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__VISUALC__) -#ifndef HAVE_VSSCANF - sscanf((const char*)parval, format, va_arg(argptr, void *)); -#else - vsscanf((const char*)parval, format, argptr); -#endif - -/* - --- vsscanf is not defined under Cygwin or Mingw32 or M$ Visual C++ environment - if this module doesn't compile with your compiler, - modify the def statement and let me know. Thanks... - - So far wxHtml functions are scanning only _one_ value - so I workarounded this by supposing that there is only - one ...-parameter -*/ - - va_end(argptr); -} - -#endif diff --git a/src/html/htmlwin.cpp b/src/html/htmlwin.cpp deleted file mode 100644 index 7c08bbbd3f..0000000000 --- a/src/html/htmlwin.cpp +++ /dev/null @@ -1,572 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlwin.cpp -// Purpose: wxHtmlWindow class for parsing & displaying HTML (implementation) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - -#include - -#include - - - -//----------------------------------------------------------------------------- -// wxHtmlWindow -//----------------------------------------------------------------------------- - - - -#include -WX_DEFINE_OBJARRAY(HtmlHistoryArray) - - -wxHtmlWindow::wxHtmlWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) : wxScrolledWindow(parent, id, pos, size, wxVSCROLL, name) -{ - m_tmpMouseMoved = FALSE; - m_tmpCanDraw = TRUE; - m_FS = new wxFileSystem(); - m_RelatedStatusBar = -1; - m_RelatedFrame = NULL; - m_TitleFormat = "%s"; - m_OpenedPage = m_OpenedAnchor = wxEmptyString; - m_Cell = NULL; - m_Parser = new wxHtmlWinParser(this); - m_Parser -> SetFS(m_FS); - SetBorders(10); - m_HistoryPos = -1; - m_HistoryOn = TRUE; - m_Style = style; - SetPage(""); -} - - - -wxHtmlWindow::~wxHtmlWindow() -{ - HistoryClear(); - - if (m_Cell) delete m_Cell; - - wxList *parser_data = m_Parser -> GetTempData(); - if (parser_data) delete parser_data; - - delete m_Parser; - delete m_FS; -} - - - -void wxHtmlWindow::SetRelatedFrame(wxFrame* frame, const wxString& format) -{ - m_RelatedFrame = frame; - m_TitleFormat = format; -} - - - -void wxHtmlWindow::SetRelatedStatusBar(int bar) -{ - m_RelatedStatusBar = bar; -} - - - -void wxHtmlWindow::SetFonts(wxString normal_face, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, int *sizes) -{ - m_Parser -> SetFonts(normal_face, normal_italic_mode, fixed_face, fixed_italic_mode, sizes); - if (!m_OpenedPage.IsEmpty()) LoadPage(m_OpenedPage); -} - - - -bool wxHtmlWindow::SetPage(const wxString& source) -{ - wxClientDC *dc = new wxClientDC(this); - - dc -> SetMapMode(wxMM_TEXT); - SetBackgroundColour(wxColour(0xFF, 0xFF, 0xFF)); - m_OpenedPage = m_OpenedAnchor = wxEmptyString; - m_Parser -> SetDC(dc); - if (m_Cell) { - delete m_Cell; - m_Cell = NULL; - } - m_Cell = (wxHtmlContainerCell*) m_Parser -> Parse(source); - delete dc; - m_Cell -> SetIndent(m_Borders, HTML_INDENT_ALL, HTML_UNITS_PIXELS); - m_Cell -> SetAlignHor(HTML_ALIGN_CENTER); - CreateLayout(); - Refresh(); - return TRUE; -} - - -bool wxHtmlWindow::LoadPage(const wxString& location) -{ - wxFSFile *f; - bool rt_val; - wxBusyCursor b; - - m_tmpCanDraw = FALSE; - if (m_HistoryOn && (m_HistoryPos != -1)) { // store scroll position into history item - int x, y; - ViewStart(&x, &y); - m_History[m_HistoryPos].SetPos(y); - } - - if (location[0] == '#') { // local anchor - wxString anch = location.Mid(1) /*1 to end*/; - m_tmpCanDraw = TRUE; - rt_val = ScrollToAnchor(anch); - } - - else { - // load&display it: - if (m_RelatedStatusBar != -1) { - m_RelatedFrame -> SetStatusText(_("Connecting..."), m_RelatedStatusBar); - Refresh(); - } - - f = m_FS -> OpenFile(location); - if (f == NULL) { - wxString err; - - err.Printf(_("The browser is unable to open requested location :\n\n%s"), WXSTRINGCAST location); - m_tmpCanDraw = TRUE; - Refresh(); - wxMessageBox(err, "Error"); - return FALSE; - } - - else { - wxNode *node; - wxString src = wxEmptyString; - - if (m_RelatedStatusBar != -1) { - wxString msg = _("Loading : ") + location; - m_RelatedFrame -> SetStatusText(msg, m_RelatedStatusBar); - Refresh(); - } - - node = m_Filters.GetFirst(); - while (node){ - wxHtmlFilter *h = (wxHtmlFilter*) node -> GetData(); - if (h -> CanRead(*f)) { - src = h -> ReadFile(*f); - break; - } - node = node -> GetNext(); - } - if (src == wxEmptyString) { - if (m_DefaultFilter == NULL) m_DefaultFilter = GetDefaultFilter(); - src = m_DefaultFilter -> ReadFile(*f); - } - - m_FS -> ChangePathTo(f -> GetLocation()); - rt_val = SetPage(src); - m_OpenedPage = f -> GetLocation(); - if (f -> GetAnchor() != wxEmptyString) { - m_tmpCanDraw = TRUE; - ScrollToAnchor(f -> GetAnchor()); - m_tmpCanDraw = FALSE; - } - - delete f; - - if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(_("Done"), m_RelatedStatusBar); - } - } - - if (m_HistoryOn) { // add this page to history there: - int c = m_History.GetCount() - (m_HistoryPos + 1); - - m_HistoryPos++; - for (int i = 0; i < c; i++) - m_History.Remove(m_HistoryPos); - m_History.Add(new HtmlHistoryItem(m_OpenedPage, m_OpenedAnchor)); - } - - m_tmpCanDraw = TRUE; - Refresh(); - return rt_val; -} - - - -bool wxHtmlWindow::ScrollToAnchor(const wxString& anchor) -{ - const wxHtmlCell *c = m_Cell -> Find(HTML_COND_ISANCHOR, &anchor); - if (!c) return FALSE; - else { - int y; - - for (y = 0; c != NULL; c = c -> GetParent()) y += c -> GetPosY(); - Scroll(-1, y / HTML_SCROLL_STEP); - m_OpenedAnchor = anchor; - return TRUE; - } -} - - -void wxHtmlWindow::SetTitle(const wxString& title) -{ - if (m_RelatedFrame) { - wxString tit; - tit.Printf(m_TitleFormat, title.c_str()); - m_RelatedFrame -> SetTitle(tit); - } -} - - - - - -void wxHtmlWindow::CreateLayout() -{ - int ClientWidth, ClientHeight; - - if (!m_Cell) return; - - if (m_Style == wxHW_SCROLLBAR_NEVER) { - SetScrollbars(1, 1, 0, 0); // always off - GetClientSize(&ClientWidth, &ClientHeight); - m_Cell -> Layout(ClientWidth); - } - - else { - GetClientSize(&ClientWidth, &ClientHeight); -#ifndef __WXMSW__ - // VS : this looks extremely ugly under windoze, better fix needed! - SetScrollbars(1, 1, 0, ClientHeight * 2); // always on -#endif - GetClientSize(&ClientWidth, &ClientHeight); - m_Cell -> Layout(ClientWidth); - if (ClientHeight < m_Cell -> GetHeight()) { - SetScrollbars(HTML_SCROLL_STEP, HTML_SCROLL_STEP, - m_Cell -> GetWidth() / HTML_SCROLL_STEP, - m_Cell -> GetHeight() / HTML_SCROLL_STEP - /*cheat: top-level frag is always container*/); - } - else { /* we fit into window, no need for scrollbars */ - SetScrollbars(1, 1, 0, 0); // disable... - GetClientSize(&ClientWidth, &ClientHeight); - m_Cell -> Layout(ClientWidth); // ...and relayout - } - } -} - - - -void wxHtmlWindow::ReadCustomization(wxConfigBase *cfg, wxString path) -{ - wxString oldpath; - wxString tmp; - - if (path != wxEmptyString) { - oldpath = cfg -> GetPath(); - cfg -> SetPath(path); - } - - m_Borders = cfg -> Read("wxHtmlWindow/Borders", m_Borders); - m_Parser -> m_FontFaceFixed = cfg -> Read("wxHtmlWindow/FontFaceFixed", m_Parser -> m_FontFaceFixed); - m_Parser -> m_FontFaceNormal = cfg -> Read("wxHtmlWindow/FontFaceNormal", m_Parser -> m_FontFaceNormal); - m_Parser -> m_ItalicModeFixed = cfg -> Read("wxHtmlWindow/ItalicModeFixed", m_Parser -> m_ItalicModeFixed); - m_Parser -> m_ItalicModeNormal = cfg -> Read("wxHtmlWindow/ItalicModeNormal", m_Parser -> m_ItalicModeNormal); - for (int i = 0; i < 7; i++) { - tmp.Printf("wxHtmlWindow/FontsSize%i", i); - m_Parser -> m_FontsSizes[i] = cfg -> Read(tmp, m_Parser -> m_FontsSizes[i]); - } - - if (path != wxEmptyString) - cfg -> SetPath(oldpath); -} - - - -void wxHtmlWindow::WriteCustomization(wxConfigBase *cfg, wxString path) -{ - wxString oldpath; - wxString tmp; - - if (path != wxEmptyString) { - oldpath = cfg -> GetPath(); - cfg -> SetPath(path); - } - - cfg -> Write("wxHtmlWindow/Borders", (long) m_Borders); - cfg -> Write("wxHtmlWindow/FontFaceFixed", m_Parser -> m_FontFaceFixed); - cfg -> Write("wxHtmlWindow/FontFaceNormal", m_Parser -> m_FontFaceNormal); - cfg -> Write("wxHtmlWindow/ItalicModeFixed", (long) m_Parser -> m_ItalicModeFixed); - cfg -> Write("wxHtmlWindow/ItalicModeNormal", (long) m_Parser -> m_ItalicModeNormal); - for (int i = 0; i < 7; i++) { - tmp.Printf("wxHtmlWindow/FontsSize%i", i); - cfg -> Write(tmp, (long) m_Parser -> m_FontsSizes[i]); - } - - if (path != wxEmptyString) - cfg -> SetPath(oldpath); -} - - - -bool wxHtmlWindow::HistoryBack() -{ - wxString a, l; - - if (m_HistoryPos < 1) return FALSE; - - m_HistoryPos--; - - l = m_History[m_HistoryPos].GetPage(); - a = m_History[m_HistoryPos].GetAnchor(); - m_HistoryOn = FALSE; - if (a == wxEmptyString) LoadPage(l); - else LoadPage(l + "#" + a); - m_HistoryOn = TRUE; - Scroll(0, m_History[m_HistoryPos].GetPos()); - Refresh(); - return TRUE; -} - - - -bool wxHtmlWindow::HistoryForward() -{ - wxString a, l; - - if (m_HistoryPos == -1) return FALSE; - if (m_HistoryPos >= (int)m_History.GetCount() - 1)return FALSE; - - m_OpenedPage = wxEmptyString; // this will disable adding new entry into history in LoadPage() - - m_HistoryPos++; - l = m_History[m_HistoryPos].GetPage(); - a = m_History[m_HistoryPos].GetAnchor(); - m_HistoryOn = FALSE; - if (a == wxEmptyString) LoadPage(l); - else LoadPage(l + "#" + a); - m_HistoryOn = TRUE; - Scroll(0, m_History[m_HistoryPos].GetPos()); - Refresh(); - return TRUE; -} - - - -void wxHtmlWindow::HistoryClear() -{ - m_History.Empty(); - m_HistoryPos = -1; -} - - - -wxList wxHtmlWindow::m_Filters; -wxHtmlFilter *wxHtmlWindow::m_DefaultFilter = NULL; - -void wxHtmlWindow::CleanUpStatics() -{ - if (m_DefaultFilter) delete m_DefaultFilter; - m_DefaultFilter = NULL; -} - - - -void wxHtmlWindow::AddFilter(wxHtmlFilter *filter) -{ - m_Filters.DeleteContents(TRUE); - m_Filters.Append(filter); -} - - - - -void wxHtmlWindow::OnLinkClicked(const wxString& link) -{ - LoadPage(link); -} - - - -void wxHtmlWindow::OnDraw(wxDC& dc) -{ - int x, y; - wxRegionIterator upd(GetUpdateRegion()); // get the update rect list - int v_y, v_h; - - if (!m_tmpCanDraw) return; - dc.SetMapMode(wxMM_TEXT); -#if defined(_MSC_VER) && (_MSC_VER == 1200) - ::SetMapMode((HDC)dc.GetHDC(), MM_TEXT); -#endif - dc.SetBackgroundMode(wxTRANSPARENT); - ViewStart(&x, &y); - - while (upd) { - v_y = upd.GetY(); - v_h = upd.GetH(); - if (m_Cell) m_Cell -> Draw(dc, 0, 0, y * HTML_SCROLL_STEP + v_y, y * HTML_SCROLL_STEP + v_h + v_y); - upd++; - } -} - - - - -void wxHtmlWindow::OnSize(wxSizeEvent& event) -{ - wxScrolledWindow::OnSize(event); - CreateLayout(); -} - - - -void wxHtmlWindow::OnKeyDown(wxKeyEvent& event) -{ - int dummy; - int sty, szy, cliy; - - ViewStart(&dummy, &sty); - GetClientSize(&dummy, &cliy); cliy /= HTML_SCROLL_STEP; - GetVirtualSize(&dummy, &szy); szy /= HTML_SCROLL_STEP; - - switch (event.KeyCode()) { - case WXK_PAGEUP : - case WXK_PRIOR : - Scroll(-1, sty - cliy); - break; - case WXK_PAGEDOWN : - case WXK_NEXT : - Scroll(-1, sty + cliy); - break; - case WXK_HOME : - Scroll(-1, 0); - break; - case WXK_END : - Scroll(-1, szy - cliy); - break; - case WXK_UP : - Scroll(-1, sty - 1); - break; - case WXK_DOWN : - Scroll(-1, sty + 1); - break; - } -} - - - -void wxHtmlWindow::OnMouseEvent(wxMouseEvent& event) -{ - m_tmpMouseMoved = TRUE; - - if (event.ButtonDown()) { - int sx, sy; - wxPoint pos; - wxString lnk; - - ViewStart(&sx, &sy); sx *= HTML_SCROLL_STEP; sy *= HTML_SCROLL_STEP; - pos = event.GetPosition(); - - if (m_Cell) - m_Cell -> OnMouseClick(this, sx + pos.x, sy + pos.y, event.ButtonDown(1), event.ButtonDown(2), event.ButtonDown(3)); - } -} - - - -void wxHtmlWindow::OnIdle(wxIdleEvent& event) -{ - static wxCursor cur_hand(wxCURSOR_HAND), cur_arrow(wxCURSOR_ARROW); - - if (m_tmpMouseMoved && (m_Cell != NULL)) { - int sx, sy; - int x, y; - wxString lnk; - - ViewStart(&sx, &sy); sx *= HTML_SCROLL_STEP; sy *= HTML_SCROLL_STEP; - wxGetMousePosition(&x, &y); - ScreenToClient(&x, &y); - lnk = m_Cell -> GetLink(sx + x, sy + y); - - if (lnk == wxEmptyString) { - SetCursor(cur_arrow); - if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(wxEmptyString, m_RelatedStatusBar); - } - else { - SetCursor(cur_hand); - if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(lnk, m_RelatedStatusBar); - } - m_tmpMouseMoved = FALSE; - } -} - - - - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindow,wxScrolledWindow) - -BEGIN_EVENT_TABLE(wxHtmlWindow, wxScrolledWindow) - EVT_SIZE(wxHtmlWindow::OnSize) - EVT_LEFT_DOWN(wxHtmlWindow::OnMouseEvent) - EVT_MOTION(wxHtmlWindow::OnMouseEvent) - EVT_IDLE(wxHtmlWindow::OnIdle) - EVT_KEY_DOWN(wxHtmlWindow::OnKeyDown) -END_EVENT_TABLE() - - - - - -// A module to allow initialization/cleanup -// without calling these functions from app.cpp or from -// the user's application. - -class wxHtmlWinModule: public wxModule -{ -DECLARE_DYNAMIC_CLASS(wxHtmlWinModule) -public: - wxHtmlWinModule() : wxModule() {} - bool OnInit() { return TRUE; } - void OnExit() { wxHtmlWindow::CleanUpStatics(); } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlWinModule, wxModule) - - - - -///// default mod handlers are forced there: - -FORCE_LINK(mod_layout) -FORCE_LINK(mod_fonts) -FORCE_LINK(mod_image) -FORCE_LINK(mod_list) -FORCE_LINK(mod_pre) -FORCE_LINK(mod_hline) -FORCE_LINK(mod_links) -FORCE_LINK(mod_tables) - - -#endif diff --git a/src/html/htmlwinparser.cpp b/src/html/htmlwinparser.cpp deleted file mode 100644 index efc1d0d198..0000000000 --- a/src/html/htmlwinparser.cpp +++ /dev/null @@ -1,288 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlwinparser.cpp -// Purpose: wxHtmlParser class (generic parser) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - -#include -#include -#include - - -//----------------------------------------------------------------------------- -// wxHtmlWinParser -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlWinParser,wxHtmlParser) - -wxList wxHtmlWinParser::m_Modules; - -wxHtmlWinParser::wxHtmlWinParser(wxWindow *wnd) : wxHtmlParser() -{ - m_Window = wnd; - m_Container = NULL; - m_DC = NULL; - m_CharHeight = m_CharWidth = 0; - m_UseLink = FALSE; - - { - int i, j, k, l, m; - for (i = 0; i < 2; i++) - for (j = 0; j < 2; j++) - for (k = 0; k < 2; k++) - for (l = 0; l < 2; l++) - for (m = 0; m < 7; m++) - m_FontsTable[i][j][k][l][m] = NULL; -#ifdef __WXMSW__ - int default_sizes[7] = {7, 8, 10, 12, 16, 22, 30}; -#else - int default_sizes[7] = {10, 12, 14, 16, 19, 24, 32}; -#endif - SetFonts("", wxSLANT, "", wxSLANT, default_sizes); - } - - // fill in wxHtmlParser's tables: - wxNode *node = m_Modules.GetFirst(); - while (node){ - wxHtmlTagsModule *mod = (wxHtmlTagsModule*) node -> GetData(); - mod -> FillHandlersTable(this); - node = node -> GetNext(); - } -} - - - -void wxHtmlWinParser::AddModule(wxHtmlTagsModule *module) -{ - m_Modules.Append(module); -} - - - -void wxHtmlWinParser::SetFonts(wxString normal_face, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, int *sizes) -{ - for (int i = 0; i < 7; i++) m_FontsSizes[i] = sizes[i]; - m_FontFaceFixed = fixed_face; - m_FontFaceNormal = normal_face; - m_ItalicModeFixed = fixed_italic_mode; - m_ItalicModeNormal = normal_italic_mode; -} - - - -void wxHtmlWinParser::InitParser(const wxString& source) -{ - wxHtmlParser::InitParser(source); - wxASSERT_MSG(m_DC != NULL, _("no DC assigned to wxHtmlWinParser!!")); - - m_FontBold = m_FontItalic = m_FontUnderlined = m_FontFixed = FALSE; - m_FontSize = 0; - CreateCurrentFont(); // we're selecting default font into - m_DC -> GetTextExtent("H", &m_CharWidth, &m_CharHeight); - /* NOTE : we're not using GetCharWidth/Height() because - of differences under X and win - */ - - m_Link = ""; - m_LinkColor.Set(0, 0, 0xFF); - m_ActualColor.Set(0, 0, 0); - m_Align = HTML_ALIGN_LEFT; - m_tmpLastWasSpace = FALSE; - - OpenContainer(); - - OpenContainer(); - m_Container -> InsertCell(new wxHtmlColourCell(m_ActualColor)); - m_Container -> InsertCell(new wxHtmlFontCell(CreateCurrentFont())); -} - - - -void wxHtmlWinParser::DoneParser() -{ - m_Container = NULL; - wxHtmlParser::DoneParser(); -} - - - -wxObject* wxHtmlWinParser::GetProduct() -{ - wxHtmlContainerCell *top; - - CloseContainer(); - OpenContainer(); - GetContainer() -> SetIndent(m_CharHeight, HTML_INDENT_TOP); - top = m_Container; - while (top -> GetParent()) top = top -> GetParent(); - return top; -} - - - -wxList* wxHtmlWinParser::GetTempData() -{ - int i, j, k, l, m; - wxFont *f; - wxList *lst = wxHtmlParser::GetTempData(); - - if (lst == NULL) lst = new wxList; - lst -> DeleteContents(TRUE); - - for (i = 0; i < 2; i++) - for (j = 0; j < 2; j++) - for (k = 0; k < 2; k++) - for (l = 0; l < 2; l++) - for (m = 0; m < 7; m++) { - f = m_FontsTable[i][j][k][l][m]; - if (f) lst -> Append(f); - } - return lst; -} - - - -void wxHtmlWinParser::AddText(const char* txt) -{ - wxHtmlCell *c; - int i = 0, x, lng = strlen(txt); - char temp[HTML_BUFLEN]; - register char d; - int templen = 0; - - if (m_tmpLastWasSpace) { - while ((i < lng) && ((txt[i] == '\n') || (txt[i] == '\r') || (txt[i] == ' ') || (txt[i] == '\t'))) i++; - } - - while (i < lng) { - x = 0; - d = temp[templen++] = txt[i]; - if ((d == '\n') || (d == '\r') || (d == ' ') || (d == '\t')) { - i++, x++; - while ((i < lng) && ((txt[i] == '\n') || (txt[i] == '\r') || (txt[i] == ' ') || (txt[i] == '\t'))) i++, x++; - } - else i++; - - if (x) { - temp[templen-1] = ' '; - temp[templen] = 0; - templen = 0; - c = new wxHtmlWordCell(temp, *(GetDC())); - if (m_UseLink) c -> SetLink(m_Link); - m_Container -> InsertCell(c); - m_tmpLastWasSpace = TRUE; - } - } - if (templen) { - temp[templen] = 0; - c = new wxHtmlWordCell(temp, *(GetDC())); - if (m_UseLink) c -> SetLink(m_Link); - m_Container -> InsertCell(c); - m_tmpLastWasSpace = FALSE; - } -} - - - -wxHtmlContainerCell* wxHtmlWinParser::OpenContainer() -{ - m_Container = new wxHtmlContainerCell(m_Container); - m_Container -> SetAlignHor(m_Align); - m_tmpLastWasSpace = TRUE; - /* to avoid space being first character in paragraph */ - return m_Container; -} - - - -wxHtmlContainerCell* wxHtmlWinParser::SetContainer(wxHtmlContainerCell *c) -{ - m_tmpLastWasSpace = TRUE; - /* to avoid space being first character in paragraph */ - return m_Container = c; -} - - - -wxHtmlContainerCell* wxHtmlWinParser::CloseContainer() -{ - m_Container = m_Container -> GetParent(); - return m_Container; -} - - - -wxFont* wxHtmlWinParser::CreateCurrentFont() -{ - int fb = GetFontBold(), - fi = GetFontItalic(), - fu = GetFontUnderlined(), - ff = GetFontFixed(), - fs = GetFontSize() + 2 /*remap from <-2;4> to <0;7>*/ ; - - if (m_FontsTable[fb][fi][fu][ff][fs] == NULL) { - m_FontsTable[fb][fi][fu][ff][fs] = - //wxTheFontList -> FindOrCreateFont( - new wxFont( - m_FontsSizes[fs], - ff ? wxMODERN : wxSWISS, - fi ? (ff ? m_ItalicModeFixed : m_ItalicModeNormal) : wxNORMAL, - fb ? wxBOLD : wxNORMAL, - fu ? TRUE : FALSE, ff ? m_FontFaceFixed : m_FontFaceNormal); - } - m_DC -> SetFont(*(m_FontsTable[fb][fi][fu][ff][fs])); - return (m_FontsTable[fb][fi][fu][ff][fs]); -} - - - - -//----------------------------------------------------------------------------- -// wxHtmlWinTagHandler -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxHtmlWinTagHandler, wxHtmlTagHandler) - - - -//----------------------------------------------------------------------------- -// wxHtmlTagsModule -//----------------------------------------------------------------------------- - - -IMPLEMENT_DYNAMIC_CLASS(wxHtmlTagsModule, wxModule) - - -bool wxHtmlTagsModule::OnInit() -{ - wxHtmlWinParser::AddModule(this); - return TRUE; -} - - - -void wxHtmlTagsModule::OnExit() -{ -} - -#endif \ No newline at end of file diff --git a/src/html/mod_fonts.cpp b/src/html/mod_fonts.cpp deleted file mode 100644 index 7d27a6ea0d..0000000000 --- a/src/html/mod_fonts.cpp +++ /dev/null @@ -1,188 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_fonts.cpp -// Purpose: wxHtml module for fonts & colors of fonts -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - -#include -#include - -FORCE_LINK_ME(mod_fonts) - - -TAG_HANDLER_BEGIN(FONT, "FONT") - - TAG_HANDLER_PROC(tag) - { - unsigned long tmp; - wxColour oldclr = m_WParser -> GetActualColor(); - int oldsize = m_WParser -> GetFontSize(); - - if (tag.HasParam("COLOR")) { - wxColour clr; - tag.ScanParam("COLOR", "#%lX", &tmp); - clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF)); - m_WParser -> SetActualColor(clr); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr)); - } - - if (tag.HasParam("SIZE")) { - tag.ScanParam("SIZE", "%li", &tmp); - m_WParser -> SetFontSize(tmp); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - } - - ParseInner(tag); - - if (oldclr != m_WParser -> GetActualColor()) { - m_WParser -> SetActualColor(oldclr); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(oldclr)); - } - if (oldsize != m_WParser -> GetFontSize()) { - m_WParser -> SetFontSize(oldsize); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - } - return TRUE; - } - -TAG_HANDLER_END(FONT) - - -TAG_HANDLER_BEGIN(FACES, "U,I,B,TT") - - TAG_HANDLER_PROC(tag) - { - int fixed = m_WParser -> GetFontFixed(), - italic = m_WParser -> GetFontItalic(), - underlined = m_WParser -> GetFontUnderlined(), - bold = m_WParser -> GetFontBold(); - - if (tag.GetName() == "U") - m_WParser -> SetFontUnderlined(TRUE); - else if (tag.GetName() == "B") - m_WParser -> SetFontBold(TRUE); - else if (tag.GetName() == "I") - m_WParser -> SetFontItalic(TRUE); - else - m_WParser -> SetFontFixed(TRUE); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - - ParseInner(tag); - - m_WParser -> SetFontUnderlined(underlined); - m_WParser -> SetFontBold(bold); - m_WParser -> SetFontItalic(italic); - m_WParser -> SetFontFixed(fixed); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - return TRUE; - } - -TAG_HANDLER_END(FACES) - - - - - -TAG_HANDLER_BEGIN(Hx, "H1,H2,H3,H4,H5,H6") - - TAG_HANDLER_PROC(tag) - { - int old_size, old_b, old_i, old_u, old_f, old_al; - wxHtmlContainerCell *c; - - old_size = m_WParser -> GetFontSize(); - old_b = m_WParser -> GetFontBold(); - old_i = m_WParser -> GetFontItalic(); - old_u = m_WParser -> GetFontUnderlined(); - old_f = m_WParser -> GetFontFixed(); - old_al = m_WParser -> GetAlign(); - - m_WParser -> SetFontBold(TRUE); - m_WParser -> SetFontItalic(FALSE); - m_WParser -> SetFontUnderlined(FALSE); - m_WParser -> SetFontFixed(FALSE); - - if (tag.GetName() == "H1") - m_WParser -> SetFontSize(+4); - else if (tag.GetName() == "H2") - m_WParser -> SetFontSize(+3); - else if (tag.GetName() == "H3") - m_WParser -> SetFontSize(+2); - else if (tag.GetName() == "H4") { - m_WParser -> SetFontSize(+2); - m_WParser -> SetFontItalic(TRUE); - m_WParser -> SetFontBold(FALSE); - } - else if (tag.GetName() == "H5") - m_WParser -> SetFontSize(+1); - else if (tag.GetName() == "H6") { - m_WParser -> SetFontSize(+1); - m_WParser -> SetFontItalic(TRUE); - m_WParser -> SetFontBold(FALSE); - } - - c = m_WParser -> GetContainer(); - if (c -> GetFirstCell()) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - c = m_WParser -> GetContainer(); - } - c = m_WParser -> GetContainer(); - - c -> SetAlign(tag); - c -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - c -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_TOP); - m_WParser -> SetAlign(c -> GetAlignHor()); - - ParseInner(tag); - - m_WParser -> SetFontSize(old_size); - m_WParser -> SetFontBold(old_b); - m_WParser -> SetFontItalic(old_i); - m_WParser -> SetFontUnderlined(old_u); - m_WParser -> SetFontFixed(old_f); - m_WParser -> SetAlign(old_al); - - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - c = m_WParser -> GetContainer(); - c -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_TOP); - - return TRUE; - } - -TAG_HANDLER_END(Hx) - - - - -TAGS_MODULE_BEGIN(Fonts) - - TAGS_MODULE_ADD(FONT) - TAGS_MODULE_ADD(FACES) - TAGS_MODULE_ADD(Hx) - -TAGS_MODULE_END(Fonts) - - -#endif diff --git a/src/html/mod_hline.cpp b/src/html/mod_hline.cpp deleted file mode 100644 index b8af76bdbe..0000000000 --- a/src/html/mod_hline.cpp +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_hline.cpp -// Purpose: wxHtml module for horizontal line (HR tag) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - - -#include "wx/defs.h" -#if wxUSE_HTML -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - - -#include -#include - -#include - -FORCE_LINK_ME(mod_hline) - - -//----------------------------------------------------------------------------- -// wxHtmlLineCell -//----------------------------------------------------------------------------- - -class wxHtmlLineCell : public wxHtmlCell -{ - public: - wxHtmlLineCell(int size) : wxHtmlCell() {m_Height = size;} - void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); - void Layout(int w) {m_Width = w; if (m_Next) m_Next -> Layout(w);} -}; - - -void wxHtmlLineCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - wxBrush mybrush("BLACK", wxSOLID); - wxPen mypen("BLACK", 1, wxSOLID); - dc.SetBrush(mybrush); - dc.SetPen(mypen); - dc.DrawRectangle(x + m_PosX, y + m_PosY, m_Width, m_Height); - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - - - - -//----------------------------------------------------------------------------- -// The list handler: -//----------------------------------------------------------------------------- - - -TAG_HANDLER_BEGIN(HR, "HR") - - TAG_HANDLER_PROC(tag) - { - wxHtmlContainerCell *c; - int sz; - - m_WParser -> CloseContainer(); - c = m_WParser -> OpenContainer(); - - c -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_VERTICAL); - c -> SetAlignHor(HTML_ALIGN_CENTER); - c -> SetAlign(tag); - c -> SetWidthFloat(tag); - if (tag.HasParam("SIZE")) tag.ScanParam("SIZE", "%i", &sz); - else sz = 1; - c -> InsertCell(new wxHtmlLineCell(sz)); - - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - - return FALSE; - } - -TAG_HANDLER_END(HR) - - - - - -TAGS_MODULE_BEGIN(HLine) - - TAGS_MODULE_ADD(HR) - -TAGS_MODULE_END(HLine) - -#endif diff --git a/src/html/mod_image.cpp b/src/html/mod_image.cpp deleted file mode 100644 index d21965c6c2..0000000000 --- a/src/html/mod_image.cpp +++ /dev/null @@ -1,471 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_image.cpp -// Purpose: wxHtml module for displaying images -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik, Joel Lucsy -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wxprec.h" - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include "wx/wx.h" -#endif - -#include "wx/html/forcelink.h" -#include "wx/html/mod_templ.h" - -#include "wx/wxhtml.h" -#include "wx/image.h" -#include "wx/dynarray.h" - -#include -#include - -FORCE_LINK_ME(mod_image) - - - - -WX_DECLARE_OBJARRAY(int, CoordArray); -#include // this is a magic incantation which must be done! -WX_DEFINE_OBJARRAY(CoordArray); - - -//-------------------------------------------------------------------------------- -// wxHtmlImageMapAreaCell -// 0-width, 0-height cell that represents single area in imagemap -// (it's GetLink is called from wxHtmlImageCell's) -//-------------------------------------------------------------------------------- - -class wxHtmlImageMapAreaCell : public wxHtmlCell -{ -public: - enum celltype{ CIRCLE, RECT, POLY }; -protected: - CoordArray coords; - celltype type; - int radius; -public: - wxHtmlImageMapAreaCell( celltype t, wxString &coords ); - virtual wxString GetLink( int x = 0, int y = 0 ) const; -}; - - - - - -wxHtmlImageMapAreaCell::wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::celltype t, wxString &incoords ) -{ - int i; - wxString x = incoords, y; - - type = t; - while ((i = x.Find( ',' )) != -1) - { - coords.Add( atoi( x.Left( i ).c_str() ) ); - x = x.Mid( i + 1 ); - } - coords.Add( atoi( x.c_str() ) ); -} - -wxString wxHtmlImageMapAreaCell::GetLink( int x, int y ) const -{ - switch (type) - { - case RECT: - { - int l, t, r, b; - - l = coords[ 0 ]; - t = coords[ 1 ]; - r = coords[ 2 ]; - b = coords[ 3 ]; - if (x >= l && x <= r && y >= t && y <= b) - { - return m_Link; - } - break; - } - case CIRCLE: - { - int l, t, r; - double d; - - l = coords[ 0 ]; - t = coords[ 1 ]; - r = coords[ 2 ]; - d = sqrt( ((x - l) * (x - l)) + ((y - t) * (y - t)) ); - if (d < (double)r) - { - return m_Link; - } - } - break; - case POLY: - { - if (coords.GetCount() >= 6) - { - int intersects = 0; - int wherex = x; - int wherey = y; - int totalv = coords.GetCount() / 2; - int totalc = totalv * 2; - int xval = coords[totalc - 2]; - int yval = coords[totalc - 1]; - int end = totalc; - int pointer = 1; - - if ((yval >= wherey) != (coords[pointer] >= wherey)) - { - if ((xval >= wherex) == (coords[0] >= wherex)) - { - intersects += (xval >= wherex) ? 1 : 0; - } - else - { - intersects += ((xval - (yval - wherey) * - (coords[0] - xval) / - (coords[pointer] - yval)) >= wherex) ? 1 : 0; - } - } - - while (pointer < end) - { - yval = coords[pointer]; - pointer += 2; - if (yval >= wherey) - { - while((pointer < end) && (coords[pointer] >= wherey)) - { - pointer+=2; - } - if (pointer >= end) - { - break; - } - if ((coords[pointer-3] >= wherex) == - (coords[pointer-1] >= wherex)) - { - intersects += (coords[pointer-3] >= wherex) ? 1 : 0; - } - else - { - intersects += - ((coords[pointer-3] - (coords[pointer-2] - wherey) * - (coords[pointer-1] - coords[pointer-3]) / - (coords[pointer] - coords[pointer - 2])) >= wherex) ? 1:0; - } - } - else - { - while((pointer < end) && (coords[pointer] < wherey)) - { - pointer+=2; - } - if (pointer >= end) - { - break; - } - if ((coords[pointer-3] >= wherex) == - (coords[pointer-1] >= wherex)) - { - intersects += (coords[pointer-3] >= wherex) ? 1:0; - } - else - { - intersects += - ((coords[pointer-3] - (coords[pointer-2] - wherey) * - (coords[pointer-1] - coords[pointer-3]) / - (coords[pointer] - coords[pointer - 2])) >= wherex) ? 1:0; - } - } - } - if ((intersects & 1) != 0) - { - return m_Link; - } - } - } - break; - } - if (m_Next) - { - wxHtmlImageMapAreaCell *a = (wxHtmlImageMapAreaCell*)m_Next; - return a->GetLink( x, y ); - } - return wxEmptyString; -} - - - - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlImageMapCell -// 0-width, 0-height cell that represents map from imagemaps -// it is always placed before wxHtmlImageMapAreaCells -// It responds to Find(HTML_COND_ISIMAGEMAP) -//-------------------------------------------------------------------------------- - - -class wxHtmlImageMapCell : public wxHtmlCell -{ -public: - wxHtmlImageMapCell( wxString &name ); -protected: - wxString m_Name; -public: - virtual wxString GetLink( int x = 0, int y = 0 ) const; - virtual const wxHtmlCell *Find( int cond, const void *param ) const; -}; - - -wxHtmlImageMapCell::wxHtmlImageMapCell( wxString &name ) -{ - m_Name = name ; -} - -wxString wxHtmlImageMapCell::GetLink( int x, int y ) const -{ - wxHtmlImageMapAreaCell *a = (wxHtmlImageMapAreaCell*)m_Next; - if (a) - return a->GetLink( x, y ); - return wxHtmlCell::GetLink( x, y ); -} - -const wxHtmlCell *wxHtmlImageMapCell::Find( int cond, const void *param ) const -{ - if (cond == HTML_COND_ISIMAGEMAP) - { - if (m_Name == *((wxString*)(param))) - return this; - } - return wxHtmlCell::Find(cond, param); -} - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlImageCell -// Image/bitmap -//-------------------------------------------------------------------------------- - -class wxHtmlImageCell : public wxHtmlCell -{ - public: - wxBitmap *m_Image; - wxHtmlImageMapCell *m_ImageMap; - wxString m_MapName; - - wxHtmlImageCell(wxFSFile *input, int w = -1, int h = -1, int align = HTML_ALIGN_BOTTOM, wxString mapname = wxEmptyString); - ~wxHtmlImageCell() {if (m_Image) delete m_Image;} - void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); - virtual wxString GetLink( int x = 0, int y = 0 ) const; -}; - - - - -//-------------------------------------------------------------------------------- -// wxHtmlImageCell -//-------------------------------------------------------------------------------- - -wxHtmlImageCell::wxHtmlImageCell(wxFSFile *input, int w, int h, int align, wxString mapname) : wxHtmlCell() -{ - wxImage *img; - int ww, hh; - wxString m = input -> GetMimeType(); - wxInputStream *s = input -> GetStream(); - - img = new wxImage(*s, m); - - m_Image = NULL; - if (img && (img -> Ok())) { - ww = img -> GetWidth(); - hh = img -> GetHeight(); - if (w != -1) m_Width = w; else m_Width = ww; - if (h != -1) m_Height = h; else m_Height = hh; - if ((m_Width != ww) || (m_Height != hh)) { - wxImage img2 = img -> Scale(m_Width, m_Height); - m_Image = new wxBitmap(img2.ConvertToBitmap()); - } - else - m_Image = new wxBitmap(img -> ConvertToBitmap()); - delete img; - } - switch (align) { - case HTML_ALIGN_TOP : - m_Descent = m_Height; break; - case HTML_ALIGN_CENTER : - m_Descent = m_Height / 2; break; - case HTML_ALIGN_BOTTOM : default : - m_Descent = 0; break; - } - - m_ImageMap = NULL; - m_MapName = mapname; -} - - - -void wxHtmlImageCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - if (m_Image) - dc.DrawBitmap(*m_Image, x + m_PosX, y + m_PosY, TRUE); - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - -wxString wxHtmlImageCell::GetLink( int x, int y ) const -{ - if (m_MapName.IsEmpty()) - return wxHtmlCell::GetLink( x, y ); - if (!m_ImageMap) - { - wxHtmlContainerCell *p, *op; - op = p = GetParent(); - while (p) - { - op = p; - p = p->GetParent(); - } - p = op; - wxHtmlCell *cell = (wxHtmlCell*)p->Find( HTML_COND_ISIMAGEMAP, (const void*)(&m_MapName)); - if (!cell) - { - ((wxString&)m_MapName).Clear(); - return wxHtmlCell::GetLink( x, y ); - } - { // dirty hack, ask Joel why he fills m_ImageMap in this place - // THE problem is that we're in const method and we can't modify m_ImageMap - wxHtmlImageMapCell **cx = (wxHtmlImageMapCell**)(&m_ImageMap); - *cx = (wxHtmlImageMapCell*)cell; - } - } - return m_ImageMap->GetLink( x, y ); -} - - - -//-------------------------------------------------------------------------------- -// tag handler -//-------------------------------------------------------------------------------- - -TAG_HANDLER_BEGIN(IMG, "IMG, MAP, AREA") - - TAG_HANDLER_PROC(tag) - { - if (tag.GetName() == "IMG") - { - if (tag.HasParam("SRC")) { - int w = -1, h = -1; - int al; - wxFSFile *str; - wxString tmp = tag.GetParam("SRC"); - wxString mn = wxEmptyString; - - str = m_WParser -> GetFS() -> OpenFile(tmp); - if (tag.HasParam("WIDTH")) tag.ScanParam("WIDTH", "%i", &w); - if (tag.HasParam("HEIGHT")) tag.ScanParam("HEIGHT", "%i", &h); - al = HTML_ALIGN_BOTTOM; - if (tag.HasParam("ALIGN")) { - wxString alstr = tag.GetParam("ALIGN"); - alstr.MakeUpper(); // for the case alignment was in ".." - if (alstr == "TEXTTOP") al = HTML_ALIGN_TOP; - else if ((alstr == "CENTER") || (alstr == "ABSCENTER")) al = HTML_ALIGN_CENTER; - } - if (tag.HasParam("USEMAP")) - { - mn = tag.GetParam( "USEMAP" ); - if (mn[ 0 ] == '#') - { - mn = mn.Mid( 1 ); - } - } - wxHtmlImageCell *cel = NULL; - if (str) { - cel = new wxHtmlImageCell(str, w, h, al, mn); - cel -> SetLink(m_WParser -> GetLink()); - m_WParser -> GetContainer() -> InsertCell(cel); - delete str; - } - } - } - if (tag.GetName() == "MAP") - { - m_WParser->CloseContainer(); - m_WParser->OpenContainer(); - if (tag.HasParam("NAME")) - { - wxString tmp = tag.GetParam("NAME"); - wxHtmlImageMapCell *cel = new wxHtmlImageMapCell( tmp ); - m_WParser->GetContainer()->InsertCell( cel ); - } - ParseInner( tag ); - m_WParser->CloseContainer(); - m_WParser->OpenContainer(); - } - if (tag.GetName() == "AREA") - { - if (tag.HasParam("SHAPE")) - { - wxString tmp = tag.GetParam("SHAPE"); - wxString coords; - tmp.MakeUpper(); - wxHtmlImageMapAreaCell *cel = NULL; - if (tag.HasParam("COORDS")) - { - coords = tag.GetParam("COORDS"); - } - if (tmp == "POLY") - { - cel = new wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::POLY, coords ); - } - else if (tmp == "CIRCLE") - { - cel = new wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::CIRCLE, coords ); - } - else if (tmp == "RECT") - { - cel = new wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::RECT, coords ); - } - if (cel && tag.HasParam("HREF")) - { - wxString tmp = tag.GetParam("HREF"); - cel->SetLink( tmp ); - } - m_WParser->GetContainer()->InsertCell( cel ); - } - } - - return FALSE; - } - -TAG_HANDLER_END(IMAGE) - - - -TAGS_MODULE_BEGIN(Image) - - TAGS_MODULE_ADD(IMG) - -TAGS_MODULE_END(Image) - - -#endif diff --git a/src/html/mod_layout.cpp b/src/html/mod_layout.cpp deleted file mode 100644 index b398f93d3c..0000000000 --- a/src/html/mod_layout.cpp +++ /dev/null @@ -1,235 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_layout.cpp -// Purpose: wxHtml module for basic paragraphs/layout handling -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#if wxUSE_HTML -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - -#include -#include - -#include - -FORCE_LINK_ME(mod_layout) - - -TAG_HANDLER_BEGIN(P, "P") - - TAG_HANDLER_PROC(tag) - { - if (m_WParser -> GetContainer() -> GetFirstCell() != NULL) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - } - m_WParser -> GetContainer() -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_TOP); - m_WParser -> GetContainer() -> SetAlign(tag); - return FALSE; - } - -TAG_HANDLER_END(P) - - - -TAG_HANDLER_BEGIN(BR, "BR") - - TAG_HANDLER_PROC(tag) - { - int al = m_WParser -> GetContainer() -> GetAlignHor(); - wxHtmlContainerCell *c; - - m_WParser -> CloseContainer(); - c = m_WParser -> OpenContainer(); - c -> SetAlignHor(al); - c -> SetAlign(tag); - return FALSE; - } - -TAG_HANDLER_END(BR) - - - -TAG_HANDLER_BEGIN(CENTER, "CENTER") - - TAG_HANDLER_PROC(tag) - { - int old = m_WParser -> GetAlign(); - wxHtmlContainerCell *c = m_WParser -> GetContainer(); - - m_WParser -> SetAlign(HTML_ALIGN_CENTER); - if (c -> GetFirstCell() != NULL) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - } - else - c -> SetAlignHor(HTML_ALIGN_CENTER); - - if (tag.HasEnding()) { - ParseInner(tag); - - m_WParser -> SetAlign(old); - if (c -> GetFirstCell() != NULL) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - } - else - c -> SetAlignHor(old); - - return TRUE; - } - else return FALSE; - } - -TAG_HANDLER_END(CENTER) - - - -TAG_HANDLER_BEGIN(DIV, "DIV") - - TAG_HANDLER_PROC(tag) - { - int old = m_WParser -> GetAlign(); - wxHtmlContainerCell *c = m_WParser -> GetContainer(); - if (c -> GetFirstCell() != NULL) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - c = m_WParser -> GetContainer(); - c -> SetAlign(tag); - m_WParser -> SetAlign(c -> GetAlignHor()); - } - else { - c -> SetAlign(tag); - m_WParser -> SetAlign(c -> GetAlignHor()); - } - - ParseInner(tag); - - m_WParser -> SetAlign(old); - if (c -> GetFirstCell() != NULL) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - } - else - c -> SetAlignHor(old); - - return TRUE; - } - -TAG_HANDLER_END(DIV) - - - - -TAG_HANDLER_BEGIN(TITLE, "TITLE") - - TAG_HANDLER_PROC(tag) - { - if (m_WParser -> GetWindow()) { - wxHtmlWindow *wfr = (wxHtmlWindow*)(m_WParser -> GetWindow()); - if (wfr) { - wxString title = ""; - wxString *src = m_WParser -> GetSource(); - - for (int i = tag.GetBeginPos(); i < tag.GetEndPos1(); i++) title += (*src)[i]; - wfr -> SetTitle(title); - } - } - return TRUE; - } - -TAG_HANDLER_END(TITLE) - - - - -TAG_HANDLER_BEGIN(BODY, "BODY") - - TAG_HANDLER_PROC(tag) - { - unsigned long tmp; - wxColour clr; - - if (tag.HasParam("TEXT")) { - tag.ScanParam("TEXT", "#%lX", &tmp); - clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF)); - m_WParser -> SetActualColor(clr); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr)); - } - - if (tag.HasParam("LINK")) { - tag.ScanParam("LINK", "#%lX", &tmp); - clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF)); - m_WParser -> SetLinkColor(clr); - } - - if (tag.HasParam("BGCOLOR")) { - tag.ScanParam("BGCOLOR", "#%lX", &tmp); - clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF)); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr, HTML_CLR_BACKGROUND)); - if (m_WParser -> GetWindow() != NULL) - m_WParser -> GetWindow() -> SetBackgroundColour(clr); - } - return FALSE; - } - -TAG_HANDLER_END(BODY) - - - -TAG_HANDLER_BEGIN(BLOCKQUOTE, "BLOCKQUOTE") - - TAG_HANDLER_PROC(tag) - { - wxHtmlContainerCell *c; - - m_WParser -> CloseContainer(); - c = m_WParser -> OpenContainer(); - if (c -> GetAlignHor() == HTML_ALIGN_RIGHT) - c -> SetIndent(5 * m_WParser -> GetCharWidth(), HTML_INDENT_RIGHT); - else - c -> SetIndent(5 * m_WParser -> GetCharWidth(), HTML_INDENT_LEFT); - c -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_TOP); - m_WParser -> OpenContainer(); - ParseInner(tag); - c = m_WParser -> CloseContainer(); - c -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_BOTTOM); - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - return TRUE; - } - -TAG_HANDLER_END(BLOCKQUOTE) - - - - - - -TAGS_MODULE_BEGIN(Layout) - - TAGS_MODULE_ADD(P) - TAGS_MODULE_ADD(BR) - TAGS_MODULE_ADD(CENTER) - TAGS_MODULE_ADD(DIV) - TAGS_MODULE_ADD(TITLE) - TAGS_MODULE_ADD(BODY) - TAGS_MODULE_ADD(BLOCKQUOTE) - -TAGS_MODULE_END(Layout) - -#endif diff --git a/src/html/mod_links.cpp b/src/html/mod_links.cpp deleted file mode 100644 index dceb9024af..0000000000 --- a/src/html/mod_links.cpp +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_links.cpp -// Purpose: wxHtml module for links & anchors -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - -#include -#include -#include - -FORCE_LINK_ME(mod_links) - - -class wxHtmlAnchorCell : public wxHtmlCell -{ - private: - wxString m_AnchorName; - - public: - wxHtmlAnchorCell(const wxString& name) : wxHtmlCell() {m_AnchorName = name;} - virtual const wxHtmlCell* Find(int condition, const void* param) const - { - if ((condition == HTML_COND_ISANCHOR) && (m_AnchorName == (*((const wxString*)param)))) - return this; - else - return wxHtmlCell::Find(condition, param); - } -}; - - - -TAG_HANDLER_BEGIN(A, "A") - - TAG_HANDLER_PROC(tag) - { - if (tag.HasParam("NAME")) { - m_WParser -> GetContainer() -> InsertCell(new wxHtmlAnchorCell(tag.GetParam("NAME"))); - } - - if (tag.HasParam("HREF")) { - wxString oldlnk = m_WParser -> GetLink(); - wxColour oldclr = m_WParser -> GetActualColor(); - int oldund = m_WParser -> GetFontUnderlined(); - - m_WParser -> SetActualColor(m_WParser -> GetLinkColor()); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(m_WParser -> GetLinkColor())); - m_WParser -> SetFontUnderlined(TRUE); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - m_WParser -> SetLink(tag.GetParam("HREF")); - - ParseInner(tag); - - m_WParser -> SetLink(oldlnk); - m_WParser -> SetFontUnderlined(oldund); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - m_WParser -> SetActualColor(oldclr); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(oldclr)); - - return TRUE; - } - else return FALSE; - } - -TAG_HANDLER_END(A) - - - -TAGS_MODULE_BEGIN(Links) - - TAGS_MODULE_ADD(A) - -TAGS_MODULE_END(Links) - - -#endif diff --git a/src/html/mod_list.cpp b/src/html/mod_list.cpp deleted file mode 100644 index 1f3b49a4eb..0000000000 --- a/src/html/mod_list.cpp +++ /dev/null @@ -1,157 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_list.cpp -// Purpose: wxHtml module for lists -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - - -#include "wx/defs.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - -#include -#include - -#include - -FORCE_LINK_ME(mod_list) - - -//----------------------------------------------------------------------------- -// wxHtmlListmarkCell -//----------------------------------------------------------------------------- - -class wxHtmlListmarkCell : public wxHtmlCell -{ - private: - wxBrush m_Brush; - public: - wxHtmlListmarkCell(wxDC *dc, const wxColour& clr); - void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); -}; - -wxHtmlListmarkCell::wxHtmlListmarkCell(wxDC* dc, const wxColour& clr) : wxHtmlCell(), m_Brush(clr, wxSOLID) -{ - m_Width = dc -> GetCharWidth(); - m_Height = dc -> GetCharHeight(); - m_Descent = 0; -} - - - -void wxHtmlListmarkCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - dc.SetBrush(m_Brush); - dc.DrawEllipse(x + m_PosX + m_Width / 4, y + m_PosY + m_Height / 4, m_Width / 2, m_Width / 2); - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - - - - -//----------------------------------------------------------------------------- -// The list handler: -//----------------------------------------------------------------------------- - - -TAG_HANDLER_BEGIN(OLULLI, "OL,UL,LI") - - TAG_HANDLER_VARS - int m_Numbering; - // this is number of actual item of list or 0 for dots - - TAG_HANDLER_CONSTR(OLULLI) - { - m_Numbering = 0; - } - - TAG_HANDLER_PROC(tag) - { - wxHtmlContainerCell *c; - - // List Item: - if (tag.GetName() == "LI") { - if (!tag.IsEnding()) { - m_WParser -> CloseContainer(); - m_WParser -> CloseContainer(); - - c = m_WParser -> OpenContainer(); - c -> SetWidthFloat(2 * m_WParser -> GetCharWidth(), HTML_UNITS_PIXELS); - c -> SetAlignHor(HTML_ALIGN_RIGHT); - if (m_Numbering == 0) - c -> InsertCell(new wxHtmlListmarkCell(m_WParser -> GetDC(), m_WParser -> GetActualColor())); - else { - wxString mark; - mark.Printf("%i.", m_Numbering); - c -> InsertCell(new wxHtmlWordCell(mark, *(m_WParser -> GetDC()))); - } - m_WParser -> CloseContainer(); - - c = m_WParser -> OpenContainer(); - c -> SetIndent(m_WParser -> GetCharWidth() / 4, HTML_INDENT_LEFT); - c -> SetWidthFloat(-2 * m_WParser -> GetCharWidth(), HTML_UNITS_PIXELS); - - m_WParser -> OpenContainer(); - - if (m_Numbering != 0) m_Numbering++; - } - return FALSE; - } - - // Begin of List (not-numbered): "UL", "OL" - else { - int oldnum = m_Numbering; - - if (tag.GetName() == "UL") m_Numbering = 0; - else m_Numbering = 1; - - c = m_WParser -> GetContainer(); - if (c -> GetFirstCell() != NULL) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - c = m_WParser -> GetContainer(); - } - c -> SetAlignHor(HTML_ALIGN_LEFT); - c -> SetIndent(2 * m_WParser -> GetCharWidth(), HTML_INDENT_LEFT); - m_WParser -> OpenContainer() -> SetAlignVer(HTML_ALIGN_TOP); - - m_WParser -> OpenContainer(); - m_WParser -> OpenContainer(); - ParseInner(tag); - m_WParser -> CloseContainer(); - - m_WParser -> CloseContainer(); - m_WParser -> CloseContainer(); - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - - m_Numbering = oldnum; - return TRUE; - } - } - -TAG_HANDLER_END(OLULLI) - - -TAGS_MODULE_BEGIN(List) - - TAGS_MODULE_ADD(OLULLI) - -TAGS_MODULE_END(List) - -#endif diff --git a/src/html/mod_pre.cpp b/src/html/mod_pre.cpp deleted file mode 100644 index 0227f795b2..0000000000 --- a/src/html/mod_pre.cpp +++ /dev/null @@ -1,170 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_pre.cpp -// Purpose: wxHtml module for
     ... 
    tag (code citation) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#if wxUSE_HTML -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - -#include -#include - -#include -#include - -FORCE_LINK_ME(mod_pre) - - -//----------------------------------------------------------------------------- -// wxHtmlCodeCell -//----------------------------------------------------------------------------- - -class wxHtmlPRECell : public wxHtmlCell -{ - private: - wxString** m_Text; - // list of wxString objects. - int m_LinesCnt; - // number of lines - int m_LineHeight; - // height of single line of text - - public: - wxHtmlPRECell(const wxString& s, wxDC& dc); - ~wxHtmlPRECell(); - void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); -}; - - -wxHtmlPRECell::wxHtmlPRECell(const wxString& s, wxDC& dc) : wxHtmlCell() -{ - wxStringTokenizer tokenizer(s, "\n"); - wxString tmp; - long int x, z; - int i; - - m_LineHeight = dc.GetCharHeight(); - m_LinesCnt = 0; - m_Text = NULL; - m_Width = m_Height = 0; - - i = 0; -#if (wxVERSION_NUMBER < 2100) - while (tokenizer.HasMoreToken()) { -#else - while (tokenizer.HasMoreTokens()) { -#endif - if (i % 10 == 0) m_Text = (wxString**) realloc(m_Text, sizeof(wxString*) * (i + 10)); - tmp = tokenizer.NextToken(); - tmp.Replace(" ", " ", TRUE); - tmp.Replace(""", "\"", TRUE); - tmp.Replace("<", "<", TRUE); - tmp.Replace(">", ">", TRUE); - tmp.Replace("&", "&", TRUE); - tmp.Replace("\t", " ", TRUE); - tmp.Replace("\r", "", TRUE); - m_Text[i++] = new wxString(tmp); - - dc.GetTextExtent(tmp, &x, &z, &z); - if (x > m_Width) m_Width = x; - m_Height += m_LineHeight; - m_LinesCnt++; - } -} - - - -wxHtmlPRECell::~wxHtmlPRECell() -{ - for (int i = 0; i < m_LinesCnt; i++) delete m_Text[i]; - free(m_Text); -} - - -void wxHtmlPRECell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) -{ - for (int i = 0; i < m_LinesCnt; i++) - dc.DrawText(*(m_Text[i]), x + m_PosX, y + m_PosY + m_LineHeight * i); - - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); -} - - - - -//----------------------------------------------------------------------------- -// The list handler: -//----------------------------------------------------------------------------- - - -TAG_HANDLER_BEGIN(PRE, "PRE") - - TAG_HANDLER_PROC(tag) - { - wxHtmlContainerCell *c; - - int fixed = m_WParser -> GetFontFixed(), - italic = m_WParser -> GetFontItalic(), - underlined = m_WParser -> GetFontUnderlined(), - bold = m_WParser -> GetFontBold(), - fsize = m_WParser -> GetFontSize(); - - m_WParser -> CloseContainer(); - c = m_WParser -> OpenContainer(); - c -> SetAlignHor(HTML_ALIGN_LEFT); - c -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_VERTICAL); - - m_WParser -> SetFontUnderlined(FALSE); - m_WParser -> SetFontBold(FALSE); - m_WParser -> SetFontItalic(FALSE); - m_WParser -> SetFontFixed(TRUE); - m_WParser -> SetFontSize(0); - c -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - - { - wxString cit; - cit = m_WParser -> GetSource() -> Mid(tag.GetBeginPos(), tag.GetEndPos1() - tag.GetBeginPos()); - c -> InsertCell(new wxHtmlPRECell(cit, *(m_WParser -> GetDC()))); - } - - m_WParser -> SetFontUnderlined(underlined); - m_WParser -> SetFontBold(bold); - m_WParser -> SetFontItalic(italic); - m_WParser -> SetFontFixed(fixed); - m_WParser -> SetFontSize(fsize); - c -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - return TRUE; - } - -TAG_HANDLER_END(PRE) - - - - - -TAGS_MODULE_BEGIN(Pre) - - TAGS_MODULE_ADD(PRE) - -TAGS_MODULE_END(Pre) - -#endif diff --git a/src/html/mod_tables.cpp b/src/html/mod_tables.cpp deleted file mode 100644 index 01bc6552ab..0000000000 --- a/src/html/mod_tables.cpp +++ /dev/null @@ -1,493 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mod_tables.cpp -// Purpose: wxHtml module for tables -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#if wxUSE_HTML -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - - -/* -REMARKS: - 1. This version of mod_tables doesn't support auto-layout algorithm. - This means that all columns are of same width unless explicitly specified. -*/ - - -#include -#include - -#include - -FORCE_LINK_ME(mod_tables) - - -#define TABLE_BORDER_CLR_1 wxColour(0xC5, 0xC2, 0xC5) -#define TABLE_BORDER_CLR_2 wxColour(0x62, 0x61, 0x62) - - -//----------------------------------------------------------------------------- -// wxHtmlTableCell -//----------------------------------------------------------------------------- - - -typedef struct { - int width, units; // universal - int leftpos, pixwidth, maxrealwidth; // temporary (depends on width of table) - } colStruct; - -typedef enum { - cellSpan, - cellUsed, - cellFree - } cellState; - -typedef struct { - wxHtmlContainerCell *cont; - int colspan, rowspan; - int minheight, valign; - cellState flag; - } cellStruct; - - -class wxHtmlTableCell : public wxHtmlContainerCell -{ - protected: - /* These are real attributes: */ - bool m_HasBorders; - // should we draw borders or not? - int m_NumCols, m_NumRows; - // number of columns; rows - colStruct *m_ColsInfo; - // array of column information - cellStruct **m_CellInfo; - // 2D array of all cells in the table : m_CellInfo[row][column] - int m_Spacing; - // spaces between cells - int m_Padding; - // cells internal indentation - - private: - /* ...and these are valid only during parsing of table: */ - int m_ActualCol, m_ActualRow; - // number of actual column (ranging from 0..m_NumCols) - - // default values (for table and row): - int m_tBkg, m_rBkg; - wxString m_tValign, m_rValign; - - - public: - wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& tag); - ~wxHtmlTableCell(); - virtual void Layout(int w); - - void AddRow(const wxHtmlTag& tag); - void AddCell(wxHtmlContainerCell *cell, const wxHtmlTag& tag); - private: - void ReallocCols(int cols); - void ReallocRows(int rows); - // reallocates memory to given number of cols/rows - // and changes m_NumCols/m_NumRows value to reflect this change - // NOTE! You CAN'T change m_NumCols/m_NumRows before calling this!! -}; - - - -wxHtmlTableCell::wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& tag) - : wxHtmlContainerCell(parent) -{ - m_HasBorders = tag.HasParam("BORDER"); - m_ColsInfo = NULL; - m_NumCols = m_NumRows = 0; - m_CellInfo = NULL; - m_ActualCol = m_ActualRow = -1; - - /* scan params: */ - m_tBkg = m_rBkg = -1; - if (tag.HasParam("BGCOLOR")) tag.ScanParam("BGCOLOR", "#%lX", &m_tBkg); - if (tag.HasParam("VALIGN")) m_tValign = tag.GetParam("VALIGN"); else m_tValign = wxEmptyString; - if (tag.HasParam("CELLSPACING")) tag.ScanParam("CELLSPACING", "%i", &m_Spacing); else m_Spacing = 2; - if (tag.HasParam("CELLPADDING")) tag.ScanParam("CELLPADDING", "%i", &m_Padding); else m_Padding = 3; - - if (m_HasBorders) - SetBorder(TABLE_BORDER_CLR_1, TABLE_BORDER_CLR_2); -} - - - -wxHtmlTableCell::~wxHtmlTableCell() -{ - if (m_ColsInfo) free(m_ColsInfo); - if (m_CellInfo) { - for (int i = 0; i < m_NumRows; i++) - free(m_CellInfo[i]); - free(m_CellInfo); - } -} - - - -void wxHtmlTableCell::ReallocCols(int cols) -{ - int i,j; - - for (i = 0; i < m_NumRows; i++) { - m_CellInfo[i] = (cellStruct*) realloc(m_CellInfo[i], sizeof(cellStruct) * cols); - for (j = m_NumCols; j < cols; j++) - m_CellInfo[i][j].flag = cellFree; - } - - m_ColsInfo = (colStruct*) realloc(m_ColsInfo, sizeof(colStruct) * cols); - for (j = m_NumCols; j < cols; j++) { - m_ColsInfo[j].width = 0; - m_ColsInfo[j].units = HTML_UNITS_PERCENT; - } - - m_NumCols = cols; -} - - - -void wxHtmlTableCell::ReallocRows(int rows) -{ - m_CellInfo = (cellStruct**) realloc(m_CellInfo, sizeof(cellStruct*) * rows); - if (m_NumCols != 0) { - int x = rows - 1; - m_CellInfo[x] = (cellStruct*) malloc(sizeof(cellStruct) * m_NumCols); - for (int i = 0; i < m_NumCols; i++) - m_CellInfo[x][i].flag = cellFree; - } - else - m_CellInfo[rows - 1] = NULL; - m_NumRows = rows; -} - - - -void wxHtmlTableCell::AddRow(const wxHtmlTag& tag) -{ - if (m_ActualRow + 1 > m_NumRows - 1) - ReallocRows(m_ActualRow + 2); - m_ActualRow++; - m_ActualCol = -1; - - /* scan params: */ - m_rBkg = m_tBkg; - if (tag.HasParam("BGCOLOR")) tag.ScanParam("BGCOLOR", "#%lX", &m_rBkg); - if (tag.HasParam("VALIGN")) m_rValign = tag.GetParam("VALIGN"); else m_rValign = m_tValign; -} - - - -void wxHtmlTableCell::AddCell(wxHtmlContainerCell *cell, const wxHtmlTag& tag) -{ - do { - m_ActualCol++; - } while ((m_ActualCol < m_NumCols) && (m_CellInfo[m_ActualRow][m_ActualCol].flag != cellFree)); - if (m_ActualCol > m_NumCols - 1) - ReallocCols(m_ActualCol + 1); - - int r = m_ActualRow, c = m_ActualCol; - - m_CellInfo[r][c].cont = cell; - m_CellInfo[r][c].colspan = 1; - m_CellInfo[r][c].rowspan = 1; - m_CellInfo[r][c].flag = cellUsed; - m_CellInfo[r][c].minheight = 0; - m_CellInfo[r][c].valign = HTML_ALIGN_TOP; - - /* scan for parameters: */ - - // width: - { - if (tag.HasParam("WIDTH")) { - wxString wd = tag.GetParam("WIDTH"); - - if (wd[wd.Length()-1] == '%') { - sscanf(wd.c_str(), "%i%%", &m_ColsInfo[c].width); - m_ColsInfo[c].units = HTML_UNITS_PERCENT; - } - else { - sscanf(wd.c_str(), "%i", &m_ColsInfo[c].width); - m_ColsInfo[c].units = HTML_UNITS_PIXELS; - } - } - } - - - // spanning: - { - if (tag.HasParam("COLSPAN")) tag.ScanParam("COLSPAN", "%i", &m_CellInfo[r][c].colspan); - if (tag.HasParam("ROWSPAN")) tag.ScanParam("ROWSPAN", "%i", &m_CellInfo[r][c].rowspan); - if ((m_CellInfo[r][c].colspan != 1) || (m_CellInfo[r][c].rowspan != 1)) { - int i, j; - - if (r + m_CellInfo[r][c].rowspan > m_NumRows) ReallocRows(r + m_CellInfo[r][c].rowspan); - if (c + m_CellInfo[r][c].colspan > m_NumCols) ReallocCols(c + m_CellInfo[r][c].colspan); - for (i = r; i < r + m_CellInfo[r][c].rowspan; i++) - for (j = c; j < c + m_CellInfo[r][c].colspan; j++) - m_CellInfo[i][j].flag = cellSpan; - m_CellInfo[r][c].flag = cellUsed; - } - } - - //background color: - { - int bk = m_rBkg; - if (tag.HasParam("BGCOLOR")) tag.ScanParam("BGCOLOR", "#%lX", &bk); - if (bk != -1) { - wxColour clr = wxColour((bk & 0xFF0000) >> 16 , (bk & 0x00FF00) >> 8, (bk & 0x0000FF)); - cell -> SetBackgroundColour(clr); - } - } - if (m_HasBorders) - cell -> SetBorder(TABLE_BORDER_CLR_2, TABLE_BORDER_CLR_1); - - // vertical alignment: - { - wxString valign; - if (tag.HasParam("VALIGN")) valign = tag.GetParam("VALIGN"); else valign = m_tValign; - valign.MakeUpper(); - if (valign == "TOP") m_CellInfo[r][c].valign = HTML_ALIGN_TOP; - else if (valign == "BOTTOM") m_CellInfo[r][c].valign = HTML_ALIGN_BOTTOM; - else m_CellInfo[r][c].valign = HTML_ALIGN_CENTER; - } - - cell -> SetIndent(m_Padding, HTML_INDENT_ALL, HTML_UNITS_PIXELS); -} - - - - - -void wxHtmlTableCell::Layout(int w) -{ - /* - - WIDTH ADJUSTING : - - */ - - if (m_WidthFloatUnits == HTML_UNITS_PERCENT) { - if (m_WidthFloat < 0) m_Width = (100 + m_WidthFloat) * w / 100; - else m_Width = m_WidthFloat * w / 100; - } - else { - if (m_WidthFloat < 0) m_Width = w + m_WidthFloat; - else m_Width = m_WidthFloat; - } - - - /* - - LAYOUTING : - - */ - - /* 1. setup columns widths: */ - { - int wpix = m_Width - (m_NumCols + 1) * m_Spacing; - int i, j; - int wtemp = 0; - - // 1a. setup fixed-width columns: - for (i = 0; i < m_NumCols; i++) - if (m_ColsInfo[i].units == HTML_UNITS_PIXELS) - wpix -= (m_ColsInfo[i].pixwidth = m_ColsInfo[i].width); - - // 1b. setup floating-width columns: - for (i = 0; i < m_NumCols; i++) - if ((m_ColsInfo[i].units == HTML_UNITS_PERCENT) && (m_ColsInfo[i].width != 0)) - wtemp += (m_ColsInfo[i].pixwidth = m_ColsInfo[i].width * wpix / 100); - wpix -= wtemp; - - // 1c. setup defalut columns (no width specification supplied): - // NOTE! This algorithm doesn't conform to HTML standard : it assigns equal widths - // instead of optimal - for (i = j = 0; i < m_NumCols; i++) - if (m_ColsInfo[i].width == 0) j++; - for (i = 0; i < m_NumCols; i++) - if (m_ColsInfo[i].width == 0) - m_ColsInfo[i].pixwidth = wpix / j; - } - - /* 2. compute positions of columns: */ - { - int wpos = m_Spacing; - for (int i = 0; i < m_NumCols; i++) { - m_ColsInfo[i].leftpos = wpos; - wpos += m_ColsInfo[i].pixwidth + m_Spacing; - } - } - - /* 3. sub-layout all cells: */ - { - int *ypos = new int[m_NumRows + 1]; - - int actcol, actrow; - int fullwid; - wxHtmlContainerCell *actcell; - - for (actrow = 0; actrow <= m_NumRows; actrow++) ypos[actrow] = m_Spacing; - - for (actrow = 0; actrow < m_NumRows; actrow++) { - - // 3a. sub-layout and detect max height: - - for (actcol = 0; actcol < m_NumCols; actcol++) { - if (m_CellInfo[actrow][actcol].flag != cellUsed) continue; - actcell = m_CellInfo[actrow][actcol].cont; - fullwid = 0; - for (int i = actcol; i < m_CellInfo[actrow][actcol].colspan + actcol; i++) - fullwid += m_ColsInfo[i].pixwidth; - actcell -> SetMinHeight(m_CellInfo[actrow][actcol].minheight, m_CellInfo[actrow][actcol].valign); - actcell -> Layout(fullwid); - - if (ypos[actrow] + actcell -> GetHeight() + m_CellInfo[actrow][actcol].rowspan * m_Spacing > ypos[actrow + m_CellInfo[actrow][actcol].rowspan]) - ypos[actrow + m_CellInfo[actrow][actcol].rowspan] = - ypos[actrow] + actcell -> GetHeight() + m_CellInfo[actrow][actcol].rowspan * m_Spacing; - } - } - - - for (actrow = 0; actrow < m_NumRows; actrow++) { - - // 3b. place cells in row & let'em all have same height: - - for (actcol = 0; actcol < m_NumCols; actcol++) { - if (m_CellInfo[actrow][actcol].flag != cellUsed) continue; - actcell = m_CellInfo[actrow][actcol].cont; - actcell -> SetMinHeight( - ypos[actrow + m_CellInfo[actrow][actcol].rowspan] - ypos[actrow] - m_CellInfo[actrow][actcol].rowspan * m_Spacing, - m_CellInfo[actrow][actcol].valign); - fullwid = 0; - for (int i = actcol; i < m_CellInfo[actrow][actcol].colspan + actcol; i++) - fullwid += m_ColsInfo[i].pixwidth; - actcell -> Layout(fullwid); - actcell -> SetPos(m_ColsInfo[actcol].leftpos, ypos[actrow]); - } - - } - m_Height = ypos[m_NumRows]; - delete[] ypos; - } -} - - - - - - -//----------------------------------------------------------------------------- -// The tables handler: -//----------------------------------------------------------------------------- - - -TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH") - - TAG_HANDLER_VARS - wxHtmlTableCell* m_Table; - wxString m_tAlign, m_rAlign; - int m_OldAlign; - - TAG_HANDLER_CONSTR(TABLE) - { - m_Table = NULL; - m_tAlign = m_rAlign = wxEmptyString; - m_OldAlign = HTML_ALIGN_LEFT; - } - - - TAG_HANDLER_PROC(tag) - { - wxHtmlContainerCell *c; - - // new table started, backup upper-level table (if any) and create new: - if (tag.GetName() == "TABLE") { - wxHtmlTableCell *oldt = m_Table; - wxHtmlContainerCell *oldcont; - int m_OldAlign; - - oldcont = c = m_WParser -> OpenContainer(); - - c -> SetWidthFloat(tag); - m_Table = new wxHtmlTableCell(c, tag); - m_OldAlign = m_WParser -> GetAlign(); - m_tAlign = wxEmptyString; - if (tag.HasParam("ALIGN")) m_tAlign = tag.GetParam("ALIGN"); - - ParseInner(tag); - - m_WParser -> SetAlign(m_OldAlign); - m_WParser -> SetContainer(oldcont); - m_WParser -> CloseContainer(); - m_Table = oldt; - return TRUE; - } - - - else if (m_Table && !tag.IsEnding()) { - // new row in table - if (tag.GetName() == "TR") { - m_Table -> AddRow(tag); - m_rAlign = m_tAlign; - if (tag.HasParam("ALIGN")) m_rAlign = tag.GetParam("ALIGN"); - } - - // new cell - else { - m_WParser -> SetAlign(m_OldAlign); - c = m_WParser -> SetContainer(new wxHtmlContainerCell(m_Table)); - m_Table -> AddCell(c, tag); - - m_WParser -> OpenContainer(); - - if (tag.GetName() == "TH") /*header style*/ { - m_WParser -> SetAlign(HTML_ALIGN_CENTER); - } - - { - wxString als; - - als = m_rAlign; - if (tag.HasParam("ALIGN")) als = tag.GetParam("ALIGN"); - als.MakeUpper(); - if (als == "RIGHT") m_WParser -> SetAlign(HTML_ALIGN_RIGHT); - else if (als == "CENTER") m_WParser -> SetAlign(HTML_ALIGN_CENTER); - } - m_WParser -> OpenContainer(); - } - } - return FALSE; - } - -TAG_HANDLER_END(TABLE) - - - - - -TAGS_MODULE_BEGIN(Tables) - - TAGS_MODULE_ADD(TABLE) - -TAGS_MODULE_END(Tables) - - -#endif diff --git a/src/html/search.cpp b/src/html/search.cpp deleted file mode 100644 index 175e50d44d..0000000000 --- a/src/html/search.cpp +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: search.cpp -// Purpose: search engine -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - - - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - -#include -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop -#endif - -#ifndef WXPRECOMP -#include -#endif - -#include "search.h" - - - -//-------------------------------------------------------------------------------- -// wxSearchEngine -//-------------------------------------------------------------------------------- - -void wxSearchEngine::LookFor(const wxString& keyword) -{ - if (m_Keyword) delete[] m_Keyword; - m_Keyword = new char[keyword.Length() + 1]; - strcpy(m_Keyword, keyword.c_str()); - for (int i = strlen(m_Keyword) - 1; i >= 0; i--) - if ((m_Keyword[i] >= 'A') && (m_Keyword[i] <= 'Z')) - m_Keyword[i] += 'a' - 'A'; -} - - - -bool wxSearchEngine::Scan(wxInputStream *stream) -{ - wxASSERT_MSG(m_Keyword != NULL, _("wxSearchEngine::LookFor must be called before scanning!")); - - int i, j; - int lng = stream ->GetSize(); - int wrd = strlen(m_Keyword); - bool found = FALSE; - char *buf = new char[lng + 1]; - stream -> Read(buf, lng); - buf[lng] = 0; - - for (i = 0; i < lng; i++) - if ((buf[i] >= 'A') && (buf[i] <= 'Z')) buf[i] += 'a' - 'A'; - - for (i = 0; i < lng - wrd; i++) { - j = 0; - while ((j < wrd) && (buf[i + j] == m_Keyword[j])) j++; - if (j == wrd) {found = TRUE; break;} - } - - delete[] buf; - return found; -} - -#endif diff --git a/src/html/search.h b/src/html/search.h deleted file mode 100644 index ff9db742e0..0000000000 --- a/src/html/search.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: search.h -// Purpose: wxSearchEngine - class for searching keywords -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#if wxUSE_HTML - -#ifndef __SEARCH_H__ -#define __SEARCH_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - - -#include - -//-------------------------------------------------------------------------------- -// wxSearchEngine -// This class takes input streams and scans them for occurence -// of keyword(s) -//-------------------------------------------------------------------------------- - - -class wxSearchEngine : public wxObject -{ - private: - char *m_Keyword; - - public: - wxSearchEngine() : wxObject() {m_Keyword = NULL;} - ~wxSearchEngine() {if (m_Keyword) free(m_Keyword);} - - virtual void LookFor(const wxString& keyword); - // Sets the keyword we will be searching for - - virtual bool Scan(wxInputStream *stream); - // Scans the stream for the keyword. - // Returns TRUE if the stream contains keyword, fALSE otherwise -}; - - - - -#endif - -#endif \ No newline at end of file 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 54e85ec823..0000000000 --- a/src/jpeg/jmorecfg.h +++ /dev/null @@ -1,381 +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. - */ - -#if defined(__VISAGECPP__) -/* a function called through method pointers: */ -#define METHODDEF(type) static type _Optlink -/* a function used only in its module: */ -#define LOCAL(type) static type _Optlink -/* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type -/* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type _Optlink -#else -/* 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 -#endif - - - -/* 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.in b/src/make.env.in deleted file mode 100644 index cc707b429c..0000000000 --- a/src/make.env.in +++ /dev/null @@ -1,64 +0,0 @@ -# -# File: make.env -# Author: Julian Smart, Robert Roebling, Vadim Zeitlin -# Created: 1993 -# Updated: 1999 -# Copyright:(c) 1993, AIAI, University of Edinburgh, -# Copyright:(c) 1999, Vadim Zeitlin -# Copyright:(c) 1999, Robert Roebling -# - -####################### GENERAL SETTINGS ############################ - - -EXTRALIBS = @EXTRA_LIBS@ -LDLIBS = ${top_builddir}/lib/@WX_TARGET_LIBRARY@ $(EXTRA_LIBS) - -TOOLKIT = @TOOLKIT@ -TOOLKITDIR = @TOOLKIT_DIR@ - -WXLIB = @WX_LIBRARY_NAME_STATIC@ -WXSHLIB = @WX_LIBRARY_NAME_SHARED@ - -########################### VERSION ################################# - -WX_MAJOR_VERSION_NUMBER = @WX_MAJOR_VERSION_NUMBER@ -WX_MINOR_VERSION_NUMBER = @WX_MINOR_VERSION_NUMBER@ -WX_RELEASE_NUMBER = @WX_RELEASE_NUMBER@ - -########################### Programs ################################# - -# C++ compiler -CC = @CXX@ -CCPP = @CXXCPP@ - -# C compiler -CCC = @CC@ -CCCPP = @CPP@ - -# Compiler for lex/yacc .c programs -CCLEX = @CC@ - -LEX = @LEX@ -YACC = @YACC@ -AR = @AR@ -AS = @AS@ -NM = @NM@ -LN_S = @LN_S@ -STRIP = @STRIP@ -MAKE = make -AROPTIONS = ruv -RANLIB = @RANLIB@ -LD = @LD@ -MAKEINFO = @MAKEINFO@ - -SHARED_LD = @SHARED_LD@ - -########################### Flags ################################# - -CFLAGS = @TOOLKIT_DEF@ @WXDEBUG_DEFINE@ @CFLAGS@ -CPPFLAGS = @TOOLKIT_DEF@ @WXDEBUG_DEFINE@ @CXXFLAGS@ @CPPFLAGS@ -PICFLAGS = @PIC_FLAG@ -LDFLAGS = @LDFLAGS@ - - diff --git a/src/make_cw.mcp b/src/make_cw.mcp deleted file mode 100644 index ee0e7052f6..0000000000 Binary files a/src/make_cw.mcp and /dev/null differ diff --git a/src/makeb32.env b/src/makeb32.env deleted file mode 100644 index ab253615c5..0000000000 --- a/src/makeb32.env +++ /dev/null @@ -1,67 +0,0 @@ -# Common settings for Borland 32-bit compilation (makefile.b32 files) - -WXDIR = $(WXWIN) -CFG = $(WXDIR)\src\msw\wxwin32.cfg -WXLIBDIR = $(WXDIR)\lib -WXINC = $(WXDIR)\include -WIN95FLAG = -D__WIN95__ -D__WINDOWS__ - -!ifndef FINAL -FINAL=0 -!endif - -!if "$(FINAL)" == "0" -OPT = -Od -DEBUG_FLAGS= -v -DWXDEBUG=1 -D__WXDEBUG__ -DUSE_DEFINE -!else -OPT = -O2 -DEBUG_FLAGS = -DUSE_DEFINE -!endif - -!ifndef DLL -DLL=0 -!endif - -# Target WXMAKINGDLL WXUSINGDLL WXBUILDDLL -# wxWin DLL 1 0 1 -# wxWin STATIC 0 0 0 -# App use wxWin DLL 0 1 0 -# DLL use wxWin DLL 0 1 1 -# DLL use wxWin STATIC 0 0 1 -# - -!if "$(WXMAKINGDLL)" == "1" -DLL_FLAGS= -DWXMAKINGDLL=1 -D_WINDLL -WXLIB= $(WXLIBDIR)\wx200.lib - -!else - -LINK_FLAGS= /Tpe /ap /c - -!if "$(WXUSINGDLL)" == "1" -DLL_FLAGS= -DWXUSINGDLL=1 -WXLIB= $(WXLIBDIR)\wx200.lib -!else -DLL_FLAGS= -WXLIB= $(WXLIBDIR)\wx32.lib -!endif - -!endif - -!if "$(WXBUILDDLL)" == "1" -DLL_FLAGS= $(DLL_FLAGS) -D_RTLDLL -LINK_FLAGS= /Tpd /ap /c $(EXTRALINKFLAGS) -!endif - -CPPFLAGS=$(DLL_FLAGS) $(EXTRACPPFLAGS) @$(CFG) - -DUMMY=dummy - -SRCSUFF = cpp -OBJSUFF = obj - -.$(SRCSUFF).obj: - bcc32 $(CPPFLAGS) -c {$< } - -.c.obj: - bcc32 $(CPPFLAGS) -P- -c {$< } diff --git a/src/makebcc.env b/src/makebcc.env deleted file mode 100644 index 302872beb5..0000000000 --- a/src/makebcc.env +++ /dev/null @@ -1,33 +0,0 @@ -# Common settings for Borland 16-bit compilation (makefile.bcc files) - -WXDIR = $(WXWIN) - -CFG = $(WXDIR)\src\msw\wxwin.cfg -WXLIBDIR = $(WXDIR)\lib -WXINC = $(WXDIR)\include - -!ifndef FINAL -FINAL=0 -!endif - -!if "$(FINAL)" == "0" -LINKFLAGS=/v/Vt /Twe /L$(WXDIR)\lib;$(BCCDIR)\lib $(EXTRALINKFLAGS) -OPT = -Od -DEBUG_FLAGS= -v -D__WXDEBUG__ -!else -LINKFLAGS=/Twe /L$(WXDIR)\lib;$(BCCDIR)\lib $(EXTRALINKFLAGS) -OPT = -O2 -DEBUG_FLAGS = -!endif - -CPPFLAGS=$(DEBUG_FLAGS) $(OPT) $(EXTRACPPFLAGS) @$(CFG) -WXLIB= $(WXLIBDIR)\wx.lib - -SRCSUFF = cpp -OBJSUFF = obj - -.$(SRCSUFF).obj: - bcc $(CPPFLAGS) -c {$< } - -.c.obj: - bcc $(CPPFLAGS) -DUSE_DEFINE -P- -c {$< } diff --git a/src/makeenvs/linux.env b/src/makeenvs/linux.env deleted file mode 100644 index 7df2eca3cf..0000000000 --- a/src/makeenvs/linux.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/makeenvs/sgi.env b/src/makeenvs/sgi.env deleted file mode 100644 index b16923a708..0000000000 --- a/src/makeenvs/sgi.env +++ /dev/null @@ -1,119 +0,0 @@ -# sgi.env -# SGI -# -# 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 -WXWIN = /home/jds/wx2 -WXDIR = $(WXWIN) - -# C++ compiler -CC = CC - -# C compiler -CCC = cc - -# 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 = echo - -############################ Switches ################################# - -# Debug/trace mode. 1 or more for debugging. -DEBUG = 0 -GUI = -D__WXSTUBS__ -D__UNIX__ -GUISUFFIX = _stubs - -########################## Compiler flags ############################# - -# Misc options -OPTIONS = -32 -D__WXDEBUG__ -D__SGI__ -D__SGI_CC__ -COPTIONS = -32 -Xcpluscomm -D__SGI__ -D__SGI_CC__ -DEBUGFLAGS = -g3 -INCLUDE = -WARN = -w -CWARN = -w -OPT = - -############################ Includes ################################# - -# Compiler or system-specific include paths -COMPPATHS = -XINCLUDE = -I/usr/include/X11 -I/usr/include/Xm \ - -I/usr/include/X11/Xm -I/usr/include -XLIB = -L/usr/local/X11/lib -L/usr/X11/lib -L/usr/X11R6/lib - -############################ Libraries ################################ - -COMPLIBS = -#COMPLIBS = -lstdc++ -#COMPLIBS = -lPW -GUILDLIBS = -lwx_stubs $(COMPLIBS) -lXm -lXmu -lXt -lXpm -lX11 -lm - -############################# Suffixes ################################ - -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' - -$(OBJDIR): - mkdir $(OBJDIR) - diff --git a/src/makeenvs/solaris.env b/src/makeenvs/solaris.env deleted file mode 100644 index 00abd382a9..0000000000 --- a/src/makeenvs/solaris.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 = CC - -# C compiler -CCC = cc - -# 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 = 0 -GUI = -D__MOTIF__ -D__SOLARIS__ -D__UNIX__ -GUISUFFIX = _motif - -########################## Compiler flags ############################# - -# Misc options -OPTIONS = -DSYSV -DSVR4 -fast -COPTIONS = -DSYSV -xCC -DEBUGFLAGS = -INCLUDE = -WARN = -CWARN = -OPT = -O4 -lintl - -############################ 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 = -lgen -ldl -lsocket -lnsl -GUILDLIBS = -lwx_motif $(COMPLIBS) -lpng -lzlib -lXpm -lXm -lXmu -lXt -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/makefile.bcc b/src/makefile.bcc deleted file mode 100644 index eec6ab1157..0000000000 --- a/src/makefile.bcc +++ /dev/null @@ -1,97 +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. This makefile calls makefile.bcc in msw and -# base subdirectories. - -!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 - -!ifndef DEBUG -DEBUG=0 -!endif - -!ifndef FINAL -FINAL=0 -!endif - -# Change these if needed. -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makebcc.env - -!if "$(FINAL)" == "0" -OPT = -Od -DEBUG_FLAGS= -v /DDEBUG=$(DEBUG) # -v # -v for debugging info -!else -OPT = -O2 -DEBUG_FLAGS = /DDEBUG=$(DEBUG) -!endif - -BOR_VER = 4 - -#!if "$(BOR_VER)" == "3.1" -#BCCDIR = d:\bc3 -#!elif "$(BOR_VER)" == "4" -#BCCDIR = d:\bc4 -#!endif - -WXBASEINC = $(WXDIR)\include\base -WXINC = $(WXDIR)\include\msw -PROLOGIOINC = $(WXDIR)\utils\prologio\src -XPMINC=$(WXDIR)\contrib\wxxpm\libxpm.34b\lib - -all: wxwin.cfg - cd $(WXDIR)\src\msw - make -f makefile.bcc -DCFG=$(CFG) -DWXDIR=$(WXDIR) DEBUG=$(DEBUG) -DDEBUG_FLAGS=$(DEBUG_FLAGS) -DOPT=$(OPT) -DFINAL=$(FINAL) - cd $(WXDIR)\src - -clean: - erase wxwin.cfg - cd $(WXDIR)\src\msw - make -f makefile.bcc clean - cd $(WXDIR)\src - -wxwin.cfg: makefile.bcc - copy &&! --H=$(WXDIR)\src\borland.pch --2 --P --d --w-hid --w-par --w-pia --w-aus --w-rch --ml --Od --WE --Fs- --Vf --I$(WXBASEINC);$(WXINC);$(PROLOGIOINC);$(XPMINC);$(BCCDIR)\include;$(WXDIR)\contrib\fafa;$(WXDIR)\contrib\itsybits;$(WXDIR)\utils\rcparser\src - --L$(BCCDIR)\lib --Dwx_msw -! wxwin.cfg -!if "$(BOR_VER)" == "3.1" - echo -Ff=4 >>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.va b/src/makefile.va deleted file mode 100644 index fee49a8832..0000000000 --- a/src/makefile.va +++ /dev/null @@ -1,35 +0,0 @@ -# -# File: makefile.va -# Author: David Webster -# Created: 1999 -# Updated: -# Copyright: (c) 1999, David Webster -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for VisualAge C++ V3.0 for OS/2 -# 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 os2 - nmake -f makefile.va - cd $(THISDIR) - -clean: - cd os2 - nmake -f makefile.va clean - cd $(THISDIR) - -cleanall: - cd os2 - nmake -f makefile.va 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 d58cb0006e..0000000000 --- a/src/makeg95.env +++ /dev/null @@ -1,167 +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=byacc -#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 = -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__ - -# 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 -O2 -fno-rtti -fno-exceptions - -# 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.in b/src/makelib.env.in deleted file mode 100644 index 8d7873bdf4..0000000000 --- a/src/makelib.env.in +++ /dev/null @@ -1,24 +0,0 @@ -# Makes a library in Unix (Motif) - -# Clears all default suffixes -.SUFFIXES: .o .cpp .c .cxx - -.c.o : - $(CCC) -c $(CFLAGS) -o $@ $< - -.cpp.o : - $(CC) -c $(CPPFLAGS) -o $@ $< - -.cxx.o : - $(CC) -c $(CPPFLAGS) -o $@ $< - -include $(top_builddir)/src/make.env - -all: $(LIBTARGET).a - -$(LIBTARGET).a : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(LIBTARGET).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.in b/src/makeprog.env.in deleted file mode 100644 index 03b947813f..0000000000 --- a/src/makeprog.env.in +++ /dev/null @@ -1,38 +0,0 @@ -# Make environment for making samples on Unix - -# Clears all default suffixes -.SUFFIXES: .o .cpp .c .cxx - -.c.o : - $(CCC) -c $(CFLAGS) -o $@ $< - -.cpp.o : - $(CC) -c $(CPPFLAGS) -o $@ $< - -.cxx.o : - $(CC) -c $(CPPFLAGS) -o $@ $< - -VPATH = :$(top_srcdir)/$(program_dir) - -# Set defaults from configure -include $(top_builddir)/src/make.env - -all: $(PROGRAM) install_dirs install_data - -$(PROGRAM): $(OBJECTS) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ - $(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJECTS) $(EXTRALIBS) $(LDLIBS) - -install_dirs: - @list='$(DATADIRS)'; for p in $$list; do \ - mkdir -p $(top_builddir)/$(program_dir)/$$p; \ - done - -install_data: - @list='$(DATAFILES)'; for p in $$list; do \ - if test ! -e $(top_builddir)/$(program_dir)/Makefile.in; then \ - cp -u $(top_srcdir)/$(program_dir)/$$p $(top_builddir)/$(program_dir)/$$p; \ - fi; \ - done - -clean: - rm -f $(OBJECTS) $(PROGRAM) core diff --git a/src/makeprog.g95 b/src/makeprog.g95 deleted file mode 100644 index ca4f6009ce..0000000000 --- a/src/makeprog.g95 +++ /dev/null @@ -1,28 +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: - erase *.o - erase $(TARGET)_resources.o - erase $(TARGET).exe - erase core - erase *.rsc - erase *.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/makeva.env b/src/makeva.env deleted file mode 100644 index bf84a13e54..0000000000 --- a/src/makeva.env +++ /dev/null @@ -1,174 +0,0 @@ -# -# File: Makeva.env -# Author: Ulrich Leodolter -# Created: Wed May 17 08:36:42 1995 -# Updated: -# -# VisualAge C++ V3.0 makefile include file -# - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -OS2FLAGS=/c /W3 /D__VISAGECPP__ /Ss /Q /N100 -OS2LINKFLAGS=/BASE:0x00010000 /PMTYPE:PM /NOE /NOD /ALIGN:16 -OS2LIBS=CPPOM30.lib CPPOOC3.LIB OS2386.LIB - -# Change this to your WXWIN directory -WXDIR=h:\dev\Wx2\wxwindows - -WXSRC=$(WXDIR)\src\os2 -WXINC=$(WXDIR)\include -WXBASESRC=$(WXDIR)\src\common -EXTRAINC=$(WXDIR)\src\png - -##################################################################### -# 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 -EXTRALNKFLAGS=/EXEC -!endif - -!if "$(WXMAKINGDLL)" == "1" -EXTRADLLFLAGS=/DWXMAKINGDLL=1 /Ge- /D__OS2DLL__ -EXTRALNKFLAGS=/DLL -!endif - -!if "$(WXMAKINGDLL)" == "0" && "$(DLL)" == "1" -EXTRADLLFLAGS= -EXTRALNKFLAGS=/EXEC -!endif - -!ifndef FINAL -FINAL=0 -DEBUG=1 -!endif - -!ifndef DLL -DLL=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 -!endif - -WXLIB=$(WXDIR)\lib\$(WXLIBNAME).lib - -!if "$(WXMAKINGDLL)" == "1" || "$(WXUSINGDLL)" == "1" -D=$(D)DLL -!endif - - -INC=-I$(WXINC) -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(EXTRAINC) -LIBS = $(EXTRALIBS) $(WXLIB) $(WINLIBS) $(WXDIR)\lib\jpeg.lib - -MAKEPRECOMP=/FiWX/WXPREC.H -OPTIONS= - -!if "$(FINAL)" == "0" -OPT = -DEBUG_FLAGS= /Ti /D__WXDEBUG__ #/Fb -LINK_DEBUG_FLAGS=/DEBUG -CRTFLAG=/Gm /Gd -!else -# /O1 - smallest code -# /O2 - fastest code -OPT = /O+ /Oc /G5 -DEBUG_FLAGS= -LINK_DEBUG_FLAGS=/RELEASE -CRTFLAG=/Gm /Gd -!endif - -!if "$(DLL)" == "0" - -!if "$(NOPCH)" == "1" -PCH= -PRECOMP= -MAKEPRECOMP= -!else -PCH=$(WXLIBNAME).pch -PRECOMP=/Si$(PCH) -MAKEPRECOMP=/Fi$(PCH) -!endif - -CPPFLAGS=$(OS2FLAGS) $(DEBUG_FLAGS) $(PRECOMP) $(EXTRAFLAGS) /D__WXPM__ $(INC) $(OPT) $(EXTRADLLFLAGS) $(CRTFLAG) $(OVERRIDEFLAGS) -# If you don't include wxprec.h, use CPPFLAGS2 -CPPFLAGS2=$(OS2FLAGS) $(DEBUG_FLAGS) /D__WXPM__ $(INC) $(EXTRAFLAGS) $(OPT) $(EXTRADLLFLAGS) $(CRTFLAG) $(OVERRIDEFLAGS) -LINKFLAGS=$(LINK_DEBUG_FLAGS) $(OS2LINKFLAGS) $(EXTRALNKFLAGS) -DUMMY=dummy - -!else - -!if "$(WXMAKINGDLL)" == "1" -PCH=$(WXLIBNAME).pch -DUMMY=dummydll -!else -PCH=$(WXLIBNAME).pch -DUMMY=dummy -!endif - -PRECOMP=/SiWX/WXPREC.H -CPPFLAGS=$(OS2FLAGS) $(DEBUG_FLAGS) $(PRECOMP) $(EXTRAFLAGS) /D__WXPM__ $(INC) $(OPT) $(CRTFLAG) $(EXTRADLLFLAGS) -CPPFLAGS2=$(OS2FLAGS) $(DEBUG_FLAGS) /D__WXPM__ $(INC) $(EXTRAFLAGS) $(OPT) $(CRTFLAG) $(EXTRADLLFLAGS) -LINKFLAGS=$(LINK_DEBUG_FLAGS) $(OS2LINKFLAGS) $(EXTRALNKFLAGS) -!endif - -DUMMYOBJ=$(WXDIR)\src\os2\$D\$(DUMMY).obj - -.c.obj: - icc @<< -$(CPPFLAGS2) /Fo$@ /c $< -<< - -.cpp.obj: - icc @<< -$(CPPFLAGS2) /Fo$@ /c $< -<< - diff --git a/src/makevc.env b/src/makevc.env deleted file mode 100644 index 601688d417..0000000000 --- a/src/makevc.env +++ /dev/null @@ -1,208 +0,0 @@ -# -# File: ntwxwin.env -# Author: Ulrich Leodolter -# Created: Wed May 17 08:36:42 1995 -# Updated: -# -# MSVC++ 32-bit makefile include file -# -!include - -WXVERSION=21b8 -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 wx$(WXVERSION).lib -# -# App using wxWin DLL - Defined - wx$(WXVERSION).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), -# wx$(WXVERSION) (DLL release), wx$(WXVERSION)_d (DLL debug) - -!if "$(WXMAKINGDLL)" == "1" || "$(WXUSINGDLL)" == "1" -WXLIBNAME=wx$(WXVERSION) -!else -WXLIBNAME=wx -!endif - -!if "$(NEW_WXLIBNAME)" != "" -WXLIBNAME=$(NEW_WXLIBNAME) -!endif - -!if "$(FINAL)" == "1" -D=Release -!else -D=Debug -LIBEXT=_d -WXLIBNAME=$(WXLIBNAME)$(LIBEXT) -!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/.cvsignore b/src/motif/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/src/motif/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in 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 72ab9cb7b2..0000000000 --- a/src/motif/app.cpp +++ /dev/null @@ -1,765 +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" - #pragma implementation "appbase.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" -#include "wx/log.h" -#include "wx/intl.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 wxAppBase::m_appInitFn = (wxAppInitializerFunction) NULL; - -wxApp::wxApp() -{ - m_topWindow = NULL; - wxTheApp = this; - m_className = ""; - m_wantDebugOutput = TRUE ; - m_appName = ""; - argc = 0; - argv = NULL; - m_exitOnFrameDelete = 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) - { -#ifdef __WXDEBUG__ - Widget widget = XtWindowToWidget(event->xany.display, event->xany.window); - wxLogDebug("Got key press event for 0x%08x (parent = 0x%08x)", - widget, XtParent(widget)); -#endif // DEBUG - - if (CheckForAccelerator(_event)) - { - // Do nothing! We intercepted and processed the event as an - // accelerator. - return; - } -#if 1 - // It seemed before that this hack was redundant and - // key down events were being generated by wxCanvasInputEvent. - // But no longer - why ??? - // - else if (CheckForKeyDown(_event)) - { - // We intercepted and processed the key down event - return; - } -#endif - else - { - XtDispatchEvent(event); - return; - } - } - else if (event->type == KeyRelease) - { - // TODO: work out why we still need this ! -michael - // - if (CheckForKeyUp(_event)) - { - // We intercepted and processed the key up event - return; - } - else - { - XtDispatchEvent(event); - 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 - -// 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; -} - -bool wxApp::CheckForKeyDown(WXEvent* event) -{ - XEvent* xEvent = (XEvent*) event; - if (xEvent->xany.type == KeyPress) - { - 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_KEY_DOWN); - wxTranslateKeyEvent(keyEvent, win, (Widget) 0, xEvent); - - return win->ProcessEvent( keyEvent ); - } - - return FALSE; -} - -bool wxApp::CheckForKeyUp(WXEvent* event) -{ - XEvent* xEvent = (XEvent*) event; - if (xEvent->xany.type == KeyRelease) - { - 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_KEY_UP); - wxTranslateKeyEvent(keyEvent, win, (Widget) 0, xEvent); - - return win->ProcessEvent( keyEvent ); - } - - 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; -} - -// TODO use XmGetPixmap (?) to get the really standard icons! - -#include "wx/generic/info.xpm" -#include "wx/generic/error.xpm" -#include "wx/generic/question.xpm" -#include "wx/generic/warning.xpm" - -wxIcon -wxApp::GetStdIcon(int which) const -{ - switch(which) - { - case wxICON_INFORMATION: - return wxIcon(info_xpm); - - case wxICON_QUESTION: - return wxIcon(question_xpm); - - case wxICON_EXCLAMATION: - return wxIcon(warning_xpm); - - default: - wxFAIL_MSG("requested non existent standard icon"); - // still fall through - - case wxICON_HAND: - return wxIcon(error_xpm); - } -} 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 58bc1cc259..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 wxHAVE_LIB_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 wxHAVE_LIB_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 // wxHAVE_LIB_XPM - -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 - // libXpm is not installed -#if wxHAVE_LIB_XPM - AddHandler(new wxXPMFileHandler); - AddHandler(new wxXPMDataHandler); -#endif // wxHAVE_LIB_XPM -} - -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 358149b072..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_font = 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 44f1f521db..0000000000 --- a/src/motif/button.cpp +++ /dev/null @@ -1,174 +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 "wx/panel.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_font = 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_font.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); - - int x = 0; int y = 0; - wxFont new_font( parent->GetFont() ); - GetTextExtent( label1, &x, &y, (int*)NULL, (int*)NULL, &new_font ); - - wxSize newSize = size; - if (newSize.x == -1) newSize.x = 30+x; - if (newSize.y == -1) newSize.y = 27+y; - SetSize( newSize.x, newSize.y ); - - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, newSize.x, newSize.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -void wxButton::SetDefault() -{ - wxWindow *parent = GetParent(); - wxPanel *panel = wxDynamicCast(panel, wxPanel); - if ( panel ) - panel->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); -} - -/* static */ -wxSize wxButton::GetDefaultSize() -{ - // TODO: check font size as in wxMSW ? MB - // - return wxSize(80,26); -} - -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 4b582b16c7..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_font = 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_font.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 71981d44d2..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_font = parent->GetFont(); - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - m_formWidget = (WXWidget) XtVaCreateManagedWidget(name.c_str(), - 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 - // JACS, 24/1/99: this seems to cause a malloc crash later on, e.g. - // in controls sample. - // - // Widget optionLabel = XmOptionLabelGadget ((Widget) m_buttonWidget); - // 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) -{ - Widget w = XtVaCreateManagedWidget (wxStripMenuCodes(item), -#if USE_GADGETS - xmPushButtonGadgetClass, (Widget) m_menuWidget, -#else - xmPushButtonWidgetClass, (Widget) m_menuWidget, -#endif - NULL); - - DoChangeBackgroundColour((WXWidget) w, m_backgroundColour); - - if (m_font.Ok()) - XtVaSetValues (w, - XmNfontList, (XmFontList) m_font.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_font.Ok()) - { - int width, height, width1, height1; - GetSize(& width, & height); - - XmFontList fontList = (XmFontList) m_font.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 0cc48a40f0..0000000000 --- a/src/motif/clipbrd.cpp +++ /dev/null @@ -1,536 +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/defs.h" - -#if wxUSE_CLIPBOARD - -#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 == wxDF_TEXT) - return wxDF_TEXT; - else - return wxDF_INVALID; -} - -wxDataFormat wxRegisterClipboardFormat(char *formatName) -{ - // Not supported - return (wxDataFormat) wxDF_INVALID; -} - -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 - -#endif // wxUSE_CLIPBOARD 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 c2e9d0ecb9..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(name.c_str(), - 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_font = 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 06019980d6..0000000000 --- a/src/motif/control.cpp +++ /dev/null @@ -1,109 +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/panel.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; - -#if WXWIN_COMPATIBILITY - m_callback = 0; -#endif // WXWIN_COMPATIBILITY - - m_inSetValue = FALSE; -} - -wxControl::~wxControl() -{ - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); - if (panel) - { - if (panel->GetDefaultItem() == this) - panel->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; - } -} - -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); -} 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 2fdd9dd815..0000000000 --- a/src/motif/dataobj.cpp +++ /dev/null @@ -1,305 +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/defs.h" - -#if wxUSE_CLIPBOARD - -#include "wx/dataobj.h" -#include "wx/app.h" - -#include -#include "wx/utils.h" - -//------------------------------------------------------------------------- -// global data -//------------------------------------------------------------------------- - -Atom g_textAtom = 0; - -//------------------------------------------------------------------------- -// wxDataFormat -//------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxDataFormat, wxObject) - -wxDataFormat::wxDataFormat() -{ - if (!g_textAtom) g_textAtom = XInternAtom( (Display*) wxGetDisplay(), "STRING", FALSE ); - m_type = wxDF_INVALID; - m_hasAtom = FALSE; - m_atom = (Atom) 0; -} - -wxDataFormat::wxDataFormat( wxDataFormatId type ) -{ - if (!g_textAtom) g_textAtom = XInternAtom( (Display*) wxGetDisplay(), "STRING", FALSE ); - SetType( type ); -} - -wxDataFormat::wxDataFormat( const wxChar *id ) -{ - if (!g_textAtom) g_textAtom = XInternAtom( (Display*) wxGetDisplay(), "STRING", FALSE ); - SetId( id ); -} - -wxDataFormat::wxDataFormat( const wxString &id ) -{ - if (!g_textAtom) g_textAtom = XInternAtom( (Display*) wxGetDisplay(), "STRING", FALSE ); - SetId( id ); -} - -wxDataFormat::wxDataFormat( const wxDataFormat &format ) -{ - if (!g_textAtom) g_textAtom = XInternAtom( (Display*) wxGetDisplay(), "STRING", FALSE ); - m_type = format.GetType(); - m_id = format.GetId(); - m_hasAtom = TRUE; - m_atom = ((wxDataFormat &)format).GetAtom(); // const_cast -} - -wxDataFormat::wxDataFormat( const Atom atom ) -{ - if (!g_textAtom) g_textAtom = XInternAtom( (Display*) wxGetDisplay(), "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 = XGetAtomName( (Display*) wxGetDisplay(), 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; -} - -Atom 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 = XInternAtom( (Display*) wxGetDisplay(), MBSTRINGCAST m_id.mbc_str(), FALSE ); - } - else - if (m_type == wxDF_FILENAME) - { - m_atom = XInternAtom( (Display*) wxGetDisplay(), "file:ALL", FALSE ); - } - else - { - m_hasAtom = FALSE; - m_atom = (Atom) 0; - } - } - - return m_atom; -} - -//------------------------------------------------------------------------- -// 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(); -} - -Atom wxDataObject::GetFormatAtom() const -{ - Atom 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 ); -} - -// ---------------------------------------------------------------------------- -// 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() ); -} - -#endif // wxUSE_CLIPBOARD diff --git a/src/motif/dc.cpp b/src/motif/dc.cpp deleted file mode 100644 index c60397ea6f..0000000000 --- a/src/motif/dc.cpp +++ /dev/null @@ -1,263 +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 ) -{ - // 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 ) -{ - 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 bda0770424..0000000000 --- a/src/motif/dcclient.cpp +++ /dev/null @@ -1,2396 +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_font = window->GetFont(); - 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!"); - - if (width) *width = -1; - if (height) *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); - - if (width) *width = XDEV2LOGREL (overall.width); - if (height) *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::DoSetClippingRegion( 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::DoSetClippingRegion( 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; -} - -#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 -// ---------------------------------------------------------------------------- - -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 9a6c4271c8..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::DoGetSize( 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 df547fe628..0000000000 --- a/src/motif/dcscreen.cpp +++ /dev/null @@ -1,128 +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/window.h" -#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 cdd1571578..0000000000 --- a/src/motif/dialog.cpp +++ /dev/null @@ -1,709 +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_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_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_font = 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() -{ - m_isBeingDeleted = TRUE; - - 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); -} - -// Default resizing behaviour - if only ONE subwindow, -// resize to client rectangle size -void wxDialog::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)) ) - { - 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); - } -} - - -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::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); -} - -void wxDialog::OnPaint(wxPaintEvent &WXUNUSED(event)) -{ - // added for compatiblity only -} - -// 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(); -} - -// 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 *)wxGetWindowFromTable(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 bb2daaa3cb..0000000000 --- a/src/motif/filedlg.cpp +++ /dev/null @@ -1,366 +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) -{ - wxWindow::DoChangeBackgroundColour((WXWidget) widget, *wxWHITE); - - // Change colour of the scrolled areas of the listboxes - Widget listParent = XtParent (widget); - wxWindow::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); - wxWindow::DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE); - wxWindow::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); - - // code using these vars disabled -#if 0 - Widget okWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_OK_BUTTON); - Widget applyWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_APPLY_BUTTON); - Widget cancelWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_CANCEL_BUTTON); -#endif - - - 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); - - // apparently, this provokes a crash -#if 0 - DoChangeBackgroundColour((WXWidget) okWidget, m_backgroundColour, TRUE); - DoChangeBackgroundColour((WXWidget) cancelWidget, m_backgroundColour, TRUE); - DoChangeBackgroundColour((WXWidget) applyWidget, m_backgroundColour, TRUE); -#endif - - 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; - - wxString prompt; - wxString str; - if (load) - str = _("Load %s file"); - else - str = _("Save %s file"); - prompt.Printf(str, what); - - if (*ext == '.') - ext++; - wxString wild; - wild.Printf("*.%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 4b46312660..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() -{ - 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. - // XFontStruct* fontStruct = (XFontStruct*) m_fontStruct; - // 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 a5272571d0..0000000000 --- a/src/motif/frame.cpp +++ /dev/null @@ -1,1151 +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_parent = 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_font = 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, y = pos.y; - int width = size.x, height = size.y; - - // Set reasonable values for position and size if defaults have - // been requested - // - // MB TODO: something better than these arbitrary values ? - // - if ( width == -1 ) width = 400; - if ( height = -1 ) height = 400; - - int displayW, displayH; - wxDisplaySize( &displayW, &displayH ); - - if ( x == -1 ) - { - x = (displayW - width) / 2; - if (x < 10) x = 10; - } - if ( y == -1 ) - { - y = (displayH - height) / 2; - if (y < 10) y = 10; - } - - 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); - - wxLogDebug("Created frame (0x%08x) with work area 0x%08x and client " - "area 0x%08x", m_frameWidget, m_workArea, m_clientArea); - - 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); - - 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() -{ - m_isBeingDeleted = TRUE; - - 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) -{ - // wxDebugMsg("focus proc from frame %ld\n",(long)frame); - // TODO - // wxFrame *frame = (wxFrame *)clientData; - // 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 *)wxGetWindowFromTable((Widget)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 996845f3d0..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_font = 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/gsockmot.cpp b/src/motif/gsockmot.cpp deleted file mode 100644 index 535a7b4d42..0000000000 --- a/src/motif/gsockmot.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// ------------------------------------------------------------------------- -// Project: GSocket (Generic Socket) for WX -// Name: gsockmot.cpp -// Purpose: GSocket: Motif part -// CVSID: $Id$ -// ------------------------------------------------------------------------- - -#include "wx/setup.h" - -#if wxUSE_SOCKETS - -#include -#include -#include -#include -#include "../unix/gsockunx.h" - -#define wxAPP_CONTEXT ((XtAppContext)wxTheApp->GetAppContext()) - -static void _GSocket_Motif_Input(XtPointer data, int *fid, - XtInputId *id) -{ - GSocket *socket = (GSocket *)data; - - _GSocket_Detected_Read(socket); -} - -static void _GSocket_Motif_Output(XtPointer data, int *fid, - XtInputId *id) -{ - GSocket *socket = (GSocket *)data; - - _GSocket_Detected_Write(socket); -} - -void _GSocket_GUI_Init(GSocket *socket) -{ - int i; - int *m_id; - - socket->m_gui_dependent = (char *)malloc(sizeof(int)*3); - m_id = (int *)(socket->m_gui_dependent); - - for (i=0;i<3;i++) - m_id[i] = -1; -} - -void _GSocket_GUI_Destroy(GSocket *socket) -{ - int i; - int *m_id; - - m_id = (int *)(socket->m_gui_dependent); - - for (i=0;i<3;i++) - if (m_id[i] == -1) - XtRemoveInput(m_id[i]); - - free(socket->m_gui_dependent); -} - -void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) -{ - int *m_id; - - m_id = (int *)(socket->m_gui_dependent); - - switch (event) { - case GSOCK_CONNECTION: - case GSOCK_LOST: - case GSOCK_INPUT: - if (m_id[0] != -1) - XtRemoveInput(m_id[0]); - m_id[0] = XtAppAddInput(wxAPP_CONTEXT, socket->m_fd, - (XtPointer *)XtInputReadMask, - (XtInputCallbackProc) _GSocket_Motif_Input, - (XtPointer) socket); - break; - case GSOCK_OUTPUT: - if (m_id[1] != -1) - XtRemoveInput(m_id[1]); - m_id[1] = XtAppAddInput(wxAPP_CONTEXT, socket->m_fd, - (XtPointer *)XtInputWriteMask, - (XtInputCallbackProc) _GSocket_Motif_Output, - (XtPointer) socket); - break; - default: return; - } -} - -void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) -{ - int c; - int *m_id; - - m_id = (int *)(socket->m_gui_dependent); - - switch (event) { - case GSOCK_CONNECTION: - case GSOCK_LOST: - case GSOCK_INPUT: c = 0; break; - case GSOCK_OUTPUT: c = 1; break; - break; - default: return; - } - - if (m_id[c] != -1) - XtRemoveInput(m_id[c]); - - m_id[c] = -1; -} - -unsigned long GSocket_GetEventID(GSocket *socket) -{ - return 0; -} - -void GSocket_DoEvent(unsigned long evt_id) -{ -} - -#endif // wxUSE_SOCKETS 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 685db11e3d..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_font = 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, void *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, void** 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, void *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/mdi.cpp b/src/motif/mdi.cpp deleted file mode 100644 index b5b7a97d1a..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_font = 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 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: - -

    -[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 9f5deb2c00..0000000000 Binary files a/src/motif/mdi/doc/pics/classes.gif and /dev/null differ diff --git a/src/motif/mdi/doc/pics/mdi.gif b/src/motif/mdi/doc/pics/mdi.gif deleted file mode 100644 index c43414bc62..0000000000 Binary files a/src/motif/mdi/doc/pics/mdi.gif and /dev/null differ diff --git a/src/motif/mdi/doc/pics/winclass.gif b/src/motif/mdi/doc/pics/winclass.gif deleted file mode 100644 index ef9896e80b..0000000000 Binary files a/src/motif/mdi/doc/pics/winclass.gif and /dev/null differ 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 ed12ce6732..0000000000 --- a/src/motif/menu.cpp +++ /dev/null @@ -1,1131 +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) -void wxMenu::Init(const wxString& title, - long style -#ifdef WXWIN_COMPATIBILITY - , const wxFunction func -#endif - ) -{ - m_title = title; - m_parent = (wxEvtHandler*) NULL; - m_eventHandler = this; - m_noItems = 0; - m_menuBar = NULL; - m_pInvokingWindow = NULL; - m_style = style; - - //// 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); - -#ifdef WXWIN_COMPATIBILITY - Callback(func); -#endif -} - -// 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(); - } -} - -// 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)); - - if (strcmp (wxStripMenuCodes(title), "Help") == 0) - XtVaSetValues ((Widget) menuBarW, XmNmenuHelpWidget, (Widget) menu->GetButtonWidget(), NULL); - - // tear off menu support -#if (XmVersion >= 1002) - if ( menu->IsTearOff() ) - { - XtVaSetValues(GetWidget(menu), - XmNtearOffModel, XmTEAR_OFF_ENABLED, - NULL); -#endif - } - } - - 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); - - wxString title2(wxStripMenuCodes(title)); - wxXmString label_str(title2); - buttonWidget = XtVaCreateManagedWidget(title2, -#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); - } - - 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 f44459aaae..0000000000 --- a/src/motif/menuitem.cpp +++ /dev/null @@ -1,359 +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. - m_buttonWidget = (WXWidget) XtVaCreateManagedWidget - (wxStripMenuCodes(m_strName), - xmLabelGadgetClass, (Widget) menu, NULL); - } - else if ((!m_strName.IsNull() && m_strName != "") && (!m_pSubMenu)) - { - wxString strName = wxStripMenuCodes(m_strName); - if (IsCheckable()) - { - m_buttonWidget = (WXWidget) XtVaCreateManagedWidget (strName, - xmToggleButtonGadgetClass, (Widget) menu, - NULL); - XtVaSetValues ((Widget) m_buttonWidget, XmNset, (Boolean) IsChecked(), NULL); - } - else - m_buttonWidget = (WXWidget) XtVaCreateManagedWidget (strName, - 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? - strName = m_strName; - char *accel = wxFindAccelerator (strName); - if (accel) - XtVaSetValues ((Widget) m_buttonWidget, XmNaccelerator, accel, NULL); - - // TODO: What does this do? - XmString accel_str = wxFindAcceleratorText (strName); - 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); - wxString label2 = wxStripMenuCodes(label); - - m_strName = label; - - if (m_buttonWidget) - { - wxXmString label_str(label2); - XtVaSetValues ((Widget) m_buttonWidget, - XmNlabelString, label_str, - NULL); - if (mnem != 0) - XtVaSetValues ((Widget) m_buttonWidget, XmNmnemonic, mnem, NULL); - char *accel = wxFindAccelerator (label2); - if (accel) - XtVaSetValues ((Widget) m_buttonWidget, XmNaccelerator, accel, NULL); - - XmString accel_str = wxFindAcceleratorText (label2); - 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 b2f5d743c7..0000000000 --- a/src/motif/msgdlg.cpp +++ /dev/null @@ -1,214 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -#ifdef __GNUG__ - #pragma implementation "msgdlg.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include - -#include -#include - -#include "wx/app.h" -#include "wx/intl.h" -#include "wx/motif/msgdlg.h" -#include "wx/motif/private.h" - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_CLASS(wxMessageDialog, wxDialog) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// the callbacks for message box buttons -// ---------------------------------------------------------------------------- - -// the common part -static void msgboxCallBack(Widget w, int client_data, int id) -{ - // close the dialog - XtUnmanageChild(w); - - wxMessageDialog *dlg = (wxMessageDialog *)client_data; - dlg->SetResult(id); -} - -static void msgboxCallBackOk(Widget w, - int client_data, - XmAnyCallbackStruct *call_data) -{ - msgboxCallBack(w, client_data, wxID_OK); -} - -static void msgboxCallBackCancel(Widget w, - int client_data, - XmAnyCallbackStruct *call_data) -{ - msgboxCallBack(w, client_data, wxID_CANCEL); -} - -static void msgboxCallBackClose(Widget w, - int client_data, - XmAnyCallbackStruct *call_data) -{ - msgboxCallBack(w, client_data, wxID_CANCEL); -} - -// ---------------------------------------------------------------------------- -// wxMessageDialog -// ---------------------------------------------------------------------------- - -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() -{ - Widget (*dialogCreateFunction)(Widget, String, ArgList, Cardinal) = NULL; - if ( m_dialogStyle & wxYES_NO ) - { - // if we have [Yes], it must be a question - dialogCreateFunction = XmCreateQuestionDialog; - - // TODO we could support this by using the help button... - wxASSERT_MSG( !(m_dialogStyle & wxCANCEL), "not supported" ); - } - else if ( m_dialogStyle & wxICON_STOP ) - { - // error dialog is the one with error icon... - dialogCreateFunction = XmCreateErrorDialog; - } - else if ( m_dialogStyle & wxICON_EXCLAMATION ) - { - // ...and the warning dialog too - dialogCreateFunction = XmCreateWarningDialog; - } - else - { - // finally, use the info dialog by default - dialogCreateFunction = XmCreateInformationDialog; - } - - // prepare the arg list - Arg args[2]; - int ac = 0; - - wxXmString text(m_message); - wxXmString title(m_caption); - XtSetArg(args[ac], XmNmessageString, text()); ac++; - XtSetArg(args[ac], XmNdialogTitle, title()); ac++; - - // do create message box - Widget wParent = m_parent ? GetWidget(m_parent) : NULL; - if ( !wParent ) - { - wxWindow *window = wxTheApp->GetTopWindow(); - if ( !window ) - { - wxFAIL_MSG("can't show message box without parent window"); - - return wxID_CANCEL; - } - - wParent = GetWidget(window); - } - - Widget wMsgBox = (*dialogCreateFunction)(wParent, "", args, ac); - - wxCHECK_MSG( wMsgBox, wxID_CANCEL, "msg box creation failed" ); - - // remove the [Help] button which wouldn't do anything anyhow - XtUnmanageChild(XmMessageBoxGetChild(wMsgBox, XmDIALOG_HELP_BUTTON)); - - // and the [Cancel] button too if we were not asked for it - if ( !(m_dialogStyle & wxCANCEL) ) - { - Widget wBtnCancel = XmMessageBoxGetChild(wMsgBox, - XmDIALOG_CANCEL_BUTTON); - - // ... unless it's a wxYES_NO dialog in which case we just rename - // [Cancel] to [No] instead - if ( m_dialogStyle & wxYES_NO ) - { - Widget wBtnOk = XmMessageBoxGetChild(wMsgBox, - XmDIALOG_OK_BUTTON); - - wxXmString yes(_("Yes")), no(_("No")); - XtVaSetValues(wBtnOk, XmNlabelString, yes(), NULL); - XtVaSetValues(wBtnCancel, XmNlabelString, no(), NULL); - } - else - { - XtUnmanageChild(wBtnCancel); - } - } - - // set the callbacks for the message box buttons - XtAddCallback(wMsgBox, XmNokCallback, - (XtCallbackProc)msgboxCallBackOk, (XtPointer)this); - XtAddCallback(wMsgBox, XmNcancelCallback, - (XtCallbackProc)msgboxCallBackCancel, (XtPointer)this); - - XtAddCallback(wMsgBox, XmNunmapCallback, - (XtCallbackProc)msgboxCallBackClose, (XtPointer)this); - - // show it as a modal dialog - XtManageChild(wMsgBox); - XtAddGrab(wMsgBox, True, False); - - // the m_result will be changed when message box goes away - m_result = -1; - - // local message loop - XtAppContext context = XtWidgetToApplicationContext(wParent); - XEvent event; - while ( m_result == -1 ) - { - XtAppNextEvent(context, &event); - XtDispatchEvent(&event); - } - - // translate the result if necessary - if ( m_dialogStyle & wxYES_NO ) - { - if ( m_result == wxID_OK ) - m_result = wxID_YES; - else if ( m_result == wxID_CANCEL ) - m_result = wxID_NO; - } - - return m_result; -} - diff --git a/src/motif/palette.cpp b/src/motif/palette.cpp deleted file mode 100644 index 3e365621a1..0000000000 --- a/src/motif/palette.cpp +++ /dev/null @@ -1,352 +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() -{ - 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 8d0c0a47cf..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 6845b047db..0000000000 --- a/src/motif/radiobox.cpp +++ /dev/null @@ -1,493 +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_font = 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)); - - Widget formWidget = XtVaCreateManagedWidget (name.c_str(), - xmFormWidgetClass, parentWidget, - XmNmarginHeight, 0, - XmNmarginWidth, 0, - NULL); - - m_formWidget = (WXWidget) formWidget; - - XmFontList fontList = (XmFontList) m_font.GetFontList(1.0, XtDisplay(parentWidget)); - if (label1 != "") - { - wxXmString text(label1); - (void)XtVaCreateManagedWidget(label1.c_str(), -#if wxUSE_GADGETS - style & wxCOLOURED ? xmLabelWidgetClass - : xmLabelGadgetClass, - formWidget, -#else - xmLabelWidgetClass, formWidget, -#endif - XmNfontList, fontList, - XmNlabelString, text(), - NULL); - } - - Widget frameWidget = XtVaCreateManagedWidget ("frame", - xmFrameWidgetClass, formWidget, - XmNshadowType, XmSHADOW_IN, -// XmNmarginHeight, 0, -// XmNmarginWidth, 0, - NULL); - - m_frameWidget = (WXWidget) frameWidget; - - Arg args[3]; - - m_majorDim = (n + m_majorDim - 1) / m_majorDim; - - XtSetArg (args[0], XmNorientation, ((style & wxHORIZONTAL) == wxHORIZONTAL ? - XmHORIZONTAL : XmVERTICAL)); - XtSetArg (args[1], XmNnumColumns, m_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_font = 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_font.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 7be3126b54..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_font = 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_font.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 a939adba66..0000000000 --- a/src/motif/region.cpp +++ /dev/null @@ -1,397 +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); - - 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); - } - - 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 f6f2df3d36..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 5d3d92125e..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_font = 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 a9cfa3dd6b..0000000000 --- a/src/motif/spinbutt.cpp +++ /dev/null @@ -1,77 +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) -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent); -#endif - -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); - - InitBase(); - - 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) -{ - // TODO - wxSpinButtonBase::SetRange(minVal, maxVal); -} - -void wxSpinButton::ChangeFont(bool keepOriginalSize) -{ - // TODO -} - -void wxSpinButton::ChangeBackgroundColour() -{ - // TODO -} - -void wxSpinButton::ChangeForegroundColour() -{ - // TODO -} diff --git a/src/motif/statbmp.cpp b/src/motif/statbmp.cpp deleted file mode 100644 index fa4d5eb5de..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_font = 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 660c43b6e8..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_font = 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_font.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 fdcd50c98d..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_font = 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_font.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 224bd0200c..0000000000 --- a/src/motif/textctrl.cpp +++ /dev/null @@ -1,905 +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() -{ - 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_font = 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]); - } -} - -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 51bcf4efb4..0000000000 --- a/src/motif/toolbar.cpp +++ /dev/null @@ -1,605 +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_font = 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; - 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 094a3e8699..0000000000 --- a/src/motif/utils.cpp +++ /dev/null @@ -1,1194 +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); - - // 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 (const char *s) -{ - // VZ: this function returns incorrect keysym which completely breaks kbd - // handling - return NULL; - - // 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 = tmp; - - 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++; - } - else - { - strcat (wxBuffer, ""); - strcat (wxBuffer, s); - break; - } - } - delete[]tmp; - return wxBuffer; -} - -XmString wxFindAcceleratorText (const char *s) -{ - // VZ: this function returns incorrect keysym which completely breaks kbd - // handling - return NULL; - - // The accelerator text is after the \t char. - while (*s && *s != '\t') - s++; - if (*s == '\0') - return (NULL); - s++; - XmString text = XmStringCreateSimple ((char *)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; - -/* FIXME, TODO - 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 5ac4f203aa..0000000000 --- a/src/motif/window.cpp +++ /dev/null @@ -1,2881 +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/module.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 // for XmMenuPosition - -#include "wx/motif/private.h" - -#include - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -static const int SCROLL_MARGIN = 4; - -// ---------------------------------------------------------------------------- -// global variables for this module -// ---------------------------------------------------------------------------- - -extern wxHashTable *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, wxWindowBase) - - BEGIN_EVENT_TABLE(wxWindow, wxWindowBase) - 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_isBeingDeleted = FALSE; - - 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, wxDefaultValidator, 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() -{ - m_isBeingDeleted = TRUE; - - // Motif-specific actions first - WXWidget wMain = GetMainWidget(); - if ( wMain ) - { - // Removes event handlers - DetachWidget(wMain); - } - - ClearUpdateRects(); - - if ( m_parent ) - m_parent->RemoveChild( this ); - - // 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 - -// ---------------------------------------------------------------------------- -// popup menus -// ---------------------------------------------------------------------------- - -bool wxWindow::DoPopupMenu(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); - } - - 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; -} - -// --------------------------------------------------------------------------- -// 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 = string.Len(); - -#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 *)wxWidgetHashTable->Get ((long) w))) - { - wxLogDebug("Widget table clash: new widget is %ld, %s", - (long)w, win->GetClassInfo()->GetClassName()); - return FALSE; - } - - wxWidgetHashTable->Put((long) w, win); - - wxLogDebug("Widget 0x%08x <-> window %p (%s)", - w, win, win->GetClassInfo()->GetClassName()); - - return TRUE; -} - -wxWindow *wxGetWindowFromTable(Widget w) -{ - return (wxWindow *)wxWidgetHashTable->Get((long) w); -} - -void wxDeleteWindowFromTable(Widget w) -{ - 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: - case KeyRelease: - { - 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/.cvsignore b/src/msw/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/src/msw/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/src/msw/Makefile.am b/src/msw/Makefile.am deleted file mode 100644 index 2923f8b3c5..0000000000 --- a/src/msw/Makefile.am +++ /dev/null @@ -1,247 +0,0 @@ -## Purpose: The automake makefile for wxWindows (src/msw subdirectory) -## Author: Phil Blecker, Vadim Zeitlin, Robert Roebling -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = 1.3 -# no-dependencies - -SUFFIXES = .cpp .c - -DEFS = $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) -LIBS = $(GUILIBS) - -VPATH = .:${srcdir}:${srcdir}/../common:${srcdir}/../generic:${srcdir}/../html:${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 - -# empty Motif library -libwx_motif_la_SOURCES = - -# empty GTK library -libwx_gtk_la_SOURCES = - -# these are the common files which always make part of the library -libwx_msw_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 \ - strconv.cpp \ - timercmn.cpp \ - utilscmn.cpp \ - tokenzr.cpp \ - variant.cpp \ - wxchar.cpp \ -\ - config.cpp \ - date.cpp \ - datstrm.cpp \ - dcbase.cpp \ - dlgcmn.cpp \ - docmdi.cpp \ - docview.cpp \ - dynlib.cpp \ - event.cpp \ - ffile.cpp \ - file.cpp \ - fileconf.cpp \ - filesys.cpp \ - fs_inet.cpp \ - fs_zip.cpp \ - framecmn.cpp \ - ftp.cpp \ - gdicmn.cpp \ - helpbase.cpp \ - http.cpp \ - image.cpp \ - imagbmp.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 \ - sckipc.cpp \ - sckstrm.cpp \ - serbase.cpp \ - socket.cpp \ - stream.cpp \ - tbarbase.cpp \ - tbarsmpl.cpp \ - textcmn.cpp \ - textfile.cpp \ - time.cpp \ - url.cpp \ - unzip.c \ - validate.cpp \ - valtext.cpp \ - wfstream.cpp \ - wincmn.cpp \ - wxexpr.cpp \ - zipstrm.cpp \ - zstream.cpp \ -\ - busyinfo.cpp \ - choicdgg.cpp \ - dcpsg.cpp \ - gridg.cpp \ - laywin.cpp \ - numdlgg.cpp \ - panelg.cpp \ - progdlgg.cpp \ - prop.cpp \ - propform.cpp \ - proplist.cpp \ - sashwin.cpp \ - scrolwin.cpp \ - splitter.cpp \ - statusbr.cpp \ - tabg.cpp \ - textdlgg.cpp \ - tipdlg.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 \ - statline.cpp \ - stattext.cpp \ - tbar95.cpp \ - textctrl.cpp \ - treectrl.cpp \ - thread.cpp \ - timer.cpp \ - tooltip.cpp \ - utils.cpp \ - utilsexc.cpp \ - wave.cpp \ - window.cpp \ - nativdlg.cpp \ -\ - htmlcell.cpp \ - htmlfilter.cpp \ - htmlhelp.cpp \ - htmlhelp_io.cpp \ - htmlparser.cpp \ - htmltag.cpp \ - htmlwin.cpp \ - htmlwinparser.cpp \ - mod_fonts.cpp \ - mod_hline.cpp \ - mod_image.cpp \ - mod_layout.cpp \ - mod_links.cpp \ - mod_list.cpp \ - mod_pre.cpp \ - mod_tables.cpp \ - search.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 - -# VZ: can anyone please explain me why are we doing these substitutions? -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\1/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\1/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) -no-undefined -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 1a2c5d78af..0000000000 --- a/src/msw/accel.cpp +++ /dev/null @@ -1,166 +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(); - ~wxAcceleratorRefData(); - - 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 wxChar *)resource); -#else - ::LoadAcceleratorsA(wxGetInstance(), (const char *)resource); -#endif -#else - ::LoadAccelerators(wxGetInstance(), (const wxChar *)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 // Win16 -wxAcceleratorTable::wxAcceleratorTable(int WXUNUSED(n), const wxAcceleratorEntry WXUNUSED(entries)[]) -{ - wxFAIL_MSG("not implemented"); -} -#endif // Win32/16 - -bool wxAcceleratorTable::Ok() 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; -} - -bool wxAcceleratorTable::Translate(wxWindow *window, WXMSG *wxmsg) const -{ - MSG *msg = (MSG *)wxmsg; - - return Ok() && ::TranslateAccelerator(GetHwndOf(window), GetHaccel(), msg); } diff --git a/src/msw/app.cpp b/src/msw/app.cpp deleted file mode 100644 index d1a70a3d3c..0000000000 --- a/src/msw/app.cpp +++ /dev/null @@ -1,1223 +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" - #pragma implementation "appbase.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" -# include "wx/icon.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... -#ifndef wxUSE_NORLANDER_HEADERS -#if defined(__GNUWIN32__) || defined(__SC__) || defined(__SALFORDC__) - #undef wxUSE_OLE - - #define wxUSE_OLE 0 -#endif // broken compilers -#endif - -#if wxUSE_OLE - #include -#endif - -#include -#include - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS) - #include -#endif - -#include "wx/msw/msvcrt.h" - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -extern wxChar *wxBuffer; -extern wxChar *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? - -// NB: all "NoRedraw" classes must have the same names as the "normal" classes -// with NR suffix - wxWindow::MSWCreate() supposes this -wxChar wxFrameClassName[] = _T("wxFrameClass"); -wxChar wxFrameClassNameNoRedraw[] = _T("wxFrameClassNR"); -wxChar wxMDIFrameClassName[] = _T("wxMDIFrameClass"); -wxChar wxMDIFrameClassNameNoRedraw[] = _T("wxMDIFrameClassNR"); -wxChar wxMDIChildFrameClassName[] = _T("wxMDIChildFrameClass"); -wxChar wxMDIChildFrameClassNameNoRedraw[] = _T("wxMDIChildFrameClassNR"); -wxChar wxPanelClassName[] = _T("wxPanelClass"); -wxChar wxCanvasClassName[] = _T("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 wxChar[1500]; // FIXME - - wxClassInfo::InitializeClasses(); - -#if wxUSE_RESOURCES - wxGetResource(_T("wxWindows"), _T("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(_T("RICHED32.DLL")); - - if (gs_hRichEdit == (HINSTANCE) NULL) - { - wxLogError(_("Could not initialise Rich Edit DLL")); - } -#endif // wxUSE_RICHEDIT - -#endif // __WIN95__ - -#if wxUSE_OLE - -#ifdef __WIN16__ - // for OLE, enlarge message queue to be as large as possible - int iMsg = 96; - while (!SetMessageQueue(iMsg) && (iMsg -= 8)) - ; -#endif // Win16 - // we need to initialize OLE library - if ( FAILED(::OleInitialize(NULL)) ) - wxLogError(_("Cannot initialize OLE")); -#endif // wxUSE_OLE - -#if wxUSE_CTL3D - if (!Ctl3dRegister(wxhInstance)) - wxLogError(_T("Cannot register CTL3D")); - - Ctl3dAutoSubclass(wxhInstance); -#endif - - g_globalCursor = new wxCursor; - - wxSTD_FRAME_ICON = LoadIcon(wxhInstance, _T("wxSTD_FRAME")); - wxSTD_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, _T("wxSTD_MDIPARENTFRAME")); - wxSTD_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, _T("wxSTD_MDICHILDFRAME")); - - wxDEFAULT_FRAME_ICON = LoadIcon(wxhInstance, _T("wxDEFAULT_FRAME")); - wxDEFAULT_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, _T("wxDEFAULT_MDIPARENTFRAME")); - wxDEFAULT_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, _T("wxDEFAULT_MDICHILDFRAME")); - - RegisterWindowClasses(); - - // Create the brush for disabling bitmap buttons - - LOGBRUSH lb; - lb.lbStyle = BS_PATTERN; - lb.lbHatch = (int)LoadBitmap( wxhInstance, _T("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; - - // for each class we register one with CS_(V|H)REDRAW style and one - // without for windows created with wxNO_FULL_REDRAW_ON_REPAINT flag - static const long styleNormal = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; - static const long styleNoRedraw = CS_DBLCLKS; - - // the fields which are common to all classes - wndclass.lpfnWndProc = (WNDPROC)wxWndProc; - wndclass.cbClsExtra = 0; - wndclass.cbWndExtra = sizeof( DWORD ); // VZ: 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); - wndclass.style = styleNormal; - wndclass.lpszClassName = wxFrameClassName; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(frame)"); - - return FALSE; - } - - // "no redraw" frame - wndclass.lpszClassName = wxFrameClassNameNoRedraw; - wndclass.style = styleNoRedraw; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(no redraw frame)"); - - return FALSE; - } - - // Register the MDI frame window class. - wndclass.hbrBackground = (HBRUSH)NULL; // paint MDI frame ourselves - wndclass.lpszClassName = wxMDIFrameClassNameNoRedraw; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(MDI parent)"); - - return FALSE; - } - - // "no redraw" MDI frame - wndclass.lpszClassName = wxMDIFrameClassName; - wndclass.style = styleNoRedraw; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(no redraw MDI parent frame)"); - - 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; - } - - // "no redraw" MDI child frame - wndclass.lpszClassName = wxMDIChildFrameClassNameNoRedraw; - wndclass.style = styleNoRedraw; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(no redraw 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 - wxChar name[260]; // 260 is MAX_PATH value from windef.h - ::GetModuleFileName(wxhInstance, name, WXSIZEOF(name)); - - args.Add(name); - count++; - - wxStrcpy(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) && wxIsspace(cmdLine.GetChar(i))) - i ++; - - if (i < len) - { - if (cmdLine.GetChar(i) == _T('"')) // We found the start of a string - { - i ++; - int first = i; - while ((i < len) && (cmdLine.GetChar(i) != _T('"'))) - 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) && !wxIsspace(cmdLine.GetChar(i))) - i ++; - - wxString arg(cmdLine.Mid(first, (i - first))); - - args.Add(arg); - count ++; - } - } - } - - wxTheApp->argv = new wxChar*[count + 1]; - for (i = 0; i < count; i++) - { - wxString arg(args[i]); - wxTheApp->argv[i] = copystring((const wxChar*)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(_T("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, - _T("No initializer - use IMPLEMENT_APP macro.") ); - - wxTheApp = (*wxApp::GetInitializerFunction()) (); - } - - wxCHECK_MSG( wxTheApp, 0, _T("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 wxAppBase::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(), - _T("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; - - // for some composite controls (like a combobox), wndThis might be NULL - // because the subcontrol is not a wxWindow, but only the control itself - // is - try to catch this case - while ( hWnd && !wndThis ) - { - hWnd = ::GetParent(hWnd); - wndThis = wxFindWinFromHandle((WXHWND)hWnd); - } - - // 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); - } -} - -int wxApp::GetComCtl32Version() const -{ - // have we loaded COMCTL32 yet? - HMODULE theModule = ::GetModuleHandle(_T("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; -} - -wxIcon -wxApp::GetStdIcon(int which) const -{ - switch(which) - { - case wxICON_INFORMATION: - return wxIcon("wxICON_INFO"); - - case wxICON_QUESTION: - return wxIcon("wxICON_QUESTION"); - - case wxICON_EXCLAMATION: - return wxIcon("wxICON_WARNING"); - - default: - wxFAIL_MSG(_T("requested non existent standard icon")); - // still fall through - - case wxICON_HAND: - return wxIcon("wxICON_ERROR"); - } -} - - -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 29926d61d2..0000000000 --- a/src/msw/bitmap.cpp +++ /dev/null @@ -1,834 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#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/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 "wx/msw/dib.h" - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES - IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) - IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxBitmapRefData -// ---------------------------------------------------------------------------- - -wxBitmapRefData::wxBitmapRefData() -{ - 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() -{ - if (m_selectedInto) - { - wxChar buf[200]; - wxSprintf(buf, _T("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; - -} - -// ---------------------------------------------------------------------------- -// wxBitmap -// ---------------------------------------------------------------------------- - -wxList wxBitmap::sm_handlers; - -wxBitmap::wxBitmap() -{ - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(const wxBitmap& bitmap) -{ - wxIcon *icon = wxDynamicCast(&bitmap, wxIcon); - if ( icon ) - { - HDC hdc = ::CreateCompatibleDC(NULL); // screen DC - HBITMAP hbitmap = ::CreateCompatibleBitmap(hdc, - icon->GetWidth(), - icon->GetHeight()); - ::SelectObject(hdc, hbitmap); - ::DrawIcon(hdc, 0, 0, (HICON)icon->GetHICON()); - - ::DeleteDC(hdc); - - SetHBITMAP((WXHBITMAP)hbitmap); - } - else - { - Ref(bitmap); - } - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) - wxTheBitmapList->DeleteObject(this); -} - -bool wxBitmap::FreeResource(bool WXUNUSED(force)) -{ - if ( !M_BITMAPDATA ) - return FALSE; - - if (M_BITMAPDATA->m_selectedInto) - { - wxChar buf[200]; - wxSprintf(buf, _T("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(_T("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(_T("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(_T("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() -{ - 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() -{ - 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() - { - 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(_T("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() - { - 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() -{ - 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() -{ - 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 4bd94f56a4..0000000000 --- a/src/msw/bmpbuttn.cpp +++ /dev/null @@ -1,275 +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, - _T("BUTTON"), - _T(""), - 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 ) ; -} - -void wxBitmapButton::SetDefault() -{ - wxButton::SetDefault(); -} 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 9a8122e079..0000000000 --- a/src/msw/button.cpp +++ /dev/null @@ -1,245 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#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" - #include "wx/panel.h" - #include "wx/bmpbuttn.h" - #include "wx/settings.h" - #include "wx/dcscreen.h" -#endif - -#include "wx/msw/private.h" - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -#endif - -// this macro tries to adjust the default button height to a reasonable value -// using the char height as the base -#define BUTTON_HEIGHT_FROM_CHAR_HEIGHT(cy) (11*EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)/10) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// creation/destruction -// ---------------------------------------------------------------------------- - -bool wxButton::Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - if ( !CreateBase(parent, id, pos, size, style, validator, name) ) - return FALSE; - - SetValidator(validator); - - parent->AddChild((wxButton *)this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - - m_hWnd = (WXHWND)CreateWindowEx - ( - MakeExtendedStyle(m_windowStyle), - _T("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(pos.x, pos.y, size.x, size.y); - - return TRUE; -} - -wxButton::~wxButton() -{ - wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); - if ( panel ) - { - if ( panel->GetDefaultItem() == this ) - { - // don't leave the panel with invalid default item - panel->SetDefaultItem(NULL); - } - } -} - -// ---------------------------------------------------------------------------- -// size management including autosizing -// ---------------------------------------------------------------------------- - -wxSize wxButton::DoGetBestSize() -{ - wxString label = wxGetWindowText(GetHWND()); - int wBtn; - GetTextExtent(label, &wBtn, NULL); - - int wChar, hChar; - wxGetCharSize(GetHWND(), &wChar, &hChar, &GetFont()); - - // add a margin - the button is wider than just its label - wBtn += 3*wChar; - - // the button height is proportional to the height of the font used - int hBtn = BUTTON_HEIGHT_FROM_CHAR_HEIGHT(hChar); - - return wxSize(wBtn, hBtn); -} - -/* static */ -wxSize wxButton::GetDefaultSize() -{ - static wxSize s_sizeBtn; - - if ( s_sizeBtn.x == 0 ) - { - wxScreenDC dc; - dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - - // the size of a standard button in the dialog units is 50x14, - // translate this to pixels - // NB1: the multipliers come from the Windows convention - // NB2: the extra +1/+2 were needed to get the size be the same as the - // size of the buttons in the standard dialog - I don't know how - // this happens, but on my system this size is 75x23 in pixels and - // 23*8 isn't even divisible by 14... Would be nice to understand - // why these constants are needed though! - s_sizeBtn.x = (50 * (dc.GetCharWidth() + 1))/4; - s_sizeBtn.y = ((14 * dc.GetCharHeight()) + 2)/8; - } - - return s_sizeBtn; -} - -// ---------------------------------------------------------------------------- -// set this button as the default one in its panel -// ---------------------------------------------------------------------------- - -void wxButton::SetDefault() -{ - wxWindow *parent = GetParent(); - wxButton *btnOldDefault = NULL; - wxPanel *panel = wxDynamicCast(parent, wxPanel); - if ( panel ) - { - btnOldDefault = panel->GetDefaultItem(); - panel->SetDefaultItem(this); - } - - if ( parent ) - { - SendMessage(GetWinHwnd(parent), DM_SETDEFID, m_windowId, 0L); - } - - // this doesn't work with bitmap buttons because it also removes the - // "ownerdrawn" style... - if ( btnOldDefault && !wxDynamicCast(btnOldDefault, wxBitmapButton) ) - { - // remove the BS_DEFPUSHBUTTON style from the other button - long style = GetWindowLong(GetHwndOf(btnOldDefault), GWL_STYLE); - style &= ~BS_DEFPUSHBUTTON; - SendMessage(GetHwndOf(btnOldDefault), BM_SETSTYLE, style, 1L); - } - - // set this button as the default - long style = GetWindowLong(GetHwnd(), GWL_STYLE); - style |= BS_DEFPUSHBUTTON; - SendMessage(GetHwnd(), BM_SETSTYLE, style, 1L); -} - -// ---------------------------------------------------------------------------- -// helpers -// ---------------------------------------------------------------------------- - -bool wxButton::SendClickEvent() -{ - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, GetId()); - event.SetEventObject(this); - - return ProcessCommand(event); -} - -void wxButton::Command(wxCommandEvent & event) -{ - ProcessCommand(event); -} - -// ---------------------------------------------------------------------------- -// event/message handlers -// ---------------------------------------------------------------------------- - -bool wxButton::MSWCommand(WXUINT param, WXWORD id) -{ - bool processed = FALSE; - switch ( param ) - { - case 1: // 1 for accelerator - case BN_CLICKED: - processed = SendClickEvent(); - break; - } - - return processed; -} - -WXHBRUSH wxButton::OnCtlColor(WXHDC pDC, - WXHWND pWnd, - WXUINT nCtlColor, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam) -{ - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - diff --git a/src/msw/caret.cpp b/src/msw/caret.cpp deleted file mode 100644 index 87e46935a5..0000000000 --- a/src/msw/caret.cpp +++ /dev/null @@ -1,162 +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" - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -// under Win16 the caret APIs are void but under Win32 they may return an -// error code which we want to check - this macro does just this -#ifdef __WIN16__ - #define CALL_CARET_API(api, args) api args -#else // Win32 - #define CALL_CARET_API(api, args) if ( !api args ) wxLogLastError(#api) -#endif // Win16/32 - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// blink time -// --------------------------------------------------------------------------- - -//static -int wxCaretBase::GetBlinkTime() -{ - int blinkTime = ::GetCaretBlinkTime(); - if ( !blinkTime ) - { - wxLogLastError("GetCaretBlinkTime"); - } - - return blinkTime; -} - -//static -void wxCaretBase::SetBlinkTime(int milliseconds) -{ - CALL_CARET_API(SetCaretBlinkTime, (milliseconds)); -} - -// --------------------------------------------------------------------------- -// creating/destroying the caret -// --------------------------------------------------------------------------- - -bool wxCaret::MSWCreateCaret() -{ - wxASSERT_MSG( GetWindow(), _T("caret without window cannot be created") ); - wxASSERT_MSG( IsOk(), _T("caret of zero size cannot be created") ); - - if ( !m_hasCaret ) - { - CALL_CARET_API(CreateCaret, (GetWinHwnd(GetWindow()), 0, - m_width, m_height)); - - m_hasCaret = TRUE; - } - - 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; - - CALL_CARET_API(DestroyCaret, ()); - } -} - -// --------------------------------------------------------------------------- -// showing/hiding the caret -// --------------------------------------------------------------------------- - -void wxCaret::DoShow() -{ - wxASSERT_MSG( GetWindow(), _T("caret without window cannot be shown") ); - wxASSERT_MSG( IsOk(), _T("caret of zero size cannot be shown") ); - - if ( m_hasCaret ) - { - CALL_CARET_API(ShowCaret, (GetWinHwnd(GetWindow()))); - } - //else: will be shown when we get the focus -} - -void wxCaret::DoHide() -{ - if ( m_hasCaret ) - { - CALL_CARET_API(HideCaret, (GetWinHwnd(GetWindow()))); - } -} - -// --------------------------------------------------------------------------- -// moving the caret -// --------------------------------------------------------------------------- - -void wxCaret::DoMove() -{ - if ( m_hasCaret ) - { - wxWindow *winFocus = wxWindow::FindFocus(); - wxASSERT_MSG( winFocus == GetWindow(), _T("how did we lose focus?") ); - - CALL_CARET_API(SetCaretPos, (m_x, m_y)); - } - //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 bb95665069..0000000000 --- a/src/msw/checkbox.cpp +++ /dev/null @@ -1,276 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#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" - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) - IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxCheckBox -// ---------------------------------------------------------------------------- - -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 == _T("")) - Label = _T(" "); // 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, _T("BUTTON"), Label, - msStyle, - 0, 0, 0, 0, - (HWND)parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - -#if wxUSE_CTL3D - if (want3D) - { - Ctl3dSubclassCtl(GetHwnd()); - 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(GetHwnd(), label); -} - -wxSize wxCheckBox::DoGetBestSize() -{ - int wCheckbox, hCheckbox; - - wxString str = wxGetWindowText(GetHWND()); - - if ( !str.IsEmpty() ) - { - GetTextExtent(str, &wCheckbox, &hCheckbox); - wCheckbox += RADIO_SIZE; - - if ( hCheckbox < RADIO_SIZE ) - hCheckbox = RADIO_SIZE; - } - else - { - wCheckbox = RADIO_SIZE; - hCheckbox = RADIO_SIZE; - } - - return wxSize(wCheckbox, hCheckbox); -} - -void wxCheckBox::SetValue(bool val) -{ - SendMessage(GetHwnd(), BM_SETCHECK, val, 0); -} - -#ifndef BST_CHECKED -#define BST_CHECKED 0x0001 -#endif - -bool wxCheckBox::GetValue() const -{ -#ifdef __WIN32__ - return (SendMessage(GetHwnd(), BM_GETCHECK, 0, 0) == BST_CHECKED); -#else - return ((0x003 & SendMessage(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); -} - -// ---------------------------------------------------------------------------- -// wxBitmapCheckBox -// ---------------------------------------------------------------------------- - -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, _T("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); - - SetSize(x, y, width, height); - - ShowWindow(wx_button, SW_SHOW); - - return TRUE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap& bitmap) -{ - wxFAIL_MSG(_T("not implemented")); -} diff --git a/src/msw/checklst.cpp b/src/msw/checklst.cpp deleted file mode 100644 index 963c661c43..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 - -#if defined(__GNUWIN32__) && !defined(wxUSE_NORLANDER_HEADERS) -#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 = (HPEN)GetStockObject(WHITE_BRUSH); - HPEN hPenOld = (HPEN)::SelectObject(hdcMem, blackPen); - HPEN hBrushOld = (HPEN)::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, _T("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(_T("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, - _T("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, - _T("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 3f104ea206..0000000000 --- a/src/msw/choice.cpp +++ /dev/null @@ -1,288 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: wxChoice -// Author: Julian Smart -// Modified by: Vadim Zeitlin to derive from wxChoiceBase -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#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" - #include "wx/log.h" -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// creation -// ---------------------------------------------------------------------------- - -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) -{ - if ( !CreateControl(parent, id, pos, size, style, validator, name) ) - return FALSE; - - long msStyle = WS_CHILD | CBS_DROPDOWNLIST | WS_TABSTOP | WS_VISIBLE; - if ( style & wxCB_SORT ) - msStyle |= CBS_SORT; - - // the experience shows that wxChoice vs. wxComboBox distinction confuses - // quite a few people - try to help them - wxASSERT_MSG( !(style & wxCB_DROPDOWN) && - !(style & wxCB_READONLY) && - !(style & wxCB_SIMPLE), - _T("this style flag is ignored by wxChoice, you " - "probably want to use a wxComboBox") ); - - if ( !MSWCreateControl(_T("COMBOBOX"), msStyle) ) - return FALSE; - - for ( int i = 0; i < n; i++ ) - { - Append(choices[i]); - } - - SetSize(pos.x, pos.y, size.x, size.y); - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// adding/deleting items to/from the list -// ---------------------------------------------------------------------------- - -void wxChoice::DoAppend(const wxString& item) -{ - SendMessage(GetHwnd(), CB_ADDSTRING, 0, (LONG)item.c_str()); -} - -void wxChoice::Delete(int n) -{ - wxCHECK_RET( n < GetCount(), _T("invalid item index in wxChoice::Delete") ); - - SendMessage(GetHwnd(), CB_DELETESTRING, n, 0); -} - -void wxChoice::Clear() -{ - SendMessage(GetHwnd(), CB_RESETCONTENT, 0, 0); -} - -// ---------------------------------------------------------------------------- -// selection -// ---------------------------------------------------------------------------- - -int wxChoice::GetSelection() const -{ - return (int)SendMessage(GetHwnd(), CB_GETCURSEL, 0, 0); -} - -void wxChoice::SetSelection(int n) -{ - SendMessage(GetHwnd(), CB_SETCURSEL, n, 0); -} - -// ---------------------------------------------------------------------------- -// string list functions -// ---------------------------------------------------------------------------- - -int wxChoice::GetCount() const -{ - return (int)SendMessage(GetHwnd(), CB_GETCOUNT, 0, 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. - // wxChoice::Do it the long way instead. - int count = GetCount(); - for ( int i = 0; i < count; i++ ) - { - // as CB_FINDSTRINGEXACT is case insensitive, be case insensitive too - if ( GetString(i).IsSameAs(s, FALSE) ) - return i; - } - - return wxNOT_FOUND; -#else // !Watcom - int pos = (int)SendMessage(GetHwnd(), CB_FINDSTRINGEXACT, - (WPARAM)-1, (LPARAM)s.c_str()); - - return pos == LB_ERR ? wxNOT_FOUND : pos; -#endif // Watcom/!Watcom -} - -wxString wxChoice::GetString(int n) const -{ - size_t len = (size_t)::SendMessage(GetHwnd(), CB_GETLBTEXTLEN, n, 0); - wxString str = ""; - if (len) { - if ( ::SendMessage(GetHwnd(), CB_GETLBTEXT, n, - (LPARAM)str.GetWriteBuf(len)) == CB_ERR ) { - wxLogLastError("SendMessage(CB_GETLBTEXT)"); - } - str.UngetWriteBuf(); - } - - return str; -} - -// ---------------------------------------------------------------------------- -// client data -// ---------------------------------------------------------------------------- - -void wxChoice::DoSetClientData( int n, void* clientData ) -{ - if ( SendMessage(GetHwnd(), CB_SETITEMDATA, n, (LPARAM)clientData) == CB_ERR ) - { - wxLogLastError(_T("CB_SETITEMDATA")); - } -} - -void* wxChoice::DoGetClientData( int n ) const -{ - LPARAM rc = SendMessage(GetHwnd(), CB_GETITEMDATA, n, 0); - if ( rc == CB_ERR ) - { - wxLogLastError(_T("CB_GETITEMDATA")); - - // unfortunately, there is no way to return an error code to the user - rc = (LPARAM) NULL; - } - - return (void *)rc; -} - -void wxChoice::DoSetClientObject( int n, wxClientData* clientData ) -{ - DoSetClientData(n, clientData); -} - -wxClientData* wxChoice::DoGetClientObject( int n ) const -{ - return (wxClientData *)DoGetClientData(n); -} - -// ---------------------------------------------------------------------------- -// wxMSW specific helpers -// ---------------------------------------------------------------------------- - -void wxChoice::DoSetSize(int x, int y, - int width, int height, - int sizeFlags) -{ - // 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. - wxControl::DoSetSize(x, y, width, -1, sizeFlags); -} - -wxSize wxChoice::DoGetBestSize() -{ - // find the widest string - int wLine; - int wChoice = 0; - int nItems = GetCount(); - for ( int i = 0; i < nItems; i++ ) - { - wxString str(GetString(i)); - GetTextExtent(str, &wLine, NULL); - if ( wLine > wChoice ) - wChoice = wLine; - } - - // give it some reasonable default value if there are no strings in the - // list - if ( wChoice == 0 ) - wChoice = 100; - - // the combobox should be larger than the widest string - int cx, cy; - wxGetCharSize(GetHWND(), &cx, &cy, &GetFont()); - - wChoice += 5*cx; - - // Choice drop-down list depends on number of items (limited to 10) - size_t nStrings = nItems == 0 ? 10 : wxMin(10, nItems) + 1; - int hChoice = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)*nStrings; - - return wxSize(wChoice, hChoice); -} - -long wxChoice::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - if ( nMsg == 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. - // - // VZ: I'd like to know how to reproduce this please... - if ( x == 65535 && y == 65535 ) - return 0; - } - - return wxWindow::MSWWindowProc(nMsg, wParam, lParam); -} - -bool wxChoice::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) -{ - if ( param != CBN_SELCHANGE) - { - // "selection changed" is the only event we're after - return FALSE; - } - - wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId); - event.SetInt(GetSelection()); - event.SetEventObject(this); - event.SetString(GetStringSelection()); - ProcessCommand(event); - - return TRUE; -} - diff --git a/src/msw/clipbrd.cpp b/src/msw/clipbrd.cpp deleted file mode 100644 index 5f8cc9d74d..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, _T("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(_T("Can not open clipboard without a main window.")); - - return FALSE; - } -} - -bool wxCloseClipboard() -{ - wxCHECK_MSG( gs_wxClipboardIsOpen, FALSE, _T("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(wxChar *formatName) -{ - return ::RegisterClipboardFormat(formatName); -} - -bool wxGetClipboardFormatName(wxDataFormat dataFormat, - wxChar *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, _T("data is invalid") ); - -#if wxUSE_DRAG_AND_DROP - wxCHECK_MSG( wxIsClipboardOpened(), FALSE, _T("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, _T("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 cf49b661e8..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_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_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, _T("COMBOBOX"), NULL, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, _T("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; -} - -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) - { - wxChar *tmp = new wxChar[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(), value); -} - -// Clipboard operations -void wxComboBox::Copy() -{ - HWND hWnd = GetHwnd(); - SendMessage(hWnd, WM_COPY, 0, 0L); -} - -void wxComboBox::Cut() -{ - HWND hWnd = GetHwnd(); - SendMessage(hWnd, WM_CUT, 0, 0L); -} - -void wxComboBox::Paste() -{ - HWND hWnd = GetHwnd(); - SendMessage(hWnd, WM_PASTE, 0, 0L); -} - -void wxComboBox::SetEditable(bool editable) -{ - // Can't implement in MSW? -// HWND hWnd = GetHwnd(); -// SendMessage(hWnd, EM_SETREADONLY, (WPARAM)!editable, (LPARAM)0L); -} - -void wxComboBox::SetInsertionPoint(long pos) -{ -/* - 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(GetHwnd(), EM_GETSEL, 0, 0L); - return Pos&0xFFFF; -*/ - return 0; -} - -long wxComboBox::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); -*/ - return 0; -} - -void wxComboBox::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, 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 wxChar *)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 = 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 = 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 -} - -void wxComboBox::DoSetSize(int x, int y, - int width, int height, - int sizeFlags) -{ - wxControl::DoSetSize(x, y, width, height, sizeFlags); -} - -#endif - // wxUSE_COMBOBOX - diff --git a/src/msw/control.cpp b/src/msw/control.cpp deleted file mode 100644 index 3ae9f711d2..0000000000 --- a/src/msw/control.cpp +++ /dev/null @@ -1,229 +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__) || defined(wxUSE_NORLANDER_HEADERS) -#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; -} - -bool wxControl::MSWCreateControl(const wxChar *classname, WXDWORD style) -{ - m_hWnd = (WXHWND)::CreateWindowEx - ( - GetExStyle(style), // extended style - classname, // the kind of control to create - NULL, // the window name - style, // the window style - 0, 0, 0, 0, // the window position and size - GetHwndOf(GetParent()), // parent - (HMENU)GetId(), // child id - wxGetInstance(), // app instance - NULL // creation parameters - ); - - if ( !m_hWnd ) - { -#ifdef __WXDEBUG__ - wxLogError(_T("Failed to create a control of class '%s'"), classname); -#endif // DEBUG - - return FALSE; - } - - // subclass again for purposes of dialog editing mode - SubclassWin(m_hWnd); - - // controls use the same font and colours as their parent dialog by default - InheritAttributes(); - - return TRUE; -} - -wxSize wxControl::DoGetBestSize() -{ - return wxSize(DEFAULT_ITEM_WIDTH, DEFAULT_ITEM_HEIGHT); -} - -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); -} - -WXDWORD wxControl::GetExStyle(WXDWORD& style) const -{ - 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) ) - style |= WS_BORDER; - - return exStyle; -} - -// --------------------------------------------------------------------------- -// 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 8e1b74c3a8..0000000000 Binary files a/src/msw/ctl3d/ctl3d.dll and /dev/null differ diff --git a/src/msw/ctl3d/ctl3d32.dll b/src/msw/ctl3d/ctl3d32.dll deleted file mode 100644 index fc2126896e..0000000000 Binary files a/src/msw/ctl3d/ctl3d32.dll and /dev/null differ diff --git a/src/msw/ctl3d/ctl3dv2.dll b/src/msw/ctl3d/ctl3dv2.dll deleted file mode 100644 index 1799fd951b..0000000000 Binary files a/src/msw/ctl3d/ctl3dv2.dll and /dev/null differ 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 3fe7168589..0000000000 Binary files a/src/msw/ctl3d/msvc/ctl3d.lib and /dev/null differ diff --git a/src/msw/ctl3d/msvc/ctl3dv2.lib b/src/msw/ctl3d/msvc/ctl3dv2.lib deleted file mode 100644 index c4952ef0f0..0000000000 Binary files a/src/msw/ctl3d/msvc/ctl3dv2.lib and /dev/null differ 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 ca98307520..0000000000 Binary files a/src/msw/ctl3d/wat32/import32.zip and /dev/null differ 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 11c666054f..0000000000 Binary files a/src/msw/ctl3d/wat386/ctl3d32.obj and /dev/null differ diff --git a/src/msw/ctl3d/wat386/ctl3d32.txt b/src/msw/ctl3d/wat386/ctl3d32.txt deleted file mode 100644 index 8e6b8b6e6b..0000000000 --- a/src/msw/ctl3d/wat386/ctl3d32.txt +++ /dev/null @@ -1,11 +0,0 @@ -Using this package should be no big problem. You only need to change your -wx_setup.h for including the CTL3D stuff, compile ctl3d32.c and add -ctl3d32.obj to wx.lib (or just link it with your application). - -Please send bug reports to 'patrick@zaphod.ruhr.de'. - - -Good luck - -- patrick - diff --git a/src/msw/ctl3d/wat386/makefile.wat b/src/msw/ctl3d/wat386/makefile.wat deleted file mode 100644 index 1f0858491a..0000000000 --- a/src/msw/ctl3d/wat386/makefile.wat +++ /dev/null @@ -1,23 +0,0 @@ -CC = wcc386 -CXX = wpp386 -LIB = wlib -IFLAGS = -i=..\\..\\include\\base;..\\..\\include\\msw -CFLAGS = $(IFLAGS) -zq -zW -w1 -d2 -ot -3 -dwx_msw - -WXDIR = ..\\.. -LIBTARGET = $(WXDIR)\\lib\\wx.lib - -C_SRCS = ctl3d32.c - -OBJECTS = $(C_SRCS:.c=.obj) $(CC_SRCS:.cc=.obj) - -.c.obj: - $(CC) $(CFLAGS) $< - -.cc.obj: - $(CXX) $(CFLAGS) $< - -all: $(OBJECTS) $(LIBTARGET) - -$(LIBTARGET): $(OBJECTS) - $(LIB) /P=256 $(LIBTARGET) @ctl3d32.lnk diff --git a/src/msw/curico.cpp b/src/msw/curico.cpp deleted file mode 100644 index 5bd16e67a0..0000000000 --- a/src/msw/curico.cpp +++ /dev/null @@ -1,922 +0,0 @@ -//* Written by Microsoft Product Support Services, Windows Developer Support. * -//***************************************************************************** -// (C) Copyright Microsoft Corp. 1993. 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. - -// Modified by Petr Smilauer, March 1994 for wxWin library purposes! - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include -#include - -#if defined(__MWERKS__) -#include -#include -#endif - -#ifndef __TWIN32__ -#if defined (__GNUWIN32__) && !defined(wxUSE_NORLANDER_HEADERS) -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#include "wx/wxchar.h" -#include "wx/msw/curicop.h" -#include "wx/msw/curico.h" -#include "wx/string.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( wxChar *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( wxChar *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( wxChar *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( wxFNCONV(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( _T("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( wxChar *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( wxChar *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( wxChar *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( wxFNCONV(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( _T("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, wxChar *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__ -#ifdef STRICT - LocalUnlock(LocalHandle((void NEAR*) andBits)); - LocalUnlock(LocalHandle((void NEAR*) xorBits)); - LocalFree(LocalHandle((void NEAR*) andBits)); - LocalFree(LocalHandle((void NEAR*) xorBits)); -#else - LocalUnlock(LocalHandle((WORD) andBits)); - LocalUnlock(LocalHandle((WORD) xorBits)); - LocalFree(LocalHandle((WORD) andBits)); - LocalFree(LocalHandle((WORD) xorBits)); -#endif -#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__ -#ifdef STRICT - LocalUnlock(LocalHandle((void NEAR*) andBits)); - LocalUnlock(LocalHandle((void NEAR*) xorBits)); - LocalFree(LocalHandle((void NEAR*) andBits)); - LocalFree(LocalHandle((void NEAR*) xorBits)); -#else - LocalUnlock(LocalHandle((WORD) andBits)); - LocalUnlock(LocalHandle((WORD) xorBits)); - LocalFree(LocalHandle((WORD) andBits)); - LocalFree(LocalHandle((WORD) xorBits)); -#endif -#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 3ad8200c69..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(WXSTRINGCAST 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(WXSTRINGCAST 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(WXSTRINGCAST 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(), _T("wxCURSOR_HAND")); - break; - } - case wxCURSOR_BULLSEYE: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_BULLSEYE")); - break; - } - case wxCURSOR_PENCIL: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_PENCIL")); - break; - } - case wxCURSOR_MAGNIFIER: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_MAGNIFIER")); - break; - } - case wxCURSOR_NO_ENTRY: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("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(), _T("wxCURSOR_SIZING")); - break; - } - case wxCURSOR_WATCH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_WATCH")); - break; - } - case wxCURSOR_SPRAYCAN: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_ROLLER")); - break; - } - case wxCURSOR_PAINT_BRUSH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_PBRUSH")); - break; - } - case wxCURSOR_POINT_LEFT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_PLEFT")); - break; - } - case wxCURSOR_POINT_RIGHT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_PRIGHT")); - break; - } - case wxCURSOR_QUESTION_ARROW: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("wxCURSOR_QARROW")); - break; - } - case wxCURSOR_BLANK: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), _T("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 da26953b96..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 -wxChar *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 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"); -const wxChar *wxTreeCtrlNameStr = _T("treeCtrl"); - -// See wx/utils.h -const wxChar *wxFloatToStringStr = _T("%.2f"); -const wxChar *wxDoubleToStringStr = _T("%.2f"); - -#ifdef __WXMSW__ -const wxChar *wxUserResourceStr = _T("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 f424405768..0000000000 --- a/src/msw/dc.cpp +++ /dev/null @@ -1,1543 +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 -#if wxUSE_NORLANDER_HEADERS - #include -#endif - #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; - -// =========================================================================== -// 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 - { - wxCHECK_RET( m_selectedBitmap.Ok(), _T("this DC can't be cleared") ); - - 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( ); - - wxASSERT_MSG( hbitmap, _T("bitmap is ok but HBITMAP is NULL?") ); - - ::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), WXSTRINGCAST text, wxStrlen(WXSTRINGCAST text)); - - if (m_textBackgroundColour.Ok()) - (void)SetBkColor(GetHdc(), old_background); - - // background colour is used only for DrawText, otherwise - // always TRANSPARENT, RR - SetBkMode(GetHdc(), TRANSPARENT); - - 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(_T("::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; - - // SetBackgroundColour now only refers to text background - // and m_backgroundMode is used there - -/* - 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(), WXSTRINGCAST string, wxStrlen(WXSTRINGCAST 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 ea236015d5..0000000000 --- a/src/msw/dcclient.cpp +++ /dev/null @@ -1,261 +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. - int g_isPainting = 0; -#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); - - if ( !::ReleaseDC(GetWinHwnd(m_canvas), GetHdc()) ) - { - wxLogLastError("ReleaseDC"); - } - - 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)); - - // the background mode is only used for text background - // and is set in DrawText() to OPAQUE as required, other- - // wise always TRANSPARENT, RR - ::SetBkMode( GetHdc(), TRANSPARENT ); - - 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, _T("NULL canvas in wxPaintDC ctor") ); - -#ifdef __WXDEBUG__ - if ( g_isPainting <= 0 ) - { - 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)); - } - - // the background mode is only used for text background - // and is set in DrawText() to OPAQUE as required, other- - // wise always TRANSPARENT, RR - ::SetBkMode( GetHdc(), TRANSPARENT ); - - SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID)); -} - -wxPaintDC::~wxPaintDC() -{ - if ( m_hDC ) - { - SelectOldObjects(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 - - // prevent the base class dtor from ReleaseDC()ing it again - m_hDC = 0; - } -} - -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 03e89a1c91..0000000000 --- a/src/msw/dcmemory.cpp +++ /dev/null @@ -1,141 +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/msw/private.h" - -#include "wx/dcmemory.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); - - // the background mode is only used for text background - // and is set in DrawText() to OPAQUE as required, other- - // wise always TRANSPARENT, RR - ::SetBkMode( GetHdc(), TRANSPARENT ); - -} - -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); - - // the background mode is only used for text background - // and is set in DrawText() to OPAQUE as required, other- - // wise always TRANSPARENT, RR - ::SetBkMode( GetHdc(), TRANSPARENT ); - -} - -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(_T("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(_T("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 bd7399b58c..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 != _T("")) - 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 != _T("")) && - (!device_name.IsNull() && device_name != _T("")) && - (!file.IsNull() && file != _T(""))) - { - m_hDC = (WXHDC) CreateDC(WXSTRINGCAST driver_name, WXSTRINGCAST device_name, WXSTRINGCAST 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 wxChar*)message; - - wxString filename(m_printData.GetFilename()); - - if (filename.IsEmpty()) - docinfo.lpszOutput = NULL; - else - docinfo.lpszOutput = (const wxChar *) 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(_T("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 != _T("") ); -} - -#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(); - - wxChar* driverName = (wxChar*) NULL; - - wxString devNameStr = printData.GetPrinterName(); - wxChar* deviceName; - wxChar* portName = (wxChar*) NULL; // Obsolete in WIN32 - - if (devNameStr == _T("")) - deviceName = (wxChar*) NULL; - else - deviceName = WXSTRINGCAST devNameStr; - - LPDEVMODE lpDevMode = (LPDEVMODE) NULL; - - HGLOBAL hDevMode = (HGLOBAL) printData.GetNativeData(); - - if ( hDevMode ) - lpDevMode = (DEVMODE*) GlobalLock(hDevMode); - - if (devNameStr == _T("")) - { - // Retrieve the default device name - wxString portName; - bool ret = wxGetDefaultDeviceName(devNameStr, portName); - - wxASSERT_MSG( ret, _T("Could not get default device name.") ); - - deviceName = WXSTRINGCAST 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 65f897ccf3..0000000000 --- a/src/msw/dcscreen.cpp +++ /dev/null @@ -1,56 +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" -#endif - -#include "wx/msw/private.h" - -#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 ++; - - // the background mode is only used for text background - // and is set in DrawText() to OPAQUE as required, other- - // wise always TRANSPARENT, RR - ::SetBkMode( GetHdc(), TRANSPARENT ); -} - -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 cff1fb1a1a..0000000000 --- a/src/msw/dde.cpp +++ /dev/null @@ -1,806 +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__ -#if !wxUSE_NORLANDER_HEADERS -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#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, WXSTRINGCAST server_name, CP_WINANSI); - - if (DdeNameService(DDEIdInst, serviceName, (HSZ) NULL, DNS_REGISTER) == 0) - { - DDEPrintError(); - return FALSE; - } - return TRUE; -} - -wxDDEServer::~wxDDEServer(void) -{ - if (m_serviceName != _T("")) - { - HSZ serviceName = DdeCreateStringHandle(DDEIdInst, WXSTRINGCAST 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, WXSTRINGCAST server_name, CP_WINANSI); - HSZ topic_atom = DdeCreateStringHandle(DDEIdInst, WXSTRINGCAST 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(wxChar *data, int size, wxIPCFormat format) -{ - DWORD result; - if (size < 0) - size = wxStrlen(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, wxChar *data, int size, wxIPCFormat format) -{ - DWORD result; - if (size < 0) - size = wxStrlen(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, wxChar *data, int size, wxIPCFormat format) -{ - if (size < 0) - size = wxStrlen(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: - { - wxChar topic_buf[100]; - wxChar server_buf[100]; - DdeQueryString(DDEIdInst, hsz1, (LPTSTR)topic_buf, WXSIZEOF(topic_buf), - CP_WINANSI); - DdeQueryString(DDEIdInst, hsz2, (LPTSTR)server_buf, WXSIZEOF(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) - { - wxChar item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPTSTR)item_name, WXSIZEOF(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) - { - wxChar item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPTSTR)item_name, WXSIZEOF(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) - { - wxChar item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPTSTR)item_name, WXSIZEOF(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) - { - wxChar item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPTSTR)item_name, WXSIZEOF(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) - { - wxChar item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPTSTR)item_name, WXSIZEOF(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, WXSTRINGCAST 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) -{ - wxChar *err = NULL; - switch (DdeGetLastError(DDEIdInst)) - { - case DMLERR_ADVACKTIMEOUT: - err = _T("A request for a synchronous advise transaction has timed out."); - break; - case DMLERR_BUSY: - err = _T("The response to the transaction caused the DDE_FBUSY bit to be set."); - break; - case DMLERR_DATAACKTIMEOUT: - err = _T("A request for a synchronous data transaction has timed out."); - break; - case DMLERR_DLL_NOT_INITIALIZED: - err = _T("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 = _T("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 = _T("A request for a synchronous execute transaction has timed out."); - break; - case DMLERR_INVALIDPARAMETER: - err = _T("A parameter failed to be validated by the DDEML."); - break; - case DMLERR_LOW_MEMORY: - err = _T("A DDEML application has created a prolonged race condition."); - break; - case DMLERR_MEMORY_ERROR: - err = _T("A memory allocation failed."); - break; - case DMLERR_NO_CONV_ESTABLISHED: - err = _T("A client's attempt to establish a conversation has failed."); - break; - case DMLERR_NOTPROCESSED: - err = _T("A transaction failed."); - break; - case DMLERR_POKEACKTIMEOUT: - err = _T("A request for a synchronous poke transaction has timed out."); - break; - case DMLERR_POSTMSG_FAILED: - err = _T("An internal call to the PostMessage function has failed. "); - break; - case DMLERR_REENTRANCY: - err = _T("Reentrancy problem."); - break; - case DMLERR_SERVER_DIED: - err = _T("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 = _T("An internal error has occurred in the DDEML."); - break; - case DMLERR_UNADVACKTIMEOUT: - err = _T("A request to end an advise transaction has timed out."); - break; - case DMLERR_UNFOUND_QUEUE_ID: - err = _T("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 = _T("Unrecognised error type."); - break; - } - MessageBox((HWND) NULL, (LPCTSTR)err, _T("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 d8ef9f1f46..0000000000 --- a/src/msw/dialog.cpp +++ /dev/null @@ -1,663 +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 wxChar *dlg; - if ( style & wxRESIZE_BORDER ) - dlg = _T("wxResizeableDialog"); - else if ( style & wxCAPTION ) - dlg = _T("wxCaptionDialog"); - else - dlg = _T("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); - - Show(FALSE); - - if (m_modalShowing) - { - // 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 ( (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()) - { - 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::IsModal() const -{ - return wxModalDialogs.Find((wxDialog *)this) != 0; // const_cast -} - -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(), title.c_str()); -} - -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 e4f8360ad6..0000000000 --- a/src/msw/dib.cpp +++ /dev/null @@ -1,947 +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__ -#ifndef wxUSE_NORLANDER_HEADERS -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#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 (LPTSTR 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(LPTSTR 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(LPTSTR szFile, HANDLE hdib) -{ - BITMAPFILEHEADER hdr; - LPBITMAPINFOHEADER lpbi; - int fh; - OFSTRUCT of; - - if (!hdib) - return FALSE; - - fh = OpenFile(wxFNCONV(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(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette) -{ - int fh; - LPBITMAPINFOHEADER lpbi; - OFSTRUCT of; - BITMAPFILEHEADER bf; - WORD nNumColors; - BOOL result = FALSE; - wxChar 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 (wxFNCONV(lpFileName), &of, OF_READ); - if (fh == -1) { - wsprintf(str,_T("Can't open file '%s'"), lpFileName); - MessageBox(NULL, str, _T("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(wxChar *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(wxChar *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(wxChar *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 31bcfb7e29..0000000000 --- a/src/msw/dibutils.cpp +++ /dev/null @@ -1,732 +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 "wx/setup.h" -#include "wx/defs.h" -#include "wx/string.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' */ - -#ifndef SEEK_CUR -/* flags for _lseek */ -#define SEEK_CUR 1 -#define SEEK_END 2 -#define SEEK_SET 0 -#endif - -/* Copied from PNGhandler for coompilation with MingW32, RR */ - -#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 - - -/* - * 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(LPTSTR szFile, LPBITMAPINFOHEADER lpbi) -{ - HFILE fh; - OFSTRUCT of; - - fh = OpenFile(wxConvFile.cWX2MB(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__) || defined(wxUSE_NORLANDER_HEADERS) - 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(LPTSTR 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(wxConvFile.cWX2MB(szFile), &of, OF_READ); - - if (fh == -1) - { - HRSRC h; - - // TODO: Unicode version -#ifdef __WIN16__ - h = FindResource(GetCurrentInstance(), szFile, RT_BITMAP); -#elif wxUSE_UNICODE - h = FindResourceW(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 4be95f9efe..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; - LPTSTR 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 = (LPTSTR) 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 = m_message; // BC++ 4.52 says LPSTR, not LPTSTR? - 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 667462e346..0000000000 --- a/src/msw/dragimag.cpp +++ /dev/null @@ -1,256 +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" -#include "wx/dcscreen.h" -#include "wx/dcmemory.h" -#include "wx/settings.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__) || defined(wxUSE_NORLANDER_HEADERS) -#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), _T("Image list must not be null in BeginDrag.")); - - bool ret = (ImageList_BeginDrag((HIMAGELIST) m_hImageList, 0, hotspot.x, hotspot.y) != 0); - - wxASSERT_MSG( (ret), _T("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), _T("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), _T("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), _T("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), _T("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), _T("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 6bf29addb8..0000000000 --- a/src/msw/filedlg.cpp +++ /dev/null @@ -1,407 +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" - #include "wx/log.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 wxChar *title, - const wxChar *defaultDir, - const wxChar *defaultFileName, - const wxChar *defaultExtension, - const wxChar *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(_T("*.")) + 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( wxStrlen(defaultExtension) != 0 ) - { - int filterFind = 1, - filterIndex = 0; - - for( unsigned int i = 0; i < filter2.Len(); i++ ) - { - if( filter2.GetChar(i) == _T('|') ) - { - // 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] == _T('|')) - 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 ) - { - wxStrcpy(wxBuffer, (const wxChar *)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 wxChar *title, - const wxChar *defaultDir, - const wxChar *defaultFileName, - int* defaultFilterIndex, - const wxChar *filter, - int flags, - wxWindow* parent, - int x, - int y) - -{ - wxFileDialog fileDialog(parent, title ? title : _T(""), defaultDir ? defaultDir : _T(""), - defaultFileName ? defaultFileName : _T(""), filter ? filter : _T(""), flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - *defaultFilterIndex = fileDialog.GetFilterIndex(); - wxStrcpy(wxBuffer, (const wxChar *)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 = _T(""); - 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 wxChar fileNameBuffer [ MAXPATH ]; // the file-name - wxChar titleBuffer [ MAXFILE+1+MAXEXT ]; // the file-name, without path - - *fileNameBuffer = _T('\0'); - *titleBuffer = _T('\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 = WXSTRINGCAST 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] == _T('/')) - m_dir[i] = _T('\\'); - - of.lpstrInitialDir = m_dir.c_str(); - - 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 ( wxStrlen(m_wildCard) == 0 ) - theFilter = wxString(_T("*.*")); - else - theFilter = m_wildCard ; - wxString filterBuffer; - - if ( !wxStrchr( theFilter, _T('|') ) ) { // only one filter ==> default text - filterBuffer.Printf(_("Files (%s)|%s"), - theFilter.c_str(), theFilter.c_str()); - } - else { // more then one filter - filterBuffer = theFilter; - - } - - filterBuffer += _T("|"); - // Replace | with \0 - for (i = 0; i < filterBuffer.Len(); i++ ) { - if ( filterBuffer.GetChar(i) == _T('|') ) { - filterBuffer[i] = _T('\0'); - } - } - - of.lpstrFilter = (LPTSTR)(const wxChar *)filterBuffer; - of.nFilterIndex = m_filterIndex; - - //=== Setting defaultFileName >>========================================= - - wxStrncpy( fileNameBuffer, (const wxChar *)m_fileName, MAXPATH-1 ); - fileNameBuffer[ MAXPATH-1 ] = _T('\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 wxChar* extension = NULL; - - //=== Adding the correct extension >>================================= - - m_filterIndex = (int)of.nFilterIndex; - - if ( of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != _T('.') ) - { // 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 + wxStrlen( extension ) +1; - } - - extension = wxStrrchr( extension, _T('.') ); - if ( extension // != "blabla" - && !wxStrrchr( extension, _T('*') ) // != "blabla.*" - && !wxStrrchr( extension, _T('?') ) // != "blabla.?" - && extension[1] // != "blabla." - && extension[1] != _T(' ') ) // != "blabla. " - { - // now concat extension to the fileName: - m_fileName = wxString(fileNameBuffer) + extension; - - int len = wxStrlen( fileNameBuffer ); - wxStrncpy( fileNameBuffer + len, extension, MAXPATH - len ); - fileNameBuffer[ MAXPATH -1 ] = _T('\0'); - } - } - - m_path = fileNameBuffer; - m_fileName = wxFileNameFromPath(fileNameBuffer); - m_dir = wxPathOnly(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; - } - } - - } - else - { - // common dialog failed - why? -#ifdef __WXDEBUG__ - DWORD dwErr = CommDlgExtendedError(); - if ( dwErr != 0 ) - { - // this msg is only for developers - wxLogError(_T("Common dialog failed with error code %0lx."), - dwErr); - } - //else: it was just cancelled -#endif - } - - return success ? wxID_OK : wxID_CANCEL; - -} - -// Generic file load/save dialog (for internal use only) -static -wxString wxDefaultFileSelector(bool load, - const wxChar *what, - const wxChar *extension, - const wxChar *default_name, - wxWindow *parent) -{ - wxString prompt; - wxString str; - if (load) str = _("Load %s file"); - else str = _("Save %s file"); - prompt.Printf(str, what); - - const wxChar *ext = extension; - if (*ext == _T('.')) - ext++; - - wxString wild; - wild.Printf(_T("*.%s"), ext); - - return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent); -} - -// Generic file load dialog -WXDLLEXPORT wxString wxLoadFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name, - wxWindow *parent) -{ - return wxDefaultFileSelector(TRUE, what, extension, default_name, parent); -} - -// Generic file save dialog -WXDLLEXPORT wxString wxSaveFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *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 b615928b1a..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(_T("")); - - switch (M_FONTDATA->m_family) - { - case wxSCRIPT: ff_family = FF_SCRIPT ; - ff_face = _T("Script") ; - break ; - case wxDECORATIVE: ff_family = FF_DECORATIVE; - break; - case wxROMAN: ff_family = FF_ROMAN; - ff_face = _T("Times New Roman") ; - break; - case wxTELETYPE: - case wxMODERN: ff_family = FF_MODERN; - ff_face = _T("Courier New") ; - break; - case wxSWISS: ff_family = FF_SWISS; - ff_face = _T("Arial") ; - break; - case wxDEFAULT: - default: ff_family = FF_SWISS; - ff_face = _T("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 wxChar* pzFace = (const wxChar*) ff_face; - if (!M_FONTDATA->m_faceName.IsNull()) - pzFace = (const wxChar*) 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(_T("Cannot create font"),_T("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(_T("")); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = _T("wxDECORATIVE"); - break; - case wxROMAN: - fam = _T("wxROMAN"); - break; - case wxSCRIPT: - fam = _T("wxSCRIPT"); - break; - case wxSWISS: - fam = _T("wxSWISS"); - break; - case wxMODERN: - fam = _T("wxMODERN"); - break; - case wxTELETYPE: - fam = _T("wxTELETYPE"); - break; - default: - fam = _T("wxDEFAULT"); - break; - } - return fam; -} - -wxString wxFont::GetFaceName(void) const -{ - wxString str(_T("")); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; -} - -wxString wxFont::GetStyleString(void) const -{ - wxString styl(_T("")); - switch (GetStyle()) - { - case wxITALIC: - styl = _T("wxITALIC"); - break; - case wxSLANT: - styl = _T("wxSLANT"); - break; - default: - styl = _T("wxNORMAL"); - break; - } - return styl; -} - -wxString wxFont::GetWeightString(void) const -{ - wxString w(_T("")); - switch (GetWeight()) - { - case wxBOLD: - w = _T("wxBOLD"); - break; - case wxLIGHT: - w = _T("wxLIGHT"); - break; - default: - w = _T("wxNORMAL"); - break; - } - return w; -} - diff --git a/src/msw/fontdlg.cpp b/src/msw/fontdlg.cpp deleted file mode 100644 index c68ffd6d2e..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; - wxStrcpy(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; - wxChar *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 3549546754..0000000000 --- a/src/msw/frame.cpp +++ /dev/null @@ -1,1062 +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 wxChar 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 - - 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; - - if (!parent) - wxTopLevelWindows.Append(this); - - 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; - - if ( x ) - *x = rect.right; - if ( y ) - *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) -{ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); - - 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 -} - -#if wxUSE_STATUSBAR -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, - _T("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, _T("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, _T("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); - } -} -#endif // wxUSE_STATUSBAR - -void wxFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - wxCHECK_RET( !menu_bar->GetFrame(), _T("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 wxChar *wclass, wxWindow *wx_win, const wxChar *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 ( wxWindowList::Node *node = GetChildren().GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = node->GetData(); - if ( !win->IsTopLevel() -#if wxUSE_STATUSBAR - && (win != GetStatusBar()) -#endif // wxUSE_STATUSBAR -#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 ( wxWindowList::Node *node = GetChildren().GetFirst(); - node; - node = node->GetNext() ) - { - // FIXME all this is totally bogus - we need to do the same as wxPanel, - // but how to do it without duplicating the code? - - // restore focus - wxWindow *child = node->GetData(); - - if ( !child->IsTopLevel() -#if wxUSE_TOOLBAR - && !wxDynamicCast(child, wxToolBar) -#endif // wxUSE_TOOLBAR -#if wxUSE_STATUSBAR - && !wxDynamicCast(child, wxStatusBar) -#endif // wxUSE_STATUSBAR - ) - { - 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()) - { - wxString help; - int menuId = event.GetMenuId(); - if ( menuId != -1 ) - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar && menuBar->FindItem(menuId)) - { - help = menuBar->GetHelpString(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(help); - } -} - -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); -} - -#if wxUSE_TOOLBAR -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - _T("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); - } - } -} -#endif // wxUSE_TOOLBAR - -// 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.Translate(this, 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() ? GetHiconOf(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 - { - return wxWindow::HandlePaint(); - } - } - 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 flags, WXHMENU hMenu) -{ - int item; - if ( flags == 0xFFFF && hMenu == 0 ) - { - // menu was removed from screen - item = -1; - } - else if ( !(flags & MF_POPUP) && !(flags & MF_SEPARATOR) ) - { - item = nItem; - } - else - { - // don't give hints for separators (doesn't make sense) nor for the - // items opening popup menus (they don't have them anyhow) - 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() ? GetHiconOf(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 0ddfcba4d4..0000000000 --- a/src/msw/gauge95.cpp +++ /dev/null @@ -1,173 +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__) || defined(wxUSE_NORLANDER_HEADERS) -#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::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 1af85748f9..0000000000 --- a/src/msw/gaugemsw.cpp +++ /dev/null @@ -1,1151 +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), _T("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(GetHwnd(), ZYZG_SETFGCOLOR, 0, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - SendMessage(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(GetHwnd(), SW_SHOW); - - return TRUE; -} - -void wxGaugeMSW::SetShadowWidth(int w) -{ - SendMessage(GetHwnd(), ZYZG_SETWIDTH3D, w, 0); -} - -void wxGaugeMSW::SetBezelFace(int w) -{ - SendMessage(GetHwnd(), ZYZG_SETBEZELFACE, w, 0); -} - -void wxGaugeMSW::SetRange(int r) -{ - m_rangeMax = r; - - SendMessage(GetHwnd(), ZYZG_SETRANGE, r, 0); -} - -void wxGaugeMSW::SetValue(int pos) -{ - m_gaugePos = pos; - - SendMessage(GetHwnd(), ZYZG_SETPOSITION, pos, 0); -} - -int wxGaugeMSW::GetShadowWidth(void) const -{ - return (int) SendMessage(GetHwnd(), ZYZG_GETWIDTH3D, 0, 0); -} - -int wxGaugeMSW::GetBezelFace(void) const -{ - return (int) SendMessage(GetHwnd(), ZYZG_GETBEZELFACE, 0, 0); -} - -int wxGaugeMSW::GetRange(void) const -{ - return (int) SendMessage(GetHwnd(), ZYZG_GETRANGE, 0, 0); -} - -int wxGaugeMSW::GetValue(void) const -{ - return (int) SendMessage(GetHwnd(), ZYZG_GETPOSITION, 0, 0); -} - -bool wxGaugeMSW::SetForegroundColour(const wxColour& col) -{ - if ( !wxControl::SetForegroundColour(col) ) - return FALSE; - - SendMessage(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(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 wxChar gszzYzGaugeClass[] = _T("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(_T("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; - wxChar 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, _T("%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 f5d4860472..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 == _T("")) return FALSE; - - wxString str = m_helpFile; - size_t len = str.Length(); - if (!(str[(size_t)(len-1)] == _T('p') && str[(size_t)(len-2)] == _T('l') && str[(size_t)(len-3)] == _T('h') && str[(size_t)(len-4)] == _T('.'))) - str += _T(".hlp"); - - if (wxTheApp->GetTopWindow()) - { -#if defined(__WIN95__) - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_FINDER, 0L); -#else - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTENTS, 0L); -#endif - return TRUE; - } - return FALSE; -} - -bool wxWinHelpController::DisplaySection(int section) -{ - // Use context number - if (m_helpFile == _T("")) return FALSE; - - wxString str = m_helpFile; - size_t len = str.Length(); - if (!(str[(size_t)(len-1)] == _T('p') && str[(size_t)(len-2)] == _T('l') && str[(size_t)(len-3)] == _T('h') && str[(size_t)(len-4)] == _T('.'))) - str += _T(".hlp"); - - if (wxTheApp->GetTopWindow()) - { - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) 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 == _T("")) 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 += _T(".hlp"); - - if (wxTheApp->GetTopWindow()) - { - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTEXT, (DWORD)block); - return TRUE; - } - return FALSE; -} - -bool wxWinHelpController::KeywordSearch(const wxString& k) -{ - if (m_helpFile == _T("")) return FALSE; - - wxString str = m_helpFile; - size_t len = str.Length(); - if (!(str[(size_t)(len-1)] == _T('p') && str[(size_t)(len-2)] == _T('l') && str[(size_t)(len-3)] == _T('h') && str[(size_t)(len-4)] == _T('.'))) - str += _T(".hlp"); - - if (wxTheApp->GetTopWindow()) - { - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_PARTIALKEY, (DWORD)(const wxChar*) 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 a788d29ed1..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((wxChar *)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 540c176058..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__) || defined(wxUSE_NORLANDER_HEADERS) -#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 1adae8ce22..0000000000 --- a/src/msw/iniconf.cpp +++ /dev/null @@ -1,474 +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 58b7631915..0000000000 --- a/src/msw/joystick.cpp +++ /dev/null @@ -1,548 +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" - -#if !defined( __GNUWIN32__ ) || defined(wxUSE_NORLANDER_HEADERS) -#include -#endif - -#if !defined(__WIN32__) && !defined(_MMRESULT_) -typedef UINT MMRESULT; -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#ifndef wxUSE_NORLANDER_HEADERS -#include -#endif -#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 02d55e900d..0000000000 --- a/src/msw/listbox.cpp +++ /dev/null @@ -1,791 +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" -#include "wx/utils.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__) - #ifndef wxUSE_NORLANDER_HEADERS - #include - #endif - #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 != _T("")) - { - 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, _T("LISTBOX"), NULL, - wstyle | WS_CHILD, - 0, 0, 0, 0, - (HWND)parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, _T("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, - _T("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, - _T("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(_T("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, - _T("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, - _T("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, - _T("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, - _T("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, - _T("invalid index in wxListBox::GetClientData") ); - - return (void *)SendMessage(GetHwnd(), LB_GETITEMDATA, N, 0); -} - -void wxListBox::SetClientData(int N, void *Client_data) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - _T("invalid index in wxListBox::SetClientData") ); - - if ( ListBox_SetItemData(GetHwnd(), N, Client_data) == LB_ERR ) - wxLogDebug(_T("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(_T("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, - _T("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, "", - _T("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; -} - -// 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 != _T("")) - { - 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, (LPTSTR) (const wxChar *)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, (LPTSTR)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, - _T("invalid index in wxListBox::InsertItems") ); - - int i; - for (i = 0; i < nItems; i++) - ListBox_InsertString(GetHwnd(), i + pos, items[i]); - m_noItems += nItems; - - SetHorizontalExtent(_T("")); -} - -void wxListBox::SetString(int N, const wxString& s) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - _T("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 wxChar *)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; -} - -wxSize wxListBox::DoGetBestSize() -{ - // find the widest string - int wLine; - int wListbox = 0; - for ( int i = 0; i < m_noItems; i++ ) - { - wxString str(GetString(i)); - GetTextExtent(str, &wLine, NULL); - if ( wLine > wListbox ) - wListbox = wLine; - } - - // give it some reasonable default value if there are no strings in the - // list - if ( wListbox == 0 ) - wListbox = 100; - - // the listbox should be slightly larger than the widest string - int cx, cy; - wxGetCharSize(GetHWND(), &cx, &cy, &GetFont()); - - wListbox += 3*cx; - - int hListbox = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)*(wxMax(m_noItems, 7)); - - return wxSize(wListbox, hListbox); -} - -// 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(_T("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 e3372ec707..0000000000 --- a/src/msw/listctrl.cpp +++ /dev/null @@ -1,1577 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#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 - -#ifdef __WIN95__ - -#include "wx/listctrl.h" -#include "wx/log.h" - -#include "wx/msw/private.h" - -#if defined(__GNUWIN32__) && !defined(wxUSE_NORLANDER_HEADERS) - #include "wx/msw/gnuwin32/extra.h" -#else - #include -#endif - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -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); - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) - IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) -#endif // USE_SHARED_LIBRARY - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxListCtrl construction -// ---------------------------------------------------------------------------- - -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 | - LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS; - if ( wxStyleHasBorder(m_windowStyle) ) - wstyle |= WS_BORDER; - m_baseStyle = wstyle; - - if ( !DoCreateControl(x, y, width, height) ) - return FALSE; - - if (parent) - parent->AddChild(this); - - return TRUE; -} - -bool wxListCtrl::DoCreateControl(int x, int y, int w, int h) -{ - DWORD wstyle = m_baseStyle; - - 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 ) - wstyle |= WS_BORDER; - - long oldStyle = 0; // Dummy - wstyle |= ConvertToMSWStyle(oldStyle, m_windowStyle); - - // Create the ListView control. - m_hWnd = (WXHWND)CreateWindowEx(exStyle, - WC_LISTVIEW, - _T(""), - wstyle, - x, y, w, h, - GetWinHwnd(GetParent()), - (HMENU)m_windowId, - wxGetInstance(), - NULL); - - if ( !m_hWnd ) - { - wxLogError(_T("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(GetHwnd(), - LVS_EX_FULLROWSELECT); - } -#endif // ListView_SetExtendedListViewStyle - - wxSystemSettings settings; - SetBackgroundColour(settings.GetSystemColour(wxSYS_COLOUR_WINDOW)); - SetForegroundColour(GetParent()->GetForegroundColour()); - - SubclassWin(m_hWnd); - - return TRUE; -} - -void wxListCtrl::UpdateStyle() -{ - if ( GetHWND() ) - { - // The new window view style - long dummy; - DWORD dwStyleNew = ConvertToMSWStyle(dummy, m_windowStyle); - dwStyleNew |= m_baseStyle; - - // Get the current window style. - DWORD dwStyleOld = ::GetWindowLong(GetHwnd(), GWL_STYLE); - - // Only set the window style if the view bits have changed. - if ( dwStyleOld != dwStyleNew ) - { - ::SetWindowLong(GetHwnd(), GWL_STYLE, dwStyleNew); - } - } -} - -wxListCtrl::~wxListCtrl() -{ - if (m_textCtrl) - { - m_textCtrl->UnsubclassWin(); - m_textCtrl->SetHWND(0); - delete m_textCtrl; - m_textCtrl = NULL; - } -} - -// ---------------------------------------------------------------------------- -// set/get/change style -// ---------------------------------------------------------------------------- - -// 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; - - UpdateStyle(); -} - -// Set the whole window style -void wxListCtrl::SetWindowStyleFlag(long flag) -{ - m_windowStyle = flag; - - UpdateStyle(); -} - -// 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; -} - -// ---------------------------------------------------------------------------- -// accessors -// ---------------------------------------------------------------------------- - -// Sets the background colour (GetBackgroundColour already implicit in -// wxWindow class) -bool wxListCtrl::SetBackgroundColour(const wxColour& col) -{ - if ( !wxWindow::SetBackgroundColour(col) ) - return FALSE; - - ListView_SetBkColor(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 wxChar[513]; - lvCol.cchTextMax = 512; - } - - bool success = (ListView_GetColumn(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(GetHwnd(), col, & lvCol) != 0); -} - -// Gets the column width -int wxListCtrl::GetColumnWidth(int col) const -{ - return ListView_GetColumnWidth(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(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(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 wxChar[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; - bool ok = ListView_SetItem(GetHwnd(), &item) != 0; - if ( ok && (info.m_mask & wxLIST_MASK_IMAGE) ) - { - // make the change visible - ListView_Update(GetHwnd(), item.iItem); - } - - return ok; -} - -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(GetHwnd(), (int) item, &rect2 ) != 0); -#else - bool success = (ListView_GetItemRect(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(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(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(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(GetHwnd(), (BOOL) isSmall); -} - -// Gets the number of selected items in the list control -int wxListCtrl::GetSelectedItemCount(void) const -{ - return ListView_GetSelectedCount(GetHwnd()); -} - -// Gets the text colour of the listview -wxColour wxListCtrl::GetTextColour(void) const -{ - COLORREF ref = ListView_GetTextColor(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(GetHwnd(), PALETTERGB(col.Red(), col.Green(), col.Blue())); -} - -// Gets the index of the topmost visible item when in -// list or report view -long wxListCtrl::GetTopItem(void) const -{ - return (long) ListView_GetTopIndex(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(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(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(GetHwnd(), code) != 0); -} - -// Deletes an item -bool wxListCtrl::DeleteItem(long item) -{ - return (ListView_DeleteItem(GetHwnd(), (int) item) != 0); -} - -// Deletes all items -bool wxListCtrl::DeleteAllItems() -{ - return (ListView_DeleteAllItems(GetHwnd()) != 0); -} - -// Deletes all items -bool wxListCtrl::DeleteAllColumns() -{ - while ( m_colCount > 0 ) - { - if ( ListView_DeleteColumn(GetHwnd(), 0) == 0 ) - { - wxLogLastError("ListView_DeleteColumn"); - - return FALSE; - } - - m_colCount--; - } - - wxASSERT_MSG( m_colCount == 0, _T("no columns should be left") ); - - return TRUE; -} - -// Deletes a column -bool wxListCtrl::DeleteColumn(int col) -{ - bool success = (ListView_DeleteColumn(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(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(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(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(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(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(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(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(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(GetHwnd(), col, & lvCol) != -1; - if ( success ) - { - m_colCount++; - } - else - { - wxLogDebug(_T("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(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(GetHwnd(), (PFNLVCOMPARE) fn, data) != 0); -} - -// ---------------------------------------------------------------------------- -// message processing -// ---------------------------------------------------------------------------- - -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, 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: - // what's the sense of generating a wxWin event for this when - // it's absolutely not portable? -#if 0 - eventType = wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS; - event.m_itemIndex = -1; -#endif // 0 - - // return TRUE to suppress all additional LVN_DELETEITEM - // notifications - this makes deleting all items from a list ctrl - // much faster - *result = TRUE; - return TRUE; - - 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, GetHwnd()); - if ( info->item.pszText == NULL || info->item.iItem == -1 ) - event.m_cancelled = TRUE; - break; - } - case LVN_GETDISPINFO: - return FALSE; - - // this provokes stack overflow: indeed, wxConvertFromMSWListItem() - // sends us WM_NOTIFY! As it doesn't do anything for now, just leave - // it out. -#if 0 - { - // 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, GetHwnd()); - break; - } -#endif // 0 - - 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: - { - LV_KEYDOWN *info = (LV_KEYDOWN *)lParam; - WORD wVKey = info->wVKey; - - // get the current selection - long lItem = GetNextItem(-1, - wxLIST_NEXT_ALL, - wxLIST_STATE_SELECTED); - - // or activate the selected item if any - if ( lItem != -1 && (wVKey == VK_RETURN || wVKey == VK_SPACE) ) - { - // TODO this behaviour probably should be optional - eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED; - event.m_itemIndex = lItem; - } - else - { - eventType = wxEVT_COMMAND_LIST_KEY_DOWN; - event.m_code = wxCharCodeMSWToWX(wVKey); - } - break; - } - - case NM_DBLCLK: - // if the user processes it in wxEVT_COMMAND_LEFT_CLICK(), don't do - // anything else - if ( wxControl::MSWOnNotify(idCtrl, lParam, result) ) - { - return TRUE; - } - - // else translate it into wxEVT_COMMAND_LIST_ITEM_ACTIVATED event - eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED; - break; - - case LVN_SETDISPINFO: - { - eventType = wxEVT_COMMAND_LIST_SET_INFO; - LV_DISPINFO *info = (LV_DISPINFO *)lParam; - wxConvertFromMSWListItem(this, event.m_item, info->item, 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 = wxStrlen(info->item.pszText) + 1; - } - } - // wxConvertToMSWListItem(this, event.m_item, info->item); - } - - *result = !event.IsAllowed(); - - return TRUE; -} - -wxChar *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(WXSTRINGCAST str); - return (wxChar *)node->Data(); -} - -// ---------------------------------------------------------------------------- -// wxListItem -// ---------------------------------------------------------------------------- - -// 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 wxChar[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 = WXSTRINGCAST 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 // __WIN95__ - 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 4c45022ad5..0000000000 --- a/src/msw/makefile.b32 +++ /dev/null @@ -1,829 +0,0 @@ - - -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE B32.T! - -# -# 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)\busyinfo.obj \ - $(MSWDIR)\choicdgg.obj \ - $(MSWDIR)\gridg.obj \ - $(MSWDIR)\laywin.obj \ - $(MSWDIR)\numdlgg.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)\tipdlg.obj \ - $(MSWDIR)\wizard.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)\y_tab.obj \ - $(MSWDIR)\choiccmn.obj \ - $(MSWDIR)\cmndata.obj \ - $(MSWDIR)\config.obj \ - $(MSWDIR)\ctrlcmn.obj \ - $(MSWDIR)\date.obj \ - $(MSWDIR)\datstrm.obj \ - $(MSWDIR)\db.obj \ - $(MSWDIR)\dbtable.obj \ - $(MSWDIR)\dcbase.obj \ - $(MSWDIR)\dlgcmn.obj \ - $(MSWDIR)\docmdi.obj \ - $(MSWDIR)\docview.obj \ - $(MSWDIR)\dynarray.obj \ - $(MSWDIR)\dynlib.obj \ - $(MSWDIR)\event.obj \ - $(MSWDIR)\extended.obj \ - $(MSWDIR)\ffile.obj \ - $(MSWDIR)\file.obj \ - $(MSWDIR)\fileconf.obj \ - $(MSWDIR)\filefn.obj \ - $(MSWDIR)\filesys.obj \ - $(MSWDIR)\framecmn.obj \ - $(MSWDIR)\fs_inet.obj \ - $(MSWDIR)\fs_zip.obj \ - $(MSWDIR)\ftp.obj \ - $(MSWDIR)\gdicmn.obj \ - $(MSWDIR)\gifdecod.obj \ - $(MSWDIR)\hash.obj \ - $(MSWDIR)\helpbase.obj \ - $(MSWDIR)\http.obj \ - $(MSWDIR)\imagbmp.obj \ - $(MSWDIR)\image.obj \ - $(MSWDIR)\imaggif.obj \ - $(MSWDIR)\imagjpeg.obj \ - $(MSWDIR)\imagpng.obj \ - $(MSWDIR)\imagpnm.obj \ - $(MSWDIR)\intl.obj \ - $(MSWDIR)\ipcbase.obj \ - $(MSWDIR)\layout.obj \ - $(MSWDIR)\list.obj \ - $(MSWDIR)\log.obj \ - $(MSWDIR)\memory.obj \ - $(MSWDIR)\mimetype.obj \ - $(MSWDIR)\module.obj \ - $(MSWDIR)\mstream.obj \ - $(MSWDIR)\object.obj \ - $(MSWDIR)\objstrm.obj \ - $(MSWDIR)\odbc.obj \ - $(MSWDIR)\paper.obj \ - $(MSWDIR)\prntbase.obj \ - $(MSWDIR)\process.obj \ - $(MSWDIR)\protocol.obj \ - $(MSWDIR)\resource.obj \ - $(MSWDIR)\sckaddr.obj \ - $(MSWDIR)\sckfile.obj \ - $(MSWDIR)\sckipc.obj \ - $(MSWDIR)\sckstrm.obj \ - $(MSWDIR)\sizer.obj \ - $(MSWDIR)\socket.obj \ - $(MSWDIR)\strconv.obj \ - $(MSWDIR)\stream.obj \ - $(MSWDIR)\string.obj \ - $(MSWDIR)\tbarbase.obj \ - $(MSWDIR)\tbarsmpl.obj \ - $(MSWDIR)\textcmn.obj \ - $(MSWDIR)\textfile.obj \ - $(MSWDIR)\time.obj \ - $(MSWDIR)\timercmn.obj \ - $(MSWDIR)\tokenzr.obj \ - $(MSWDIR)\txtstrm.obj \ - $(MSWDIR)\unzip.obj \ - $(MSWDIR)\url.obj \ - $(MSWDIR)\utilscmn.obj \ - $(MSWDIR)\valgen.obj \ - $(MSWDIR)\validate.obj \ - $(MSWDIR)\valtext.obj \ - $(MSWDIR)\variant.obj \ - $(MSWDIR)\wfstream.obj \ - $(MSWDIR)\wincmn.obj \ - $(MSWDIR)\wxchar.obj \ - $(MSWDIR)\wxexpr.obj \ - $(MSWDIR)\zipstrm.obj \ - $(MSWDIR)\zstream.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)\dataobj.obj \ - $(MSWDIR)\dc.obj \ - $(MSWDIR)\dcclient.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\dibutils.obj \ - $(MSWDIR)\dirdlg.obj \ - $(MSWDIR)\dragimag.obj \ - $(MSWDIR)\dropsrc.obj \ - $(MSWDIR)\droptgt.obj \ - $(MSWDIR)\filedlg.obj \ - $(MSWDIR)\font.obj \ - $(MSWDIR)\fontdlg.obj \ - $(MSWDIR)\frame.obj \ - $(MSWDIR)\gauge95.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)\oleutils.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)\regconf.obj \ - $(MSWDIR)\region.obj \ - $(MSWDIR)\registry.obj \ - $(MSWDIR)\scrolbar.obj \ - $(MSWDIR)\settings.obj \ - $(MSWDIR)\slider95.obj \ - $(MSWDIR)\spinbutt.obj \ - $(MSWDIR)\statbmp.obj \ - $(MSWDIR)\statbox.obj \ - $(MSWDIR)\statbr95.obj \ - $(MSWDIR)\statline.obj \ - $(MSWDIR)\stattext.obj \ - $(MSWDIR)\tabctrl.obj \ - $(MSWDIR)\taskbar.obj \ - $(MSWDIR)\tbar95.obj \ - $(MSWDIR)\textctrl.obj \ - $(MSWDIR)\thread.obj \ - $(MSWDIR)\timer.obj \ - $(MSWDIR)\tooltip.obj \ - $(MSWDIR)\treectrl.obj \ - $(MSWDIR)\utils.obj \ - $(MSWDIR)\utilsexc.obj \ - $(MSWDIR)\uuid.obj \ - $(MSWDIR)\wave.obj \ - $(MSWDIR)\window.obj \ - $(MSWDIR)\xpmhand.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) /P1024 @&&! -+$(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)\dataobj.obj: $(OLEDIR)\dataobj.$(SRCSUFF) - -$(MSWDIR)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF) - -$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF) - -$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF) - -$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF) - -$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF) - -$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF) - -$(MSWDIR)\dialog.obj: $(MSWDIR)\dialog.$(SRCSUFF) - -$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF) - -$(MSWDIR)\dibutils.obj: $(MSWDIR)\dibutils.$(SRCSUFF) - -$(MSWDIR)\dirdlg.obj: $(MSWDIR)\dirdlg.$(SRCSUFF) - -$(MSWDIR)\dragimag.obj: $(MSWDIR)\dragimag.$(SRCSUFF) - -$(MSWDIR)\dropsrc.obj: $(OLEDIR)\dropsrc.$(SRCSUFF) - -$(MSWDIR)\droptgt.obj: $(OLEDIR)\droptgt.$(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)\gauge95.obj: $(MSWDIR)\gauge95.$(SRCSUFF) - -$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF) - -$(MSWDIR)\helpwin.obj: $(MSWDIR)\helpwin.$(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)\menuitem.$(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)\oleutils.obj: $(OLEDIR)\oleutils.$(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)\pnghand.obj: $(MSWDIR)\pnghand.$(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)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF) - -$(MSWDIR)\region.obj: $(MSWDIR)\region.$(SRCSUFF) - -$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF) - -$(MSWDIR)\scrolbar.obj: $(MSWDIR)\scrolbar.$(SRCSUFF) - -$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(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)\statline.obj: $(MSWDIR)\statline.$(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)\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)\uuid.obj: $(OLEDIR)\uuid.$(SRCSUFF) - -$(MSWDIR)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF) - -$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF) - -$(MSWDIR)\xpmhand.obj: $(MSWDIR)\xpmhand.$(SRCSUFF) - - - -######################################################## -# Common objects (always compiled) - -$(MSWDIR)\choiccmn.obj: $(COMMDIR)\choiccmn.$(SRCSUFF) - -$(MSWDIR)\cmndata.obj: $(COMMDIR)\cmndata.$(SRCSUFF) - -$(MSWDIR)\config.obj: $(COMMDIR)\config.$(SRCSUFF) - -$(MSWDIR)\ctrlcmn.obj: $(COMMDIR)\ctrlcmn.$(SRCSUFF) - -$(MSWDIR)\date.obj: $(COMMDIR)\date.$(SRCSUFF) - -$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF) - -$(MSWDIR)\db.obj: $(COMMDIR)\db.$(SRCSUFF) - -$(MSWDIR)\dbtable.obj: $(COMMDIR)\dbtable.$(SRCSUFF) - -$(MSWDIR)\dcbase.obj: $(COMMDIR)\dcbase.$(SRCSUFF) - -$(MSWDIR)\dlgcmn.obj: $(COMMDIR)\dlgcmn.$(SRCSUFF) - -$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF) - -$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF) - -$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF) - -$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF) - -$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF) - -$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c - -$(MSWDIR)\ffile.obj: $(COMMDIR)\ffile.$(SRCSUFF) - -$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF) - -$(MSWDIR)\fileconf.obj: $(COMMDIR)\fileconf.$(SRCSUFF) - -$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF) - -$(MSWDIR)\filesys.obj: $(COMMDIR)\filesys.$(SRCSUFF) - -$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF) - -$(MSWDIR)\fs_inet.obj: $(COMMDIR)\fs_inet.$(SRCSUFF) - -$(MSWDIR)\fs_zip.obj: $(COMMDIR)\fs_zip.$(SRCSUFF) - -$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF) - -$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF) - -$(MSWDIR)\gifdecod.obj: $(COMMDIR)\gifdecod.$(SRCSUFF) - -$(MSWDIR)\hash.obj: $(COMMDIR)\hash.$(SRCSUFF) - -$(MSWDIR)\helpbase.obj: $(COMMDIR)\helpbase.$(SRCSUFF) - -$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF) - -$(MSWDIR)\imagbmp.obj: $(COMMDIR)\imagbmp.$(SRCSUFF) - -$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF) - -$(MSWDIR)\imaggif.obj: $(COMMDIR)\imaggif.$(SRCSUFF) - -$(MSWDIR)\imagjpeg.obj: $(COMMDIR)\imagjpeg.$(SRCSUFF) - -$(MSWDIR)\imagpng.obj: $(COMMDIR)\imagpng.$(SRCSUFF) - -$(MSWDIR)\imagpnm.obj: $(COMMDIR)\imagpnm.$(SRCSUFF) - -$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF) - -$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF) - -$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF) - -$(MSWDIR)\list.obj: $(COMMDIR)\list.$(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)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF) - -$(MSWDIR)\object.obj: $(COMMDIR)\object.$(SRCSUFF) - -$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF) - -$(MSWDIR)\odbc.obj: $(COMMDIR)\odbc.$(SRCSUFF) - -$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF) - -$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF) - -$(MSWDIR)\process.obj: $(COMMDIR)\process.$(SRCSUFF) - -$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF) - -$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF) - -$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF) - -$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF) - -$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF) - -$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF) - -$(MSWDIR)\sizer.obj: $(COMMDIR)\sizer.$(SRCSUFF) - -$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF) - -$(MSWDIR)\strconv.obj: $(COMMDIR)\strconv.$(SRCSUFF) - -$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF) - -$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF) - -$(MSWDIR)\tbarbase.obj: $(COMMDIR)\tbarbase.$(SRCSUFF) - -$(MSWDIR)\tbarsmpl.obj: $(COMMDIR)\tbarsmpl.$(SRCSUFF) - -$(MSWDIR)\textcmn.obj: $(COMMDIR)\textcmn.$(SRCSUFF) - -$(MSWDIR)\textfile.obj: $(COMMDIR)\textfile.$(SRCSUFF) - -$(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF) - -$(MSWDIR)\timercmn.obj: $(COMMDIR)\timercmn.$(SRCSUFF) - -$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF) - -$(MSWDIR)\txtstrm.obj: $(COMMDIR)\txtstrm.$(SRCSUFF) - -$(MSWDIR)\unzip.obj: $(COMMDIR)\unzip.c - -$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF) - -$(MSWDIR)\utilscmn.obj: $(COMMDIR)\utilscmn.$(SRCSUFF) - -$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF) - -$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF) - -$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF) - -$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF) - -$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF) - -$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF) - -$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF) - -$(MSWDIR)\wxexpr.obj: $(COMMDIR)\wxexpr.$(SRCSUFF) - -$(MSWDIR)\zipstrm.obj: $(COMMDIR)\zipstrm.$(SRCSUFF) - -$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF) - - - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(MSWDIR)\busyinfo.obj: $(GENDIR)\busyinfo.$(SRCSUFF) - -$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF) - -$(MSWDIR)\gridg.obj: $(GENDIR)\gridg.$(SRCSUFF) - -$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF) - -$(MSWDIR)\numdlgg.obj: $(GENDIR)\numdlgg.$(SRCSUFF) - -$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF) - -$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF) - -$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF) - -$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF) - -$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(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)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF) - -$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF) - -$(MSWDIR)\tipdlg.obj: $(GENDIR)\tipdlg.$(SRCSUFF) - -$(MSWDIR)\wizard.obj: $(GENDIR)\wizard.$(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 - - -MFTYPE=b32 -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw - diff --git a/src/msw/makefile.bcc b/src/msw/makefile.bcc deleted file mode 100644 index 3983f27a5e..0000000000 --- a/src/msw/makefile.bcc +++ /dev/null @@ -1,738 +0,0 @@ - - -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE BCC.T! - -# -# 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)\busyinfo.obj \ - $(MSWDIR)\choicdgg.obj \ - $(MSWDIR)\dirdlgg.obj \ - $(MSWDIR)\gridg.obj \ - $(MSWDIR)\imaglist.obj \ - $(MSWDIR)\laywin.obj \ - $(MSWDIR)\listctrl.obj \ - $(MSWDIR)\notebook.obj \ - $(MSWDIR)\numdlgg.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)\tipdlg.obj \ - $(MSWDIR)\treectrl.obj \ - $(MSWDIR)\wizard.obj - -COMMONOBJS = \ - $(MSWDIR)\y_tab.obj \ - $(MSWDIR)\choiccmn.obj \ - $(MSWDIR)\cmndata.obj \ - $(MSWDIR)\config.obj \ - $(MSWDIR)\ctrlcmn.obj \ - $(MSWDIR)\date.obj \ - $(MSWDIR)\datstrm.obj \ - $(MSWDIR)\db.obj \ - $(MSWDIR)\dbtable.obj \ - $(MSWDIR)\dcbase.obj \ - $(MSWDIR)\dlgcmn.obj \ - $(MSWDIR)\docmdi.obj \ - $(MSWDIR)\docview.obj \ - $(MSWDIR)\dynarray.obj \ - $(MSWDIR)\dynlib.obj \ - $(MSWDIR)\event.obj \ - $(MSWDIR)\extended.obj \ - $(MSWDIR)\ffile.obj \ - $(MSWDIR)\file.obj \ - $(MSWDIR)\fileconf.obj \ - $(MSWDIR)\filefn.obj \ - $(MSWDIR)\filesys.obj \ - $(MSWDIR)\framecmn.obj \ - $(MSWDIR)\fs_inet.obj \ - $(MSWDIR)\fs_zip.obj \ - $(MSWDIR)\gdicmn.obj \ - $(MSWDIR)\gifdecod.obj \ - $(MSWDIR)\hash.obj \ - $(MSWDIR)\helpbase.obj \ - $(MSWDIR)\imagbmp.obj \ - $(MSWDIR)\image.obj \ - $(MSWDIR)\imaggif.obj \ - $(MSWDIR)\imagjpeg.obj \ - $(MSWDIR)\imagpng.obj \ - $(MSWDIR)\imagpnm.obj \ - $(MSWDIR)\intl.obj \ - $(MSWDIR)\ipcbase.obj \ - $(MSWDIR)\layout.obj \ - $(MSWDIR)\list.obj \ - $(MSWDIR)\log.obj \ - $(MSWDIR)\memory.obj \ - $(MSWDIR)\module.obj \ - $(MSWDIR)\mstream.obj \ - $(MSWDIR)\object.obj \ - $(MSWDIR)\objstrm.obj \ - $(MSWDIR)\paper.obj \ - $(MSWDIR)\prntbase.obj \ - $(MSWDIR)\resource.obj \ - $(MSWDIR)\sizer.obj \ - $(MSWDIR)\strconv.obj \ - $(MSWDIR)\stream.obj \ - $(MSWDIR)\string.obj \ - $(MSWDIR)\tbarbase.obj \ - $(MSWDIR)\tbarsmpl.obj \ - $(MSWDIR)\textcmn.obj \ - $(MSWDIR)\textfile.obj \ - $(MSWDIR)\time.obj \ - $(MSWDIR)\timercmn.obj \ - $(MSWDIR)\tokenzr.obj \ - $(MSWDIR)\txtstrm.obj \ - $(MSWDIR)\unzip.obj \ - $(MSWDIR)\utilscmn.obj \ - $(MSWDIR)\valgen.obj \ - $(MSWDIR)\validate.obj \ - $(MSWDIR)\valtext.obj \ - $(MSWDIR)\variant.obj \ - $(MSWDIR)\wfstream.obj \ - $(MSWDIR)\wincmn.obj \ - $(MSWDIR)\wxchar.obj \ - $(MSWDIR)\wxexpr.obj \ - $(MSWDIR)\zipstrm.obj \ - $(MSWDIR)\zstream.obj \ - ${MSWDIR}\resourc2.cpp - -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)\dcclient.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\dibutils.obj \ - $(MSWDIR)\dragimag.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)\statline.obj \ - $(MSWDIR)\stattext.obj \ - $(MSWDIR)\tabctrl.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 - -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)\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)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF) - -$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF) - -$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF) - -$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF) - -$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF) - -$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF) - -$(MSWDIR)\dialog.obj: $(MSWDIR)\dialog.$(SRCSUFF) - -$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF) - -$(MSWDIR)\dibutils.obj: $(MSWDIR)\dibutils.$(SRCSUFF) - -$(MSWDIR)\dragimag.obj: $(MSWDIR)\dragimag.$(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)\gdiobj.obj: $(MSWDIR)\gdi$(SRCSUFF).obj - -$(MSWDIR)\helpwin.obj: $(MSWDIR)\helpwin.$(SRCSUFF) - -$(MSWDIR)\icon.obj: $(MSWDIR)\icon.$(SRCSUFF) - -$(MSWDIR)\iniconf.obj: $(MSWDIR)\iniconf.$(SRCSUFF) - -$(MSWDIR)\joystick.obj: $(MSWDIR)\joystick.$(SRCSUFF) - -$(MSWDIR)\listbox.obj: $(MSWDIR)\listbox.$(SRCSUFF) - -$(MSWDIR)\main.obj: $(MSWDIR)\main.$(SRCSUFF) - -$(MSWDIR)\mdi.obj: $(MSWDIR)\mdi.$(SRCSUFF) - -$(MSWDIR)\menu.obj: $(MSWDIR)\menu.$(SRCSUFF) - -$(MSWDIR)\menuitem.obj: $(MSWDIR)\menuitem.$(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)\ownerdrw.obj: $(MSWDIR)\ownerdrw.$(SRCSUFF) - -$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF) - -$(MSWDIR)\pen.obj: $(MSWDIR)\pen.$(SRCSUFF) - -$(MSWDIR)\penwin.obj: $(MSWDIR)\penwin.$(SRCSUFF) - -$(MSWDIR)\pnghand.obj: $(MSWDIR)\pnghand.$(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)\scrolbar.obj: $(MSWDIR)\scrolbar.$(SRCSUFF) - -$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF) - -$(MSWDIR)\slidrmsw.obj: $(MSWDIR)\slidrmsw.$(SRCSUFF) - -$(MSWDIR)\spinbutt.obj: $(MSWDIR)\spinbutt.$(SRCSUFF) - -$(MSWDIR)\statbmp.obj: $(MSWDIR)\statbmp.$(SRCSUFF) - -$(MSWDIR)\statbox.obj: $(MSWDIR)\statbox.$(SRCSUFF) - -$(MSWDIR)\statline.obj: $(MSWDIR)\statline.$(SRCSUFF) - -$(MSWDIR)\stattext.obj: $(MSWDIR)\stattext.$(SRCSUFF) - -$(MSWDIR)\tabctrl.obj: $(MSWDIR)\tabctrl.$(SRCSUFF) - -$(MSWDIR)\tbarmsw.obj: $(MSWDIR)\tbarmsw.$(SRCSUFF) - -$(MSWDIR)\textctrl.obj: $(MSWDIR)\textctrl.$(SRCSUFF) - -$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(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)\xpmhand.obj: $(MSWDIR)\xpmhand.$(SRCSUFF) - - - -######################################################## -# Common objects (always compiled) - -$(MSWDIR)\choiccmn.obj: $(COMMDIR)\choiccmn.$(SRCSUFF) - -$(MSWDIR)\cmndata.obj: $(COMMDIR)\cmndata.$(SRCSUFF) - -$(MSWDIR)\config.obj: $(COMMDIR)\config.$(SRCSUFF) - -$(MSWDIR)\ctrlcmn.obj: $(COMMDIR)\ctrlcmn.$(SRCSUFF) - -$(MSWDIR)\date.obj: $(COMMDIR)\date.$(SRCSUFF) - -$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF) - -$(MSWDIR)\db.obj: $(COMMDIR)\db.$(SRCSUFF) - -$(MSWDIR)\dbtable.obj: $(COMMDIR)\dbtable.$(SRCSUFF) - -$(MSWDIR)\dcbase.obj: $(COMMDIR)\dcbase.$(SRCSUFF) - -$(MSWDIR)\dlgcmn.obj: $(COMMDIR)\dlgcmn.$(SRCSUFF) - -$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF) - -$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF) - -$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF) - -$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF) - -$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF) - -$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c - -$(MSWDIR)\ffile.obj: $(COMMDIR)\ffile.$(SRCSUFF) - -$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF) - -$(MSWDIR)\fileconf.obj: $(COMMDIR)\fileconf.$(SRCSUFF) - -$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF) - -$(MSWDIR)\filesys.obj: $(COMMDIR)\filesys.$(SRCSUFF) - -$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF) - -$(MSWDIR)\fs_inet.obj: $(COMMDIR)\fs_inet.$(SRCSUFF) - -$(MSWDIR)\fs_zip.obj: $(COMMDIR)\fs_zip.$(SRCSUFF) - -$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF) - -$(MSWDIR)\gifdecod.obj: $(COMMDIR)\gifdecod.$(SRCSUFF) - -$(MSWDIR)\hash.obj: $(COMMDIR)\hash.$(SRCSUFF) - -$(MSWDIR)\helpbase.obj: $(COMMDIR)\helpbase.$(SRCSUFF) - -$(MSWDIR)\imagbmp.obj: $(COMMDIR)\imagbmp.$(SRCSUFF) - -$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF) - -$(MSWDIR)\imaggif.obj: $(COMMDIR)\imaggif.$(SRCSUFF) - -$(MSWDIR)\imagjpeg.obj: $(COMMDIR)\imagjpeg.$(SRCSUFF) - -$(MSWDIR)\imagpng.obj: $(COMMDIR)\imagpng.$(SRCSUFF) - -$(MSWDIR)\imagpnm.obj: $(COMMDIR)\imagpnm.$(SRCSUFF) - -$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF) - -$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF) - -$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF) - -$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF) - -$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF) - -$(MSWDIR)\memory.obj: $(COMMDIR)\memory.$(SRCSUFF) - -$(MSWDIR)\module.obj: $(COMMDIR)\module.$(SRCSUFF) - -$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF) - -$(MSWDIR)\object.obj: $(COMMDIR)\$(SRCSUFF)ect.obj - -$(MSWDIR)\objstrm.obj: $(COMMDIR)\$(SRCSUFF)strm.obj - -$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF) - -$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF) - -$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF) - -$(MSWDIR)\sizer.obj: $(COMMDIR)\sizer.$(SRCSUFF) - -$(MSWDIR)\strconv.obj: $(COMMDIR)\strconv.$(SRCSUFF) - -$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF) - -$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF) - -$(MSWDIR)\tbarbase.obj: $(COMMDIR)\tbarbase.$(SRCSUFF) - -$(MSWDIR)\tbarsmpl.obj: $(COMMDIR)\tbarsmpl.$(SRCSUFF) - -$(MSWDIR)\textcmn.obj: $(COMMDIR)\textcmn.$(SRCSUFF) - -$(MSWDIR)\textfile.obj: $(COMMDIR)\textfile.$(SRCSUFF) - -$(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF) - -$(MSWDIR)\timercmn.obj: $(COMMDIR)\timercmn.$(SRCSUFF) - -$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF) - -$(MSWDIR)\txtstrm.obj: $(COMMDIR)\txtstrm.$(SRCSUFF) - -$(MSWDIR)\unzip.obj: $(COMMDIR)\unzip.c - -$(MSWDIR)\utilscmn.obj: $(COMMDIR)\utilscmn.$(SRCSUFF) - -$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF) - -$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF) - -$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF) - -$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF) - -$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF) - -$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF) - -$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF) - -$(MSWDIR)\wxexpr.obj: $(COMMDIR)\wxexpr.$(SRCSUFF) - -$(MSWDIR)\zipstrm.obj: $(COMMDIR)\zipstrm.$(SRCSUFF) - -$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF) - -${MSWDIR}\resourc2.cpp: ${COMMDIR}\resourc2.cpp - - - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(MSWDIR)\busyinfo.obj: $(GENDIR)\busyinfo.$(SRCSUFF) - -$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF) - -$(MSWDIR)\dirdlgg.obj: $(GENDIR)\dirdlgg.$(SRCSUFF) - -$(MSWDIR)\gridg.obj: $(GENDIR)\gridg.$(SRCSUFF) - -$(MSWDIR)\imaglist.obj: $(GENDIR)\imaglist.$(SRCSUFF) - -$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF) - -$(MSWDIR)\listctrl.obj: $(GENDIR)\listctrl.$(SRCSUFF) - -$(MSWDIR)\notebook.obj: $(GENDIR)\notebook.$(SRCSUFF) - -$(MSWDIR)\numdlgg.obj: $(GENDIR)\numdlgg.$(SRCSUFF) - -$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF) - -$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF) - -$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF) - -$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF) - -$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(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)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF) - -$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF) - -$(MSWDIR)\tipdlg.obj: $(GENDIR)\tipdlg.$(SRCSUFF) - -$(MSWDIR)\treectrl.obj: $(GENDIR)\treectrl.$(SRCSUFF) - -$(MSWDIR)\wizard.obj: $(GENDIR)\wizard.$(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 - - -MFTYPE=bcc -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw diff --git a/src/msw/makefile.dos b/src/msw/makefile.dos deleted file mode 100644 index d390c878d4..0000000000 --- a/src/msw/makefile.dos +++ /dev/null @@ -1,1227 +0,0 @@ - - -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE DOS.T! - -# -# 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)\busyinfo.obj \ - $(GENDIR)\choicdgg.obj \ - $(GENDIR)\dirdlgg.obj \ - $(GENDIR)\gridg.obj \ - $(GENDIR)\imaglist.obj \ - $(GENDIR)\laywin.obj \ - $(GENDIR)\listctrl.obj \ - $(GENDIR)\notebook.obj \ - $(GENDIR)\numdlgg.obj \ - $(GENDIR)\panelg.obj \ - $(GENDIR)\prntdlgg.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)\tipdlg.obj \ - $(GENDIR)\treectrl.obj \ - $(GENDIR)\wizard.obj - -COMMONOBJS = \ - $(COMMDIR)\y_tab.obj \ - $(COMMDIR)\choiccmn.obj \ - $(COMMDIR)\cmndata.obj \ - $(COMMDIR)\config.obj \ - $(COMMDIR)\ctrlcmn.obj \ - $(COMMDIR)\date.obj \ - $(COMMDIR)\datstrm.obj \ - $(COMMDIR)\db.obj \ - $(COMMDIR)\dbtable.obj \ - $(COMMDIR)\dcbase.obj \ - $(COMMDIR)\dlgcmn.obj \ - $(COMMDIR)\docmdi.obj \ - $(COMMDIR)\docview.obj \ - $(COMMDIR)\dynarray.obj \ - $(COMMDIR)\dynlib.obj \ - $(COMMDIR)\event.obj \ - $(COMMDIR)\extended.obj \ - $(COMMDIR)\ffile.obj \ - $(COMMDIR)\file.obj \ - $(COMMDIR)\fileconf.obj \ - $(COMMDIR)\filefn.obj \ - $(COMMDIR)\filesys.obj \ - $(COMMDIR)\framecmn.obj \ - $(COMMDIR)\fs_inet.obj \ - $(COMMDIR)\fs_zip.obj \ - $(COMMDIR)\gdicmn.obj \ - $(COMMDIR)\gifdecod.obj \ - $(COMMDIR)\hash.obj \ - $(COMMDIR)\helpbase.obj \ - $(COMMDIR)\imagbmp.obj \ - $(COMMDIR)\image.obj \ - $(COMMDIR)\imaggif.obj \ - $(COMMDIR)\imagjpeg.obj \ - $(COMMDIR)\imagpng.obj \ - $(COMMDIR)\imagpnm.obj \ - $(COMMDIR)\intl.obj \ - $(COMMDIR)\ipcbase.obj \ - $(COMMDIR)\layout.obj \ - $(COMMDIR)\list.obj \ - $(COMMDIR)\log.obj \ - $(COMMDIR)\memory.obj \ - $(COMMDIR)\module.obj \ - $(COMMDIR)\mstream.obj \ - $(COMMDIR)\object.obj \ - $(COMMDIR)\objstrm.obj \ - $(COMMDIR)\odbc.obj \ - $(COMMDIR)\paper.obj \ - $(COMMDIR)\prntbase.obj \ - $(COMMDIR)\resource.obj \ - $(COMMDIR)\sizer.obj \ - $(COMMDIR)\strconv.obj \ - $(COMMDIR)\stream.obj \ - $(COMMDIR)\string.obj \ - $(COMMDIR)\tbarbase.obj \ - $(COMMDIR)\tbarsmpl.obj \ - $(COMMDIR)\textcmn.obj \ - $(COMMDIR)\textfile.obj \ - $(COMMDIR)\time.obj \ - $(COMMDIR)\timercmn.obj \ - $(COMMDIR)\tokenzr.obj \ - $(COMMDIR)\txtstrm.obj \ - $(COMMDIR)\unzip.obj \ - $(COMMDIR)\utilscmn.obj \ - $(COMMDIR)\valgen.obj \ - $(COMMDIR)\validate.obj \ - $(COMMDIR)\valtext.obj \ - $(COMMDIR)\variant.obj \ - $(COMMDIR)\wfstream.obj \ - $(COMMDIR)\wincmn.obj \ - $(COMMDIR)\wxchar.obj \ - $(COMMDIR)\wxexpr.obj \ - $(COMMDIR)\zipstrm.obj \ - $(COMMDIR)\zstream.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)\dcclient.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\dibutils.obj \ - $(MSWDIR)\dragimag.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)\statline.obj \ - $(MSWDIR)\stattext.obj \ - $(MSWDIR)\tabctrl.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 - -# TODO: Implement XPM and PNG targets in this makefile! -# $(OLEDIR)\xpmhand \ -# $(OLEDIR)\pnghand \ - -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)/checkbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/checklst.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/choice.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)/dcclient.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dcmemory.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)/dde.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)/dibutils.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dragimag.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)/joystick.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/listbox.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)/pnghand.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)/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)/statline.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/stattext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/tabctrl.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)/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) -<< - -$(MSWDIR)/xpmhand.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/choiccmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/cmndata.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/config.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/ctrlcmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/date.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/datstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/db.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/dbtable.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/dcbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/dlgcmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/docmdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/docview.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/dynarray.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/dynlib.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/event.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/extended.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/ffile.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)/filesys.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/framecmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/fs_inet.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/fs_zip.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/gdicmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/gifdecod.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/hash.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/helpbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/imagbmp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/image.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/imaggif.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/imagjpeg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/imagpng.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/imagpnm.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)/list.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)/module.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/mstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/object.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/objstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/odbc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/paper.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)/sizer.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/strconv.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/stream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/string.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)/textcmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/textfile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/time.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/timercmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/tokenzr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/txtstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/unzip.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/utilscmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/valgen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/validate.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/valtext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/variant.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wfstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wincmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wxchar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wxexpr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/zipstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/zstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/busyinfo.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/choicdgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/dirdlgg.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)/laywin.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)/numdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/panelg.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)/sashwin.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)/tipdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/treectrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/wizard.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 - -$(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 - - -MFTYPE=dos -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw diff --git a/src/msw/makefile.g95 b/src/msw/makefile.g95 deleted file mode 100644 index 7538d1186c..0000000000 --- a/src/msw/makefile.g95 +++ /dev/null @@ -1,410 +0,0 @@ - -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE G95.T! - -# -# File: makefile.g95 -# Author: Julian Smart, Robert Roebling, Vadim Zeitlin -# Created: 1993 -# Updated: 1999 -# Copyright:(c) 1993, AIAI, University of Edinburgh, -# Copyright:(c) 1999, Vadim Zeitlin -# Copyright:(c) 1999, Robert Roebling -# -# Makefile for libwx.a - -# Replace this with your own path if necessary -WXDIR = ../.. - -# All common compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/makeg95.env - -# Subordinate library possibilities - -EXTRAOBJS= - -GENDIR = $(WXDIR)/src/generic -COMMDIR = $(WXDIR)/src/common -HTMLDIR = $(WXDIR)/src/html -XPMDIR = $(WXDIR)/src/xpm -PNGDIR = $(WXDIR)/src/png -JPEGDIR = $(WXDIR)/src/jpeg -ZLIBDIR = $(WXDIR)/src/zlib -OLEDIR = $(WXDIR)/src/msw/ole -MSWDIR = $(WXDIR)/src/msw - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS = \ - $(GENDIR)/busyinfo.$(OBJSUFF) \ - $(GENDIR)/choicdgg.$(OBJSUFF) \ - $(GENDIR)/dirdlgg.$(OBJSUFF) \ - $(GENDIR)/gridg.$(OBJSUFF) \ - $(GENDIR)/laywin.$(OBJSUFF) \ - $(GENDIR)/numdlgg.$(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)/tipdlg.$(OBJSUFF) \ - $(GENDIR)/wizard.$(OBJSUFF) - -COMMONOBJS = \ - $(COMMDIR)/y_tab.$(OBJSUFF) \ - $(COMMDIR)/choiccmn.$(OBJSUFF) \ - $(COMMDIR)/cmndata.$(OBJSUFF) \ - $(COMMDIR)/config.$(OBJSUFF) \ - $(COMMDIR)/ctrlcmn.$(OBJSUFF) \ - $(COMMDIR)/date.$(OBJSUFF) \ - $(COMMDIR)/datstrm.$(OBJSUFF) \ - $(COMMDIR)/db.$(OBJSUFF) \ - $(COMMDIR)/dbtable.$(OBJSUFF) \ - $(COMMDIR)/dcbase.$(OBJSUFF) \ - $(COMMDIR)/dlgcmn.$(OBJSUFF) \ - $(COMMDIR)/docmdi.$(OBJSUFF) \ - $(COMMDIR)/docview.$(OBJSUFF) \ - $(COMMDIR)/dynarray.$(OBJSUFF) \ - $(COMMDIR)/dynlib.$(OBJSUFF) \ - $(COMMDIR)/event.$(OBJSUFF) \ - $(COMMDIR)/extended.$(OBJSUFF) \ - $(COMMDIR)/ffile.$(OBJSUFF) \ - $(COMMDIR)/file.$(OBJSUFF) \ - $(COMMDIR)/fileconf.$(OBJSUFF) \ - $(COMMDIR)/filefn.$(OBJSUFF) \ - $(COMMDIR)/filesys.$(OBJSUFF) \ - $(COMMDIR)/framecmn.$(OBJSUFF) \ - $(COMMDIR)/fs_inet.$(OBJSUFF) \ - $(COMMDIR)/fs_zip.$(OBJSUFF) \ - $(COMMDIR)/ftp.$(OBJSUFF) \ - $(COMMDIR)/gdicmn.$(OBJSUFF) \ - $(COMMDIR)/gifdecod.$(OBJSUFF) \ - $(COMMDIR)/hash.$(OBJSUFF) \ - $(COMMDIR)/helpbase.$(OBJSUFF) \ - $(COMMDIR)/http.$(OBJSUFF) \ - $(COMMDIR)/imagbmp.$(OBJSUFF) \ - $(COMMDIR)/image.$(OBJSUFF) \ - $(COMMDIR)/imaggif.$(OBJSUFF) \ - $(COMMDIR)/imagjpeg.$(OBJSUFF) \ - $(COMMDIR)/imagpng.$(OBJSUFF) \ - $(COMMDIR)/imagpnm.$(OBJSUFF) \ - $(COMMDIR)/intl.$(OBJSUFF) \ - $(COMMDIR)/ipcbase.$(OBJSUFF) \ - $(COMMDIR)/layout.$(OBJSUFF) \ - $(COMMDIR)/list.$(OBJSUFF) \ - $(COMMDIR)/log.$(OBJSUFF) \ - $(COMMDIR)/memory.$(OBJSUFF) \ - $(COMMDIR)/mimetype.$(OBJSUFF) \ - $(COMMDIR)/module.$(OBJSUFF) \ - $(COMMDIR)/mstream.$(OBJSUFF) \ - $(COMMDIR)/object.$(OBJSUFF) \ - $(COMMDIR)/objstrm.$(OBJSUFF) \ - $(COMMDIR)/paper.$(OBJSUFF) \ - $(COMMDIR)/prntbase.$(OBJSUFF) \ - $(COMMDIR)/process.$(OBJSUFF) \ - $(COMMDIR)/protocol.$(OBJSUFF) \ - $(COMMDIR)/resource.$(OBJSUFF) \ - $(COMMDIR)/sckaddr.$(OBJSUFF) \ - $(COMMDIR)/sckfile.$(OBJSUFF) \ - $(COMMDIR)/sckipc.$(OBJSUFF) \ - $(COMMDIR)/sckstrm.$(OBJSUFF) \ - $(COMMDIR)/sizer.$(OBJSUFF) \ - $(COMMDIR)/socket.$(OBJSUFF) \ - $(COMMDIR)/strconv.$(OBJSUFF) \ - $(COMMDIR)/stream.$(OBJSUFF) \ - $(COMMDIR)/string.$(OBJSUFF) \ - $(COMMDIR)/tbarbase.$(OBJSUFF) \ - $(COMMDIR)/textcmn.$(OBJSUFF) \ - $(COMMDIR)/textfile.$(OBJSUFF) \ - $(COMMDIR)/time.$(OBJSUFF) \ - $(COMMDIR)/timercmn.$(OBJSUFF) \ - $(COMMDIR)/tokenzr.$(OBJSUFF) \ - $(COMMDIR)/txtstrm.$(OBJSUFF) \ - $(COMMDIR)/unzip.$(OBJSUFF) \ - $(COMMDIR)/url.$(OBJSUFF) \ - $(COMMDIR)/utilscmn.$(OBJSUFF) \ - $(COMMDIR)/valgen.$(OBJSUFF) \ - $(COMMDIR)/validate.$(OBJSUFF) \ - $(COMMDIR)/valtext.$(OBJSUFF) \ - $(COMMDIR)/variant.$(OBJSUFF) \ - $(COMMDIR)/wfstream.$(OBJSUFF) \ - $(COMMDIR)/wincmn.$(OBJSUFF) \ - $(COMMDIR)/wxchar.$(OBJSUFF) \ - $(COMMDIR)/wxexpr.$(OBJSUFF) \ - $(COMMDIR)/zipstrm.$(OBJSUFF) \ - $(COMMDIR)/zstream.$(OBJSUFF) - -HTMLOBJS = \ - $(HTMLDIR)/htmlcell.$(OBJSUFF) \ - $(HTMLDIR)/htmlfilter.$(OBJSUFF) \ - $(HTMLDIR)/htmlhelp.$(OBJSUFF) \ - $(HTMLDIR)/htmlhelp_io.$(OBJSUFF) \ - $(HTMLDIR)/htmlparser.$(OBJSUFF) \ - $(HTMLDIR)/htmltag.$(OBJSUFF) \ - $(HTMLDIR)/htmlwin.$(OBJSUFF) \ - $(HTMLDIR)/htmlwinparser.$(OBJSUFF) \ - $(HTMLDIR)/mod_fonts.$(OBJSUFF) \ - $(HTMLDIR)/mod_hline.$(OBJSUFF) \ - $(HTMLDIR)/mod_image.$(OBJSUFF) \ - $(HTMLDIR)/mod_layout.$(OBJSUFF) \ - $(HTMLDIR)/mod_links.$(OBJSUFF) \ - $(HTMLDIR)/mod_list.$(OBJSUFF) \ - $(HTMLDIR)/mod_pre.$(OBJSUFF) \ - $(HTMLDIR)/mod_tables.$(OBJSUFF) \ - $(HTMLDIR)/search.$(OBJSUFF) - -MSWOBJS = \ - $(MSWDIR)/accel.$(OBJSUFF) \ - $(MSWDIR)/app.$(OBJSUFF) \ - $(MSWDIR)/bitmap.$(OBJSUFF) \ - $(MSWDIR)/bmpbuttn.$(OBJSUFF) \ - $(MSWDIR)/brush.$(OBJSUFF) \ - $(MSWDIR)/button.$(OBJSUFF) \ - $(MSWDIR)/caret.$(OBJSUFF) \ - $(MSWDIR)/checkbox.$(OBJSUFF) \ - $(MSWDIR)/checklst.$(OBJSUFF) \ - $(MSWDIR)/choice.$(OBJSUFF) \ - $(MSWDIR)/clipbrd.$(OBJSUFF) \ - $(MSWDIR)/colordlg.$(OBJSUFF) \ - $(MSWDIR)/colour.$(OBJSUFF) \ - $(MSWDIR)/combobox.$(OBJSUFF) \ - $(MSWDIR)/control.$(OBJSUFF) \ - $(MSWDIR)/curico.$(OBJSUFF) \ - $(MSWDIR)/cursor.$(OBJSUFF) \ - $(MSWDIR)/data.$(OBJSUFF) \ - $(MSWDIR)/dc.$(OBJSUFF) \ - $(MSWDIR)/dcclient.$(OBJSUFF) \ - $(MSWDIR)/dcmemory.$(OBJSUFF) \ - $(MSWDIR)/dcprint.$(OBJSUFF) \ - $(MSWDIR)/dcscreen.$(OBJSUFF) \ - $(MSWDIR)/dde.$(OBJSUFF) \ - $(MSWDIR)/dialog.$(OBJSUFF) \ - $(MSWDIR)/dib.$(OBJSUFF) \ - $(MSWDIR)/dibutils.$(OBJSUFF) \ - $(MSWDIR)/dragimag.$(OBJSUFF) \ - $(MSWDIR)/filedlg.$(OBJSUFF) \ - $(MSWDIR)/font.$(OBJSUFF) \ - $(MSWDIR)/fontdlg.$(OBJSUFF) \ - $(MSWDIR)/frame.$(OBJSUFF) \ - $(MSWDIR)/gauge95.$(OBJSUFF) \ - $(MSWDIR)/gdiobj.$(OBJSUFF) \ - $(MSWDIR)/helpwin.$(OBJSUFF) \ - $(MSWDIR)/icon.$(OBJSUFF) \ - $(MSWDIR)/imaglist.$(OBJSUFF) \ - $(MSWDIR)/joystick.$(OBJSUFF) \ - $(MSWDIR)/listbox.$(OBJSUFF) \ - $(MSWDIR)/listctrl.$(OBJSUFF) \ - $(MSWDIR)/main.$(OBJSUFF) \ - $(MSWDIR)/mdi.$(OBJSUFF) \ - $(MSWDIR)/menu.$(OBJSUFF) \ - $(MSWDIR)/menuitem.$(OBJSUFF) \ - $(MSWDIR)/metafile.$(OBJSUFF) \ - $(MSWDIR)/minifram.$(OBJSUFF) \ - $(MSWDIR)/msgdlg.$(OBJSUFF) \ - $(MSWDIR)/nativdlg.$(OBJSUFF) \ - $(MSWDIR)/notebook.$(OBJSUFF) \ - $(MSWDIR)/ownerdrw.$(OBJSUFF) \ - $(MSWDIR)/palette.$(OBJSUFF) \ - $(MSWDIR)/pen.$(OBJSUFF) \ - $(MSWDIR)/penwin.$(OBJSUFF) \ - $(MSWDIR)/pnghand.$(OBJSUFF) \ - $(MSWDIR)/printdlg.$(OBJSUFF) \ - $(MSWDIR)/printwin.$(OBJSUFF) \ - $(MSWDIR)/radiobox.$(OBJSUFF) \ - $(MSWDIR)/radiobut.$(OBJSUFF) \ - $(MSWDIR)/regconf.$(OBJSUFF) \ - $(MSWDIR)/region.$(OBJSUFF) \ - $(MSWDIR)/registry.$(OBJSUFF) \ - $(MSWDIR)/scrolbar.$(OBJSUFF) \ - $(MSWDIR)/settings.$(OBJSUFF) \ - $(MSWDIR)/slider95.$(OBJSUFF) \ - $(MSWDIR)/spinbutt.$(OBJSUFF) \ - $(MSWDIR)/statbmp.$(OBJSUFF) \ - $(MSWDIR)/statbox.$(OBJSUFF) \ - $(MSWDIR)/statbr95.$(OBJSUFF) \ - $(MSWDIR)/statline.$(OBJSUFF) \ - $(MSWDIR)/stattext.$(OBJSUFF) \ - $(MSWDIR)/tabctrl.$(OBJSUFF) \ - $(MSWDIR)/taskbar.$(OBJSUFF) \ - $(MSWDIR)/tbar95.$(OBJSUFF) \ - $(MSWDIR)/textctrl.$(OBJSUFF) \ - $(MSWDIR)/thread.$(OBJSUFF) \ - $(MSWDIR)/timer.$(OBJSUFF) \ - $(MSWDIR)/tooltip.$(OBJSUFF) \ - $(MSWDIR)/treectrl.$(OBJSUFF) \ - $(MSWDIR)/utils.$(OBJSUFF) \ - $(MSWDIR)/utilsexc.$(OBJSUFF) \ - $(MSWDIR)/wave.$(OBJSUFF) \ - $(MSWDIR)/window.$(OBJSUFF) \ - $(MSWDIR)/xpmhand.$(OBJSUFF) - -ZLIBOBJS = \ - $(ZLIBDIR)/adler32.$(OBJSUFF) \ - $(ZLIBDIR)/compress.$(OBJSUFF) \ - $(ZLIBDIR)/crc32.$(OBJSUFF) \ - $(ZLIBDIR)/gzio.$(OBJSUFF) \ - $(ZLIBDIR)/uncompr.$(OBJSUFF) \ - $(ZLIBDIR)/deflate.$(OBJSUFF) \ - $(ZLIBDIR)/trees.$(OBJSUFF) \ - $(ZLIBDIR)/zutil.$(OBJSUFF) \ - $(ZLIBDIR)/inflate.$(OBJSUFF) \ - $(ZLIBDIR)/infblock.$(OBJSUFF) \ - $(ZLIBDIR)/inftrees.$(OBJSUFF) \ - $(ZLIBDIR)/infcodes.$(OBJSUFF) \ - $(ZLIBDIR)/infutil.$(OBJSUFF) \ - $(ZLIBDIR)/inffast.$(OBJSUFF) - -PNGOBJS = \ - $(PNGDIR)/png.$(OBJSUFF) \ - $(PNGDIR)/pngread.$(OBJSUFF) \ - $(PNGDIR)/pngrtran.$(OBJSUFF) \ - $(PNGDIR)/pngrutil.$(OBJSUFF) \ - $(PNGDIR)/pngpread.$(OBJSUFF) \ - $(PNGDIR)/pngtrans.$(OBJSUFF) \ - $(PNGDIR)/pngwrite.$(OBJSUFF) \ - $(PNGDIR)/pngwtran.$(OBJSUFF) \ - $(PNGDIR)/pngwutil.$(OBJSUFF) \ - $(PNGDIR)/pngerror.$(OBJSUFF) \ - $(PNGDIR)/pngmem.$(OBJSUFF) \ - $(PNGDIR)/pngwio.$(OBJSUFF) \ - $(PNGDIR)/pngrio.$(OBJSUFF) \ - $(PNGDIR)/pngget.$(OBJSUFF) \ - $(PNGDIR)/pngset.$(OBJSUFF) - - -JPEGOBJS = \ - $(JPEGDIR)/jcomapi.$(OBJSUFF) \ - $(JPEGDIR)/jutils.$(OBJSUFF) \ - $(JPEGDIR)/jerror.$(OBJSUFF) \ - $(JPEGDIR)/jmemmgr.$(OBJSUFF) \ - $(JPEGDIR)/jmemnobs.$(OBJSUFF) \ - $(JPEGDIR)/jcapimin.$(OBJSUFF) \ - $(JPEGDIR)/jcapistd.$(OBJSUFF) \ - $(JPEGDIR)/jctrans.$(OBJSUFF) \ - $(JPEGDIR)/jcparam.$(OBJSUFF) \ - $(JPEGDIR)/jdatadst.$(OBJSUFF) \ - $(JPEGDIR)/jcinit.$(OBJSUFF) \ - $(JPEGDIR)/jcmaster.$(OBJSUFF) \ - $(JPEGDIR)/jcmarker.$(OBJSUFF) \ - $(JPEGDIR)/jcmainct.$(OBJSUFF) \ - $(JPEGDIR)/jcprepct.$(OBJSUFF) \ - $(JPEGDIR)/jccoefct.$(OBJSUFF) \ - $(JPEGDIR)/jccolor.$(OBJSUFF) \ - $(JPEGDIR)/jcsample.$(OBJSUFF) \ - $(JPEGDIR)/jchuff.$(OBJSUFF) \ - $(JPEGDIR)/jcphuff.$(OBJSUFF) \ - $(JPEGDIR)/jcdctmgr.$(OBJSUFF) \ - $(JPEGDIR)/jfdctfst.$(OBJSUFF) \ - $(JPEGDIR)/jfdctflt.$(OBJSUFF) \ - $(JPEGDIR)/jfdctint.$(OBJSUFF) \ - $(JPEGDIR)/jdapimin.$(OBJSUFF) \ - $(JPEGDIR)/jdapistd.$(OBJSUFF) \ - $(JPEGDIR)/jdtrans.$(OBJSUFF) \ - $(JPEGDIR)/jdatasrc.$(OBJSUFF) \ - $(JPEGDIR)/jdmaster.$(OBJSUFF) \ - $(JPEGDIR)/jdinput.$(OBJSUFF) \ - $(JPEGDIR)/jdmarker.$(OBJSUFF) \ - $(JPEGDIR)/jdhuff.$(OBJSUFF) \ - $(JPEGDIR)/jdphuff.$(OBJSUFF) \ - $(JPEGDIR)/jdmainct.$(OBJSUFF) \ - $(JPEGDIR)/jdcoefct.$(OBJSUFF) \ - $(JPEGDIR)/jdpostct.$(OBJSUFF) \ - $(JPEGDIR)/jddctmgr.$(OBJSUFF) \ - $(JPEGDIR)/jidctfst.$(OBJSUFF) \ - $(JPEGDIR)/jidctflt.$(OBJSUFF) \ - $(JPEGDIR)/jidctint.$(OBJSUFF) \ - $(JPEGDIR)/jidctred.$(OBJSUFF) \ - $(JPEGDIR)/jdsample.$(OBJSUFF) \ - $(JPEGDIR)/jdcolor.$(OBJSUFF) \ - $(JPEGDIR)/jquant1.$(OBJSUFF) \ - $(JPEGDIR)/jquant2.$(OBJSUFF) \ - $(JPEGDIR)/jdmerge.$(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) $(HTMLOBJS) \ - $(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(XPMOBJECTS) - -all: $(OBJECTS) $(WXLIB) - -$(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) -DUSE_DEFINE -DYY_USE_PROTOS -o $@ $(COMMDIR)/y_tab.c - -$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c - copy ..\common\dosyacc.c ..\common\y_tab.c - -$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c - copy ..\common\doslex.c ..\common\lex_yy.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 - -clean: - -erase *.o - -erase *.bak - -erase core - -erase ..\common\y_tab.c - -erase ..\common\lex_yy.c - -erase ..\common\*.o - -erase ..\common\*.bak - -erase ..\generic\*.o - -erase ..\generic\*.bak - -erase ..\html\*.o - -erase ..\png\*.o - -erase ..\png\*.bak - -erase ..\zlib\*.o - -erase ..\zlib\*.bak - -erase ..\jpeg\*.o - -erase ..\..\lib\libwx.a - -cleanall: clean diff --git a/src/msw/makefile.sc b/src/msw/makefile.sc deleted file mode 100644 index 65371a5112..0000000000 --- a/src/msw/makefile.sc +++ /dev/null @@ -1,263 +0,0 @@ - - -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE SC.T! - -# 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)\busyinfo.obj \ - $(GENDIR)\choicdgg.obj \ - $(GENDIR)\gridg.obj \ - $(GENDIR)\laywin.obj \ - $(GENDIR)\numdlgg.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)\tipdlg.obj \ - $(GENDIR)\wizard.obj - -COMMONOBJS = \ - $(COMMDIR)\y_tab.obj \ - $(COMMDIR)\choiccmn.obj \ - $(COMMDIR)\cmndata.obj \ - $(COMMDIR)\config.obj \ - $(COMMDIR)\ctrlcmn.obj \ - $(COMMDIR)\date.obj \ - $(COMMDIR)\datstrm.obj \ - $(COMMDIR)\db.obj \ - $(COMMDIR)\dbtable.obj \ - $(COMMDIR)\dcbase.obj \ - $(COMMDIR)\dlgcmn.obj \ - $(COMMDIR)\docmdi.obj \ - $(COMMDIR)\docview.obj \ - $(COMMDIR)\dynarray.obj \ - $(COMMDIR)\dynlib.obj \ - $(COMMDIR)\event.obj \ - $(COMMDIR)\extended.obj \ - $(COMMDIR)\ffile.obj \ - $(COMMDIR)\file.obj \ - $(COMMDIR)\fileconf.obj \ - $(COMMDIR)\filefn.obj \ - $(COMMDIR)\filesys.obj \ - $(COMMDIR)\framecmn.obj \ - $(COMMDIR)\fs_inet.obj \ - $(COMMDIR)\fs_zip.obj \ - $(COMMDIR)\ftp.obj \ - $(COMMDIR)\gdicmn.obj \ - $(COMMDIR)\gifdecod.obj \ - $(COMMDIR)\hash.obj \ - $(COMMDIR)\helpbase.obj \ - $(COMMDIR)\http.obj \ - $(COMMDIR)\imagbmp.obj \ - $(COMMDIR)\image.obj \ - $(COMMDIR)\imaggif.obj \ - $(COMMDIR)\imagjpeg.obj \ - $(COMMDIR)\imagpng.obj \ - $(COMMDIR)\imagpnm.obj \ - $(COMMDIR)\intl.obj \ - $(COMMDIR)\ipcbase.obj \ - $(COMMDIR)\layout.obj \ - $(COMMDIR)\list.obj \ - $(COMMDIR)\log.obj \ - $(COMMDIR)\memory.obj \ - $(COMMDIR)\mimetype.obj \ - $(COMMDIR)\module.obj \ - $(COMMDIR)\mstream.obj \ - $(COMMDIR)\object.obj \ - $(COMMDIR)\objstrm.obj \ - $(COMMDIR)\odbc.obj \ - $(COMMDIR)\paper.obj \ - $(COMMDIR)\prntbase.obj \ - $(COMMDIR)\process.obj \ - $(COMMDIR)\protocol.obj \ - $(COMMDIR)\resource.obj \ - $(COMMDIR)\sckaddr.obj \ - $(COMMDIR)\sckfile.obj \ - $(COMMDIR)\sckipc.obj \ - $(COMMDIR)\sckstrm.obj \ - $(COMMDIR)\sizer.obj \ - $(COMMDIR)\socket.obj \ - $(COMMDIR)\strconv.obj \ - $(COMMDIR)\stream.obj \ - $(COMMDIR)\string.obj \ - $(COMMDIR)\tbarbase.obj \ - $(COMMDIR)\tbarsmpl.obj \ - $(COMMDIR)\textcmn.obj \ - $(COMMDIR)\textfile.obj \ - $(COMMDIR)\time.obj \ - $(COMMDIR)\timercmn.obj \ - $(COMMDIR)\tokenzr.obj \ - $(COMMDIR)\txtstrm.obj \ - $(COMMDIR)\unzip.obj \ - $(COMMDIR)\url.obj \ - $(COMMDIR)\utilscmn.obj \ - $(COMMDIR)\valgen.obj \ - $(COMMDIR)\validate.obj \ - $(COMMDIR)\valtext.obj \ - $(COMMDIR)\variant.obj \ - $(COMMDIR)\wfstream.obj \ - $(COMMDIR)\wincmn.obj \ - $(COMMDIR)\wxchar.obj \ - $(COMMDIR)\wxexpr.obj \ - $(COMMDIR)\zipstrm.obj \ - $(COMMDIR)\zstream.obj - -MSWOBJS = $(MSWDIR)\accel.obj \ - $(MSWDIR)\app.obj \ - $(MSWDIR)\automtn.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)\dataobj.obj \ - $(MSWDIR)\dc.obj \ - $(MSWDIR)\dcclient.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\dibutils.obj \ - $(MSWDIR)\dirdlg.obj \ - $(MSWDIR)\dragimag.obj \ - $(MSWDIR)\dropsrc.obj \ - $(MSWDIR)\droptgt.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)\oleutils.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)\regconf.obj \ - $(MSWDIR)\region.obj \ - $(MSWDIR)\registry.obj \ - $(MSWDIR)\scrolbar.obj \ - $(MSWDIR)\settings.obj \ - $(MSWDIR)\slider95.obj \ - $(MSWDIR)\slidrmsw.obj \ - $(MSWDIR)\spinbutt.obj \ - $(MSWDIR)\statbmp.obj \ - $(MSWDIR)\statbox.obj \ - $(MSWDIR)\statbr95.obj \ - $(MSWDIR)\statline.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)\uuid.obj \ - $(MSWDIR)\wave.obj \ - $(MSWDIR)\window.obj \ - $(MSWDIR)\xpmhand.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 - -MFTYPE=sc -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw 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 1153904bf5..0000000000 --- a/src/msw/makefile.twn +++ /dev/null @@ -1,326 +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)/imagbmp.$(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 88bf4ef8aa..0000000000 --- a/src/msw/makefile.vc +++ /dev/null @@ -1,800 +0,0 @@ -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T! - -# File: makefile.vc -# 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 -HTMLDIR = $(WXDIR)\src\html - -{..\generic}.cpp{..\generic\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\common}.cpp{..\common\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\common}.c{..\common\$D}.obj: - cl @<< -$(CPPFLAGS2) /Fo$@ /c /Tc $< -<< - -{..\msw}.cpp{..\msw\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\msw\ole}.cpp{..\msw\ole\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\html}.cpp{..\html\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -GENERICOBJS= ..\generic\$D\busyinfo.obj \ - ..\generic\$D\choicdgg.obj \ - ..\generic\$D\gridg.obj \ - ..\generic\$D\laywin.obj \ - ..\generic\$D\numdlgg.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\tipdlg.obj \ - ..\generic\$D\wizard.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\caret.obj \ - ..\generic\$D\colrdlgg.obj \ - ..\generic\$D\dcpsg.obj \ - ..\generic\$D\dirdlgg.obj \ - ..\generic\$D\filedlgg.obj \ - ..\generic\$D\fontdlgg.obj \ - ..\generic\$D\helphtml.obj \ - ..\generic\$D\helpwxht.obj \ - ..\generic\$D\helpxlp.obj \ - ..\generic\$D\imaglist.obj \ - ..\generic\$D\listctrl.obj \ - ..\generic\$D\msgdlgg.obj \ - ..\generic\$D\notebook.obj \ - ..\generic\$D\printps.obj \ - ..\generic\$D\prntdlgg.obj \ - ..\generic\$D\treectrl.obj - -COMMONOBJS = \ - ..\common\$D\y_tab.obj \ - ..\common\$D\choiccmn.obj \ - ..\common\$D\cmndata.obj \ - ..\common\$D\config.obj \ - ..\common\$D\ctrlcmn.obj \ - ..\common\$D\date.obj \ - ..\common\$D\datstrm.obj \ - ..\common\$D\db.obj \ - ..\common\$D\dbtable.obj \ - ..\common\$D\dcbase.obj \ - ..\common\$D\dlgcmn.obj \ - ..\common\$D\docmdi.obj \ - ..\common\$D\docview.obj \ - ..\common\$D\dynarray.obj \ - ..\common\$D\dynlib.obj \ - ..\common\$D\event.obj \ - ..\common\$D\extended.obj \ - ..\common\$D\ffile.obj \ - ..\common\$D\file.obj \ - ..\common\$D\fileconf.obj \ - ..\common\$D\filefn.obj \ - ..\common\$D\filesys.obj \ - ..\common\$D\framecmn.obj \ - ..\common\$D\fs_inet.obj \ - ..\common\$D\fs_zip.obj \ - ..\common\$D\ftp.obj \ - ..\common\$D\gdicmn.obj \ - ..\common\$D\gifdecod.obj \ - ..\common\$D\hash.obj \ - ..\common\$D\helpbase.obj \ - ..\common\$D\http.obj \ - ..\common\$D\imagbmp.obj \ - ..\common\$D\image.obj \ - ..\common\$D\imaggif.obj \ - ..\common\$D\imagjpeg.obj \ - ..\common\$D\imagpng.obj \ - ..\common\$D\imagpnm.obj \ - ..\common\$D\intl.obj \ - ..\common\$D\ipcbase.obj \ - ..\common\$D\layout.obj \ - ..\common\$D\list.obj \ - ..\common\$D\log.obj \ - ..\common\$D\memory.obj \ - ..\common\$D\mimetype.obj \ - ..\common\$D\module.obj \ - ..\common\$D\mstream.obj \ - ..\common\$D\object.obj \ - ..\common\$D\objstrm.obj \ - ..\common\$D\odbc.obj \ - ..\common\$D\paper.obj \ - ..\common\$D\prntbase.obj \ - ..\common\$D\process.obj \ - ..\common\$D\protocol.obj \ - ..\common\$D\resource.obj \ - ..\common\$D\sckaddr.obj \ - ..\common\$D\sckfile.obj \ - ..\common\$D\sckipc.obj \ - ..\common\$D\sckstrm.obj \ - ..\common\$D\sizer.obj \ - ..\common\$D\socket.obj \ - ..\common\$D\strconv.obj \ - ..\common\$D\stream.obj \ - ..\common\$D\string.obj \ - ..\common\$D\tbarbase.obj \ - ..\common\$D\textcmn.obj \ - ..\common\$D\textfile.obj \ - ..\common\$D\time.obj \ - ..\common\$D\timercmn.obj \ - ..\common\$D\tokenzr.obj \ - ..\common\$D\txtstrm.obj \ - ..\common\$D\unzip.obj \ - ..\common\$D\url.obj \ - ..\common\$D\utilscmn.obj \ - ..\common\$D\valgen.obj \ - ..\common\$D\validate.obj \ - ..\common\$D\valtext.obj \ - ..\common\$D\variant.obj \ - ..\common\$D\wfstream.obj \ - ..\common\$D\wincmn.obj \ - ..\common\$D\wxchar.obj \ - ..\common\$D\wxexpr.obj \ - ..\common\$D\zipstrm.obj \ - ..\common\$D\zstream.obj - -MSWOBJS = ..\msw\$D\accel.obj \ - ..\msw\$D\app.obj \ - ..\msw\ole\$D\automtn.obj \ - ..\msw\$D\bitmap.obj \ - ..\msw\$D\bmpbuttn.obj \ - ..\msw\$D\brush.obj \ - ..\msw\$D\button.obj \ - ..\msw\$D\caret.obj \ - ..\msw\$D\checkbox.obj \ - ..\msw\$D\checklst.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\ole\$D\dataobj.obj \ - ..\msw\$D\dc.obj \ - ..\msw\$D\dcclient.obj \ - ..\msw\$D\dcmemory.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\ole\$D\dropsrc.obj \ - ..\msw\ole\$D\droptgt.obj \ - ..\msw\$D\filedlg.obj \ - ..\msw\$D\font.obj \ - ..\msw\$D\fontdlg.obj \ - ..\msw\$D\frame.obj \ - ..\msw\$D\gauge95.obj \ - ..\msw\$D\gdiobj.obj \ - ..\msw\$D\helpwin.obj \ - ..\msw\$D\icon.obj \ - ..\msw\$D\imaglist.obj \ - ..\msw\$D\joystick.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\ole\$D\oleutils.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\regconf.obj \ - ..\msw\$D\region.obj \ - ..\msw\$D\registry.obj \ - ..\msw\$D\scrolbar.obj \ - ..\msw\$D\settings.obj \ - ..\msw\$D\slider95.obj \ - ..\msw\$D\spinbutt.obj \ - ..\msw\$D\statbmp.obj \ - ..\msw\$D\statbox.obj \ - ..\msw\$D\statbr95.obj \ - ..\msw\$D\statline.obj \ - ..\msw\$D\stattext.obj \ - ..\msw\$D\tabctrl.obj \ - ..\msw\$D\taskbar.obj \ - ..\msw\$D\tbar95.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 - -HTMLOBJS = \ - ..\html\$D\htmlcell.obj \ - ..\html\$D\htmlfilter.obj \ - ..\html\$D\htmlhelp.obj \ - ..\html\$D\htmlhelp_io.obj \ - ..\html\$D\htmlparser.obj \ - ..\html\$D\htmltag.obj \ - ..\html\$D\htmlwin.obj \ - ..\html\$D\htmlwinparser.obj \ - ..\html\$D\mod_fonts.obj \ - ..\html\$D\mod_hline.obj \ - ..\html\$D\mod_image.obj \ - ..\html\$D\mod_layout.obj \ - ..\html\$D\mod_links.obj \ - ..\html\$D\mod_list.obj \ - ..\html\$D\mod_pre.obj \ - ..\html\$D\mod_tables.obj \ - ..\html\$D\search.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -# Add $(HTMLOBJS) if wanting wxHTML classes -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 $(HTMLDIR)\$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 - -$(HTMLDIR)\$D: - mkdir $(HTMLDIR)\$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\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 - -..\common\$D\unzip.obj: ..\common\unzip.c - cl @<< -$(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@ -<< - -# 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\wx$(WXVERSION)$(LIBEXT).dll - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).lib - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).exp - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).pdb - -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).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 - -erase $(HTMLDIR)\$D\*.obj - -erase $(HTMLDIR)\$D\*.sbr - -erase $(HTMLDIR)\$D\*.pdb - -rmdir $(D) - -rmdir ole\$(D) - -rmdir ..\generic\$(D) - -rmdir ..\common\$(D) - -rmdir ..\html\$(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" - - -MFTYPE=vc -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw - diff --git a/src/msw/makefile.wat b/src/msw/makefile.wat deleted file mode 100644 index e440d57e10..0000000000 --- a/src/msw/makefile.wat +++ /dev/null @@ -1,1014 +0,0 @@ - - -# This file was automatically generated by tmake at 15:14, 1999/08/18 -# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE WAT.T! - -#!/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= busyinfo.obj & - choicdgg.obj & - gridg.obj & - laywin.obj & - numdlgg.obj & - panelg.obj & - progdlgg.obj & - prop.obj & - propform.obj & - proplist.obj & - sashwin.obj & - scrolwin.obj & - splitter.obj & - statusbr.obj & - tabg.obj & - textdlgg.obj & - tipdlg.obj & - wizard.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= caret.obj & - colrdlgg.obj & - dcpsg.obj & - dirdlgg.obj & - filedlgg.obj & - fontdlgg.obj & - helphtml.obj & - helpwxht.obj & - helpxlp.obj & - imaglist.obj & - listctrl.obj & - msgdlgg.obj & - notebook.obj & - printps.obj & - prntdlgg.obj & - treectrl.obj - -COMMONOBJS = & - y_tab.obj & - choiccmn.obj & - cmndata.obj & - config.obj & - ctrlcmn.obj & - date.obj & - datstrm.obj & - db.obj & - dbtable.obj & - dcbase.obj & - dlgcmn.obj & - docmdi.obj & - docview.obj & - dynarray.obj & - dynlib.obj & - event.obj & - extended.obj & - ffile.obj & - file.obj & - fileconf.obj & - filefn.obj & - filesys.obj & - framecmn.obj & - fs_inet.obj & - fs_zip.obj & - ftp.obj & - gdicmn.obj & - gifdecod.obj & - hash.obj & - helpbase.obj & - http.obj & - imagbmp.obj & - image.obj & - imaggif.obj & - imagpng.obj & - imagpnm.obj & - intl.obj & - ipcbase.obj & - layout.obj & - list.obj & - log.obj & - memory.obj & - mimetype.obj & - module.obj & - mstream.obj & - object.obj & - objstrm.obj & - odbc.obj & - paper.obj & - prntbase.obj & - process.obj & - protocol.obj & - resource.obj & - sckaddr.obj & - sckfile.obj & - sckipc.obj & - sckstrm.obj & - sizer.obj & - socket.obj & - strconv.obj & - stream.obj & - string.obj & - tbarbase.obj & - tbarsmpl.obj & - textcmn.obj & - textfile.obj & - time.obj & - timercmn.obj & - tokenzr.obj & - txtstrm.obj & - unzip.obj & - url.obj & - utilscmn.obj & - valgen.obj & - validate.obj & - valtext.obj & - variant.obj & - wfstream.obj & - wincmn.obj & - wxchar.obj & - wxexpr.obj & - zipstrm.obj & - zstream.obj - -MSWOBJS = accel.obj & - app.obj & - automtn.obj & - bitmap.obj & - bmpbuttn.obj & - brush.obj & - button.obj & - caret.obj & - checkbox.obj & - checklst.obj & - choice.obj & - clipbrd.obj & - colordlg.obj & - colour.obj & - combobox.obj & - control.obj & - curico.obj & - cursor.obj & - data.obj & - dataobj.obj & - dc.obj & - dcclient.obj & - dcmemory.obj & - dcprint.obj & - dcscreen.obj & - dde.obj & - dialog.obj & - dib.obj & - dibutils.obj & - dirdlg.obj & - dragimag.obj & - dropsrc.obj & - droptgt.obj & - filedlg.obj & - font.obj & - fontdlg.obj & - frame.obj & - gauge95.obj & - gaugemsw.obj & - gdiobj.obj & - helpwin.obj & - icon.obj & - iniconf.obj & - joystick.obj & - listbox.obj & - main.obj & - mdi.obj & - menu.obj & - menuitem.obj & - metafile.obj & - minifram.obj & - msgdlg.obj & - nativdlg.obj & - oleutils.obj & - ownerdrw.obj & - palette.obj & - pen.obj & - penwin.obj & - printdlg.obj & - printwin.obj & - radiobox.obj & - radiobut.obj & - regconf.obj & - region.obj & - registry.obj & - scrolbar.obj & - settings.obj & - slider95.obj & - slidrmsw.obj & - spinbutt.obj & - statbmp.obj & - statbox.obj & - statbr95.obj & - statline.obj & - stattext.obj & - tabctrl.obj & - taskbar.obj & - tbar95.obj & - tbarmsw.obj & - textctrl.obj & - thread.obj & - timer.obj & - tooltip.obj & - utils.obj & - utilsexc.obj & - uuid.obj & - wave.obj & - window.obj & - xpmhand.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) - -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) $< - -automtn.obj: $(MSWDIR)\automtn.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) $< - -checkbox.obj: $(MSWDIR)\checkbox.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -checklst.obj: $(MSWDIR)\checklst.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -choice.obj: $(MSWDIR)\choice.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) $< - -dataobj.obj: $(MSWDIR)\dataobj.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dc.obj: $(MSWDIR)\dc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcclient.obj: $(MSWDIR)\dcclient.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcmemory.obj: $(MSWDIR)\dcmemory.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcprint.obj: $(MSWDIR)\dcprint.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcscreen.obj: $(MSWDIR)\dcscreen.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dde.obj: $(MSWDIR)\dde.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) $< - -dragimag.obj: $(MSWDIR)\dragimag.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dropsrc.obj: $(MSWDIR)\dropsrc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -droptgt.obj: $(MSWDIR)\droptgt.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) $< - -iniconf.obj: $(MSWDIR)\iniconf.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -joystick.obj: $(MSWDIR)\joystick.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -listbox.obj: $(MSWDIR)\listbox.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) $< - -oleutils.obj: $(MSWDIR)\oleutils.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) $< - -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) $< - -regconf.obj: $(MSWDIR)\regconf.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -region.obj: $(MSWDIR)\region.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -registry.obj: $(MSWDIR)\registry.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -scrolbar.obj: $(MSWDIR)\scrolbar.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -settings.obj: $(MSWDIR)\settings.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -slider95.obj: $(MSWDIR)\slider95.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -slidrmsw.obj: $(MSWDIR)\slidrmsw.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) $< - -statline.obj: $(MSWDIR)\statline.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) $< - -utils.obj: $(MSWDIR)\utils.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -utilsexc.obj: $(MSWDIR)\utilsexc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -uuid.obj: $(MSWDIR)\uuid.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) $< - - - -######################################################## -# Common objects (always compiled) - -choiccmn.obj: $(COMMDIR)\choiccmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -cmndata.obj: $(COMMDIR)\cmndata.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -config.obj: $(COMMDIR)\config.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -ctrlcmn.obj: $(COMMDIR)\ctrlcmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -date.obj: $(COMMDIR)\date.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -datstrm.obj: $(COMMDIR)\datstrm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -db.obj: $(COMMDIR)\db.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dbtable.obj: $(COMMDIR)\dbtable.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcbase.obj: $(COMMDIR)\dcbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dlgcmn.obj: $(COMMDIR)\dlgcmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -docmdi.obj: $(COMMDIR)\docmdi.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -docview.obj: $(COMMDIR)\docview.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) $< - -extended.obj: $(COMMDIR)\extended.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -ffile.obj: $(COMMDIR)\ffile.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) $< - -filesys.obj: $(COMMDIR)\filesys.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -framecmn.obj: $(COMMDIR)\framecmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -fs_inet.obj: $(COMMDIR)\fs_inet.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -fs_zip.obj: $(COMMDIR)\fs_zip.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -ftp.obj: $(COMMDIR)\ftp.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gdicmn.obj: $(COMMDIR)\gdicmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gifdecod.obj: $(COMMDIR)\gifdecod.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -hash.obj: $(COMMDIR)\hash.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -helpbase.obj: $(COMMDIR)\helpbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -http.obj: $(COMMDIR)\http.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -imagbmp.obj: $(COMMDIR)\imagbmp.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -image.obj: $(COMMDIR)\image.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -imaggif.obj: $(COMMDIR)\imaggif.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -imagpng.obj: $(COMMDIR)\imagpng.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -imagpnm.obj: $(COMMDIR)\imagpnm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -intl.obj: $(COMMDIR)\intl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -ipcbase.obj: $(COMMDIR)\ipcbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -layout.obj: $(COMMDIR)\layout.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -list.obj: $(COMMDIR)\list.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) $< - -mstream.obj: $(COMMDIR)\mstream.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -object.obj: $(COMMDIR)\object.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -objstrm.obj: $(COMMDIR)\objstrm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -odbc.obj: $(COMMDIR)\odbc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -paper.obj: $(COMMDIR)\paper.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -prntbase.obj: $(COMMDIR)\prntbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -process.obj: $(COMMDIR)\process.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -protocol.obj: $(COMMDIR)\protocol.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -resource.obj: $(COMMDIR)\resource.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) $< - -sizer.obj: $(COMMDIR)\sizer.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -socket.obj: $(COMMDIR)\socket.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -strconv.obj: $(COMMDIR)\strconv.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -stream.obj: $(COMMDIR)\stream.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -string.obj: $(COMMDIR)\string.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tbarbase.obj: $(COMMDIR)\tbarbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tbarsmpl.obj: $(COMMDIR)\tbarsmpl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -textcmn.obj: $(COMMDIR)\textcmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -textfile.obj: $(COMMDIR)\textfile.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -time.obj: $(COMMDIR)\time.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -timercmn.obj: $(COMMDIR)\timercmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tokenzr.obj: $(COMMDIR)\tokenzr.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -txtstrm.obj: $(COMMDIR)\txtstrm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -unzip.obj: $(COMMDIR)\unzip.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -url.obj: $(COMMDIR)\url.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -utilscmn.obj: $(COMMDIR)\utilscmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -valgen.obj: $(COMMDIR)\valgen.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -validate.obj: $(COMMDIR)\validate.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -valtext.obj: $(COMMDIR)\valtext.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -variant.obj: $(COMMDIR)\variant.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wfstream.obj: $(COMMDIR)\wfstream.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wincmn.obj: $(COMMDIR)\wincmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wxchar.obj: $(COMMDIR)\wxchar.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wxexpr.obj: $(COMMDIR)\wxexpr.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -zipstrm.obj: $(COMMDIR)\zipstrm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -zstream.obj: $(COMMDIR)\zstream.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) - -busyinfo.obj: $(GENDIR)\busyinfo.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -choicdgg.obj: $(GENDIR)\choicdgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gridg.obj: $(GENDIR)\gridg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -laywin.obj: $(GENDIR)\laywin.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -numdlgg.obj: $(GENDIR)\numdlgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -panelg.obj: $(GENDIR)\panelg.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) $< - -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) $< - -tipdlg.obj: $(GENDIR)\tipdlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wizard.obj: $(GENDIR)\wizard.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 - -MFTYPE=wat -makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t - cd $(WXWIN)\distrib\msw\tmake - tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE) - copy makefile.$(MFTYPE) $(WXWIN)\src\msw diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp deleted file mode 100644 index 499c4f4972..0000000000 --- a/src/msw/mdi.cpp +++ /dev/null @@ -1,1206 +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 wxChar wxMDIFrameClassName[]; -extern wxChar wxMDIChildFrameClassName[]; -extern wxWindow *wxWndHook; // from window.cpp - -extern void wxAssociateWinWithHandle(HWND hWnd, wxWindow *win); - -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(), _T("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; - - 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; - } - - // always pass this message DefFrameProc(), otherwise MDI menu - // commands (and sys commands - more surprizingly!) won't work - MSWDefWindowProc(message, wParam, lParam); - 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; - - case WM_SIZE: - // as we don't (usually) resize the MDI client to exactly fit the - // client area (we put it below the toolbar, above statusbar &c), - // we should not pass this one to DefFrameProc - 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.Translate(this, msg) ) - { - 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(GetWinHwnd(parent->GetClientWindow()), - 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; - - wxWndHook = NULL; - wxAssociateWinWithHandle((HWND) GetHWND(), this); - - // VZ: what's this? an act of piracy? - //SetWindowLong(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 = 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(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(bool maximize) -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - if ( parent && parent->GetClientWindow() ) - { - ::SendMessage(GetWinHwnd(parent->GetClientWindow()), - maximize ? WM_MDIMAXIMIZE : WM_MDIRESTORE, - (WPARAM)GetHwnd(), 0); - } -} - -void wxMDIChildFrame::Restore() -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - if ( parent && parent->GetClientWindow() ) - { - ::SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIRESTORE, - (WPARAM) GetHwnd(), 0); - } -} - -void wxMDIChildFrame::Activate() -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - if ( parent && parent->GetClientWindow() ) - { - ::SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIACTIVATE, - (WPARAM) 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_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); - } - // fall through - - case WM_MOVE: - // must pass WM_MOVE to DefMDIChildProc() to recalculate MDI client - // scrollbars if necessary - - // fall through - - case WM_SIZE: - // must pass WM_SIZE to DefMDIChildProc(), otherwise many weird - // things happen - MSWDefWindowProc(message, wParam, lParam); - break; - - case WM_SYSCOMMAND: - // DefMDIChildProc handles SC_{NEXT/PREV}WINDOW here, so pass it - // the message (the base class version does not) - return MSWDefWindowProc(message, wParam, lParam); - - 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(GetHwnd(), GWL_EXSTYLE); - DWORD dwStyle = ::GetWindowLong(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) -{ - return m_acceleratorTable.Translate(GetParent(), msg); -} - -// --------------------------------------------------------------------------- -// misc -// --------------------------------------------------------------------------- - -void wxMDIChildFrame::MSWDestroyWindow() -{ - MSWDetachWindowMenu(); - invalidHandle = 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(); - SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIDESTROY, - (WPARAM)oldHandle, 0); - 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(GetWinHwnd(pFrameWnd->GetClientWindow()), GWL_EXSTYLE); - DWORD dwThisStyle = ::GetWindowLong(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, - _T("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, _T("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++ ) - { - wxChar buf[256]; - int chars = GetMenuString(hmenu, i, buf, WXSIZEOF(buf), MF_BYPOSITION); - if ( chars == 0 ) - { - wxLogLastError(_T("GetMenuString")); - - continue; - } - - if ( wxStripMenuCodes(wxString(buf)).IsSameAs(_T("Help")) ) - { - success = TRUE; - ::InsertMenu(hmenu, i, MF_BYPOSITION | MF_POPUP | MF_STRING, - (UINT)subMenu, _T("&Window")); - break; - } - } - - if ( !success ) - { - ::AppendMenu(hmenu, MF_POPUP, (UINT)subMenu, _T("&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 87c892530b..0000000000 --- a/src/msw/menu.cpp +++ /dev/null @@ -1,1119 +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 - -// ============================================================================ -// implementation -// ============================================================================ - -// --------------------------------------------------------------------------- -// wxMenu construction, adding and removing menu items -// --------------------------------------------------------------------------- - -// Construct a menu with optional title (then use append) -void wxMenu::Init(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() ; - } - - Callback(func); -} - -// 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, _T("can't append NULL item to the menu") ); - -#if wxUSE_ACCEL - // check for accelerators: they are given after '\t' - wxString label = pItem->GetName(); - int posTab = label.Find(_T('\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; - wxSscanf(current.c_str() + 1, _T("%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()); - } - } -#endif // wxUSE_ACCEL - - 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(); - } - - LPCTSTR 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 = (LPCTSTR)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(_T("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, _T("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; -} - -#if wxUSE_ACCEL - -// --------------------------------------------------------------------------- -// 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; -} - -#endif // wxUSE_ACCEL - -// --------------------------------------------------------------------------- -// wxMenu functions implemented in wxMenuItem -// --------------------------------------------------------------------------- - -void wxMenu::Enable(int id, bool Flag) -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK_RET( item != NULL, _T("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, _T("invalid item id") ); - - return item->IsEnabled(); -} - -void wxMenu::Check(int id, bool Flag) -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK_RET( item != NULL, _T("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, _T("invalid item id") ); - - return item->IsChecked(); -} - -void wxMenu::SetLabel(int id, const wxString& label) -{ - wxMenuItem *item = FindItemForId(id) ; - wxCHECK_RET( item, _T("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(_T("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(_T("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(_T("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(_T("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; - - // 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) - 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 -// --------------------------------------------------------------------------- - -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, _T("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, _T("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, _T("can't refresh a menubar withotu a frame") ); - - DrawMenuBar((HWND)m_menuBarFrame->GetHWND()) ; -} - -WXHMENU wxMenuBar::Create() -{ - wxCHECK_MSG( !m_hMenu, TRUE, _T("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, _T("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, _T("attempt to check an item which doesn't exist") ); - wxCHECK_RET( item->IsCheckable(), _T("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, _T("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, _T("wxMenuBar::IsEnabled(): no such item") ); - - int flag = ::GetMenuState(GetHmenuOf(itemMenu), id, MF_BYCOMMAND) ; - - // don't "and" with MF_ENABLED because its value is 0 - return (flag & MF_DISABLED) == 0; -} - -void wxMenuBar::SetLabel(int id, const wxString& label) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_RET( item, _T("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, _T(""), _T("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, _T("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, _T(""), _T("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(_T("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, _T("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 wxChar *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(_T("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] = _T(""); - } - 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; - -#if wxUSE_ACCEL - // 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; - } -#endif // wxUSE_ACCEL -} - -// --------------------------------------------------------------------------- -// 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(_T("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 bd46e7336a..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/window.h" - #include "wx/accel.h" - #include "wx/menu.h" - #include "wx/string.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, _T("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(), _T("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; - } - - LPCTSTR data; -#if wxUSE_OWNER_DRAWN - if ( IsOwnerDrawn() ) - { - flagsOld |= MF_OWNERDRAW; - data = (LPCTSTR)this; - } - else -#endif //owner drawn - { - flagsOld |= MF_STRING; - data = strName; - } - - if ( ::ModifyMenu(hMenu, id, - MF_BYCOMMAND | flagsOld, - id, data) == 0xFFFFFFFF ) - { - wxLogLastError(_T("ModifyMenu")); - } - } -} - diff --git a/src/msw/metafile.cpp b/src/msw/metafile.cpp deleted file mode 100644 index 0d4a30f506..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(_T("")) == 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 != _T(""))) - 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 != _T("") && 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, WXSTRINGCAST string, wxStrlen(WXSTRINGCAST 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(filename.mb_str(wxConvFile), "rb"); - if (!fd) return FALSE; - - wxChar tempFileBuf[256]; - wxGetTempFileName(_T("mf"), tempFileBuf); - FILE *fHandle = fopen(wxConvFile.cWX2MB(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 819e0b01d3..0000000000 --- a/src/msw/minifram.cpp +++ /dev/null @@ -1,1627 +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 - - -#ifdef __WIN32__ - -#include "wx/minifram.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) -#endif - - -#else - - -#if wxUSE_ITSY_BITSY - -#include "wx/minifram.h" - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#ifndef wxUSE_NORLANDER_HEADERS -#include "wx/msw/gnuwin32/extra.h" -#endif -#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,_T("ibSize"),(HANDLE)i) -#define GETCAPTIONSIZE(h) (UINT)GetProp(h,_T("ibSize")) -#define FREECAPTIONSIZE(h) RemoveProp(h,_T("ibSize")) - -#define SETMENUWASUPFLAG(h,i) (UINT)SetProp(h,_T("ibFlag"),(HANDLE)i) -#define GETMENUWASUPFLAG(h) (UINT)GetProp(h,_T("ibFlag")) -#define FREEMENUWASUPFLAG(h) RemoveProp(h,_T("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(_T("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 ; - LPTSTR lpsz ; - LOGFONT lf ; - TEXTMETRIC tm ; - int cx ; - int cy ; - SIZE Size ; - - lpsz = (wxChar*)GlobalAllocPtr( GHND, (ui + 2) * sizeof(wxChar) ); - 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"). - wxStrcpy( lf.lfFaceName, _T("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 - -#endif // __WIN32__ diff --git a/src/msw/msgdlg.cpp b/src/msw/msgdlg.cpp deleted file mode 100644 index f90d620808..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, (LPCTSTR)(const wxChar *)m_message, (LPCTSTR)(const wxChar *)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 8db2ed7b57..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 == _T("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(_T("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 == _T("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 == _T("EDIT")) - { - win = new wxTextCtrl; - } - else if (str == _T("LISTBOX")) - { - win = new wxListBox; - } - else if (str == _T("SCROLLBAR")) - { - win = new wxScrollBar; - } -#if defined(__WIN95__) && !defined(__TWIN32__) - else if (str == _T("MSCTLS_UPDOWN32")) - { - win = new wxSpinButton; - } -#endif - else if (str == _T("MSCTLS_TRACKBAR32")) - { - // Need to ascertain if it's horiz or vert - win = new wxSlider; - } - else if (str == _T("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(_T("Please make SS_BITMAP statics into owner-draw buttons.")); - } -#endif - } - else - { - wxString msg(_T("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 8c8e75e196..0000000000 --- a/src/msw/notebook.cpp +++ /dev/null @@ -1,555 +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__ -#ifndef wxUSE_NORLANDER_HEADERS - #include "wx/msw/gnuwin32/extra.h" -#endif -#endif -#endif - -#if !defined(__GNUWIN32__) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS) - #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 - if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) ) - return FALSE; - - // 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, _T("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, _T("notebook page out of range") ); - - TC_ITEM tcItem; - tcItem.mask = TCIF_TEXT; - tcItem.pszText = (wxChar *)strText.c_str(); - - return TabCtrl_SetItem(m_hwnd, nPage, &tcItem) != 0; -} - -wxString wxNotebook::GetPageText(int nPage) const -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), _T(""), _T("notebook page out of range") ); - - wxChar 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, _T("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, _T("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, _T("notebook page out of range") ); - - if ( m_nSelection == nPage ) { - // advance selection backwards - the page being deleted shouldn't be left - // selected - AdvanceSelection(FALSE); - } - - TabCtrl_DeleteItem(m_hwnd, nPage); - - delete m_aPages[nPage]; - m_aPages.Remove(nPage); - - if ( m_aPages.IsEmpty() ) { - // no selection if the notebook became empty - m_nSelection = -1; - } - - return TRUE; -} - -// remove one page from the notebook, without deleting -bool wxNotebook::RemovePage(int nPage) -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, _T("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 ); - - // do add the tab to the control - - // init all fields to 0 - TC_ITEM tcItem; - memset(&tcItem, 0, sizeof(tcItem)); - - if ( imageId != -1 ) - { - tcItem.mask |= TCIF_IMAGE; - tcItem.iImage = imageId; - } - - if ( !strText.IsEmpty() ) - { - tcItem.mask |= TCIF_TEXT; - tcItem.pszText = (wxChar *)strText.c_str(); // const_cast - } - - if ( TabCtrl_InsertItem(m_hwnd, nPage, &tcItem) == -1 ) { - wxLogError(_T("Can't create the notebook page '%s'."), strText.c_str()); - - return FALSE; - } - - // if the inserted page is before the selected one, we must update the - // index of the selected page - if ( nPage <= m_nSelection ) - { - // one extra page added - m_nSelection++; - } - - // save the pointer to the page - m_aPages.Insert(pPage, nPage); - - // 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); - - // some page should be selected: either this one or the first one if there is - // still no selection - int selNew = -1; - if ( bSelect ) - selNew = nPage; - else if ( m_nSelection == -1 ) - selNew = 0; - - if ( selNew != -1 ) - SetSelection(selNew); - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxNotebook callbacks -// ---------------------------------------------------------------------------- - -void wxNotebook::OnSize(wxSizeEvent& event) -{ - // 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 ) - { - int sel = event.GetOldSelection(); - if ( sel != -1 ) - m_aPages[sel]->Show(FALSE); - - sel = event.GetSelection(); - if ( sel != -1 ) - { - wxNotebookPage *pPage = m_aPages[sel]; - pPage->Show(TRUE); - pPage->SetFocus(); - } - - m_nSelection = sel; - } - - // 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 -// ---------------------------------------------------------------------------- - -// generate the page changing and changed events, 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; - } - - event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED); - ProcessEvent(event); - - s_bInsideChangePage = FALSE; -} diff --git a/src/msw/ole/automtn.cpp b/src/msw/ole/automtn.cpp deleted file mode 100644 index c838b38d78..0000000000 --- a/src/msw/ole/automtn.cpp +++ /dev/null @@ -1,1161 +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 -#include -#define _huge -#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 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() == _T("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(classId.mb_str()); - - if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) - { - wxLogWarning(_T("Cannot obtain CLSID from ProgID")); - return FALSE; - } - - if (FAILED(GetActiveObject(clsId, NULL, &pUnk))) - { - wxLogWarning(_T("Cannot find an active object")); - return FALSE; - } - - if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &m_dispatchPtr) != S_OK) - { - wxLogWarning(_T("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; - - BasicString unicodeName(classId.mb_str()); - - if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) - { - wxLogWarning(_T("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(_T("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 == _T("long")) - { - oleVariant.vt = VT_I4; - oleVariant.lVal = variant.GetLong() ; - } - else if (type == _T("double")) - { - oleVariant.vt = VT_R8; - oleVariant.dblVal = variant.GetDouble(); - } - else if (type == _T("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 == _T("string")) - { - wxString str( variant.GetString() ); - oleVariant.vt = VT_BSTR; - oleVariant.bstrVal = ConvertStringToOle(str); - } - else if (type == _T("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 == _T("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 == _T("void*")) - { - oleVariant.vt = VT_DISPATCH; - oleVariant.pdispVal = (IDispatch*) variant.GetVoidPtr(); - } - else if (type == _T("list") || type == _T("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(_T("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(str.mb_str()); - return bstr.Get(); -} - -static wxString ConvertStringFromOle(BSTR bStr) -{ - int len = SysStringLen(bStr) + 1; - char *buf = new char[len]; - (void)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; -} - -// this function is not used -#if 0 -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); -} -#endif // 0 - -/* - * 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(_T("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(_T("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 1b3c066a8b..0000000000 --- a/src/msw/ole/dataobj.cpp +++ /dev/null @@ -1,504 +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 -#ifndef WX_PRECOMP -#include "wx/intl.h" -#endif -#include "wx/defs.h" - -#if defined(__WIN32__) && !defined(__GNUWIN32__) || defined(wxUSE_NORLANDER_HEADERS) - -#include "wx/log.h" -#include "wx/dataobj.h" - -#include -#ifdef wxUSE_NORLANDER_HEADERS - #include -#endif -#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(_T("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(_T("wxIEnumFORMATETC::Skip")); - - if ( m_nCurrent == 0 ) - m_nCurrent++; - - return S_FALSE; -} - -STDMETHODIMP wxIEnumFORMATETC::Reset() -{ - wxLogTrace(_T("wxIEnumFORMATETC::Reset")); - - m_nCurrent = 0; - - return S_OK; -} - -STDMETHODIMP wxIEnumFORMATETC::Clone(IEnumFORMATETC **ppenum) -{ - wxLogTrace(_T("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(_T("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(_T("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(_T("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(_T("wxIDataObject::SetData")); - return E_NOTIMPL; -} - -// information functions -STDMETHODIMP wxIDataObject::QueryGetData(FORMATETC *pformatetc) -{ - // do we accept data in this format? - if ( pformatetc == NULL ) { - wxLogTrace(_T("wxIDataObject::QueryGetData: invalid ptr.")); - return E_INVALIDARG; - } - - // the only one allowed by current COM implementation - if ( pformatetc->lindex != -1 ) { - wxLogTrace(_T("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(_T("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(_T("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(_T("wxIDataObject::QueryGetData: %s ok"), - wxDataObject::GetFormatName((wxDataFormatId)pformatetc->cfFormat)); - return S_OK; - } - else { - wxLogTrace(_T("wxIDataObject::QueryGetData: %s unsupported"), - wxDataObject::GetFormatName((wxDataFormatId)pformatetc->cfFormat)); - return DV_E_FORMATETC; - } -} - -STDMETHODIMP wxIDataObject::GetCanonicalFormatEtc(FORMATETC *pFormatetcIn, - FORMATETC *pFormatetcOut) -{ - wxLogTrace(_T("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(_T("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 86f31d8c58..0000000000 --- a/src/msw/ole/dropsrc.cpp +++ /dev/null @@ -1,245 +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 -#ifndef WX_PRECOMP -#include "wx/window.h" -#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 -#ifdef wxUSE_NORLANDER_HEADERS -#include -#endif - -#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, _T("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(_T("Drag & drop operation failed.")); - } - else { - wxLogDebug(_T("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 eaf3737995..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(_T("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(_T("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(_T("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 wxChar *)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 - wxChar **aszFiles = new wxChar *[nFiles]; - UINT len, n; - for ( n = 0; n < nFiles; n++ ) { - // +1 for terminating NUL - len = ::DragQueryFile(hdrop, n, NULL, 0) + 1; - - aszFiles[n] = new wxChar[len]; - - UINT len2 = ::DragQueryFile(hdrop, n, aszFiles[n], len); - if ( len2 != len - 1 ) { - wxLogDebug(_T("In wxFileDropTarget::OnDrop DragQueryFile returned %d " - "characters, %d expected."), len2, len - 1); - } - } - - bool bResult = OnDropFiles(x, y, nFiles, (const wxChar**) 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 34f1109c68..0000000000 --- a/src/msw/ole/oleutils.cpp +++ /dev/null @@ -1,210 +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), -#if !defined( __VISUALC__) || (__VISUALC__!=1010) - 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), -#endif - 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 ac55158ea5..0000000000 --- a/src/msw/ole/uuid.cpp +++ /dev/null @@ -1,176 +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) -#ifdef _UNICODE - UuidToString(&m_uuid, (unsigned short **)&m_pszUuid); -#else - UuidToString(&m_uuid, &m_pszUuid); -#endif - - // allocate new buffer - m_pszCForm = new wxChar[UUID_CSTRLEN]; - // and fill it - memcpy(m_pszCForm, uuid.m_pszCForm, UUID_CSTRLEN*sizeof(wxChar)); -} - -// 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) -#ifdef _UNICODE - UuidToString(&m_uuid, (unsigned short **)&m_pszUuid); -#else - UuidToString(&m_uuid, &m_pszUuid); -#endif - - // allocate new buffer if not done yet - if ( !m_pszCForm ) - m_pszCForm = new wxChar[UUID_CSTRLEN]; - - // and fill it - memcpy(m_pszCForm, uuid.m_pszCForm, UUID_CSTRLEN*sizeof(wxChar)); - - 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 ) -#ifdef _UNICODE - RpcStringFree((unsigned short **)&m_pszUuid); -#else - RpcStringFree(&m_pszUuid); -#endif - - // 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 -#ifdef _UNICODE - UuidToString(&m_uuid, (unsigned short **)&m_pszUuid); -#else - UuidToString(&m_uuid, &m_pszUuid); -#endif - - // 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 wxChar *pc) -{ - // get UUID from string -#ifdef _UNICODE - if ( UuidFromString((unsigned short *)pc, &m_uuid) != RPC_S_OK) -#else - if ( UuidFromString((wxUChar *)pc, &m_uuid) != RPC_S_OK) -#endif - // failed: probably invalid string - return FALSE; - - // transform it back to string to normalize it -#ifdef _UNICODE - UuidToString(&m_uuid, (unsigned short **)&m_pszUuid); -#else - UuidToString(&m_uuid, &m_pszUuid); -#endif - - // 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 wxChar[UUID_CSTRLEN]; - - wsprintf(m_pszCForm, _T("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 d60bc8c408..0000000000 --- a/src/msw/ownerdrw.cpp +++ /dev/null @@ -1,245 +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... - wxChar *szStripped = new wxChar[m_strName.Len()]; - wxStripMenuCodes((wxChar *)m_strName.c_str(), szStripped); - wxString str = szStripped; - delete [] szStripped; - - // # without this menu items look too tightly packed (at least under Windows) - str += _T('W'); // 'W' is typically the widest letter - - dc.GetTextExtent(str, (long *)pwidth, (long *)pheight); - - // JACS: items still look too tightly packed, so adding 2 pixels. - (*pheight) = (*pheight) + 2; - - 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) - -// JACS: TODO. Why does a disabled but highlighted item still -// get drawn embossed? How can we tell DrawState that we don't want the -// embossing? - -#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 wxChar *)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 53b26ab1e3..0000000000 --- a/src/msw/pen.cpp +++ /dev/null @@ -1,445 +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); - - 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; - } - - LOGBRUSH logb; - - 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; -#ifdef __WXDEBUG__ - // this should be unnecessary (it's unused) but suppresses the Purigy - // messages about uninitialized memory read - 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; - switch (wx_style) - { - case wxDOT: - cstyle = PS_DOT; - break; - - case wxDOT_DASH: - cstyle = PS_DASHDOT; - break; - - case wxSHORT_DASH: - case wxLONG_DASH: - cstyle = PS_DASH; - break; - - case wxTRANSPARENT: - cstyle = PS_NULL; - break; - - case wxUSER_DASH: -#ifdef __WIN32__ - // Win32s doesn't have PS_USERSTYLE - if (wxGetOsVersion()==wxWINDOWS_NT || wxGetOsVersion()==wxWIN95) - 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 691df4355b..0000000000 --- a/src/msw/pnghand.cpp +++ /dev/null @@ -1,793 +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 "wx/palette.h" -#include "wx/bitmap.h" -#include "wx/utils.h" -#include "wx/msw/pngread.h" -#include "wx/msw/dibutils.h" - -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() -{ - 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 ( wxChar* 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() -{ - 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() -{ - 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(wxChar * ImageFileName) -{ - int number_passes; - - if (ImageFileName) - wxStrcpy(filename, ImageFileName); - - FILE *fp; - png_struct *png_ptr; - png_info *info_ptr; - - /* open the file */ - fp = fopen(wxConvFile.cWX2MB(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); - - // don't use the object to prevent warnings from VC++ about "unportable - // interaction between setjmp and C++ object destruction" (this is a correct - // warning, of course!) - wxPNGReaderIter *iter = new wxPNGReaderIter(this); - 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 iter; - 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(wxChar * ImageFileName) -{ - if (ImageFileName) - wxStrcpy(filename, ImageFileName); - - wxPNGReaderIter iter(this); - FILE *fp; - png_struct *png_ptr; - png_info *info_ptr; - - /* open the file */ - fp = fopen(wxConvFile.cWX2MB(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(wxChar *filename, wxChar *name) -{ - wxChar nameStr[256]; - if ( name ) - wxStrcpy(nameStr, name); - else - { - wxStrcpy(nameStr, filename); - wxStripExtension(nameStr); - } - - if ( GetDepth() > 4 ) - { - // Only a depth of 4 and below allowed - return FALSE; - } - - if ( !GetPalette() ) - return FALSE; - - ofstream str(wxConvFile.cWX2MB(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(WXSTRINGCAST 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 4034697c85..0000000000 --- a/src/msw/printwin.cpp +++ /dev/null @@ -1,411 +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__) -#ifdef STRICT - ::SetAbortProc((HDC) dc->GetHDC(), (ABORTPROC) m_lpAbortProc); -#else - ::SetAbortProc((HDC) dc->GetHDC(), (FARPROC) m_lpAbortProc); -#endif -#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(_T("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 48d5ba171a..0000000000 --- a/src/msw/radiobox.cpp +++ /dev/null @@ -1,784 +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, _T("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, _T(""), 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, _T(""), _T("invalid radiobox index") ); - - return wxGetWindowText(m_radioButtons[item]); -} - -void wxRadioBox::SetLabel(int item, const wxString& label) -{ - wxCHECK_RET( item >= 0 && item < m_noItems, _T("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(_T("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), _T("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 widthOld, heightOld; - GetSize(&widthOld, &heightOld); - - 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; - - wxString buf; - - 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 - buf = wxGetWindowText(m_radioButtons[i]); - GetTextExtent(buf, ¤t_width, &cyf); - 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 - buf = wxGetWindowText(m_radioButtons[i]); - GetTextExtent(buf, ¤t_width, &cyf); - - // 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); -} - -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.SetString( GetString(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, _T("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 8f7c9786be..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 wxChar *)label, - msStyle,0,0,0,0, - (HWND) parent->GetHWND(), (HMENU)m_windowId, wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, _T("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 != _T("")) - { - 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 wxChar *)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 6ec17a61ff..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, _T("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(_T("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(_T("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(_T("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(_T("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(_T("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(_T("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.IsEmpty() ) { - 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 fe8897463e..0000000000 --- a/src/msw/registry.cpp +++ /dev/null @@ -1,849 +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 wxChar *szName; - const wxChar *szShortName; -} -aStdKeys[] = -{ - { HKEY_CLASSES_ROOT, _T("HKEY_CLASSES_ROOT"), _T("HKCR") }, -#ifdef __WIN32__ - { HKEY_CURRENT_USER, _T("HKEY_CURRENT_USER"), _T("HKCU") }, - { HKEY_LOCAL_MACHINE, _T("HKEY_LOCAL_MACHINE"), _T("HKLM") }, - { HKEY_USERS, _T("HKEY_USERS"), _T("HKU") }, // short name? - { HKEY_PERFORMANCE_DATA, _T("HKEY_PERFORMANCE_DATA"), _T("HKPD") }, -#if WINVER >= 0x0400 - { HKEY_CURRENT_CONFIG, _T("HKEY_CURRENT_CONFIG"), _T("HKCC") }, -#ifndef __GNUWIN32__ - { HKEY_DYN_DATA, _T("HKEY_DYN_DATA"), _T("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 _T('\\') - -// 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 wxChar *szKey); - -// combines value and key name (uses static buffer!) -static const wxChar *GetFullName(const wxRegKey *pKey, - const wxChar *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 wxChar *wxRegKey::GetStdKeyName(size_t key) -{ - // return empty string if key is invalid - wxCHECK_MSG( key < nStdKeys, _T(""), _T("invalid key in wxRegKey::GetStdKeyName") ); - - return aStdKeys[key].szName; -} - -const wxChar *wxRegKey::GetStdKeyShortName(size_t key) -{ - // return empty string if key is invalid - wxCHECK( key < nStdKeys, _T("") ); - - 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(_T("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(_T("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; -} - -#if defined( __GNUWIN32__ ) && !defined(wxUSE_NORLANDER_HEADERS) -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 wxChar *szKey) -{ - if ( !Open() ) - return FALSE; - - wxRegKey key(*this, szKey); - return key.DeleteSelf(); -} - -bool wxRegKey::DeleteValue(const wxChar *szValue) -{ - if ( !Open() ) - return FALSE; - -#if defined(__WIN32__) && !defined(__TWIN32__) - m_dwLastError = RegDeleteValue((HKEY) m_hKey, WXSTRINGCAST 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 wxChar *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, WXSTRINGCAST 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 values -bool wxRegKey::HasValues() const -{ - // suppress possible messages from GetFirstValue() - wxLogNull nolog; - - // just call GetFirstValue with dummy parameters - wxString str; - long l; - return CONST_CAST GetFirstValue(str, l); -} - -// 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 wxChar *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 wxChar *szValue) const -{ - #ifdef __WIN32__ - if ( ! CONST_CAST Open() ) - return Type_None; - - DWORD dwType; - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST 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 wxChar *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 wxChar *szValue, long *plValue) const -{ - if ( CONST_CAST Open() ) { - DWORD dwType, dwSize = sizeof(DWORD); - RegString pBuf = (RegString)plValue; - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST 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, - _T("Type mismatch in wxRegKey::QueryValue().") ); - - return TRUE; - } - } - else - return FALSE; -} - -#endif //Win32 - -bool wxRegKey::QueryValue(const wxChar *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, WXSTRINGCAST szValue, RESERVED, - &dwType, NULL, &dwSize); - if ( m_dwLastError == ERROR_SUCCESS ) { - RegString pBuf = (RegString)strValue.GetWriteBuf(dwSize); - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED, - &dwType, pBuf, &dwSize); - strValue.UngetWriteBuf(); - if ( m_dwLastError == ERROR_SUCCESS ) { - // check that it was the right type - wxASSERT_MSG( dwType == REG_SZ, - _T("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 wxChar *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__) - wxChar szValueName[1024]; // @@ use RegQueryInfoKey... - DWORD dwValueLen = WXSIZEOF(szValueName); - - 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; - - wxChar 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 wxChar *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 wxChar *szKey) -{ - HKEY hkeyDummy; - if ( RegOpenKey( (HKEY) hRootKey, szKey, &hkeyDummy) == ERROR_SUCCESS ) { - RegCloseKey(hkeyDummy); - return TRUE; - } - else - return FALSE; -} - -const wxChar *GetFullName(const wxRegKey *pKey, const wxChar *szValue) -{ - static wxString s_str; - s_str = pKey->GetName(); - if ( !wxIsEmpty(szValue) ) - s_str << _T("\\") << 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 614a0cf640..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), _T("SCROLLBAR"), _T("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 d6334217be..0000000000 --- a/src/msw/slider95.cpp +++ /dev/null @@ -1,647 +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__) || defined(wxUSE_NORLANDER_HEADERS) -#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, _T("STATIC"), NULL, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - - // Now create min static control - wxSprintf(wxBuffer, _T("%d"), minValue); - m_staticMin = (WXHWND) CreateWindowEx(0, _T("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, _T("")); - - SetFont(parent->GetFont()); - - if ( m_windowStyle & wxSL_LABELS ) - { - // Finally, create max value static item - wxSprintf(wxBuffer, _T("%d"), maxValue); - m_staticMax = (WXHWND) CreateWindowEx(0, _T("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(GetHwnd(), TBM_GETPOS, 0, 0); -} - -void wxSlider95::SetValue(int value) -{ - ::SendMessage(GetHwnd(), TBM_SETPOS, (WPARAM)TRUE, (LPARAM)value); - if (m_staticValue) - { - wxSprintf(wxBuffer, _T("%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; -} - -// TODO one day, make sense of all this horros and replace it with a readable -// DoGetBestSize() -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); - - wxChar 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(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(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(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(GetHwnd(), x1, y1, w1, h1, TRUE); - } - } -} - -void wxSlider95::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - ::SendMessage(GetHwnd(), TBM_SETRANGE, TRUE, MAKELONG(minValue, maxValue)); - - wxChar buf[40]; - if ( m_staticMin ) - { - wxSprintf(buf, _T("%d"), m_rangeMin); - SetWindowText((HWND) m_staticMin, buf); - } - - if ( m_staticMax ) - { - wxSprintf(buf, _T("%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( GetHwnd(), TBM_SETTICFREQ, (WPARAM) n, (LPARAM) pos ); -} - -void wxSlider95::SetPageSize(int pageSize) -{ - ::SendMessage( GetHwnd(), TBM_SETPAGESIZE, (WPARAM) 0, (LPARAM) pageSize ); - m_pageSize = pageSize; -} - -int wxSlider95::GetPageSize() const -{ - return m_pageSize; -} - -void wxSlider95::ClearSel() -{ - ::SendMessage( GetHwnd(), TBM_CLEARSEL, (WPARAM) TRUE, (LPARAM) 0 ); -} - -void wxSlider95::ClearTicks() -{ - ::SendMessage( GetHwnd(), TBM_CLEARTICS, (WPARAM) TRUE, (LPARAM) 0 ); -} - -void wxSlider95::SetLineSize(int lineSize) -{ - m_lineSize = lineSize; - ::SendMessage( GetHwnd(), TBM_SETLINESIZE, (WPARAM) 0, (LPARAM) lineSize ); -} - -int wxSlider95::GetLineSize() const -{ - return (int) ::SendMessage( GetHwnd(), TBM_GETLINESIZE, (WPARAM) 0, (LPARAM) 0 ); -} - -int wxSlider95::GetSelEnd() const -{ - return (int) ::SendMessage( GetHwnd(), TBM_SETSELEND, (WPARAM) 0, (LPARAM) 0 ); -} - -int wxSlider95::GetSelStart() const -{ - return (int) ::SendMessage( GetHwnd(), TBM_GETSELSTART, (WPARAM) 0, (LPARAM) 0 ); -} - -void wxSlider95::SetSelection(int minPos, int maxPos) -{ - ::SendMessage( GetHwnd(), TBM_SETSEL, (WPARAM) TRUE, (LPARAM) MAKELONG( minPos, maxPos) ); -} - -void wxSlider95::SetThumbLength(int len) -{ - ::SendMessage( GetHwnd(), TBM_SETTHUMBLENGTH, (WPARAM) len, (LPARAM) 0 ); -} - -int wxSlider95::GetThumbLength() const -{ - return (int) ::SendMessage( GetHwnd(), TBM_GETTHUMBLENGTH, (WPARAM) 0, (LPARAM) 0 ); -} - -void wxSlider95::SetTick(int tickPos) -{ - ::SendMessage( 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 18f85538ea..0000000000 --- a/src/msw/slidrmsw.cpp +++ /dev/null @@ -1,587 +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, _T("STATIC"), NULL, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - - // Now create min static control - wxSprintf(wxBuffer, _T("%d"), minValue); - m_staticMin = (WXHWND) CreateWindowEx(0, _T("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), _T("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 - wxSprintf(wxBuffer, _T("%d"), maxValue); - m_staticMax = (WXHWND) CreateWindowEx(0, _T("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(GetHwnd(), SB_CTL); -} - -void wxSliderMSW::SetValue(int value) -{ - ::SetScrollPos(GetHwnd(), SB_CTL, value, TRUE); - if (m_staticValue) - { - wxSprintf(wxBuffer, _T("%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; -} - -// TODO one day, make sense of all this horros and replace it with a readable -// DoGetBestSize() -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); - - wxChar 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(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(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(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(GetHwnd(), x1, y1, w1, h1, TRUE); - } - } -} - -void wxSliderMSW::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - ::SetScrollRange(GetHwnd(), SB_CTL, m_rangeMin, m_rangeMax, TRUE); - wxChar buf[40]; - if ( m_staticMin ) - { - wxSprintf(buf, _T("%d"), m_rangeMin); - SetWindowText((HWND) m_staticMin, buf); - } - - if ( m_staticMax ) - { - wxSprintf(buf, _T("%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 e3c8964586..0000000000 --- a/src/msw/spinbutt.cpp +++ /dev/null @@ -1,182 +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__) || defined(wxUSE_NORLANDER_HEADERS) - #include -#endif - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl) - IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent); -#endif - -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; - - InitBase(); - - 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 (short)LOWORD(::SendMessage(GetHwnd(), UDM_GETPOS, 0, 0)); -} - -void wxSpinButton::SetValue(int val) -{ - ::SendMessage(GetHwnd(), UDM_SETPOS, 0, (LPARAM) MAKELONG((short) val, 0)); -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - wxSpinButtonBase::SetRange(minVal, maxVal); - ::SendMessage(GetHwnd(), UDM_SETRANGE, 0, - (LPARAM) MAKELONG((short)maxVal, (short)minVal)); -} - -bool wxSpinButton::MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control) -{ - wxCHECK_MSG( control, FALSE, _T("scrolling what?") ) - - if ( wParam != SB_THUMBPOSITION ) - { - // probable SB_ENDSCROLL - we don't react to it - return FALSE; - } - - wxSpinEvent event(wxEVT_SCROLL_THUMBTRACK, m_windowId); - event.SetPosition((short)pos); // cast is important for negative values! - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxSpinButton::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) -{ -#ifndef __GNUWIN32__ -#ifdef __BORLANDC__ - LPNM_UPDOWN lpnmud = (LPNM_UPDOWN)lParam; -#else - LPNMUPDOWN lpnmud = (LPNMUPDOWN)lParam; -#endif - - wxSpinEvent event(lpnmud->iDelta > 0 ? wxEVT_SCROLL_LINEUP - : wxEVT_SCROLL_LINEDOWN, - m_windowId); - event.SetPosition(lpnmud->iPos + lpnmud->iDelta); - event.SetEventObject(this); - - bool processed = GetEventHandler()->ProcessEvent(event); - - *result = event.IsAllowed() ? 0 : 1; - - return processed; -#else - return FALSE; -#endif -} - -bool wxSpinButton::MSWCommand(WXUINT cmd, WXWORD id) -{ - // No command messages - return FALSE; -} - -#endif // __WIN95__ diff --git a/src/msw/statbmp.cpp b/src/msw/statbmp.cpp deleted file mode 100644 index 200e920bd8..0000000000 --- a/src/msw/statbmp.cpp +++ /dev/null @@ -1,236 +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 wxChar *classname = _T("STATIC"); - int winstyle = m_isIcon ? SS_ICON : SS_BITMAP; -#else // Win16 - const wxChar *classname = _T("BUTTON"); - int winstyle = BS_OWNERDRAW; -#endif // Win32 - - m_hWnd = (WXHWND)::CreateWindow - ( - classname, - _T(""), - winstyle | WS_CHILD | WS_VISIBLE, - 0, 0, 0, 0, - (HWND)parent->GetHWND(), - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); - - wxCHECK_MSG( m_hWnd, FALSE, _T("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; -} - -wxSize wxStaticBitmap::DoGetBestSize() -{ - // reuse the current size (as wxWindow does) instead of using some - // arbitrary default size (as wxControl, our immediate base class, does) - return wxWindow::DoGetBestSize(); -} - -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); - -#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 ) - { - w = width; - h = height; - - ::MoveWindow((HWND)GetHWND(), x, y, width, height, FALSE); - } - } - - RECT rect = { x, y, x + w, y + h }; - 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 10f9310197..0000000000 --- a/src/msw/statbox.cpp +++ /dev/null @@ -1,203 +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, _T("BUTTON"), (const wxChar *)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; -} - -wxSize wxStaticBox::DoGetBestSize() -{ - int cx, cy; - wxGetCharSize(GetHWND(), &cx, &cy, &GetFont()); - - int wBox; - GetTextExtent(wxGetWindowText(m_hWnd), &wBox, &cy); - - wBox += 3*cx; - int hBox = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy); - - return wxSize(wBox, hBox); -} - -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(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 b8de79f67c..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__) || defined(wxUSE_NORLANDER_HEADERS) -#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)(LPCTSTR)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)(LPTSTR)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, - _T(""), - (HWND)parent->GetHWND(), - m_windowId); - if ( m_hWnd == 0 ) { - wxLogSysError(_T("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) ) { - wxLogLastError(_T("StatusBar_SetParts")); - } - - delete [] pWidths; -} - -void wxStatusBar95::SetStatusText(const wxString& strText, int nField) -{ - if ( !StatusBar_SetText(hwnd, nField, strText) ) { - wxLogLastError(_T("StatusBar_SetText")); - } -} - -wxString wxStatusBar95::GetStatusText(int nField) const -{ - wxASSERT( (nField > -1) && (nField < m_nFields) ); - - wxString str(_T("")); - 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/statline.cpp b/src/msw/statline.cpp deleted file mode 100644 index 55d237160d..0000000000 --- a/src/msw/statline.cpp +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msw/statline.cpp -// Purpose: MSW version of wxStaticLine class -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Version: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "statline.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/statline.h" - -#if wxUSE_STATLINE - -#include "wx/msw/private.h" -#include "wx/log.h" - -// ============================================================================ -// implementation -// ============================================================================ - -IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl) - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -bool wxStaticLine::Create( wxWindow *parent, - wxWindowID id, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name) -{ - if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) ) - return FALSE; - - parent->AddChild(this); - - wxSize sizeReal = AdjustSize(size); - -#ifndef WIN32 -#define SS_SUNKEN 0 -#endif - - m_hWnd = (WXHWND)::CreateWindow - ( - _T("STATIC"), - _T(""), - WS_VISIBLE | WS_CHILD | - SS_GRAYRECT | SS_SUNKEN, // | SS_ETCHEDFRAME, - pos.x, pos.y, sizeReal.x, sizeReal.y, - GetWinHwnd(parent), - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); - - if ( !m_hWnd ) - { -#ifdef __WXDEBUG__ - wxLogDebug(_T("Failed to create static control")); -#endif - return FALSE; - } - - SubclassWin(m_hWnd); - - return TRUE; -} -#endif - diff --git a/src/msw/stattext.cpp b/src/msw/stattext.cpp deleted file mode 100644 index 084a748c6c..0000000000 --- a/src/msw/stattext.cpp +++ /dev/null @@ -1,181 +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), _T("STATIC"), (const wxChar *)label, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, _T("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; -} - -wxSize wxStaticText::DoGetBestSize() -{ - wxString text(wxGetWindowText(GetHWND())); - - int widthTextMax = 0, widthLine, - heightTextTotal = 0, heightLine; - - wxString curLine; - for ( const wxChar *pc = text; ; pc++ ) { - if ( *pc == _T('\n') || *pc == _T('\0') ) { - GetTextExtent(curLine, &widthLine, &heightLine); - if ( widthLine > widthTextMax ) - widthTextMax = widthLine; - heightTextTotal += heightLine; - - if ( *pc == _T('\n') ) { - curLine.Empty(); - } - else { - // the end of string - break; - } - } - else { - curLine += *pc; - } - } - - return wxSize(widthTextMax, heightTextTotal); -} - -void wxStaticText::SetLabel(const wxString& label) -{ - SetWindowText(GetHwnd(), label); - - // adjust the size of the window to fit to the label (this behaviour is - // backward compatible and generally makes sense but we might want to still - // provide the user a way to disable it) (VZ) - DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT); -} - -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 ee06ee6fe4..0000000000 --- a/src/msw/tabctrl.cpp +++ /dev/null @@ -1,460 +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__) || defined(wxUSE_NORLANDER_HEADERS) -#include -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#ifndef wxUSE_NORLANDER_HEADERS -#include "wx/msw/gnuwin32/extra.h" -#endif -#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 - _T(""), // 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 -{ - wxChar buf[256]; - wxString str(_T("")); - 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) -{ - wxChar buf[256]; - TC_ITEM tcItem; - tcItem.mask = TCIF_PARAM; - tcItem.lParam = (long) data; - if (text != _T("")) - { - tcItem.mask |= TCIF_TEXT; - wxStrcpy(buf, (const wxChar*) 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) -{ - wxChar buf[256]; - TC_ITEM tcItem; - tcItem.mask = TCIF_TEXT; - wxStrcpy(buf, (const wxChar*) 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 36d0de6c52..0000000000 --- a/src/msw/taskbar.cpp +++ /dev/null @@ -1,373 +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" -#include "wx/menu.h" -#endif - -#if defined(__WIN95__) && !defined(__TWIN32__) - -#include -#include -#include -#include - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#ifndef wxUSE_NORLANDER_HEADERS -#include -#endif -#endif -#endif - -#ifdef __SALFORDC__ -#include -#endif - -LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg, - UINT wParam, LONG lParam ); - -wxChar *wxTaskBarWindowClass = _T("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 wxChar*) tooltip != NULL) && (tooltip != _T(""))) - { - notifyData.uFlags |= NIF_TIP ; - lstrcpyn(notifyData.szTip, WXSTRINGCAST 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); -{ - // OK, so I know this isn't thread-friendly, but - // what to do? We need this check. - - static bool s_inPopup = FALSE; - - if (s_inPopup) - return FALSE; - - s_inPopup = TRUE; - - 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); - - // Remove from record of top-level windows, or will confuse wxWindows - // if we try to exit right now. - wxTopLevelWindows.DeleteObject(win); - - menu->UpdateUI(); - - rval = win->PopupMenu(menu, 0, 0); - - win->PopEventHandler(FALSE); - win->Destroy(); - delete win; - - s_inPopup = FALSE; - - 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(_T("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, - _T("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 51c70e7556..0000000000 --- a/src/msw/tbar95.cpp +++ /dev/null @@ -1,642 +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__) || defined(wxUSE_NORLANDER_HEADERS) -#include -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#ifndef wxUSE_NORLANDER_HEADERS -#include "wx/msw/gnuwin32/extra.h" -#endif -#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_hWnd = 0; - - m_backgroundColour = wxColour(GetRValue(GetSysColor(COLOR_BTNFACE)), - GetGValue(GetSysColor(COLOR_BTNFACE)), - GetBValue(GetSysColor(COLOR_BTNFACE))); - m_foregroundColour = *wxBLACK ; - - wxASSERT_MSG( (style & wxTB_VERTICAL) == 0, - _T("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. - _T(""), // 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, _T("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(_T("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(_T("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, _T("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 = (wxChar *)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 3ca04af78b..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((WXHINSTANCE)wxGetInstance(), (WXHBITMAP) ((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 6770cc598c..0000000000 --- a/src/msw/textctrl.cpp +++ /dev/null @@ -1,950 +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 -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -#ifdef __GNUG__ - #pragma implementation "textctrl.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// 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/textfile.h" - -#include - -#include "wx/msw/private.h" - -#include -#include -#include - -#if wxUSE_IOSTREAMH -# include -#else -# include -#endif - -#if wxUSE_RICHEDIT && (!defined(__GNUWIN32__) || defined(wxUSE_NORLANDER_HEADERS)) - #include -#endif - -#if !USE_SHARED_LIBRARY - -// ---------------------------------------------------------------------------- -// event tables and other macros -// ---------------------------------------------------------------------------- - -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 - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// creation -// ---------------------------------------------------------------------------- - -wxTextCtrl::wxTextCtrl() -{ -#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) -{ - // base initialization - if ( !CreateBase(parent, id, pos, size, style, validator, name) ) - return FALSE; - - SetValidator(validator); - if ( parent ) - parent->AddChild(this); - - // set colours - SetupColours(); - - // translate wxWin style flags to MSW ones, checking for consistency while - // doing it - long msStyle = ES_LEFT | WS_VISIBLE | WS_CHILD | WS_TABSTOP; - if ( m_windowStyle & wxTE_MULTILINE ) - { - wxASSERT_MSG( !(m_windowStyle & wxTE_PROCESS_ENTER), - _T("wxTE_PROCESS_ENTER style is ignored for multiline " - "text controls (they always process it)") ); - - msStyle |= ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL; - 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; - - // we always want the characters and the arrows - m_lDlgCode = 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 ) - m_lDlgCode |= DLGC_WANTMESSAGE; - if ( m_windowStyle & wxTE_PROCESS_TAB ) - m_lDlgCode |= DLGC_WANTTAB; - - // do create the control - either an EDIT or RICHEDIT - const wxChar *windowClass = _T("EDIT"); - -#if wxUSE_RICHEDIT - if ( m_windowStyle & wxTE_RICH ) - { - msStyle |= ES_AUTOVSCROLL; - m_isRich = TRUE; - windowClass = _T("RICHEDIT"); - } - else - m_isRich = FALSE; -#endif - - 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; - - // NB: don't use pos and size as CreateWindowEx arguments because they - // might be -1 in which case we should use the default values (and - // SetSize called below takes care of it) - m_hWnd = (WXHWND)::CreateWindowEx(exStyle, - windowClass, - NULL, - msStyle, - 0, 0, 0, 0, - GetHwndOf(parent), - (HMENU)m_windowId, - wxGetInstance(), - NULL); - - wxCHECK_MSG( m_hWnd, FALSE, _T("Failed to create text ctrl") ); - -#if wxUSE_CTL3D - if ( want3D ) - { - Ctl3dSubclassCtl(GetHwnd()); - m_useCtl3D = TRUE; - } -#endif - -#if wxUSE_RICHEDIT - if (m_isRich) - { - // Have to enable events - ::SendMessage(GetHwnd(), EM_SETEVENTMASK, 0, - ENM_CHANGE | ENM_DROPFILES | ENM_SELCHANGE | ENM_UPDATE); - } -#endif - - SubclassWin(GetHWND()); - - // set font, position, size and initial value - wxFont& fontParent = parent->GetFont(); - if ( fontParent.Ok() ) - { - SetFont(fontParent); - } - else - { - SetFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT)); - } - - // Causes a crash for Symantec C++ and WIN32 for some reason -#if !(defined(__SC__) && defined(__WIN32__)) - if ( !value.IsEmpty() ) - { - SetValue(value); - } -#endif - - SetSize(pos.x, pos.y, size.x, size.y); - - 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, GWL_STYLE); - - // retrieve the style to see whether this is an edit or richedit ctrl -#if wxUSE_RICHEDIT - wxChar buf[256]; - - GetClassName(hWnd, buf, WXSIZEOF(buf)); - - if ( wxStricmp(buf, _T("EDIT")) == 0 ) - m_isRich = FALSE; - else - m_isRich = TRUE; -#endif // wxUSE_RICHEDIT - - 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() -{ - // FIXME why is bg colour not inherited from parent? - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - SetForegroundColour(GetParent()->GetForegroundColour()); -} - -// ---------------------------------------------------------------------------- -// set/get the controls text -// ---------------------------------------------------------------------------- - -wxString wxTextCtrl::GetValue() const -{ - return wxGetWindowText(GetHWND()); -} - -void wxTextCtrl::SetValue(const wxString& value) -{ - wxString valueDos = wxTextFile::Translate(value, wxTextFileType_Dos); - - SetWindowText(GetHwnd(), valueDos); - - AdjustSpaceLimit(); -} - -void wxTextCtrl::WriteText(const wxString& value) -{ - wxString valueDos = wxTextFile::Translate(value, wxTextFileType_Dos); - - SendMessage(GetHwnd(), EM_REPLACESEL, 0, (LPARAM)valueDos.c_str()); - - AdjustSpaceLimit(); -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - SetInsertionPointEnd(); - WriteText(text); -} - -void wxTextCtrl::Clear() -{ - SetWindowText(GetHwnd(), _T("")); -} - -// ---------------------------------------------------------------------------- -// 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); - } -} - -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(GetHwndOf(wxTheApp->GetTopWindow())) ) - { - isTextAvailable = (::IsClipboardFormatAvailable(CF_TEXT) != 0); - ::CloseClipboard(); - } - - return isTextAvailable; -} - -// ---------------------------------------------------------------------------- -// Accessors -// ---------------------------------------------------------------------------- - -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 // wxUSE_RICHEDIT - { - SendMessage(hWnd, EM_SETSEL, pos, pos); - SendMessage(hWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0); - } -#else // Win16 - SendMessage(hWnd, EM_SETSEL, 0, MAKELPARAM(pos, pos)); -#endif // Win32/16 - - static const 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); -} - -// 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); -} - -// ---------------------------------------------------------------------------- -// Editing -// ---------------------------------------------------------------------------- - -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 wxChar *)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. Translate 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 ( wxTextCtrlBase::LoadFile(file) ) - { - // update the size limit if needed - AdjustSpaceLimit(); - - return TRUE; - } - - return FALSE; -} - -bool wxTextCtrl::IsModified() const -{ - return (SendMessage(GetHwnd(), EM_GETMODIFY, 0, 0) != 0); -} - -// Makes 'unmodified' -void wxTextCtrl::DiscardEdits() -{ - SendMessage(GetHwnd(), EM_SETMODIFY, FALSE, 0L); -} - -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); -} - -bool wxTextCtrl::PositionToXY(long pos, long *x, long *y) const -{ - HWND hWnd = GetHwnd(); - - // This gets the line number containing the character - int lineNo; -#if wxUSE_RICHEDIT - if ( m_isRich ) - { - lineNo = (int)SendMessage(hWnd, EM_EXLINEFROMCHAR, 0, (LPARAM)pos); - } - else -#endif // wxUSE_RICHEDIT - lineNo = (int)SendMessage(hWnd, EM_LINEFROMCHAR, (WPARAM)pos, 0); - - if ( lineNo == -1 ) - { - // no such line - return FALSE; - } - - // This gets the char index for the _beginning_ of this line - int charIndex = (int)SendMessage(hWnd, EM_LINEINDEX, (WPARAM)lineNo, (LPARAM)0); - if ( charIndex == -1 ) - { - return FALSE; - } - - // The X position must therefore be the different between pos and charIndex - if ( x ) - *x = (long)(pos - charIndex); - if ( y ) - *y = (long)lineNo; - - return TRUE; -} - -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); - int len = (int)SendMessage(GetHwnd(), EM_LINELENGTH, charIndex, 0); - return len; -} - -wxString wxTextCtrl::GetLineText(long lineNo) const -{ - size_t len = (size_t)GetLineLength(lineNo) + 1; - char *buf = (char *)malloc(len); - *(WORD *)buf = len; - int noChars = (int)SendMessage(GetHwnd(), EM_GETLINE, lineNo, (LPARAM)buf); - buf[noChars] = 0; - - wxString str(buf); - - free(buf); - - return str; -} - -// ---------------------------------------------------------------------------- -// 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); -} - -// ---------------------------------------------------------------------------- -// implemenation details -// ---------------------------------------------------------------------------- - -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]); - } -} - -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 - - HDC hdc = (HDC)pDC; - SetBkMode(hdc, GetParent()->GetTransparentBackground() ? TRANSPARENT - : OPAQUE); - - ::SetBkColor(hdc, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor(hdc, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - 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: - // always produce navigation event - even if we process TAB - // ourselves the fact that we got here means that the user code - // decided to skip processing of this TAB - probably to let it - // do its default job. - // - // NB: Notice that Ctrl-Tab is handled elsewhere and Alt-Tab is - // handled by Windows - { - 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(); -} - -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 -} - -bool wxTextCtrl::AcceptsFocus() const -{ - // we don't want focus if we can't be edited - return IsEditable() && wxControl::AcceptsFocus(); -} - -wxSize wxTextCtrl::DoGetBestSize() -{ - int cx, cy; - wxGetCharSize(GetHWND(), &cx, &cy, &GetFont()); - - int wText = DEFAULT_ITEM_WIDTH; - - int hText = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy); - if ( m_windowStyle & wxTE_MULTILINE ) - { - hText *= wxMin(GetNumberOfLines(), 5); - } - //else: for single line control everything is ok - - return wxSize(wText, hText); -} - -// ---------------------------------------------------------------------------- -// standard handlers for standard edit menu events -// ---------------------------------------------------------------------------- - -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 ba50980e8e..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(_T("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(_T("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(_T("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(_T("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, - _T("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(_T("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(), - _T("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, - _T("calling wxMutexGuiLeave() without entering it first?") ); - - s_nWaitingForGui--; - - wxWakeUpMainThread(); - } - - s_critsectGui->Leave(); -} - -void WXDLLEXPORT wxMutexGuiLeaveOrEnter() -{ - wxASSERT_MSG( wxThread::IsMain(), - _T("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 6189c29160..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, _T("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, _T("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 ca76d82573..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__) || defined(wxUSE_NORLANDER_HEADERS) -#include -#endif - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// a simple wrapper around TOOLINFO Win32 structure -class wxToolInfo : public TOOLINFO -{ -public: - wxToolInfo(wxWindow *win) - { - // initialize all members -#if defined( __GNUWIN32__ ) && !defined(wxUSE_NORLANDER_HEADERS) - 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, _T("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, - _T("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 = (wxChar *)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 4f1f806d3c..0000000000 --- a/src/msw/treectrl.cpp +++ /dev/null @@ -1,1349 +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" - -// 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/treectrl.h" - -#ifdef __GNUWIN32__ -#ifndef wxUSE_NORLANDER_HEADERS -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS) - #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, // the item handle - UINT mask_, // fields which are valid - UINT stateMask_ = 0) // for TVIF_STATE only - { - // hItem member is always valid - mask = mask_ | TVIF_HANDLE; - stateMask = stateMask_; - hItem = (HTREEITEM) (WXHTREEITEM) item; - } -}; - -// a class which encapsulates the tree traversal logic: it vists all (unless -// OnVisit() returns FALSE) items under the given one -class wxTreeTraversal -{ -public: - wxTreeTraversal(const wxTreeCtrl *tree) - { - m_tree = tree; - } - - // do traverse the tree: visit all items (recursively by default) under the - // given one; return TRUE if all items were traversed or FALSE if the - // traversal was aborted because OnVisit returned FALSE - bool DoTraverse(const wxTreeItemId& root, bool recursively = TRUE); - - // override this function to do whatever is needed for each item, return - // FALSE to stop traversing - virtual bool OnVisit(const wxTreeItemId& item) = 0; - -protected: - const wxTreeCtrl *GetTree() const { return m_tree; } - -private: - bool Traverse(const wxTreeItemId& root, bool recursively); - - const wxTreeCtrl *m_tree; -}; - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl) -#endif - -// ---------------------------------------------------------------------------- -// 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 -// ============================================================================ - -// ---------------------------------------------------------------------------- -// tree traversal -// ---------------------------------------------------------------------------- - -bool wxTreeTraversal::DoTraverse(const wxTreeItemId& root, bool recursively) -{ - if ( !OnVisit(root) ) - return FALSE; - - return Traverse(root, recursively); -} - -bool wxTreeTraversal::Traverse(const wxTreeItemId& root, bool recursively) -{ - long cookie; - wxTreeItemId child = m_tree->GetFirstChild(root, cookie); - while ( child.IsOk() ) - { - // depth first traversal - if ( recursively && !Traverse(child, TRUE) ) - return FALSE; - - if ( !OnVisit(child) ) - return FALSE; - - child = m_tree->GetNextChild(root, cookie); - } - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// 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(); - - if ( !CreateControl(parent, id, pos, size, style, validator, name) ) - return FALSE; - - DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP | - TVS_HASLINES | TVS_SHOWSELALWAYS; - - 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; - -#if !defined( __GNUWIN32__ ) && !defined( __BORLANDC__ ) && !defined(wxUSE_NORLANDER_HEADERS) - // we emulate the multiple selection tree controls by using checkboxes: set - // up the image list we need for this if we do have multiple selections - if ( m_windowStyle & wxTR_MULTIPLE ) - wstyle |= TVS_CHECKBOXES; -#endif - - // Create the tree control. - if ( !MSWCreateControl(WC_TREEVIEW, wstyle) ) - return FALSE; - - // the treectrl with any other background looks ugly because the items - // background is white anyhow - SetBackgroundColour(*wxWHITE); - - // VZ: this is some experimental code which may be used to get the - // TVS_CHECKBOXES style functionality for comctl32.dll < 4.71. - // AFAIK, the standard DLL does about the same thing anyhow. -#if 0 - if ( m_windowStyle & wxTR_MULTIPLE ) - { - wxBitmap bmp; - - // create the DC compatible with the current screen - HDC hdcMem = CreateCompatibleDC(NULL); - - // create a mono bitmap of the standard size - int x = GetSystemMetrics(SM_CXMENUCHECK); - int y = GetSystemMetrics(SM_CYMENUCHECK); - wxImageList imagelistCheckboxes(x, y, FALSE, 2); - HBITMAP hbmpCheck = CreateBitmap(x, y, // bitmap size - 1, // # of color planes - 1, // # bits needed for one pixel - 0); // array containing colour data - SelectObject(hdcMem, hbmpCheck); - - // then draw a check mark into it - RECT rect = { 0, 0, x, y }; - if ( !::DrawFrameControl(hdcMem, &rect, - DFC_BUTTON, - DFCS_BUTTONCHECK | DFCS_CHECKED) ) - { - wxLogLastError(_T("DrawFrameControl(check)")); - } - - bmp.SetHBITMAP((WXHBITMAP)hbmpCheck); - imagelistCheckboxes.Add(bmp); - - if ( !::DrawFrameControl(hdcMem, &rect, - DFC_BUTTON, - DFCS_BUTTONCHECK) ) - { - wxLogLastError(_T("DrawFrameControl(uncheck)")); - } - - bmp.SetHBITMAP((WXHBITMAP)hbmpCheck); - imagelistCheckboxes.Add(bmp); - - // clean up - ::DeleteDC(hdcMem); - - // set the imagelist - SetStateImageList(&imagelistCheckboxes); - } -#endif // 0 - - SetSize(pos.x, pos.y, size.x, size.y); - - 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(GetHwnd(), tvItem) ) - { - wxLogLastError("TreeView_GetItem"); - - return FALSE; - } - - return TRUE; -} - -void wxTreeCtrl::DoSetItem(wxTreeViewItem* tvItem) -{ - if ( TreeView_SetItem(GetHwnd(), tvItem) == -1 ) - { - wxLogLastError("TreeView_SetItem"); - } -} - -size_t wxTreeCtrl::GetCount() const -{ - return (size_t)TreeView_GetCount(GetHwnd()); -} - -unsigned int wxTreeCtrl::GetIndent() const -{ - return TreeView_GetIndent(GetHwnd()); -} - -void wxTreeCtrl::SetIndent(unsigned int indent) -{ - TreeView_SetIndent(GetHwnd(), 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(GetHwnd(), - 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); -} - -// internal class for counting tree items - -class TraverseCounter : public wxTreeTraversal -{ -public: - TraverseCounter(const wxTreeCtrl *tree, - const wxTreeItemId& root, - bool recursively) - : wxTreeTraversal(tree) - { - m_count = 0; - - DoTraverse(root, recursively); - } - - virtual bool OnVisit(const wxTreeItemId& item) - { - m_count++; - - return TRUE; - } - - size_t GetCount() const { return m_count; } - -private: - size_t m_count; -}; - - -size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, - bool recursively) const -{ - TraverseCounter counter(this, item, recursively); - - return counter.GetCount(); -} - -// ---------------------------------------------------------------------------- -// Item access -// ---------------------------------------------------------------------------- - -wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const -{ - wxChar 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] = _T('\0'); - } - - return wxString(buf); -} - -void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text) -{ - wxTreeViewItem tvItem(item, TVIF_TEXT); - tvItem.pszText = (wxChar *)text.c_str(); // conversion is ok - DoSetItem(&tvItem); -} - -void wxTreeCtrl::DoSetItemImages(const wxTreeItemId& item, - int image, - int imageSel) -{ - wxTreeViewItem tvItem(item, TVIF_IMAGE | TVIF_SELECTEDIMAGE); - tvItem.iSelectedImage = imageSel; - tvItem.iImage = image; - 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) -{ - // NB: at least in version 5.00.0518.9 of comctl32.dll we need to always - // change both normal and selected image - otherwise the change simply - // doesn't take place! - DoSetItemImages(item, image, GetItemSelectedImage(item)); -} - -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) -{ - // NB: at least in version 5.00.0518.9 of comctl32.dll we need to always - // change both normal and selected image - otherwise the change simply - // doesn't take place! - DoSetItemImages(item, GetItemImage(item), image); -} - -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(GetHwnd(), 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(GetHwnd())); -} - -wxTreeItemId wxTreeCtrl::GetSelection() const -{ - wxCHECK_MSG( !(m_windowStyle & wxTR_MULTIPLE), (WXHTREEITEM)0, - _T("this only works with single selection controls") ); - - return wxTreeItemId((WXHTREEITEM) TreeView_GetSelection(GetHwnd())); -} - -wxTreeItemId wxTreeCtrl::GetParent(const wxTreeItemId& item) const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetParent(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item, - long& _cookie) const -{ - // remember the last child returned in 'cookie' - _cookie = (long)TreeView_GetChild(GetHwnd(), (HTREEITEM) (WXHTREEITEM)item); - - return wxTreeItemId((WXHTREEITEM)_cookie); -} - -wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& WXUNUSED(item), - long& _cookie) const -{ - wxTreeItemId l = wxTreeItemId((WXHTREEITEM)TreeView_GetNextSibling(GetHwnd(), - (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(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetPrevSibling(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetFirstVisible(GetHwnd())); -} - -wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const -{ - wxASSERT_MSG( IsVisible(item), _T("The item you call GetNextVisible() " - "for must be visible itself!")); - - return wxTreeItemId((WXHTREEITEM) TreeView_GetNextVisible(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const -{ - wxASSERT_MSG( IsVisible(item), _T("The item you call GetPrevVisible() " - "for must be visible itself!")); - - return wxTreeItemId((WXHTREEITEM) TreeView_GetPrevVisible(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item)); -} - -// ---------------------------------------------------------------------------- -// multiple selections emulation -// ---------------------------------------------------------------------------- - -bool wxTreeCtrl::IsItemChecked(const wxTreeItemId& item) const -{ - // receive the desired information. - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_STATEIMAGEMASK); - DoGetItem(&tvItem); - - // state image indices are 1 based - return ((tvItem.state >> 12) - 1) == 1; -} - -void wxTreeCtrl::SetItemCheck(const wxTreeItemId& item, bool check) -{ - // receive the desired information. - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_STATEIMAGEMASK); - - // state images are one-based - tvItem.state = (check ? 2 : 1) << 12; - - DoSetItem(&tvItem); -} - -// internal class for getting the selected - -class TraverseSelections : public wxTreeTraversal -{ -public: - TraverseSelections(const wxTreeCtrl *tree, - wxArrayTreeItemIds& selections) - : wxTreeTraversal(tree), m_selections(selections) - { - m_selections.Empty(); - - DoTraverse(tree->GetRootItem()); - } - - virtual bool OnVisit(const wxTreeItemId& item) - { - if ( GetTree()->IsItemChecked(item) ) - { - m_selections.Add(item); - } - - return TRUE; - } - -private: - wxArrayTreeItemIds& m_selections; -}; - -size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const -{ - TraverseSelections selector(this, selections); - - return selections.GetCount(); -} - -// ---------------------------------------------------------------------------- -// 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 = (wxChar *)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(GetHwnd(), &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(GetHwnd(), (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(GetHwnd(), (HTREEITEM)children[n]) ) - { - wxLogLastError("TreeView_DeleteItem"); - } - } -} - -void wxTreeCtrl::DeleteAllItems() -{ - if ( !TreeView_DeleteAllItems(GetHwnd()) ) - { - 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, - _T("Unknown flag in wxTreeCtrl::DoExpand") ); - - // TreeView_Expand doesn't send TVN_ITEMEXPAND(ING) messages, so we must - // emulate them. This behaviour has changed slightly with comctl32.dll - // v 4.70 - now it does send them but only the first time. To maintain - // compatible behaviour and also in order to not have surprises with the - // future versions, don't rely on this and still do everything ourselves. - // To avoid that the messages be sent twice when the item is expanded for - // the first time we must clear TVIS_EXPANDEDONCE style manually. - - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_EXPANDEDONCE); - tvItem.state = 0; - DoSetItem(&tvItem); - - if ( TreeView_Expand(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item, flag) != 0 ) - { - wxTreeEvent event(wxEVT_NULL, m_windowId); - event.m_item = item; - - bool isExpanded = IsExpanded(item); - - event.SetEventObject(this); - - // FIXME return value 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: change didn't took place, so do nothing at all -} - -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() -{ - wxASSERT_MSG( !(m_windowStyle & wxTR_MULTIPLE), _T("doesn't make sense") ); - - // just remove the selection - SelectItem(wxTreeItemId((WXHTREEITEM) 0)); -} - -void wxTreeCtrl::UnselectAll() -{ - if ( m_windowStyle & wxTR_MULTIPLE ) - { - wxArrayTreeItemIds selections; - size_t count = GetSelections(selections); - for ( size_t n = 0; n < count; n++ ) - { - SetItemCheck(selections[n], FALSE); - } - } - else - { - // just remove the selection - Unselect(); - } -} - -void wxTreeCtrl::SelectItem(const wxTreeItemId& item) -{ - if ( m_windowStyle & wxTR_MULTIPLE ) - { - // selecting the item means checking it - SetItemCheck(item); - } - else - { - // inspite of the docs (MSDN Jan 99 edition), we don't seem to receive - // the notification from the control (i.e. TVN_SELCHANG{ED|ING}), so - // send them ourselves - - wxTreeEvent event(wxEVT_NULL, m_windowId); - event.m_item = item; - event.SetEventObject(this); - - event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGING); - if ( !GetEventHandler()->ProcessEvent(event) || event.IsAllowed() ) - { - if ( !TreeView_SelectItem(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item) ) - { - wxLogLastError("TreeView_SelectItem"); - } - else - { - event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGED); - (void)GetEventHandler()->ProcessEvent(event); - } - } - //else: program vetoed the change - } -} - -void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item) -{ - // no error return - TreeView_EnsureVisible(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item); -} - -void wxTreeCtrl::ScrollTo(const wxTreeItemId& item) -{ - if ( !TreeView_SelectSetFirstVisible(GetHwnd(), (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(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item); - - // this is not an error - the TVN_BEGINLABELEDIT handler might have - // returned FALSE - if ( !hWnd ) - { - return NULL; - } - - 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(GetHwnd(), 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(GetHwnd(), &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(GetHwnd(), (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 wxStrcmp(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(GetHwnd(), (HTREEITEM)(WXHTREEITEM)item, 0); - } - else - { - TV_SORTCB tvSort; - tvSort.hParent = (HTREEITEM)(WXHTREEITEM)item; - tvSort.lpfnCompare = (PFNTVCOMPARE)TreeView_CompareCallback; - tvSort.lParam = (LPARAM)this; - TreeView_SortChildrenCB(GetHwnd(), &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; - event.m_label = info->item.pszText; - 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; - event.m_label = info->item.pszText; - 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(_T("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 - switch ( hdr->code ) - { - case 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 ourself (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 - } - break; - - case TVN_BEGINLABELEDIT: - // return TRUE to cancel label editing - *result = !event.IsAllowed(); - break; - - case TVN_ENDLABELEDIT: - // return TRUE to set the label to the new string - *result = event.IsAllowed(); - - // ensure that we don't have the text ctrl which is going to be - // deleted any more - DeleteTextCtrl(); - break; - - case TVN_SELCHANGING: - case TVN_ITEMEXPANDING: - // return TRUE to prevent the action from happening - *result = !event.IsAllowed(); - break; - - //default: - // for the other messages the return value is ignored and there is - // nothing special to do - } - - 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 35c2de8be9..0000000000 --- a/src/msw/utils.cpp +++ /dev/null @@ -1,1260 +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 - -// VZ: there is some code using NetXXX() functions to get the full user name: -// I don't think it's a good idea because they don't work under Win95 and -// seem to return the same as wxGetUserId() under NT. If you really want -// to use them, just #define USE_NET_API -#undef USE_NET_API - -#ifdef USE_NET_API - #include -#endif // USE_NET_API - -#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 wxChar WX_SECTION[] = _T("wxWindows"); -static const wxChar eHOSTNAME[] = _T("HostName"); -static const wxChar eUSERID[] = _T("UserId"); -static const wxChar eUSERNAME[] = _T("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(wxChar *buf, int maxSize) -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - DWORD nSize = maxSize; - return (::GetComputerName(buf, &nSize) != 0); -#else - wxChar *sysname; - const wxChar *default_host = _T("noname"); - - if ((sysname = wxGetenv(_T("SYSTEM_NAME"))) == NULL) { - GetProfileString(WX_SECTION, eHOSTNAME, default_host, buf, maxSize - 1); - } else - wxStrncpy(buf, sysname, maxSize - 1); - buf[maxSize] = _T('\0'); - return *buf ? TRUE : FALSE; -#endif -} - -// Get user ID e.g. jacs -bool wxGetUserId(wxChar *buf, int maxSize) -{ -#if defined(__WIN32__) && !defined(__win32s__) && !defined(__TWIN32__) - DWORD nSize = maxSize; - if ( ::GetUserName(buf, &nSize) == 0 ) - { - // actually, it does happen on Win9x if the user didn't log on - DWORD res = ::GetEnvironmentVariable(_T("username"), buf, maxSize); - if ( res == 0 ) - { - // not found - return FALSE; - } - } - - return TRUE; -#else // Win16 or Win32s - wxChar *user; - const wxChar *default_id = _T("anonymous"); - - // Can't assume we have NIS (PC-NFS) or some other ID daemon - // So we ... - if ( (user = wxGetenv(_T("USER"))) == NULL && - (user = wxGetenv(_T("LOGNAME"))) == NULL ) - { - // Use wxWindows configuration data (comming soon) - GetProfileString(WX_SECTION, eUSERID, default_id, buf, maxSize - 1); - } - else - { - wxStrncpy(buf, user, maxSize - 1); - } - - return *buf ? TRUE : FALSE; -#endif -} - -// Get user name e.g. Julian Smart -bool wxGetUserName(wxChar *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 - { -#ifdef USE_NET_API - CHAR szUserName[256]; - if ( !wxGetUserId(szUserName, WXSIZEOF(szUserName)) ) - return FALSE; - - // TODO how to get the domain name? - CHAR *szDomain = ""; - - // the code is based on the MSDN example (also see KB article Q119670) - WCHAR wszUserName[256]; // Unicode user name - WCHAR wszDomain[256]; - LPBYTE ComputerName; - - USER_INFO_2 *ui2; // User structure - - // Convert ANSI user name and domain to Unicode - MultiByteToWideChar( CP_ACP, 0, szUserName, strlen(szUserName)+1, - wszUserName, WXSIZEOF(wszUserName) ); - MultiByteToWideChar( CP_ACP, 0, szDomain, strlen(szDomain)+1, - wszDomain, WXSIZEOF(wszDomain) ); - - // Get the computer name of a DC for the domain. - if ( NetGetDCName( NULL, wszDomain, &ComputerName ) != NERR_Success ) - { - wxLogError(_T("Can not find domain controller")); - - goto error; - } - - // Look up the user on the DC - NET_API_STATUS status = NetUserGetInfo( (LPWSTR)ComputerName, - (LPWSTR)&wszUserName, - 2, // level - we want USER_INFO_2 - (LPBYTE *) &ui2 ); - switch ( status ) - { - case NERR_Success: - // ok - break; - - case NERR_InvalidComputer: - wxLogError(_T("Invalid domain controller name.")); - - goto error; - - case NERR_UserNotFound: - wxLogError(_T("Invalid user name '%s'."), szUserName); - - goto error; - - default: - wxLogSysError(_T("Can't get information about user")); - - goto error; - } - - // Convert the Unicode full name to ANSI - WideCharToMultiByte( CP_ACP, 0, ui2->usri2_full_name, -1, - buf, maxSize, NULL, NULL ); - - return TRUE; - -error: - wxLogError(_T("Couldn't look up full user name.")); - - return FALSE; -#else // !USE_NET_API - // Could use NIS, MS-Mail or other site specific programs - // Use wxWindows configuration data - bool ok = GetProfileString(WX_SECTION, eUSERNAME, _T(""), buf, maxSize - 1) != 0; - if ( !ok ) - { - ok = wxGetUserId(buf, maxSize); - } - - if ( !ok ) - { - wxStrncpy(buf, _T("Unknown User"), maxSize); - } -#endif // Win32/16 - } - - return TRUE; -} - -int wxKill(long pid, int sig) -{ - return 0; -} - -// -// Execute a program in an Interactive Shell -// -bool -wxShell(const wxString& command) -{ - wxChar *shell; - if ((shell = wxGetenv(_T("COMSPEC"))) == NULL) - shell = _T("\\COMMAND.COM"); - - wxChar tmp[255]; - if (command != _T("")) - wxSprintf(tmp, _T("%s /c %s"), shell, WXSTRINGCAST command); - else - wxStrcpy(tmp, shell); - - return (wxExecute((wxChar *)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 wxChar *fmt ...) -{ - va_list ap; - static wxChar buffer[512]; - - if (!wxTheApp->GetWantDebugOutput()) - return ; - - va_start(ap, fmt); - - wvsprintf(buffer,fmt,ap) ; - OutputDebugString((LPCTSTR)buffer) ; - - va_end(ap); -} - -// Non-fatal error: pop up message box and (possibly) continue -void wxError(const wxString& msg, const wxString& title) -{ - wxSprintf(wxBuffer, _T("%s\nContinue?"), WXSTRINGCAST msg); - if (MessageBox(NULL, (LPCTSTR)wxBuffer, (LPCTSTR)WXSTRINGCAST title, - MB_ICONSTOP | MB_YESNO) == IDNO) - wxExit(); -} - -// Fatal error: pop up message box and abort -void wxFatalError(const wxString& msg, const wxString& title) -{ - wxSprintf(wxBuffer, _T("%s: %s"), WXSTRINGCAST title, WXSTRINGCAST msg); - FatalAppExit(0, (LPCTSTR)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 != _T("")) - return (WritePrivateProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)value, (LPCTSTR)WXSTRINGCAST file) != 0); - else - return (WriteProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)WXSTRINGCAST value) != 0); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file) -{ - wxChar buf[50]; - wxSprintf(buf, _T("%.4f"), value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file) -{ - wxChar buf[50]; - wxSprintf(buf, _T("%ld"), value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file) -{ - wxChar buf[50]; - wxSprintf(buf, _T("%d"), value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxGetResource(const wxString& section, const wxString& entry, wxChar **value, const wxString& file) -{ - static const wxChar defunkt[] = _T("$$default"); - if (file != _T("")) - { - int n = GetPrivateProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)defunkt, - (LPTSTR)wxBuffer, 1000, (LPCTSTR)WXSTRINGCAST file); - if (n == 0 || wxStrcmp(wxBuffer, defunkt) == 0) - return FALSE; - } - else - { - int n = GetProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)defunkt, - (LPTSTR)wxBuffer, 1000); - if (n == 0 || wxStrcmp(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) -{ - wxChar *s = NULL; - bool succ = wxGetResource(section, entry, (wxChar **)&s, file); - if (succ) - { - *value = (float)wxStrtod(s, NULL); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file) -{ - wxChar *s = NULL; - bool succ = wxGetResource(section, entry, (wxChar **)&s, file); - if (succ) - { - *value = wxStrtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) -{ - wxChar *s = NULL; - bool succ = wxGetResource(section, entry, (wxChar **)&s, file); - if (succ) - { - *value = (int)wxStrtol(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, - _T("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 wxChar* wxGetHomeDir(wxString *pstr) -{ - wxString& strDir = *pstr; - - #if defined(__UNIX__) && !defined(__TWIN32__) - const wxChar *szHome = wxGetenv("HOME"); - if ( szHome == NULL ) { - // we're homeless... - wxLogWarning(_("can't find user's HOME, using current directory.")); - strDir = _T("."); - } - else - strDir = szHome; - - // add a trailing slash if needed - if ( strDir.Last() != _T('/') ) - strDir << _T('/'); - #else // Windows - #ifdef __WIN32__ - const wxChar *szHome = wxGetenv(_T("HOMEDRIVE")); - if ( szHome != NULL ) - strDir << szHome; - szHome = wxGetenv(_T("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 ( wxStrcmp(szHome, _T("\\")) != 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 -wxChar *wxGetUserHome (const wxString& user) -{ - wxChar *home; - wxString user1(user); - - if (user1 != _T("")) { - wxChar tmp[64]; - if (wxGetUserId(tmp, sizeof(tmp)/sizeof(char))) { - // Guests belong in the temp dir - if (wxStricmp(tmp, _T("annonymous")) == 0) { - if ((home = wxGetenv(_T("TMP"))) != NULL || - (home = wxGetenv(_T("TMPDIR"))) != NULL || - (home = wxGetenv(_T("TEMP"))) != NULL) - return *home ? home : (wxChar*)_T("\\"); - } - if (wxStricmp(tmp, WXSTRINGCAST user1) == 0) - user1 = _T(""); - } - } - if (user1 == _T("")) - if ((home = wxGetenv(_T("HOME"))) != NULL) - { - wxStrcpy(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(_T("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__ -wxChar *wxLoadUserResource(const wxString& resourceName, const wxString& resourceType) -{ - wxChar *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; - wxChar *theText = (wxChar *)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 wxChar* lpOutputString, ...) -{ - HANDLE heventDBWIN; /* DBWIN32 synchronization object */ - HANDLE heventData; /* data passing synch object */ - HANDLE hSharedFile; /* memory mapped file shared data */ - LPSTR lpszSharedMem; - wxChar achBuffer[500]; - - /* create the output buffer */ - va_list args; - va_start(args, lpOutputString); - wxVsprintf(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, _T("DBWIN_BUFFER_READY")); - if ( !heventDBWIN ) - { - //MessageBox(NULL, _T("DBWIN_BUFFER_READY nonexistent"), NULL, MB_OK); - return; - } - - /* get a handle to the data synch object */ - heventData = OpenEvent(EVENT_MODIFY_STATE, FALSE, _T("DBWIN_DATA_READY")); - if ( !heventData ) - { - // MessageBox(NULL, _T("DBWIN_DATA_READY nonexistent"), NULL, MB_OK); - CloseHandle(heventDBWIN); - return; - } - - hSharedFile = CreateFileMapping((HANDLE)-1, NULL, PAGE_READWRITE, 0, 4096, _T("DBWIN_BUFFER")); - if (!hSharedFile) - { - //MessageBox(NULL, _T("DebugTrace: Unable to create file mapping object DBWIN_BUFFER"), _T("Error"), MB_OK); - CloseHandle(heventDBWIN); - CloseHandle(heventData); - return; - } - - lpszSharedMem = (LPSTR)MapViewOfFile(hSharedFile, FILE_MAP_WRITE, 0, 0, 512); - if (!lpszSharedMem) - { - //MessageBox(NULL, _T("DebugTrace: Unable to map shared memory"), _T("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((LPTSTR)(lpszSharedMem + sizeof(DWORD)), _T("%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 0c566962da..0000000000 --- a/src/msw/utilsexc.cpp +++ /dev/null @@ -1,371 +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, - _T("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 wxChar wxPanelClassName[]; - -long wxExecute(const wxString& command, bool sync, wxProcess *handler) -{ - wxCHECK_MSG( !!command, 0, _T("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) - (wxChar *)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, _T("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, _T("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((HINSTANCE)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); -} - -bool wxGetFullHostName(wxChar *buf, int maxSize) -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - DWORD nSize = maxSize ; - if ( !::GetComputerName(buf, &nSize) ) - { - wxLogLastError("GetComputerName"); - - return FALSE; - } -#else - char *sysname; - const char *default_host = "noname"; -static const char WX_SECTION[] = "wxWindows"; -static const char eHOSTNAME[] = "HostName"; - - if ((sysname = getenv("SYSTEM_NAME")) == NULL) { - GetProfileString(WX_SECTION, eHOSTNAME, default_host, buf, maxSize - 1); - } else - strncpy(buf, sysname, maxSize - 1); - buf[maxSize] = '\0'; - if ( *buf == '\0' ) - { - wxLogLastError("GetComputerName"); - - return FALSE; - } -#endif - return TRUE; -} diff --git a/src/msw/wave.cpp b/src/msw/wave.cpp deleted file mode 100644 index 19b164f5a0..0000000000 --- a/src/msw/wave.cpp +++ /dev/null @@ -1,174 +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 - -#if !defined( __GNUWIN32__ ) || defined(wxUSE_NORLANDER_HEADERS) -#include -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#ifndef wxUSE_NORLANDER_HEADERS -#include "wx/msw/gnuwin32/extra.h" -#endif -#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__) -#ifdef _UNICODE - hresInfo = ::FindResourceW((HMODULE) wxhInstance, fileName, _T("WAVE")); -#else - hresInfo = ::FindResourceA((HMODULE) wxhInstance, fileName, _T("WAVE")); -#endif -#else - hresInfo = ::FindResource((HMODULE) wxhInstance, fileName, _T("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/window.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 - -#if !defined(__GNUWIN32__)|| defined(wxUSE_NORLANDER_HEADERS) - #include - #include -#endif - -#ifdef __WIN32__ - #include -#endif - -#if ( defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__ ) || defined(wxUSE_NORLANDER_HEADERS) - #include -#endif - -#ifndef __TWIN32__ - #ifdef __GNUWIN32__ - #ifndef wxUSE_NORLANDER_HEADERS - #include - #endif - #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 wxChar wxCanvasClassName[]; - -// --------------------------------------------------------------------------- -// 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_hWnd = 0; - - // pass WM_GETDLGCODE to DefWindowProc() - m_lDlgCode = 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"); - - // remove hWnd <-> wxWindow association - wxRemoveHandleAssociation(this); - } -} - -// 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, _T("can't create wxWindow without parent") ); - - if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) ) - return FALSE; - - 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; - } - - // calculate the value to return from WM_GETDLGCODE handler - if ( GetWindowStyleFlag() & wxWANTS_CHARS ) - { - // want everything: i.e. all keys and WM_CHAR message - m_lDlgCode = DLGC_WANTARROWS | DLGC_WANTCHARS | - DLGC_WANTTAB | DLGC_WANTMESSAGE; - } - - 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, MAKELPARAM(TRUE, 0)); - } - - 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, _T("subclassing window twice?") ); - - HWND hwnd = (HWND)hWnd; - wxCHECK_RET( ::IsWindow(hwnd), _T("invalid HWND in SubclassWin") ); - - wxAssociateWinWithHandle(hwnd, this); - - m_oldWndProc = (WXFARPROC) GetWindowLong(hwnd, GWL_WNDPROC); - SetWindowLong(hwnd, GWL_WNDPROC, (LONG) wxWndProc); -} - -void wxWindow::UnsubclassWin() -{ - wxRemoveHandleAssociation(this); - - // Restore old Window proc - HWND hwnd = GetHwnd(); - if ( hwnd ) - { - m_hWnd = 0; - - wxCHECK_RET( ::IsWindow(hwnd), _T("invalid HWND in UnsubclassWin") ); - - FARPROC farProc = (FARPROC) GetWindowLong(hwnd, GWL_WNDPROC); - if ( (m_oldWndProc != 0) && (farProc != (FARPROC) m_oldWndProc) ) - { - SetWindowLong(hwnd, GWL_WNDPROC, (LONG) m_oldWndProc); - m_oldWndProc = 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) const -{ - // 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(); - - RECT rect; - GetWindowRect(hWnd, &rect); - - POINT point; - point.x = rect.left; - point.y = rect.top; - - // we do the adjustments with respect to the parent only for the "real" - // children, not for the dialogs/frames - if ( !IsTopLevel() ) - { - HWND hParentWnd = 0; - wxWindow *parent = GetParent(); - if ( parent ) - hParentWnd = GetWinHwnd(parent); - - // Since we now have the absolute screen coords, if there's a parent we - // must subtract its top left corner - 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). - wxPoint pt(parent->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; -} - -// set the size of the window: if the dimensions are positive, just use them, -// but if any of them is equal to -1, it means that we must find the value for -// it ourselves (unless sizeFlags contains wxSIZE_ALLOW_MINUS_ONE flag, in -// which case -1 is a valid value for x and y) -// -// If sizeFlags contains wxSIZE_AUTO_WIDTH/HEIGHT flags (default), we calculate -// the width/height to best suit our contents, otherwise we reuse the current -// width/height -void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - // get the current size and position... - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int currentW,currentH; - GetSize(¤tW, ¤tH); - - // ... and don't do anything (avoiding flicker) if it's already ok - if ( x == currentX && y == currentY && - width == currentW && height == currentH ) - { - return; - } - - if ( x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE) ) - x = currentX; - if ( y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE) ) - y = currentY; - - AdjustForParentClientOrigin(x, y, sizeFlags); - - wxSize size(-1, -1); - if ( width == -1 ) - { - if ( sizeFlags && wxSIZE_AUTO_WIDTH ) - { - size = DoGetBestSize(); - width = size.x; - } - else - { - // just take the current one - width = currentW; - } - } - - if ( height == -1 ) - { - if ( sizeFlags && wxSIZE_AUTO_HEIGHT ) - { - if ( size.x == -1 ) - { - size= DoGetBestSize(); - } - //else: already called DoGetBestSize() above - - height = size.y; - } - else - { - // just take the current one - height = currentH; - } - } - - if ( !::MoveWindow(GetHwnd(), x, y, width, height, TRUE) ) - { - wxLogLastError("MoveWindow"); - } -} - -// for a generic window there is no natural best size - just use the current one -wxSize wxWindow::DoGetBestSize() -{ - return GetSize(); -} - -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) -{ - // don't do it for the dialogs/frames - they float independently of their - // parent - if ( !IsTopLevel() ) - { - wxWindow *parent = GetParent(); - if ( !(sizeFlags & wxSIZE_NO_ADJUSTMENTS) && parent ) - { - wxPoint pt(parent->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, 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 - -// --------------------------------------------------------------------------- -// popup menu -// --------------------------------------------------------------------------- - -bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y) -{ - menu->SetInvokingWindow(this); - menu->UpdateUI(); - - HWND hWnd = GetHwnd(); - HMENU hMenu = GetHmenuOf(menu); - 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; -} - -// =========================================================================== -// 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; - bool bShiftDown = (::GetKeyState(VK_SHIFT) & 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: - // assume that nobody wants Shift-TAB for himself - if we - // don't do it there is no easy way for a control to grab - // TABs but still let Shift-TAB work as navugation key - if ( (lDlgCode & DLGC_WANTTAB) && !bShiftDown ) { - bProcess = FALSE; - } - else { - // Ctrl-Tab cycles thru notebook pages - bWindowChange = bCtrlDown; - bForward = !bShiftDown; - } - 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) && !bCtrlDown ) - { - // control wants to process Enter itself, don't - // call IsDialogMessage() which would interpret - // it - return FALSE; - } - else if ( lDlgCode & DLGC_BUTTON ) - { - // buttons want process Enter themselevs - bProcess = FALSE; - } - else - { - wxPanel *panel = wxDynamicCast(this, wxPanel); - wxButton *btn = NULL; - if ( panel ) - { - // panel may have a default button which should - // be activated by Enter - btn = panel->GetDefaultItem(); - } - - if ( btn && btn->IsEnabled() ) - { - // if we do have a default button, do press it - btn->MSWCommand(BN_CLICKED, 0 /* unused */); - - return TRUE; - } - // else: but if it does 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. - } - } - break; - - default: - bProcess = FALSE; - } - - if ( bProcess ) - { - wxNavigationKeyEvent event; - event.SetDirection(bForward); - event.SetWindowChange(bWindowChange); - event.SetEventObject(this); - - if ( GetEventHandler()->ProcessEvent(event) ) - { - wxButton *btn = wxDynamicCast(FindFocus(), wxButton); - if ( btn ) - { - // the button which has focus should be default - btn->SetDefault(); - } - - 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.Translate(this, 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, _T("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 ) - { -#if 0 // def __WXDEBUG__ - char buf[512]; - ::GetClassNameA((HWND) hWnd, buf, 512); - wxString className(buf); -#endif - - 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: - processed = HandlePaint(); - 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: - { - short x = LOWORD(lParam); - short 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 ( m_lDlgCode ) - { - rc.result = m_lDlgCode; - processed = TRUE; - } - //else: get the dlg code from the DefWindowProc() - 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: - // but set processed to FALSE, not TRUE to still pass them to - // the control's default window proc - otherwise built-in - // keyboard handling won't work - processed = FALSE; - - 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, _T("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(); -} - -#if 0 // def __WXDEBUG__ -static int gs_AssociationCount = 0; -#endif - -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, - _T("attempt to add a NULL hWnd to window list ignored") ); - - - wxWindow *oldWin = wxFindWinFromHandle((WXHWND) hWnd); - if ( oldWin && (oldWin != win) ) - { - wxString str(win->GetClassInfo()->GetClassName()); - wxLogError("Bug! Found existing HWND %X for new window of class %s", (int) hWnd, (const char*) str); - } - else if (!oldWin) - { -#if 0 // def __WXDEBUG__ - gs_AssociationCount ++; - wxLogDebug("+ Association %d", gs_AssociationCount); -#endif - - wxWinHandleList->Append((long)hWnd, win); - } -} - -void wxRemoveHandleAssociation(wxWindow *win) -{ -#if 0 // def __WXDEBUG__ - if (wxWinHandleList->Member(win)) - { - wxLogDebug("- Association %d", gs_AssociationCount); - gs_AssociationCount --; - } -#endif - 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++) - { - wxChar buf[100]; - int chars = GetMenuString(hMenu, i, buf, 100, MF_BYPOSITION); - if ( !chars ) - { - wxLogLastError(_T("GetMenuString")); - - continue; - } - - if ( wxStrcmp(buf, _T("&Window")) == 0 ) - { - RemoveMenu(hMenu, i, MF_BYPOSITION); - - break; - } - } - } -} - -bool wxWindow::MSWCreate(int id, - wxWindow *parent, - const wxChar *wclass, - wxWindow *wx_win, - const wxChar *title, - int x, - int y, - int width, - int height, - WXDWORD style, - const wxChar *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(_T("SetWindowPos")); - } - } - - // move the dialog to its initial position without forcing repainting - if ( !::MoveWindow(GetHwnd(), x1, y1, width1, height1, FALSE) ) - { - wxLogLastError(_T("MoveWindow")); - } - } - else - { - int controlId = 0; - if ( style & WS_CHILD ) - controlId = id; - - wxString className(wclass); - if ( GetWindowStyleFlag() & wxNO_FULL_REPAINT_ON_RESIZE ) - { - className += _T("NR"); - } - - m_hWnd = (WXHWND)CreateWindowEx(extendedStyle, - wclass, - title ? title : _T(""), - 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; -#ifdef __WXDEBUG__ - wxNode* node = wxWinHandleList->Member(this); - if (node) - { - HWND hWnd = (HWND) node->GetKeyInteger(); - if (hWnd != (HWND) m_hWnd) - { - wxLogError("A second HWND association is being added for the same window!"); - } - } -#endif - wxAssociateWinWithHandle((HWND) 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 = (wxChar *)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 - wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); - if ( panel ) - { - panel->SetLastFocus(this); - } - - 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, (LPTSTR) 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(_T("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); - - if ( x ) - *x = tm.tmAveCharWidth; - if ( y ) - *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 8841226237..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 "../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, MBSTRINGCAST name.mb_str(wxConvFile), &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, MBSTRINGCAST name.mb_str(wxConvFile), - &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/os2/accel.cpp b/src/os2/accel.cpp deleted file mode 100644 index b0b8734d55..0000000000 --- a/src/os2/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/os2/app.cpp b/src/os2/app.cpp deleted file mode 100644 index b04a01bbe2..0000000000 --- a/src/os2/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/os2/bitmap.cpp b/src/os2/bitmap.cpp deleted file mode 100644 index 1e6255f551..0000000000 --- a/src/os2/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/os2/bmpbuttn.cpp b/src/os2/bmpbuttn.cpp deleted file mode 100644 index 169f0d557a..0000000000 --- a/src/os2/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/os2/brush.cpp b/src/os2/brush.cpp deleted file mode 100644 index 4f28e92f53..0000000000 --- a/src/os2/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/os2/button.cpp b/src/os2/button.cpp deleted file mode 100644 index befd0d7156..0000000000 --- a/src/os2/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/os2/checkbox.cpp b/src/os2/checkbox.cpp deleted file mode 100644 index 258a9cc6c3..0000000000 --- a/src/os2/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/os2/checklst.cpp b/src/os2/checklst.cpp deleted file mode 100644 index ecabf5408e..0000000000 --- a/src/os2/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/os2/choice.cpp b/src/os2/choice.cpp deleted file mode 100644 index a584d5303f..0000000000 --- a/src/os2/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/os2/clipbrd.cpp b/src/os2/clipbrd.cpp deleted file mode 100644 index 3fe9ebfb72..0000000000 --- a/src/os2/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/os2/colordlg.cpp b/src/os2/colordlg.cpp deleted file mode 100644 index 2275a9a39d..0000000000 --- a/src/os2/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/os2/colour.cpp b/src/os2/colour.cpp deleted file mode 100644 index 8d0827ef1d..0000000000 --- a/src/os2/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/os2/combobox.cpp b/src/os2/combobox.cpp deleted file mode 100644 index 0be841bad4..0000000000 --- a/src/os2/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/os2/control.cpp b/src/os2/control.cpp deleted file mode 100644 index b141a80ff1..0000000000 --- a/src/os2/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/os2/cursor.cpp b/src/os2/cursor.cpp deleted file mode 100644 index 4333364c93..0000000000 --- a/src/os2/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/os2/data.cpp b/src/os2/data.cpp deleted file mode 100644 index aea15f6799..0000000000 --- a/src/os2/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/os2/dc.cpp b/src/os2/dc.cpp deleted file mode 100644 index 7a95c3ab97..0000000000 --- a/src/os2/dc.cpp +++ /dev/null @@ -1,400 +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 - -//----------------------------------------------------------------------------- -// wxDCBase -//----------------------------------------------------------------------------- - -long wxDCBase::DeviceToLogicalX(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 wxDCBase::DeviceToLogicalY(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 wxDCBase::DeviceToLogicalXRel(long x) const -{ - if (x > 0) - return (long)((double)(x) / m_scaleX + 0.5); - else - return (long)((double)(x) / m_scaleX - 0.5); -}; - -long wxDCBase::DeviceToLogicalYRel(long y) const -{ - if (y > 0) - return (long)((double)(y) / m_scaleY + 0.5); - else - return (long)((double)(y) / m_scaleY - 0.5); -}; - -long wxDCBase::LogicalToDeviceX(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 wxDCBase::LogicalToDeviceY(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 wxDCBase::LogicalToDeviceXRel(long x) const -{ - if (x > 0) - return (long)((double)(x) * m_scaleX + 0.5); - else - return (long)((double)(x) * m_scaleX - 0.5); -}; - -long wxDCBase::LogicalToDeviceYRel(long y) const -{ - if (y > 0) - return (long)((double)(y) * m_scaleY + 0.5); - else - return (long)((double)(y) * m_scaleY - 0.5); -}; - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -wxDC::wxDC(void) -{ - m_owner = NULL; - m_bitmap = NULL; - - m_oldBitmap = 0; - m_oldPen = 0; - m_oldBrush = 0; - m_oldFont = 0; - m_oldPalette = 0; - m_hDC = 0; - m_hDCCount = 0; -}; - -wxDC::~wxDC(void) -{ - // TODO: -}; - -void wxDC::DestroyClippingRegion(void) -{ - // TODO: -}; - -void wxDC::DoGetSize( int* width, int* height ) const -{ - // TODO: -}; - -void wxDC::DoGetSizeMM( int* width, int* height ) const -{ - // TODO: -}; - -void wxDC::SetMapMode( int mode ) -{ - // TODO: -}; - -void wxDC::SetUserScale( double x, double y ) -{ - m_userScaleX = x; - m_userScaleY = y; - - SetMapMode(m_mappingMode); -}; - -void wxDC::SetLogicalScale( double x, double y ) -{ - // TODO: -}; - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - // TODO: -}; - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - // TODO: -}; - -void wxDC::SetInternalDeviceOrigin( long x, long y ) -{ - // TODO: -}; - -void wxDC::GetInternalDeviceOrigin( long *x, long *y ) -{ - // TODO: -}; - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - // TODO: -}; - - -int wxDC::GetDepth() const -{ - // TODO: - return (1); -} - -wxSize wxDC::GetPPI() const -{ - int x = 1; - int y = 1; - // TODO: - return (wxSize(x,y)); -} -void wxDC::GetTextExtent( const wxString& string - ,long* x - ,long* y - ,long* decent - ,long* externalLeading - ,wxFont* theFont - ) const -{ - // TODO: -} - -long wxDC::GetCharWidth() const -{ - // TODO - return(1); -} - -long wxDC::GetCharHeight() const -{ - // TODO - return(1); -} - -void wxDC::Clear() -{ - // TODO -} - -void wxDC::SetFont(const wxFont& font) -{ - // TODO -} - -void wxDC::SetPen(const wxPen& pen) -{ - // TODO -} -void wxDC::SetBrush(const wxBrush& brush) -{ - // TODO -} - -void wxDC::SetBackground(const wxBrush& brush) -{ - // TODO -} - -void wxDC::SetLogicalFunction(int function) -{ - // TODO -} - -void wxDC::SetBackgroundMode(int mode) -{ - // TODO -} - -void wxDC::SetPalette(const wxPalette& palette) -{ - // TODO -} - -void wxDC::DoFloodFill( long x - ,long y - ,const wxColour& col - ,int style - ) -{ - // TODO -} - -bool wxDC::DoGetPixel(long x, long y, wxColour *col) const -{ - // TODO - return(TRUE); -} - -void wxDC::DoDrawPoint(long x, long y) -{ - // TODO -} - -void wxDC::DoDrawLine(long x1, long y1, long x2, long y2) -{ - // TODO -} - -void wxDC::DoDrawArc( long x1, long y1 - ,long x2, long y2 - ,long xc, long yc - ) -{ - // TODO -} - -void wxDC::DoDrawEllipticArc( long x - ,long y - ,long w - ,long h - ,double sa - ,double ea - ) -{ - // TODO -} - -void wxDC::DoDrawRectangle(long x, long y, long width, long height) -{ - // TODO -} - -void wxDC::DoDrawRoundedRectangle( long x, long y - ,long width, long height - ,double radius - ) -{ - // TODO -} - -void wxDC::DoDrawEllipse(long x, long y, long width, long height) -{ - // TODO -} - -void wxDC::DoCrossHair(long x, long y) -{ - // TODO -} - -void wxDC::DoDrawIcon(const wxIcon& icon, long x, long y) -{ - // TODO -} - -void wxDC::DoDrawBitmap( const wxBitmap &bmp - ,long x, long y - ,bool useMask - ) -{ - // TODO -} - -void wxDC::DoDrawText(const wxString& text, long x, long y) -{ - // TODO -} - -bool wxDC::DoBlit( long xdest - ,long ydest - ,long width - ,long height - ,wxDC *source - ,long xsrc - ,long ysrc - ,int rop - ,bool useMask - ) -{ - // TODO - return(TRUE); -} - -void wxDC::DoDrawLines( int n, wxPoint points[] - ,long xoffset, long yoffset - ) -{ - // TODO -} - -void wxDC::DoDrawPolygon(int n, wxPoint points[] - ,long xoffset, long yoffset - ,int fillStyle - ) -{ - // TODO -} - -void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region) -{ - // TODO -} - -void wxDC::DoSetClippingRegion( long x, long y - ,long width, long height - ) -{ - // TODO -} - -#if wxUSE_SPLINES -void wxDC::DoDrawSpline(wxList *points) -{ - // TODO -} -#endif - -// -// Private functions -// - - diff --git a/src/os2/dcclient.cpp b/src/os2/dcclient.cpp deleted file mode 100644 index 655e84bfc3..0000000000 --- a/src/os2/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) ) const -{ - if (!Ok()) return; - -}; - -long wxWindowDC::GetCharWidth(void) const -{ - if (!Ok()) return 0; - return 0; -}; - -long wxWindowDC::GetCharHeight(void) const -{ - 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/os2/dcmemory.cpp b/src/os2/dcmemory.cpp deleted file mode 100644 index 7cbd330821..0000000000 --- a/src/os2/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/os2/dcscreen.cpp b/src/os2/dcscreen.cpp deleted file mode 100644 index e03bbac0c8..0000000000 --- a/src/os2/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/os2/dialog.cpp b/src/os2/dialog.cpp deleted file mode 100644 index f15bd2b353..0000000000 --- a/src/os2/dialog.cpp +++ /dev/null @@ -1,281 +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::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/os2/dirdlg.cpp b/src/os2/dirdlg.cpp deleted file mode 100644 index 095621b978..0000000000 --- a/src/os2/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/os2/dnd.cpp b/src/os2/dnd.cpp deleted file mode 100644 index 32088eef0f..0000000000 --- a/src/os2/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/os2/dummy.cpp b/src/os2/dummy.cpp deleted file mode 100644 index 73e42c3dec..0000000000 --- a/src/os2/dummy.cpp +++ /dev/null @@ -1,28 +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. - * - * This will produce a big PCH file. - */ - -#include "wx/wxprec.h" - -#define INCL_OS2 -#include - -#if defined(__VISAGECPP__) - char wxDummyChar = 0; -#endif - diff --git a/src/os2/dummydll.cpp b/src/os2/dummydll.cpp deleted file mode 100644 index 30a90204df..0000000000 --- a/src/os2/dummydll.cpp +++ /dev/null @@ -1,23 +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" - -#if defined(__VISAGECPP__) - char wxDummyChar=0; -#endif - diff --git a/src/os2/filedlg.cpp b/src/os2/filedlg.cpp deleted file mode 100644 index 8832598af4..0000000000 --- a/src/os2/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/os2/font.cpp b/src/os2/font.cpp deleted file mode 100644 index 493a6a25ba..0000000000 --- a/src/os2/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/os2/fontdlg.cpp b/src/os2/fontdlg.cpp deleted file mode 100644 index 60e8e9b987..0000000000 --- a/src/os2/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/os2/frame.cpp b/src/os2/frame.cpp deleted file mode 100644 index 794d42bf4d..0000000000 --- a/src/os2/frame.cpp +++ /dev/null @@ -1,563 +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/event.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_frameMenuBar = NULL; - m_frameStatusBar = NULL; - - m_iconized = FALSE; - - m_frameToolBar = NULL ; -} - -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, NULL, NULL, NULL, FALSE); - - 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(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 (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/os2/gauge.cpp b/src/os2/gauge.cpp deleted file mode 100644 index a85fbc498f..0000000000 --- a/src/os2/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/os2/gdiobj.cpp b/src/os2/gdiobj.cpp deleted file mode 100644 index 63697c8354..0000000000 --- a/src/os2/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/os2/helpxxxx.cpp b/src/os2/helpxxxx.cpp deleted file mode 100644 index 086762c646..0000000000 --- a/src/os2/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/os2/icon.cpp b/src/os2/icon.cpp deleted file mode 100644 index 6deee7dbdc..0000000000 --- a/src/os2/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/os2/imaglist.cpp b/src/os2/imaglist.cpp deleted file mode 100644 index 4cb47b4e69..0000000000 --- a/src/os2/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/os2/joystick.cpp b/src/os2/joystick.cpp deleted file mode 100644 index 6677277f48..0000000000 --- a/src/os2/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/os2/listbox.cpp b/src/os2/listbox.cpp deleted file mode 100644 index 1dad21e12c..0000000000 --- a/src/os2/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/os2/listctrl.cpp b/src/os2/listctrl.cpp deleted file mode 100644 index d1d8445652..0000000000 --- a/src/os2/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/os2/main.cpp b/src/os2/main.cpp deleted file mode 100644 index 47a9924bae..0000000000 --- a/src/os2/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/os2/makefile.va b/src/os2/makefile.va deleted file mode 100644 index c01477a096..0000000000 --- a/src/os2/makefile.va +++ /dev/null @@ -1,347 +0,0 @@ -# -# File: makefile.va -# Author: Dave Webster -# Created: 1999 -# Updated: -# Copyright: (c) 1999, Dave Webster -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for VisualAge C++ -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# dll builds a library (wxdll.lib) suitable for creating DLLs -# -!include <..\makeva.env> - -THISDIR=$(WXWIN)\src\os2 - -!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 wx_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 -OS2DIR=$(WXDIR)\src\os2 -HTMLDIR = $(WXDIR)\src\html - -{..\generic}.cpp{..\generic\$D}.obj: - @echo $< - icc @<< -$(CPPFLAGS) /Fo$@ /Tp $< -<< - -{..\common}.cpp{..\common\$D}.obj: - @echo $< - icc @<< -$(CPPFLAGS) /Fo$@ /Tp $< -<< - -{..\os2}.cpp{..\os2\$D}.obj: - @echo $< - icc @<< -$(CPPFLAGS) /Fo$@ /Tp $< -<< - -{..\html}.cpp{..\html\$D}.obj: - @echo $< - icc @<< -$(CPPFLAGS) /Fo$@ /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\extdlgg.obj \ - ..\generic\$D\tipdlg.obj \ - ..\generic\$D\busyinfo.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 PM, -# 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\imagbmp.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\dlgcmn.obj \ - ..\common\$D\wincmn.obj \ - ..\common\$D\txtstrm.obj \ - ..\common\$D\wxchar.obj \ - ..\common\$D\unzip.obj \ - ..\common\$D\zipstream.obj \ - ..\common\$D\filesys.obj \ - ..\common\$D\fs_inet.obj \ - ..\common\$D\fs_zip.obj - - -OS2OBJS = \ - ..\os2\$D\dc.obj \ - ..\os2\$D\dialog.obj \ - ..\os2\$D\frame.obj \ - ..\os2\$D\window.obj \ - -HTMLOBJS = \ - ..\html\$D\htmlcell.obj \ - ..\html\$D\htmlfilter.obj \ - ..\html\$D\htmlhelp.obj \ - ..\html\$D\htmlhelp_io.obj \ - ..\html\$D\htmlparser.obj \ - ..\html\$D\htmltag.obj \ - ..\html\$D\htmlwin.obj \ - ..\html\$D\htmlwinparser.obj \ - ..\html\$D\mod_fonts.obj \ - ..\html\$D\mod_hline.obj \ - ..\html\$D\mod_image.obj \ - ..\html\$D\mod_layout.obj \ - ..\html\$D\mod_links.obj \ - ..\html\$D\mod_list.obj \ - ..\html\$D\mod_pre.obj \ - ..\html\$D\mod_tables.obj \ - ..\html\$D\search.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(NONESSENTIALOBJS) $(OS2OBJS) - -# Normal, static library -all: $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET) - -dirs: $(OS2DIR)\$D $(COMMDIR)\$D $(GENDIR)\$D $(HTMLDIR)\$D - - -test: $(OS2DIR)\$D\wave.obj -test2: ..\common\Debug\config.obj - -$D: - md $D - -$(COMMDIR)\$D: - md $(COMMDIR)\$D - -$(OS2DIR)\$D: - md $(OS2DIR)\$D - -$(GENDIR)\$D: - md $(GENDIR)\$D - -$(HTMLDIR)\$D: - md $(HTMLDIR)\$D - -# wxWindows library as DLL -dll: - nmake -f makefile.va all FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME) - -cleandll: - nmake -f makefile.va clean FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME) - -# wxWindows + app as DLL. Only affects main.cpp. -dllapp: - nmake -f makefile.va all FINAL=$(FINAL) DLL=1 - -# wxWindows + app as DLL, for Netscape plugin - remove DllMain. -dllnp: - nmake -f makefile.va all 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.va pch1 WXUSINGDLL=1 FINAL=$(FINAL) NEW_WXLIBNAME=$(NEW_WXLIBNAME) - -pch1: dirs $(DUMMYOBJ) - echo $(DUMMYOBJ) - -!if "$(WXMAKINGDLL)" != "1" - -### Static library - -$(WXDIR)\lib\wx.lib: $D\dummy.obj $(OBJECTS) $(PERIPH_LIBS) - touch $(LIBTARGET) - del $(LIBTARGET) - ilib $(LINKFLAGS) $@ @<< - $** -<< - -!else - -# Update the import library -$(WXDIR)\lib\wx200.lib: $(OBJECTS) - implib $(WXDIR)\lib\wx200.lib $(WXDIR)\lib\wx200.def - -# Update the dynamic link library -$(WXDIR)\lib\wx200.dll: $(OBJECTS) $(WXDIR)\lib\wx200.lib - icc @<< - /B" $(LINKFLAGS)" /Fe$@ - $(LIBS) - $(OBJECTS) - $(WXDIR)\lib\wx200.def -<< - -!endif - -$D\dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\os2\setup.h - icc $(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummy.obj /Tp dummy.cpp - -$D\dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\os2\setup.h - icc @<< -$(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummydll.obj /c /Tp dummydll.cpp -<< - -# If taking wxWindows from CVS, setup.h doesn't exist yet. -$(WXDIR)\include\wx\os2\setup.h: $(WXDIR)\include\wx\os2\setup0.h - copy "$(WXDIR)"\include\wx\os2\setup.h "$(WXDIR)"\include\wx\os2\setup.bak - copy "$(WXDIR)"\include\wx\os2\setup0.h "$(WXDIR)"\include\wx\os2\setup.h - -..\common\$D\extended.obj: ..\common\extended.c - icc @<< -$(CPPFLAGS2) /Fo$@ $(COMMDIR)\extended.c -<< - -..\common\$D\y_tab.obj: ..\common\y_tab.c ..\common\lex_yy.c - icc @<< -$(CPPFLAGS2) /DUSE_DEFINE /DYY_USE_PROTOS /Fo$@ ..\common\y_tab.c -<< - -..\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 - -..\common\$D\unzip.obj: ..\common\unzip.c - icc @<< -$(CPPFLAGS2) /Fo$@ $(COMMDIR)\unzip.c -<< - -clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_jpeg clean_xpm - -erase $(LIBTARGET) - -erase ..\..\lib\wx200.dll - -erase ..\..\lib\wx200.lib - -erase $(GENDIR)\$D\*.obj - -erase $(COMMDIR)\$D\*.obj - -erase $(COMMDIR)\\y_tab.c - -erase $(COMMDIR)\lex_yy.c - -erase $(OS2DIR)\$D\*.obj - -rmdir $(D) - -rmdir ole\$(D) - -rmdir ..\generic\$(D) - -rmdir ..\common\$(D) - -cleanall: clean - diff --git a/src/os2/mdi.cpp b/src/os2/mdi.cpp deleted file mode 100644 index 4869697cd7..0000000000 --- a/src/os2/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/os2/menu.cpp b/src/os2/menu.cpp deleted file mode 100644 index 5880beab53..0000000000 --- a/src/os2/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/os2/menuitem.cpp b/src/os2/menuitem.cpp deleted file mode 100644 index bd2f876a38..0000000000 --- a/src/os2/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/os2/metafile.cpp b/src/os2/metafile.cpp deleted file mode 100644 index 03c29bcb79..0000000000 --- a/src/os2/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/os2/minifram.cpp b/src/os2/minifram.cpp deleted file mode 100644 index 4f6f5e5fcb..0000000000 --- a/src/os2/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/os2/msgdlg.cpp b/src/os2/msgdlg.cpp deleted file mode 100644 index aeaa9bac7a..0000000000 --- a/src/os2/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/os2/notebook.cpp b/src/os2/notebook.cpp deleted file mode 100644 index f7ee49cd5d..0000000000 --- a/src/os2/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/os2/palette.cpp b/src/os2/palette.cpp deleted file mode 100644 index f8db96f8d0..0000000000 --- a/src/os2/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/os2/pen.cpp b/src/os2/pen.cpp deleted file mode 100644 index 1e3ced2a3a..0000000000 --- a/src/os2/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/os2/print.cpp b/src/os2/print.cpp deleted file mode 100644 index 61fd6e7e99..0000000000 --- a/src/os2/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/os2/printdlg.cpp b/src/os2/printdlg.cpp deleted file mode 100644 index eae3b95568..0000000000 --- a/src/os2/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/os2/radiobox.cpp b/src/os2/radiobox.cpp deleted file mode 100644 index da582d0e52..0000000000 --- a/src/os2/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/os2/radiobut.cpp b/src/os2/radiobut.cpp deleted file mode 100644 index 65baab38b6..0000000000 --- a/src/os2/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/os2/region.cpp b/src/os2/region.cpp deleted file mode 100644 index c71d4c605a..0000000000 --- a/src/os2/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/os2/scrolbar.cpp b/src/os2/scrolbar.cpp deleted file mode 100644 index 54df181166..0000000000 --- a/src/os2/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/os2/settings.cpp b/src/os2/settings.cpp deleted file mode 100644 index 2beda5c2a6..0000000000 --- a/src/os2/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/os2/slider.cpp b/src/os2/slider.cpp deleted file mode 100644 index c9952342a9..0000000000 --- a/src/os2/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/os2/spinbutt.cpp b/src/os2/spinbutt.cpp deleted file mode 100644 index cbea725592..0000000000 --- a/src/os2/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/os2/statbmp.cpp b/src/os2/statbmp.cpp deleted file mode 100644 index a67c558465..0000000000 --- a/src/os2/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/os2/statbox.cpp b/src/os2/statbox.cpp deleted file mode 100644 index b239dc738c..0000000000 --- a/src/os2/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/os2/stattext.cpp b/src/os2/stattext.cpp deleted file mode 100644 index 3b19c7184d..0000000000 --- a/src/os2/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/os2/statusbr.cpp b/src/os2/statusbr.cpp deleted file mode 100644 index dff1ddec34..0000000000 --- a/src/os2/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/os2/tabctrl.cpp b/src/os2/tabctrl.cpp deleted file mode 100644 index b3b45a72d1..0000000000 --- a/src/os2/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/os2/taskbar.cpp b/src/os2/taskbar.cpp deleted file mode 100644 index 5c91250cf0..0000000000 --- a/src/os2/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/os2/textctrl.cpp b/src/os2/textctrl.cpp deleted file mode 100644 index 720e6082be..0000000000 --- a/src/os2/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/os2/thread.cpp b/src/os2/thread.cpp deleted file mode 100644 index 34ad1a4f14..0000000000 --- a/src/os2/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/os2/timer.cpp b/src/os2/timer.cpp deleted file mode 100644 index 5262040cf6..0000000000 --- a/src/os2/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/os2/toolbar.cpp b/src/os2/toolbar.cpp deleted file mode 100644 index 3cb859e366..0000000000 --- a/src/os2/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/os2/treectrl.cpp b/src/os2/treectrl.cpp deleted file mode 100644 index 137a885dbf..0000000000 --- a/src/os2/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/os2/utils.cpp b/src/os2/utils.cpp deleted file mode 100644 index 940bdc21bc..0000000000 --- a/src/os2/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/os2/utilsexc.cpp b/src/os2/utilsexc.cpp deleted file mode 100644 index b842d08e90..0000000000 --- a/src/os2/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/os2/wave.cpp b/src/os2/wave.cpp deleted file mode 100644 index c25681858c..0000000000 --- a/src/os2/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/os2/window.cpp b/src/os2/window.cpp deleted file mode 100644 index 1cbf08b8c1..0000000000 --- a/src/os2/window.cpp +++ /dev/null @@ -1,555 +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 - -#ifndef WX_PRECOMP - #define INCL_DOS - #define INCL_PM - #include - #include "wx/window.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/dnd.h" -#endif - -#include "wx/menuitem.h" -#include "wx/log.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 - -// place compiler, OS specific includes here - - -// standard macros -- these are for OS/2 PM, but most GUI's have something similar -#ifndef GET_X_LPARAM -// SHORT1FROMMP -- LOWORD - #define GET_X_LPARAM(mp) ((unsigned short)(unsigned long)(mp)) -// SHORT2FROMMP -- HIWORD - #define GET_Y_LPARAM(mp) ((unsigned short)(unsigned long)(mp >> 16)) -#endif // GET_X_LPARAM - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -// the last Windows message we got (MT-UNSAFE) -extern WXMSGID s_currentMsg; -extern wxList WXDLLEXPORT wxPendingDelete; -extern wxChar wxCanvasClassName[]; - -wxMenu *wxCurrentPopupMenu = NULL; -wxList *wxWinHandleList = NULL; - -// --------------------------------------------------------------------------- -// private functions -// --------------------------------------------------------------------------- -// the window proc for all our windows; most gui's have something similar -MRESULT wxWndProc( HWND hWnd - ,ULONG message - ,MPARAM mp1 - ,MPARAM mp2 - ); -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 -// =========================================================================== - -void wxWindow::Init() -{ - // generic - InitBase(); - - // PM specific - m_winCaptured = FALSE; - m_isBeingDeleted = FALSE; - m_mouseInWindow = FALSE; - m_backgroundTransparent = FALSE; - - // wxWnd - m_hMenu = 0; - - m_hWnd = 0; - - // pass WM_GETDLGCODE to DefWindowProc() - m_lDlgCode = 0; - - m_xThumbSize = 0; - m_yThumbSize = 0; - - // as all windows are created with WS_VISIBLE style... - m_isShown = TRUE; - -} - -bool wxWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - wxCHECK_MSG( parent, FALSE, _T("can't create wxWindow without parent") ); - - if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) ) - return FALSE; - - // TODO: PM Specific initialization - parent->AddChild(this); - return TRUE; -} - -// Destructor -wxWindow::~wxWindow() -{ - m_isBeingDeleted = TRUE; - - PMDetachWindowMenu(); - // delete handlers? - if (m_parent) - m_parent->RemoveChild(this); - DestroyChildren(); - if (m_hWnd) - { - if(!WinDestroyWindow(GetHwnd())) - wxLogLastError("DestroyWindow"); - // remove hWnd <-> wxWindow association - wxRemoveHandleAssociation(this); - } -} - -// --------------------------------------------------------------------------- -// basic operations -// --------------------------------------------------------------------------- - -void wxWindow::Raise() -{ - // TODO: -} - -void wxWindow::Lower() -{ - // TODO: -} - -void wxWindow::SetFocus() -{ - // TODO: -} - -void wxWindow::WarpPointer(int x_pos, int y_pos) -{ - // TODO: -} - -void wxWindow::CaptureMouse() -{ - // TODO: -} - -void wxWindow::ReleaseMouse() -{ - // TODO: -} - -void wxWindow::Refresh(bool eraseBack, const wxRect *rect) -{ - // TODO: -} - -void wxWindow::Clear() -{ - // TODO: -} - -bool wxWindow::SetFont(const wxFont& f) -{ - // TODO: - return(TRUE); -} - -int wxWindow::GetCharHeight() const -{ - // TODO: - return(1); -} - -int wxWindow::GetCharWidth() const -{ - // TODO: - return(1); -} - -void wxWindow::GetTextExtent( const wxString& string - ,int* x - ,int* y - ,int* descent - ,int* externalLeading - ,const wxFont* theFont - ) const -{ - // TODO: -} - -void wxWindow::SetScrollbar( int orient - ,int pos - ,int thumbVisible - ,int range - ,bool refresh - ) -{ - // TODO: -} - -void wxWindow::SetScrollPos( int orient - ,int pos - ,bool refresh - ) -{ - // TODO: -} - -int wxWindow::GetScrollPos(int orient) const -{ - // TODO: - return(1); -} - -int wxWindow::GetScrollRange(int orient) const -{ - // TODO: - return(1); -} - -int wxWindow::GetScrollThumb(int orient) const -{ - // TODO: - return(1); -} - -void wxWindow::ScrollWindow( int dx - ,int dy - ,const wxRect* rect - ) -{ - // TODO: -} - -#if wxUSE_DRAG_AND_DROP -void wxWindow::SetDropTarget(wxDropTarget *pDropTarget) -{ - // TODO: -} -#endif - -void wxWindow::DoClientToScreen( int *x, int *y ) const -{ - // TODO: -} - -void wxWindow::DoScreenToClient( int *x, int *y ) const -{ - // TODO: -} - -void wxWindow::DoGetPosition( int *x, int *y ) const -{ - // TODO: -} - -void wxWindow::DoGetSize( int *width, int *height ) const -{ - // TODO: -} - -void wxWindow::DoGetClientSize( int *width, int *height ) const -{ - // TODO: -} - -void wxWindow::DoSetSize(int x, int y, - int width, int height, - int sizeFlags) -{ - // TODO: -} - -void wxWindow::DoSetClientSize(int width, int height) -{ - // TODO: -} - -bool wxWindow::DoPopupMenu( wxMenu *menu, int x, int y ) -{ - // TODO: - return(TRUE); -} - -void wxWindow::Fit() -{ - // TODO: -} - -bool wxWindow::Show(bool show) // check if base implementation is OK -{ - // TODO: - return(TRUE); -} - -bool wxWindow::Enable(bool enable) // check if base implementation is OK -{ - // TODO: - return(TRUE); -} - -bool wxWindow::SetCursor(const wxCursor& cursor) // check if base implementation is OK -{ - // TODO: - return(TRUE); -} - -bool wxWindow::Validate() -{ - // TODO: - return(TRUE); -} - -wxWindow* wxWindow::FindFocus() -{ - wxWindow* window = NULL; - // TODO: - return(window); -} - -void wxWindow::DragAcceptFiles(bool accept) -{ - // TODO: -} - -#if wxUSE_CARET && WXWIN_COMPATIBILITY -void wxWindow::CreateCaret(int w, int h) -{ - // TODO: -} - -void wxWindow::CreateCaret(const wxBitmap *bitmap) -{ - // TODO: -} - -void wxWindow::DestroyCaret() -{ - // TODO: -} - -void wxWindow::ShowCaret(bool show) -{ - // TODO: -} - -void wxWindow::SetCaretPos(int x, int y) -{ - // TODO: -} - -void wxWindow::GetCaretPos(int *x, int *y) const -{ - // TODO: -} - -#endif - -void wxWindow::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - // TODO: -} - -void wxWindow::OnDefaultAction(wxControl *initiatingItem) -{ - // TODO: -} - -void wxWindow::OnEraseBackground(wxEraseEvent& event) -{ - // TODO: -} - -void wxWindow::OnChar(wxKeyEvent& event) -{ - // TODO: -} - -void wxWindow::OnKeyDown(wxKeyEvent& event) -{ - // TODO: -} - -void wxWindow::OnKeyUp(wxKeyEvent& event) -{ - // TODO: -} - -void wxWindow::OnPaint(wxPaintEvent& event) -{ - // TODO: -} - -void wxWindow::OnIdle(wxIdleEvent& event) -{ - // TODO: -} - -void wxWindow::OnInitDialog(wxInitDialogEvent& event) -{ - // TODO: -} - - -wxPoint wxWindow::GetClientAreaOrigin() const -{ - // TODO: - return wxPoint(0, 0); -} - -void wxWindow::AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) -{ - // TODO: -} - -long wxWindow::Default() -{ - // TODO: - return(1); -} - -void wxWindow::UnsetConstraints(wxLayoutConstraints *c) -{ - // TODO: -} - -wxObject* wxWindow::GetChild(int number) const -{ - // TODO: - return((wxObject*)this); -} - -WXWidget wxWindow::GetHandle() const -{ - // TODO: - return((WXWidget)m_hWnd); -} - -void wxWindow::PMDetachWindowMenu() -{ - if ( m_hMenu ) - { - HMENU hMenu = (HMENU)m_hMenu; - - int N = (int)WinSendMsg(hMenu, MM_QUERYITEMCOUNT, 0, 0); - int i; - for (i = 0; i < N; i++) - { - wxChar buf[100]; - int chars = (int)WinSendMsg(hMenu, MM_QUERYITEMTEXT, MPFROM2SHORT(i, N), buf); - if ( !chars ) - { - wxLogLastError(_T("GetMenuString")); - - continue; - } - - if ( wxStrcmp(buf, _T("&Window")) == 0 ) - { - WinSendMsg(hMenu, MM_DELETEITEM, MPFROM2SHORT(i, TRUE), 0); - break; - } - } - } -} - -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, - _T("attempt to add a NULL hWnd to window list ignored") ); - - if ( !wxWinHandleList->Find((long)hWnd) ) - wxWinHandleList->Append((long)hWnd, win); -} - -wxWindow *wxFindWinFromHandle(WXHWND hWnd) -{ - wxNode *node = wxWinHandleList->Find((long)hWnd); - if ( !node ) - return NULL; - return (wxWindow *)node->Data(); -} - -void wxRemoveHandleAssociation(wxWindow *win) -{ - wxWinHandleList->DeleteObject(win); -} - diff --git a/src/os2/y_tab.i b/src/os2/y_tab.i deleted file mode 100644 index 8a625d56f3..0000000000 --- a/src/os2/y_tab.i +++ /dev/null @@ -1,1922 +0,0 @@ -static char yysccsid[] = "@(#)yaccpar 1.7 (Berkeley) 09/09/90"; -#line 2 "parser.y" -#pragma info( none ) - #pragma info( none ) -#pragma info( restore ) - - - - - - - - - - - - - - - - typedef unsigned int size_t; - - - char * _Builtin __strcat( char *, const char * ); - char * _Builtin __strchr( const char *, int ); - int _Builtin __strcmp( const char *, const char * ); - char * _Builtin __strcpy( char*, const char * ); - size_t _Builtin __strlen( const char * ); - char * _Builtin __strncat( char *, const char *, size_t ); - int _Builtin __strncmp( const char *, const char *, size_t ); - char * _Builtin __strncpy( char *, const char *, size_t ); - char * _Builtin __strrchr( const char *, int ); - - int _Import _Optlink strcoll( const char *, const char * ); - size_t _Import _Optlink strcspn( const char *, const char * ); - char * _Import _Optlink strerror( int ); - char * _Import _Optlink strpbrk( const char *, const char * ); - size_t _Import _Optlink strspn( const char *, const char * ); - char * _Import _Optlink strstr( const char *, const char * ); - char * _Import _Optlink strtok( char*, const char * ); - size_t _Import _Optlink strxfrm( char *, const char *, size_t ); - - char * _Import _Optlink strcat( char *, const char * ); - char * _Import _Optlink strchr( const char *, int ); - int _Import _Optlink strcmp( const char *, const char * ); - char * _Import _Optlink strcpy( char *, const char * ); - size_t _Import _Optlink strlen( const char * ); - char * _Import _Optlink strncat( char *, const char *, size_t ); - int _Import _Optlink strncmp( const char *, const char *, size_t ); - char * _Import _Optlink strncpy( char *, const char *, size_t ); - char * _Import _Optlink strrchr( const char *, int ); - - #pragma info( none ) - #pragma info( restore ) - - - - void * _Builtin __memcpy( void *, const void *, size_t ); - void * _Builtin __memchr( const void *, int, size_t ); - int _Builtin __memcmp( const void *, const void *, size_t ); - void * _Builtin __memset( void *, int, size_t ); - void * _Builtin __memmove( void *, const void *, size_t ); - - void * _Import _Optlink memcpy( void *, const void *, size_t ); - void * _Import _Optlink memchr( const void *, int, size_t ); - int _Import _Optlink memcmp( const void *, const void *, size_t ); - void * _Import _Optlink memset( void *, int, size_t ); - void * _Import _Optlink memmove( void *, const void *, size_t ); - - #pragma info( none ) - #pragma info( restore ) - - - - void * _Import _Optlink memccpy( void *, void *, int, unsigned int ); - int _Import _Optlink memicmp( void *, void *, unsigned int ); - - - - - - char * _Import _Optlink strdup( const char * ); - int _Import _Optlink stricmp( const char *, const char * ); - char * _Import _Optlink strlwr( char * ); - int _Import _Optlink strnicmp( const char *, const char *, size_t ); - char * _Import _Optlink strupr( char * ); - - int _Import _Optlink strcmpi( const char *, const char * ); - char * _Import _Optlink strrev( char * ); - char * _Import _Optlink strset( char *, int ); - char * _Import _Optlink strnset( char *, int, size_t ); - char * _Import _Optlink _strerror( char * ); - - - size_t _Import _Optlink _fstrcspn( const char *, const char * ); - char * _Import _Optlink _fstrdup( const char * ); - char * _Import _Optlink _nstrdup( const char * ); - int _Import _Optlink _fstricmp( const char *, const char * ); - char * _Import _Optlink _fstrlwr( char * ); - int _Import _Optlink _fstrnicmp( const char *, const char *, size_t ); - char * _Import _Optlink _fstrnset( char *, int, size_t ); - char * _Import _Optlink _fstrpbrk( const char *, const char * ); - char * _Import _Optlink _fstrrev( char * ); - char * _Import _Optlink _fstrset( char *, int ); - size_t _Import _Optlink _fstrspn( const char *, const char * ); - char * _Import _Optlink _fstrstr( const char *, const char * ); - char * _Import _Optlink _fstrtok( char*, const char * ); - char * _Import _Optlink _fstrupr( char * ); - - #pragma map( _fstrcspn , "strcspn" ) - #pragma map( _fstrdup , "strdup" ) - #pragma map( _nstrdup , "strdup" ) - #pragma map( _fstricmp , "stricmp" ) - #pragma map( _fstrlwr , "strlwr" ) - #pragma map( _fstrnicmp, "strnicmp" ) - #pragma map( _fstrnset , "strnset" ) - #pragma map( _fstrpbrk , "strpbrk" ) - #pragma map( _fstrrev , "strrev" ) - #pragma map( _fstrset , "strset" ) - #pragma map( _fstrspn , "strspn" ) - #pragma map( _fstrstr , "strstr" ) - #pragma map( _fstrtok , "strtok" ) - #pragma map( _fstrupr , "strupr" ) - - - - -#pragma info( none ) - #pragma info( restore ) -#pragma info( restore ) -#pragma info( none ) - #pragma info( none ) -#pragma info( restore ) - - - - - - - - - - - - - - - - - int _Import _Optlink _access( const char *, int ); - int _Import _Optlink _chmod( const char *, int ); - int _Import _Optlink _chsize( int, long ); - int _Import _Optlink _close( int ); - int _Import _Optlink _creat( const char *, int ); - int _Import _Optlink _dup( int ); - int _Import _Optlink _dup2( int, int ); - int _Import _Optlink __eof( int ); - long _Import _Optlink _filelength( int ); - int _Import _Optlink _isatty( int ); - long _Import _Optlink _lseek( int, long, int ); - int _Import _Optlink _open( const char *, int, ... ); - int _Import _Optlink _read( int, void *, unsigned int ); - int _Import _Optlink remove( const char * ); - int _Import _Optlink rename( const char *, const char * ); - int _Import _Optlink _sopen( const char *, int, int, ... ); - long _Import _Optlink _tell( int ); - int _Import _Optlink _umask( int ); - int _Import _Optlink _unlink( const char * ); - int _Import _Optlink _write( int, const void *, unsigned int ); - int _Import _Optlink _setmode(int handle, int mode); - - int _Import _Optlink access( const char *, int ); - int _Import _Optlink chmod( const char *, int ); - int _Import _Optlink chsize( int, long ); - int _Import _Optlink close( int ); - int _Import _Optlink creat( const char *, int ); - int _Import _Optlink dup( int ); - int _Import _Optlink dup2( int, int ); - int _Import _Optlink eof( int ); - long _Import _Optlink filelength( int ); - int _Import _Optlink isatty( int ); - long _Import _Optlink lseek( int, long, int ); - int _Import _Optlink open( const char *, int, ... ); - int _Import _Optlink read( int, void *, unsigned int ); - int _Import _Optlink sopen( const char *, int, int, ... ); - long _Import _Optlink tell( int ); - int _Import _Optlink umask( int ); - int _Import _Optlink unlink( const char * ); - int _Import _Optlink write( int, const void *, unsigned int ); - int _Import _Optlink setmode(int handle, int mode); - - #pragma map( access , "_access" ) - #pragma map( chmod , "_chmod" ) - #pragma map( chsize , "_chsize" ) - #pragma map( close , "_close" ) - #pragma map( creat , "_creat" ) - #pragma map( dup , "_dup" ) - #pragma map( dup2 , "_dup2" ) - #pragma map( eof , "__eof" ) - #pragma map( filelength, "_filelength" ) - #pragma map( isatty , "_isatty" ) - #pragma map( lseek , "_lseek" ) - #pragma map( open , "_open" ) - #pragma map( read , "_read" ) - #pragma map( sopen , "_sopen" ) - #pragma map( tell , "_tell" ) - #pragma map( umask , "_umask" ) - #pragma map( unlink , "_unlink" ) - #pragma map( write , "_write" ) - #pragma map( setmode , "_setmode" ) - - - - -#pragma info( none ) - #pragma info( restore ) -#pragma info( restore ) - - - - -#pragma info( none ) - #pragma info( none ) -#pragma info( restore ) - - - - - - - - - - - - - - - - extern const double _infinity; - - - - double _Builtin __fabs( double ); - double _Import _Optlink fabs( double ); - #pragma info( none ) - #pragma info( restore ) - - double _Import _Optlink atan2( double, double ); - double _Import _Optlink ceil( double ); - double _Import _Optlink cosh( double ); - double _Import _Optlink exp( double ); - double _Import _Optlink floor( double ); - double _Import _Optlink fmod( double, double ); - double _Import _Optlink frexp( double, int * ); - double _Import _Optlink ldexp( double, int ); - double _Import _Optlink log( double ); - double _Import _Optlink log10( double ); - double _Import _Optlink modf( double, double * ); - double _Import _Optlink pow( double, double ); - double _Import _Optlink sinh( double ); - double _Import _Optlink tanh( double ); - - double _Import _Optlink asin( double ); - double _Import _Optlink acos( double ); - double _Import _Optlink atan( double ); - double _Import _Optlink sin( double ); - double _Import _Optlink cos( double ); - double _Import _Optlink tan( double ); - double _Import _Optlink sqrt( double ); - - double _Import _Optlink _erf( double ); - double _Import _Optlink _erfc( double ); - double _Import _Optlink _gamma( double ); - double _Import _Optlink _hypot( double, double ); - double _Import _Optlink _j0( double ); - double _Import _Optlink _j1( double ); - double _Import _Optlink _jn( int, double ); - double _Import _Optlink _y0( double ); - double _Import _Optlink _y1( double ); - double _Import _Optlink _yn( int, double ); - double _Import _Optlink erf( double ); - double _Import _Optlink erfc( double ); - double _Import _Optlink gamma( double ); - double _Import _Optlink hypot( double, double ); - double _Import _Optlink j0( double ); - double _Import _Optlink j1( double ); - double _Import _Optlink jn( int, double ); - double _Import _Optlink y0( double ); - double _Import _Optlink y1( double ); - double _Import _Optlink yn( int, double ); - - #pragma map( erf, "_erf" ) - #pragma map( erfc, "_erfc" ) - #pragma map( gamma, "_gamma" ) - #pragma map( hypot, "_hypot" ) - #pragma map( j0, "_j0" ) - #pragma map( j1, "_j1" ) - #pragma map( jn, "_jn" ) - #pragma map( y0, "_y0" ) - #pragma map( y1, "_y1" ) - #pragma map( yn, "_yn" ) - - extern const long double _LHUGE_VAL; - - - - - - struct complex - { - double x,y; - }; - - double _Import _Optlink _cabs( struct complex ); - - #pragma info( none ) - #pragma info( restore ) - - struct exception - { - int type; - char *name; - double arg1; - double arg2; - double retval; - }; - - - - int _matherr( struct exception * ); - int matherr( struct exception * ); - - #pragma map( matherr, "_matherr" ) - - long double _Optlink _atold( const char * ); - - - - - -#pragma info( none ) - #pragma info( restore ) -#pragma info( restore ) - - -#pragma info( none ) - #pragma info( none ) -#pragma info( restore ) - - - - - - - - - - - - - - - - - typedef unsigned short wchar_t; - - typedef struct _div_t - { - int quot; - int rem; - } div_t; - - typedef struct _ldiv_t - { - long int quot; - long int rem; - } ldiv_t; - - - - typedef unsigned long _System _EH_RTN(void *,void *,void *,void *); - - extern int _Import _Optlink _eh_del(_EH_RTN *); - extern int _Import _Optlink _eh_add(_EH_RTN *); - extern int _Import _mb_cur_max; - - - - int _Builtin __abs( int ); - long int _Builtin __labs( long int ); - - double _Import _Optlink atof( const char * ); - int _Import _Optlink atoi( const char * ); - long int _Import _Optlink atol( const char * ); - double _Import _Optlink strtod( const char *, char ** ); - long int _Import _Optlink strtol( const char *, char **, int ); - unsigned long int _Import _Optlink strtoul( const char *, char **, int ); - int _Import _Optlink rand( void ); - void _Import _Optlink srand( unsigned int ); - void * (_Import _Optlink calloc)( size_t, size_t ); - void (_Import _Optlink free)( void * ); - void * (_Import _Optlink malloc)( size_t ); - void * (_Import _Optlink realloc)( void *, size_t ); - void _Import _Optlink abort( void ); - int _Import _Optlink atexit( void ( * )( void ) ); - void _Import _Optlink exit( int ); - char * _Import _Optlink getenv( const char * ); - int _Import _Optlink system( const char * ); - void * _Import _Optlink bsearch( const void *, const void *, size_t, size_t, - int ( * _Optlink __compare )( const void *, const void * ) ); - void _Import _Optlink qsort( void *, size_t, size_t, - int ( * _Optlink __compare )( const void *, const void * ) ); - div_t _Import _Optlink div( int, int ); - ldiv_t _Import _Optlink ldiv( long int, long int ); - int _Import _Optlink mblen( const char *, size_t ); - int _Import _Optlink mbtowc( wchar_t *, const char *, size_t ); - int _Import _Optlink wctomb( char *, wchar_t ); - size_t _Import _Optlink mbstowcs( wchar_t *, const char *, size_t ); - size_t _Import _Optlink wcstombs( char *, const wchar_t *, size_t ); - - int _Import _Optlink abs ( int ); - long int _Import _Optlink labs( long int ); - - #pragma info( none ) - #pragma info( restore ) - - - - - void * _Builtin __alloca( size_t ); - #pragma info( none ) - #pragma info( restore ) - - unsigned char _Builtin __parmdwords( void ); - - long double _Import _Optlink _atold( const char * ); - char * _Import _Optlink ecvt( double, int, int *, int * ); - char * _Import _Optlink _ecvt( double, int, int *, int * ); - char * _Import _Optlink fcvt( double, int, int *, int * ); - char * _Import _Optlink _fcvt( double, int, int *, int * ); - int _Import _Optlink _freemod( unsigned long ); - char * _Import _Optlink _fullpath(char *, char *, size_t); - char * _Import _Optlink gcvt( double, int, char * ); - char * _Import _Optlink _gcvt( double, int, char * ); - int (_Import _Optlink _heapmin)( void ); - char * _Import _Optlink itoa( int, char *, int ); - char * _Import _Optlink _itoa( int, char *, int ); - int _Import _Optlink _loadmod( char *, unsigned long * ); - char * _Import _Optlink ltoa( long, char *, int ); - char * _Import _Optlink _ltoa( long, char *, int ); - size_t _Import _Optlink _msize(void *); - int _Import _Optlink putenv( const char * ); - int _Import _Optlink _putenv( const char * ); - long double _Import _Optlink strtold( const char *, char ** ); - long double _Import _Optlink _strtold( const char *, char ** ); - char * _Import _Optlink ultoa( unsigned long, char *, int ); - char * _Import _Optlink _ultoa( unsigned long, char *, int ); - - #pragma map( ecvt , "_ecvt" ) - #pragma map( fcvt , "_fcvt" ) - #pragma map( gcvt , "_gcvt" ) - #pragma map( itoa , "_itoa" ) - #pragma map( ltoa , "_ltoa" ) - #pragma map( ultoa , "_ultoa" ) - #pragma map( putenv , "_putenv" ) - #pragma map( _strtold, "strtold" ) - - - - - - int _Import _Optlink _beginthread( void ( * _Optlink thread )( void * ), void *, unsigned, void * ); - void _Import _Optlink _endthread( void ); - void ** _Import _Optlink _threadstore( void ); - - #pragma map( atof , "_atofieee" ) - #pragma map( strtod, "_strtodieee" ) - - - void _Builtin __enable( void ); - void _Builtin __disable( void ); - - - int * _Import _Optlink _errno( void ); - #pragma info( none ) - #pragma info( restore ) - - int * _Import _Optlink __doserrno(void); - #pragma info( none ) - #pragma info( restore ) - - extern char ** _Import _environ; - extern unsigned char _Import _osmajor; - extern unsigned char _Import _osminor; - extern unsigned char _Import _osmode; - - - - typedef int ( __onexit_t )( void ); - typedef __onexit_t * onexit_t; - - - - - - void _Import _Optlink _exit( int ); - onexit_t _Import _Optlink onexit( onexit_t ); - onexit_t _Import _Optlink _onexit( onexit_t ); - - unsigned long _Builtin __lrotl(unsigned long, int); - unsigned long _Builtin __lrotr(unsigned long, int); - unsigned short _Builtin __srotl(unsigned short, int); - unsigned short _Builtin __srotr(unsigned short, int); - unsigned char _Builtin __crotl(unsigned char, int); - unsigned char _Builtin __crotr(unsigned char, int); - - void _Import _Optlink _makepath( char *, char *, char *, char *, char * ); - void _Import _Optlink _splitpath( char *, char *, char *, char *, char * ); - void _Import _Optlink _searchenv( char *, char *, char *); - void _Import _Optlink swab( char *, char *, int ); - void _Import _Optlink _swab( char *, char *, int ); - - #pragma map( onexit , "_onexit" ) - #pragma map( swab , "_swab" ) - - int _Import _Optlink rpmatch(const char *); - int _Import _Optlink csid(const char *); - int _Import _Optlink wcsid(const wchar_t); - - #pragma map( rpmatch, "_rpmatch" ) - #pragma map( csid , "_csid" ) - #pragma map( wcsid , "_wcsid" ) - - - - - - - - - -#pragma info( none ) - #pragma info( restore ) -#pragma info( restore ) - - - - - - - - - - - -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(); - - - - - -int PROIO_yylex(void); -int PROIO_yylook(void); -int PROIO_yywrap(void); -int PROIO_yyback(int *, int); - - -void PROIO_yyoutput(int); - -#line 36 "parser.y" -typedef union { - char *s; - -} YYSTYPE; -#line 44 "y_tab.c" -short PROIO_yylhs[] = { -1, - 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, - 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, -}; -short PROIO_yylen[] = { 2, - 0, 2, 2, 2, 2, 4, 2, 3, 0, 1, - 3, 3, 1, 1, 1, 1, 3, 3, 5, 1, -}; -short PROIO_yydefred[] = { 1, - 0, 0, 0, 0, 2, 0, 5, 3, 0, 0, - 0, 15, 7, 20, 0, 0, 13, 4, 0, 0, - 0, 0, 8, 0, 6, 0, 18, 0, 12, 11, - 0, 19, -}; -short PROIO_yydgoto[] = { 1, - 5, 14, 15, 16, 17, -}; -short PROIO_yysindex[] = { 0, - -2, 9, 2, 1, 0, 10, 0, 0, 11, -5, - 17, 0, 0, 0, 14, -1, 0, 0, 33, 38, - 41, 16, 0, 11, 0, 29, 0, 40, 0, 0, - 44, 0, -}; -short PROIO_yyrindex[] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 42, 21, - 24, 0, 0, 0, 0, 30, 0, 0, 0, 0, - 0, 0, 0, 31, 0, 27, 0, 24, 0, 0, - 0, 0, -}; -short PROIO_yygindex[] = { 0, - 0, 45, -8, 0, 26, -}; -short PROIO_yytable[] = { 3, - 19, 10, 11, 12, 24, 9, 4, 20, 21, 4, - 13, 10, 11, 12, 8, 30, 10, 28, 12, 4, - 9, 7, 18, 23, 4, 16, 16, 22, 14, 14, - 16, 17, 17, 14, 10, 9, 17, 25, 26, 10, - 9, 27, 31, 9, 32, 6, 9, 29, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, -}; -short PROIO_yycheck[] = { 2, - 9, 1, 2, 3, 6, 4, 9, 13, 14, 9, - 10, 1, 2, 3, 13, 24, 1, 2, 3, 9, - 4, 13, 13, 10, 9, 5, 6, 11, 5, 6, - 10, 5, 6, 10, 5, 5, 10, 5, 1, 10, - 10, 1, 14, 4, 1, 1, 5, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 256, -}; -int PROIO_yydebug; -int PROIO_yynerrs; -int PROIO_yyerrflag; -int PROIO_yychar; -short *PROIO_yyssp; -YYSTYPE *PROIO_yyvsp; -YYSTYPE PROIO_yyval; -YYSTYPE PROIO_yylval; -short PROIO_yyss[600]; -YYSTYPE PROIO_yyvs[600]; -#line 118 "parser.y" - - - - - - -#pragma info( none ) - #pragma info( none ) -#pragma info( restore ) - - - - - - - - - - - - - - - - - enum _OPERATIONS { _IOINIT, _IOREAD, _IOWRITE, _IOREPOSITION, - _IOFLUSH, _IOUNDEFOP }; - - - #pragma pack( 1 ) - typedef struct __file - { - unsigned char *_bufPtr; - unsigned long int _count; - unsigned long int _userFlags; - unsigned long int _bufLen; - unsigned long int _ungetCount; - int _tempStore; - unsigned char _ungetBuf[2]; - enum _OPERATIONS _lastOp; - char _filler; - } FILE; - #pragma pack( ) - - typedef struct __fpos_t - { - long int __fpos_elem[2]; - } fpos_t; - - - - - typedef char *__va_list; - - - - - extern FILE * const _Import stdin; - extern FILE * const _Import stdout; - extern FILE * const _Import stderr; - - - - - int _Import _Optlink fprintf( FILE *, const char *, ... ); - int _Import _Optlink fscanf( FILE *, const char *, ... ); - int _Import _Optlink printf( const char *, ... ); - int _Import _Optlink scanf( const char *, ... ); - int _Import _Optlink sprintf( char *, const char *, ... ); - int _Import _Optlink sscanf( const char *, const char *, ... ); - void _Import _Optlink clearerr( FILE * ); - int _Import _Optlink fclose( FILE * ); - int _Import _Optlink feof( FILE * ); - int _Import _Optlink ferror( FILE * ); - int _Import _Optlink fflush( FILE * ); - int _Import _Optlink fgetc( FILE * ); - int _Import _Optlink fgetpos( FILE *, fpos_t * ); - char * _Import _Optlink fgets( char *, int, FILE * ); - FILE * _Import _Optlink fopen( const char *, const char * ); - int _Import _Optlink fputc( int, FILE * ); - int _Import _Optlink fputs( const char *, FILE * ); - size_t _Import _Optlink fread( void *, size_t, size_t, FILE * ); - FILE * _Import _Optlink freopen( const char *, const char *, FILE * ); - int _Import _Optlink fseek( FILE *, long int, int ); - int _Import _Optlink fsetpos( FILE *, const fpos_t * ); - long int _Import _Optlink ftell( FILE * ); - size_t _Import _Optlink fwrite( const void *, size_t, size_t, FILE * ); - int _Optlink getc( FILE * ); - int _Optlink getchar( void ); - char * _Import _Optlink gets( char * ); - void _Import _Optlink perror( const char * ); - int _Optlink putc( int, FILE * ); - int _Optlink putchar( int ); - int _Import _Optlink puts( const char * ); - int _Import _Optlink remove( const char * ); - int _Import _Optlink rename( const char *, const char * ); - void _Import _Optlink rewind( FILE * ); - void _Import _Optlink setbuf( FILE *, char * ); - int _Import _Optlink setvbuf( FILE *, char *, int, size_t ); - FILE * _Import _Optlink tmpfile( void ); - char * _Import _Optlink tmpnam( char * ); - int _Import _Optlink ungetc( int, FILE * ); - int _Import _Optlink vfprintf( FILE *, const char *, __va_list ); - int _Import _Optlink vprintf( const char *, __va_list ); - int _Import _Optlink vsprintf( char *, const char *, __va_list ); - - - - - - - - - - - #pragma map( fprintf, "_fprintfieee" ) - #pragma map( printf , "_printfieee" ) - #pragma map( sprintf, "_sprintfieee" ) - #pragma map( fscanf , "_fscanfieee" ) - #pragma map( scanf , "_scanfieee" ) - #pragma map( sscanf , "_sscanfieee" ) - - #pragma map( vfprintf, "_vfprintfieee" ) - #pragma map( vprintf , "_vprintfieee" ) - #pragma map( vsprintf, "_vsprintfieee" ) - - int _Optlink _fcloseall( void ); - int _Optlink _rmtmp( void ); - - FILE * _Optlink fdopen( int, const char *); - int _Optlink fgetchar( void ); - int _Optlink fileno( FILE * ); - int _Optlink flushall( void ); - int _Optlink fputchar( int ); - char * _Optlink tempnam( char *, char * ); - int _Optlink unlink( const char * ); - - FILE * _Optlink _fdopen( int, const char *); - int _Optlink _fgetchar( void ); - int _Optlink _fileno( FILE * ); - int _Optlink _flushall( void ); - int _Optlink _fputchar( int ); - char * _Optlink _tempnam( char *, char * ); - int _Optlink _unlink( const char * ); - - int _Optlink _set_crt_msg_handle( int ); - - #pragma map( fdopen , "_fdopen" ) - #pragma map( fgetchar, "_fgetchar" ) - #pragma map( fileno , "_fileno" ) - #pragma map( flushall, "_flushall" ) - #pragma map( fputchar, "_fputchar" ) - #pragma map( tempnam , "_tempnam" ) - - - - -#pragma info( none ) - #pragma info( restore ) -#pragma info( restore ) - - - - - - - - - - - - - - - -int read(); - - - - - - - - - - - - - - - - - - - - - -int PROIO_yywrap(void) { return 1; } - - - - - - - - - - - - - - -typedef struct yy_buffer_state *YY_BUFFER_STATE; - -# line 1 "lexer.l" -# line 9 "lexer.l" - -#pragma info( none ) - #pragma info( none ) -#pragma info( restore ) - - -#pragma info( none ) - #pragma info( restore ) -#pragma info( restore ) - - - - - - - - - - -static size_t lex_buffer_length = 0; -static char *lex_buffer = 0; -static size_t lex_string_ptr = 0; -static int lex_read_from_string = 0; - -static int my_input(void); -static int my_unput(char); - - -# line 58 "lexer.l" - - - - - - - - -struct yy_buffer_state - { - FILE *yy_input_file; - - unsigned char *yy_ch_buf; - unsigned char *yy_buf_pos; - - - int yy_buf_size; - - - int yy_n_chars; - - int yy_eof_status; - - }; - -static YY_BUFFER_STATE yy_current_buffer; - - - - - -static unsigned char yy_hold_char; - -static int yy_n_chars; - - - - - -extern unsigned char *PROIO_yytext; -extern int PROIO_yyleng; -extern FILE *PROIO_yyin, *PROIO_yyout; - -unsigned char *PROIO_yytext; -int PROIO_yyleng; - -FILE *PROIO_yyin = (FILE *) 0, *PROIO_yyout = (FILE *) 0; - -typedef int yy_state_type; -static short int yy_accept[34] = - { 0, - 0, 0, 18, 16, 13, 14, 16, 16, 6, 7, - 16, 8, 12, 16, 1, 11, 3, 9, 10, 2, - 0, 5, 0, 0, 0, 4, 1, 15, 3, 5, - 0, 0, 0 - } ; - -static unsigned char yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 4, 1, 1, 1, 1, 5, 6, - 7, 8, 9, 10, 9, 11, 12, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, - 14, 1, 1, 1, 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, - 16, 17, 18, 1, 15, 1, 15, 15, 15, 15, - - 19, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 1, 20, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static unsigned char yy_meta[21] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 2, 1, 3, 1, 2, 1 - } ; - -static short int yy_base[37] = - { 0, - 0, 0, 48, 55, 55, 55, 17, 42, 55, 55, - 19, 55, 55, 23, 17, 55, 0, 55, 55, 0, - 18, 55, 19, 23, 21, 55, 12, 55, 0, 24, - 25, 29, 55, 49, 52, 22 - } ; - -static short int yy_def[37] = - { 0, - 33, 1, 33, 33, 33, 33, 34, 35, 33, 33, - 33, 33, 33, 33, 33, 33, 36, 33, 33, 36, - 34, 33, 34, 34, 35, 33, 33, 33, 36, 34, - 34, 34, 0, 33, 33, 33 - } ; - -static short int yy_nxt[76] = - { 0, - 4, 5, 6, 7, 8, 9, 10, 4, 11, 12, - 13, 14, 15, 16, 17, 18, 4, 19, 20, 4, - 22, 22, 30, 29, 27, 26, 22, 22, 30, 27, - 28, 27, 30, 23, 23, 23, 24, 24, 24, 31, - 23, 32, 24, 24, 24, 23, 26, 33, 24, 21, - 21, 21, 25, 25, 3, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33 - } ; - -static short int yy_chk[76] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 7, 21, 23, 36, 27, 25, 24, 30, 31, 15, - 14, 11, 32, 7, 21, 23, 7, 21, 23, 24, - 30, 31, 24, 30, 31, 32, 8, 3, 32, 34, - 34, 34, 35, 35, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33 - } ; - -static yy_state_type yy_last_accepting_state; -static unsigned char *yy_last_accepting_cpos; - - - - - -static unsigned char *yy_c_buf_p = (unsigned char *) 0; -static int yy_init = 1; -static int yy_start = 0; - - -static int yy_did_buffer_switch_on_eof; - -static yy_state_type yy_get_previous_state (); -static yy_state_type yy_try_NUL_trans (); -static int yy_get_next_buffer (); -static void yyunput (); -void PROIO_yyrestart (); -void PROIO_yy_switch_to_buffer (); -void PROIO_yy_load_buffer_state (); -YY_BUFFER_STATE PROIO_yy_create_buffer (); -void PROIO_yy_delete_buffer (); -void PROIO_yy_init_buffer (); - - -static int input (); - -int PROIO_yylex () - { - register yy_state_type yy_current_state; - register unsigned char *yy_cp, *yy_bp; - register int yy_act; - - - - - if ( yy_init ) - { - ; - - if ( ! yy_start ) - yy_start = 1; - - if ( ! PROIO_yyin ) - PROIO_yyin = stdin; - - if ( ! PROIO_yyout ) - PROIO_yyout = stdout; - - if ( yy_current_buffer ) - PROIO_yy_init_buffer( yy_current_buffer, PROIO_yyin ); - else - yy_current_buffer = PROIO_yy_create_buffer( PROIO_yyin, (8192 * 2) ); - - PROIO_yy_load_buffer_state(); - - yy_init = 0; - } - - while ( 1 ) - { - yy_cp = yy_c_buf_p; - - - *yy_cp = yy_hold_char; - - - yy_bp = yy_cp; - - yy_current_state = yy_start; -yy_match: - do - { - register unsigned char yy_c = yy_ec[*yy_cp]; - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = yy_def[yy_current_state]; - if ( yy_current_state >= 34 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - ++yy_cp; - } - while ( yy_current_state != 33 ); - yy_cp = yy_last_accepting_cpos; - yy_current_state = yy_last_accepting_state; - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - - PROIO_yytext = yy_bp; PROIO_yyleng = yy_cp - yy_bp; yy_hold_char = *yy_cp; *yy_cp = '\0'; yy_c_buf_p = yy_cp;; - ; - -do_action: - - - switch ( yy_act ) - { - case 0: - - *yy_cp = yy_hold_char; - yy_cp = yy_last_accepting_cpos; - yy_current_state = yy_last_accepting_state; - goto yy_find_action; - -case 1: -# line 60 "lexer.l" -{PROIO_yylval.s = strdup(( char*) PROIO_yytext); return 1;;} - break; -case 2: -# line 62 "lexer.l" -return 14;; - break; -case 3: -# line 64 "lexer.l" -{PROIO_yylval.s = strdup(( char*) PROIO_yytext); return 2;;} - break; -case 4: -# line 66 "lexer.l" -{int len = __strlen( (( char*) PROIO_yytext) ); - PROIO_yytext[len-1] = 0; - PROIO_yylval.s = strdup(( char*) (PROIO_yytext+1)); - return 2;;} - break; -case 5: -# line 71 "lexer.l" -{PROIO_yylval.s = strdup(( char*) PROIO_yytext); return 3;;} - break; -case 6: -# line 73 "lexer.l" -return 4;; - break; -case 7: -# line 75 "lexer.l" -return 5;; - break; -case 8: -# line 77 "lexer.l" -return 6;; - break; -case 9: -# line 79 "lexer.l" -return 9;; - break; -case 10: -# line 81 "lexer.l" -return 10;; - break; -case 11: -# line 83 "lexer.l" -return 11;; - break; -case 12: -# line 85 "lexer.l" -return 13;; - break; -case 13: -# line 87 "lexer.l" -; - break; -case 14: -# line 89 "lexer.l" -; - break; -case 15: -# line 91 "lexer.l" -{ loop: - while (input() != '*'); - switch (input()) - { - case '/': break; - case '*': yyunput( '*', PROIO_yytext ); - default: goto loop; - } - } - break; -case 16: -# line 106 "lexer.l" -return 8;; - break; -case 17: -# line 108 "lexer.l" -(void) fwrite( (char *) PROIO_yytext, PROIO_yyleng, 1, PROIO_yyout ); - break; -case (18 + 0 + 1): - return ( 0 ); - - case 18: - { - - int yy_amount_of_matched_text = yy_cp - PROIO_yytext - 1; - - - *yy_cp = yy_hold_char; - - - if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) - - { - yy_state_type yy_next_state; - - yy_c_buf_p = PROIO_yytext + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state(); - - - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = PROIO_yytext + 0; - - if ( yy_next_state ) - { - - yy_cp = ++yy_c_buf_p; - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = yy_last_accepting_cpos; - yy_current_state = yy_last_accepting_state; - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer() ) - { - case 1: - { - yy_did_buffer_switch_on_eof = 0; - - if ( PROIO_yywrap() ) - { - - yy_c_buf_p = PROIO_yytext + 0; - - yy_act = (18 + (yy_start - 1) / 2 + 1); - goto do_action; - } - - else - { - if ( ! yy_did_buffer_switch_on_eof ) - do { PROIO_yy_init_buffer( yy_current_buffer, PROIO_yyin ); PROIO_yy_load_buffer_state(); } while ( 0 ); - } - } - break; - - case 0: - yy_c_buf_p = PROIO_yytext + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state(); - - yy_cp = yy_c_buf_p; - yy_bp = PROIO_yytext + 0; - goto yy_match; - - case 2: - yy_c_buf_p = - &yy_current_buffer->yy_ch_buf[yy_n_chars]; - - yy_current_state = yy_get_previous_state(); - - yy_cp = yy_c_buf_p; - yy_bp = PROIO_yytext + 0; - goto yy_find_action; - } - break; - } - - default: - do { (void) fputs( "fatal flex scanner internal error--no action found", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 ); - } - } - } - - - - -static int yy_get_next_buffer() - - { - register unsigned char *dest = yy_current_buffer->yy_ch_buf; - register unsigned char *source = PROIO_yytext - 1; - register int number_to_move, i; - int ret_val; - - if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) - do { (void) fputs( "fatal flex scanner internal error--end of buffer missed", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 ); - - - - - number_to_move = yy_c_buf_p - PROIO_yytext; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( yy_current_buffer->yy_eof_status != 0 ) - - yy_n_chars = 0; - - else - { - int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; - - if ( num_to_read > 8192 ) - num_to_read = 8192; - - else if ( num_to_read <= 0 ) - do { (void) fputs( "fatal error - scanner input buffer overflow", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 ); - - - if (lex_read_from_string) { int c = my_input(); yy_n_chars = (c == 0) ? 0 : (((&yy_current_buffer->yy_ch_buf[number_to_move]))[0]=(c), 1); } else if ( (yy_n_chars = read( fileno(PROIO_yyin), (char *) (&yy_current_buffer->yy_ch_buf[number_to_move]), num_to_read )) < 0 ) do { (void) fputs( "read() in flex scanner failed", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 );; - } - - if ( yy_n_chars == 0 ) - { - if ( number_to_move == 1 ) - { - ret_val = 1; - yy_current_buffer->yy_eof_status = 2; - } - - else - { - ret_val = 2; - yy_current_buffer->yy_eof_status = 1; - } - } - - else - ret_val = 0; - - yy_n_chars += number_to_move; - yy_current_buffer->yy_ch_buf[yy_n_chars] = 0; - yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = 0; - - - - PROIO_yytext = &yy_current_buffer->yy_ch_buf[1]; - - return ( ret_val ); - } - - - - -static yy_state_type yy_get_previous_state() - - { - register yy_state_type yy_current_state; - register unsigned char *yy_cp; - - yy_current_state = yy_start; - - for ( yy_cp = PROIO_yytext + 0; yy_cp < yy_c_buf_p; ++yy_cp ) - { - register unsigned char yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1); - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = yy_def[yy_current_state]; - if ( yy_current_state >= 34 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - } - - return ( yy_current_state ); - } - - - - -static yy_state_type yy_try_NUL_trans( yy_current_state ) -register yy_state_type yy_current_state; - - { - register int yy_is_jam; - register unsigned char *yy_cp = yy_c_buf_p; - - register unsigned char yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = yy_def[yy_current_state]; - if ( yy_current_state >= 34 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 33); - - return ( yy_is_jam ? 0 : yy_current_state ); - } - - -static void yyunput( c, yy_bp ) -unsigned char c; -register unsigned char *yy_bp; - - { - register unsigned char *yy_cp = yy_c_buf_p; - - - *yy_cp = yy_hold_char; - - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) - { - register int number_to_move = yy_n_chars + 2; - register unsigned char *dest = - &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2]; - register unsigned char *source = - &yy_current_buffer->yy_ch_buf[number_to_move]; - - while ( source > yy_current_buffer->yy_ch_buf ) - *--dest = *--source; - - yy_cp += dest - source; - yy_bp += dest - source; - yy_n_chars = yy_current_buffer->yy_buf_size; - - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) - do { (void) fputs( "flex scanner push-back overflow", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 ); - } - - if ( yy_cp > yy_bp && yy_cp[-1] == '\n' ) - yy_cp[-2] = '\n'; - - *--yy_cp = c; - - - PROIO_yytext = yy_bp; PROIO_yyleng = yy_cp - yy_bp; yy_hold_char = *yy_cp; *yy_cp = '\0'; yy_c_buf_p = yy_cp;; - } - - -static int input() - - { - int c; - unsigned char *yy_cp = yy_c_buf_p; - - *yy_cp = yy_hold_char; - - if ( *yy_c_buf_p == 0 ) - { - - if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) - - *yy_c_buf_p = '\0'; - - else - { - PROIO_yytext = yy_c_buf_p; - ++yy_c_buf_p; - - switch ( yy_get_next_buffer() ) - { - case 1: - { - if ( PROIO_yywrap() ) - { - yy_c_buf_p = PROIO_yytext + 0; - return ( (-1) ); - } - - do { PROIO_yy_init_buffer( yy_current_buffer, PROIO_yyin ); PROIO_yy_load_buffer_state(); } while ( 0 ); - - return ( input() ); - } - break; - - case 0: - yy_c_buf_p = PROIO_yytext + 0; - break; - - case 2: - do { (void) fputs( "unexpected last match in input()", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 ); - } - } - } - - c = *yy_c_buf_p; - yy_hold_char = *++yy_c_buf_p; - - return ( c ); - } - - -void PROIO_yyrestart( input_file ) -FILE *input_file; - - { - PROIO_yy_init_buffer( yy_current_buffer, input_file ); - PROIO_yy_load_buffer_state(); - } - - -void PROIO_yy_switch_to_buffer( new_buffer ) -YY_BUFFER_STATE new_buffer; - - { - if ( yy_current_buffer == new_buffer ) - return; - - if ( yy_current_buffer ) - { - - *yy_c_buf_p = yy_hold_char; - yy_current_buffer->yy_buf_pos = yy_c_buf_p; - yy_current_buffer->yy_n_chars = yy_n_chars; - } - - yy_current_buffer = new_buffer; - PROIO_yy_load_buffer_state(); - - - yy_did_buffer_switch_on_eof = 1; - } - - -void PROIO_yy_load_buffer_state() - - { - yy_n_chars = yy_current_buffer->yy_n_chars; - PROIO_yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos; - PROIO_yyin = yy_current_buffer->yy_input_file; - yy_hold_char = *yy_c_buf_p; - } - - -YY_BUFFER_STATE PROIO_yy_create_buffer( file, size ) -FILE *file; -int size; - - { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) ); - - if ( ! b ) - do { (void) fputs( "out of dynamic memory in yy_create_buffer()", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 ); - - b->yy_buf_size = size; - - - b->yy_ch_buf = (unsigned char *) malloc( (unsigned) (b->yy_buf_size + 2) ); - - if ( ! b->yy_ch_buf ) - do { (void) fputs( "out of dynamic memory in yy_create_buffer()", stderr ); (void) fputc( ('\n'), (stderr) ); exit( 1 ); } while ( 0 ); - - PROIO_yy_init_buffer( b, file ); - - return ( b ); - } - - -void PROIO_yy_delete_buffer( b ) -YY_BUFFER_STATE b; - - { - if ( b == yy_current_buffer ) - yy_current_buffer = (YY_BUFFER_STATE) 0; - - free( (char *) b->yy_ch_buf ); - free( (char *) b ); - } - - -void PROIO_yy_init_buffer( b, file ) -YY_BUFFER_STATE b; -FILE *file; - - { - b->yy_input_file = file; - - - - b->yy_ch_buf[0] = '\n'; - b->yy_n_chars = 1; - - - b->yy_ch_buf[1] = 0; - b->yy_ch_buf[2] = 0; - - b->yy_buf_pos = &b->yy_ch_buf[1]; - - b->yy_eof_status = 0; - } -# line 108 "lexer.l" - - - -static int lex_input() { - return input(); -} - - -void LexFromFile(FILE *fd) -{ - lex_read_from_string = 0; - PROIO_yyin = fd; - - yy_init = 1; -} - -void LexFromString(char *buffer) -{ - lex_read_from_string = 1; - lex_buffer = buffer; - lex_buffer_length = __strlen( (( char*) buffer) ); - lex_string_ptr = 0; - - yy_init = 1; -} - -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++]; - return c; - } - } else { - return lex_input(); - } -} - -void wxExprCleanUp() -{ - if (yy_current_buffer) - PROIO_yy_delete_buffer(yy_current_buffer); -} - - - - - -void PROIO_yyerror(char *s) -{ - syntax_error(s); -} - - - - - -int PROIO_yywrap() { return 1; } -#line 247 "y_tab.c" -int -PROIO_yyparse() -{ - register int yym, yyn, yystate; - - PROIO_yynerrs = 0; - PROIO_yyerrflag = 0; - PROIO_yychar = (-1); - - PROIO_yyssp = PROIO_yyss; - PROIO_yyvsp = PROIO_yyvs; - *PROIO_yyssp = yystate = 0; - -yyloop: - if (yyn = PROIO_yydefred[yystate]) goto yyreduce; - if (PROIO_yychar < 0) - { - if ((PROIO_yychar = PROIO_yylex()) < 0) PROIO_yychar = 0; - } - if ((yyn = PROIO_yysindex[yystate]) && (yyn += PROIO_yychar) >= 0 && - yyn <= 254 && PROIO_yycheck[yyn] == PROIO_yychar) - { - if (PROIO_yyssp >= PROIO_yyss + 600 - 1) - { - goto yyoverflow; - } - *++PROIO_yyssp = yystate = PROIO_yytable[yyn]; - *++PROIO_yyvsp = PROIO_yylval; - PROIO_yychar = (-1); - if (PROIO_yyerrflag > 0) --PROIO_yyerrflag; - goto yyloop; - } - if ((yyn = PROIO_yyrindex[yystate]) && (yyn += PROIO_yychar) >= 0 && - yyn <= 254 && PROIO_yycheck[yyn] == PROIO_yychar) - { - yyn = PROIO_yytable[yyn]; - goto yyreduce; - } - if (PROIO_yyerrflag) goto yyinrecovery; -yynewerror: - PROIO_yyerror("syntax error"); -yyerrlab: - ++PROIO_yynerrs; -yyinrecovery: - if (PROIO_yyerrflag < 3) - { - PROIO_yyerrflag = 3; - for (;;) - { - if ((yyn = PROIO_yysindex[*PROIO_yyssp]) && (yyn += 256) >= 0 && - yyn <= 254 && PROIO_yycheck[yyn] == 256) - { - if (PROIO_yyssp >= PROIO_yyss + 600 - 1) - { - goto yyoverflow; - } - *++PROIO_yyssp = yystate = PROIO_yytable[yyn]; - *++PROIO_yyvsp = PROIO_yylval; - goto yyloop; - } - else - { - if (PROIO_yyssp <= PROIO_yyss) goto yyabort; - --PROIO_yyssp; - --PROIO_yyvsp; - } - } - } - else - { - if (PROIO_yychar == 0) goto yyabort; - PROIO_yychar = (-1); - goto yyloop; - } -yyreduce: - yym = PROIO_yylen[yyn]; - PROIO_yyval = PROIO_yyvsp[1-yym]; - switch (yyn) - { -case 3: -#line 68 "parser.y" -{process_command(proio_cons(wxmake_word(PROIO_yyvsp[-1].s), 0)); free(PROIO_yyvsp[-1].s);} -break; -case 4: -#line 70 "parser.y" -{process_command(PROIO_yyvsp[-1].s);} -break; -case 5: -#line 72 "parser.y" -{syntax_error("Unrecognized command.");} -break; -case 6: -#line 76 "parser.y" -{PROIO_yyval.s = proio_cons(wxmake_word(PROIO_yyvsp[-3].s), PROIO_yyvsp[-1].s); free(PROIO_yyvsp[-3].s);} -break; -case 7: -#line 78 "parser.y" -{PROIO_yyval.s = proio_cons(0, 0);} -break; -case 8: -#line 80 "parser.y" -{PROIO_yyval.s = PROIO_yyvsp[-1].s; } -break; -case 9: -#line 84 "parser.y" -{PROIO_yyval.s = 0;} -break; -case 10: -#line 86 "parser.y" -{PROIO_yyval.s = proio_cons(PROIO_yyvsp[0].s, 0);} -break; -case 11: -#line 89 "parser.y" -{PROIO_yyval.s = proio_cons(PROIO_yyvsp[-2].s, PROIO_yyvsp[0].s);} -break; -case 12: -#line 93 "parser.y" -{PROIO_yyval.s = proio_cons(wxmake_word("="), proio_cons(wxmake_word(PROIO_yyvsp[-2].s), proio_cons(PROIO_yyvsp[0].s, 0))); - free(PROIO_yyvsp[-2].s); } -break; -case 13: -#line 96 "parser.y" -{PROIO_yyval.s = PROIO_yyvsp[0].s; } -break; -case 14: -#line 99 "parser.y" -{PROIO_yyval.s = wxmake_word(PROIO_yyvsp[0].s); free(PROIO_yyvsp[0].s);} -break; -case 15: -#line 101 "parser.y" -{PROIO_yyval.s = wxmake_string(PROIO_yyvsp[0].s); free(PROIO_yyvsp[0].s);} -break; -case 16: -#line 103 "parser.y" -{PROIO_yyval.s = wxmake_integer(PROIO_yyvsp[0].s); free(PROIO_yyvsp[0].s);} -break; -case 17: -#line 105 "parser.y" -{PROIO_yyval.s = wxmake_real(PROIO_yyvsp[-2].s, PROIO_yyvsp[0].s); free(PROIO_yyvsp[-2].s); free(PROIO_yyvsp[0].s); } -break; -case 18: -#line 107 "parser.y" -{PROIO_yyval.s = wxmake_exp(PROIO_yyvsp[-2].s, PROIO_yyvsp[0].s); free(PROIO_yyvsp[-2].s); free(PROIO_yyvsp[0].s); } -break; -case 19: -#line 110 "parser.y" -{PROIO_yyval.s = wxmake_exp2(PROIO_yyvsp[-4].s, PROIO_yyvsp[-2].s, PROIO_yyvsp[0].s); free(PROIO_yyvsp[-4].s); free(PROIO_yyvsp[-2].s); - free(PROIO_yyvsp[0].s); } -break; -case 20: -#line 114 "parser.y" -{PROIO_yyval.s = PROIO_yyvsp[0].s;} -break; -#line 461 "y_tab.c" - } - PROIO_yyssp -= yym; - yystate = *PROIO_yyssp; - PROIO_yyvsp -= yym; - yym = PROIO_yylhs[yyn]; - if (yystate == 0 && yym == 0) - { - yystate = 1; - *++PROIO_yyssp = 1; - *++PROIO_yyvsp = PROIO_yyval; - if (PROIO_yychar < 0) - { - if ((PROIO_yychar = PROIO_yylex()) < 0) PROIO_yychar = 0; - } - if (PROIO_yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = PROIO_yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= 254 && PROIO_yycheck[yyn] == yystate) - yystate = PROIO_yytable[yyn]; - else - yystate = PROIO_yydgoto[yym]; - if (PROIO_yyssp >= PROIO_yyss + 600 - 1) - { - goto yyoverflow; - } - *++PROIO_yyssp = yystate; - *++PROIO_yyvsp = PROIO_yyval; - goto yyloop; -yyoverflow: - PROIO_yyerror("yacc stack overflow"); -yyabort: - return (1); -yyaccept: - return (0); -} 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 5a871b3657..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/re_syntax.n b/src/regex/re_syntax.n deleted file mode 100644 index f37bb85abd..0000000000 --- a/src/regex/re_syntax.n +++ /dev/null @@ -1,970 +0,0 @@ -'\" -'\" Copyright (c) 1998 Sun Microsystems, Inc. -'\" Copyright (c) 1999 Scriptics Corporation -'\" -'\" This software is copyrighted by the Regents of the University of -'\" California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState -'\" Corporation and other parties. The following terms apply to all files -'\" associated with the software unless explicitly disclaimed in -'\" individual files. -'\" -'\" The authors hereby grant permission to use, copy, modify, distribute, -'\" and license this software and its documentation for any purpose, provided -'\" that existing copyright notices are retained in all copies and that this -'\" notice is included verbatim in any distributions. No written agreement, -'\" license, or royalty fee is required for any of the authorized uses. -'\" 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 on the first page of each file where -'\" they apply. -'\" -'\" IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY -'\" FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -'\" ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY -'\" DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE -'\" POSSIBILITY OF SUCH DAMAGE. -'\" -'\" THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, -'\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, -'\" FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE -'\" IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE -'\" NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR -'\" MODIFICATIONS. -'\" -'\" GOVERNMENT USE: If you are acquiring this software on behalf of the -'\" U.S. government, the Government shall have only "Restricted Rights" -'\" in the software and related documentation as defined in the Federal -'\" Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you -'\" are acquiring the software on behalf of the Department of Defense, the -'\" software shall be classified as "Commercial Computer Software" and the -'\" Government shall have only "Restricted Rights" as defined in Clause -'\" 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the -'\" authors grant the U.S. Government and others acting in its behalf -'\" permission to use and distribute the software in accordance with the -'\" terms specified in this license. -'\" -'\" RCS: @(#) Id: re_syntax.n,v 1.3 1999/07/14 19:09:36 jpeek Exp -'\" -.so man.macros -.TH re_syntax n "8.1" Tcl "Tcl Built-In Commands" -.BS -.SH NAME -re_syntax \- Syntax of Tcl regular expressions. -.BE - -.SH DESCRIPTION -.PP -A \fIregular expression\fR describes strings of characters. -It's a pattern that matches certain strings and doesn't match others. - -.SH "DIFFERENT FLAVORS OF REs" -Regular expressions (``RE''s), as defined by POSIX, come in two -flavors: \fIextended\fR REs (``EREs'') and \fIbasic\fR REs (``BREs''). -EREs are roughly those of the traditional \fIegrep\fR, while BREs are -roughly those of the traditional \fIed\fR. This implementation adds -a third flavor, \fIadvanced\fR REs (``AREs''), basically EREs with -some significant extensions. -.PP -This manual page primarily describes AREs. BREs mostly exist for -backward compatibility in some old programs; they will be discussed at -the end. POSIX EREs are almost an exact subset of AREs. Features of -AREs that are not present in EREs will be indicated. - -.SH "REGULAR EXPRESSION SYNTAX" -.PP -Tcl regular expressions are implemented using the package written by -Henry Spencer, based on the 1003.2 spec and some (not quite all) of -the Perl5 extensions (thanks, Henry!). Much of the description of -regular expressions below is copied verbatim from his manual entry. -.PP -An ARE is one or more \fIbranches\fR, -separated by `\fB|\fR', -matching anything that matches any of the branches. -.PP -A branch is zero or more \fIconstraints\fR or \fIquantified atoms\fR, -concatenated. -It matches a match for the first, followed by a match for the second, etc; -an empty branch matches the empty string. -.PP -A quantified atom is an \fIatom\fR possibly followed -by a single \fIquantifier\fR. -Without a quantifier, it matches a match for the atom. -The quantifiers, -and what a so-quantified atom matches, are: -.RS 2 -.TP 6 -\fB*\fR -a sequence of 0 or more matches of the atom -.TP -\fB+\fR -a sequence of 1 or more matches of the atom -.TP -\fB?\fR -a sequence of 0 or 1 matches of the atom -.TP -\fB{\fIm\fB}\fR -a sequence of exactly \fIm\fR matches of the atom -.TP -\fB{\fIm\fB,}\fR -a sequence of \fIm\fR or more matches of the atom -.TP -\fB{\fIm\fB,\fIn\fB}\fR -a sequence of \fIm\fR through \fIn\fR (inclusive) matches of the atom; -\fIm\fR may not exceed \fIn\fR -.TP -\fB*? +? ?? {\fIm\fB}? {\fIm\fB,}? {\fIm\fB,\fIn\fB}?\fR -\fInon-greedy\fR quantifiers, -which match the same possibilities, -but prefer the smallest number rather than the largest number -of matches (see MATCHING) -.RE -.PP -The forms using -\fB{\fR and \fB}\fR -are known as \fIbound\fRs. -The numbers -\fIm\fR and \fIn\fR are unsigned decimal integers -with permissible values from 0 to 255 inclusive. -.PP -An atom is one of: -.RS 2 -.TP 6 -\fB(\fIre\fB)\fR -(where \fIre\fR is any regular expression) -matches a match for -\fIre\fR, with the match noted for possible reporting -.TP -\fB(?:\fIre\fB)\fR -as previous, -but does no reporting -(a ``non-capturing'' set of parentheses) -.TP -\fB()\fR -matches an empty string, -noted for possible reporting -.TP -\fB(?:)\fR -matches an empty string, -without reporting -.TP -\fB[\fIchars\fB]\fR -a \fIbracket expression\fR, -matching any one of the \fIchars\fR (see BRACKET EXPRESSIONS for more detail) -.TP - \fB.\fR -matches any single character -.TP -\fB\e\fIk\fR -(where \fIk\fR is a non-alphanumeric character) -matches that character taken as an ordinary character, -e.g. \e\e matches a backslash character -.TP -\fB\e\fIc\fR -where \fIc\fR is alphanumeric -(possibly followed by other characters), -an \fIescape\fR (AREs only), -see ESCAPES below -.TP -\fB{\fR -when followed by a character other than a digit, -matches the left-brace character `\fB{\fR'; -when followed by a digit, it is the beginning of a -\fIbound\fR (see above) -.TP -\fIx\fR -where \fIx\fR is -a single character with no other significance, matches that character. -.RE -.PP -A \fIconstraint\fR matches an empty string when specific conditions -are met. -A constraint may not be followed by a quantifier. -The simple constraints are as follows; some more constraints are -described later, under ESCAPES. -.RS 2 -.TP 8 -\fB^\fR -matches at the beginning of a line -.TP -\fB$\fR -matches at the end of a line -.TP -\fB(?=\fIre\fB)\fR -\fIpositive lookahead\fR (AREs only), matches at any point -where a substring matching \fIre\fR begins -.TP -\fB(?!\fIre\fB)\fR -\fInegative lookahead\fR (AREs only), matches at any point -where no substring matching \fIre\fR begins -.RE -.PP -The lookahead constraints may not contain back references (see later), -and all parentheses within them are considered non-capturing. -.PP -An RE may not end with `\fB\e\fR'. - -.SH "BRACKET EXPRESSIONS" -A \fIbracket expression\fR is a list of characters enclosed in `\fB[\|]\fR'. -It normally matches any single character from the list (but see below). -If the list begins with `\fB^\fR', -it matches any single character -(but see below) \fInot\fR from the rest of the list. -.PP -If two characters in the list are separated by `\fB\-\fR', -this is shorthand -for the full \fIrange\fR of characters between those two (inclusive) in the -collating sequence, -e.g. -\fB[0\-9]\fR -in ASCII matches any decimal digit. -Two ranges may not share an -endpoint, so e.g. -\fBa\-c\-e\fR -is illegal. -Ranges are very collating-sequence-dependent, -and portable programs should avoid relying on them. -.PP -To include a literal -\fB]\fR -or -\fB\-\fR -in the list, -the simplest method is to -enclose it in -\fB[.\fR and \fB.]\fR -to make it a collating element (see below). -Alternatively, -make it the first character -(following a possible `\fB^\fR'), -or (AREs only) precede it with `\fB\e\fR'. -Alternatively, for `\fB\-\fR', -make it the last character, -or the second endpoint of a range. -To use a literal -\fB\-\fR -as the first endpoint of a range, -make it a collating element -or (AREs only) precede it with `\fB\e\fR'. -With the exception of these, some combinations using -\fB[\fR -(see next -paragraphs), and escapes, -all other special characters 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 -\fB[.\fR and \fB.]\fR -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 in a locale that has -multi-character collating elements -can thus match more than one character. -.VS 8.2 -So (insidiously), a bracket expression that starts with \fB^\fR -can match multi-character collating elements even if none of them -appear in the bracket expression! -(\fINote:\fR Tcl currently has no multi-character collating elements. -This information is only for illustration.) -.PP -For example, assume the collating sequence includes a \fBch\fR -multi-character collating element. -Then the RE \fB[[.ch.]]*c\fR (zero or more \fBch\fP's followed by \fBc\fP) -matches the first five characters of `\fBchchcc\fR'. -Also, the RE \fB[^c]b\fR matches all of `\fBchb\fR' -(because \fB[^c]\fR matches the multi-character \fBch\fR). -.VE 8.2 -.PP -Within a bracket expression, a collating element enclosed in -\fB[=\fR -and -\fB=]\fR -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 `\fB[.\fR'\& -and `\fB.]\fR'.) -For example, if -\fBo\fR -and -\fB\o'o^'\fR -are the members of an equivalence class, -then `\fB[[=o=]]\fR', `\fB[[=\o'o^'=]]\fR', -and `\fB[o\o'o^']\fR'\& -are all synonymous. -An equivalence class may not be an endpoint -of a range. -.VS 8.2 -(\fINote:\fR -Tcl currently implements only the Unicode locale. -It doesn't define any equivalence classes. -The examples above are just illustrations.) -.VE 8.2 -.PP -Within a bracket expression, the name of a \fIcharacter class\fR enclosed -in -\fB[:\fR -and -\fB:]\fR -stands for the list of all characters -(not all collating elements!) -belonging to that -class. -Standard character classes are: -.PP -.RS -.ne 5 -.nf -.ta 3c -\fBalpha\fR A letter. -\fBupper\fR An upper-case letter. -\fBlower\fR A lower-case letter. -\fBdigit\fR A decimal digit. -\fBxdigit\fR A hexadecimal digit. -\fBalnum\fR An alphanumeric (letter or digit). -\fBprint\fR An alphanumeric (same as alnum). -\fBblank\fR A space or tab character. -\fBspace\fR A character producing white space in displayed text. -\fBpunct\fR A punctuation character. -\fBgraph\fR A character with a visible representation. -\fBcntrl\fR A control character. -.fi -.RE -.PP -A locale may provide others. -.VS 8.2 -(Note that the current Tcl implementation has only one locale: -the Unicode locale.) -.VE 8.2 -A character class may not be used as an endpoint of a range. -.PP -There are two special cases of bracket expressions: -the bracket expressions -\fB[[:<:]]\fR -and -\fB[[:>:]]\fR -are constraints, matching empty strings at -the beginning and end of a word respectively. -'\" note, discussion of escapes below references this definition of word -A word is defined as a sequence of -word characters -that is neither preceded nor followed by -word characters. -A word character is an -\fIalnum\fR -character -or an underscore -(\fB_\fR). -These special bracket expressions are deprecated; -users of AREs should use constraint escapes instead (see below). -.SH ESCAPES -Escapes (AREs only), which begin with a -\fB\e\fR -followed by an alphanumeric character, -come in several varieties: -character entry, class shorthands, constraint escapes, and back references. -A -\fB\e\fR -followed by an alphanumeric character but not constituting -a valid escape is illegal in AREs. -In EREs, there are no escapes: -outside a bracket expression, -a -\fB\e\fR -followed by an alphanumeric character merely stands for that -character as an ordinary character, -and inside a bracket expression, -\fB\e\fR -is an ordinary character. -(The latter is the one actual incompatibility between EREs and AREs.) -.PP -Character-entry escapes (AREs only) exist to make it easier to specify -non-printing and otherwise inconvenient characters in REs: -.RS 2 -.TP 5 -\fB\ea\fR -alert (bell) character, as in C -.TP -\fB\eb\fR -backspace, as in C -.TP -\fB\eB\fR -synonym for -\fB\e\fR -to help reduce backslash doubling in some -applications where there are multiple levels of backslash processing -.TP -\fB\ec\fIX\fR -(where X is any character) the character whose -low-order 5 bits are the same as those of -\fIX\fR, -and whose other bits are all zero -.TP -\fB\ee\fR -the character whose collating-sequence name -is `\fBESC\fR', -or failing that, the character with octal value 033 -.TP -\fB\ef\fR -formfeed, as in C -.TP -\fB\en\fR -newline, as in C -.TP -\fB\er\fR -carriage return, as in C -.TP -\fB\et\fR -horizontal tab, as in C -.TP -\fB\eu\fIwxyz\fR -(where -\fIwxyz\fR -is exactly four hexadecimal digits) -the Unicode character -\fBU+\fIwxyz\fR -in the local byte ordering -.TP -\fB\eU\fIstuvwxyz\fR -(where -\fIstuvwxyz\fR -is exactly eight hexadecimal digits) -reserved for a somewhat-hypothetical Unicode extension to 32 bits -.TP -\fB\ev\fR -vertical tab, as in C -are all available. -.TP -\fB\ex\fIhhh\fR -(where -\fIhhh\fR -is any sequence of hexadecimal digits) -the character whose hexadecimal value is -\fB0x\fIhhh\fR -(a single character no matter how many hexadecimal digits are used). -.TP -\fB\e0\fR -the character whose value is -\fB0\fR -.TP -\fB\e\fIxy\fR -(where -\fIxy\fR -is exactly two octal digits, -and is not a -\fIback reference\fR (see below)) -the character whose octal value is -\fB0\fIxy\fR -.TP -\fB\e\fIxyz\fR -(where -\fIxyz\fR -is exactly three octal digits, -and is not a -back reference (see below)) -the character whose octal value is -\fB0\fIxyz\fR -.RE -.PP -Hexadecimal digits are `\fB0\fR'-`\fB9\fR', `\fBa\fR'-`\fBf\fR', -and `\fBA\fR'-`\fBF\fR'. -Octal digits are `\fB0\fR'-`\fB7\fR'. -.PP -The character-entry escapes are always taken as ordinary characters. -For example, -\fB\e135\fR -is -\fB]\fR -in ASCII, -but -\fB\e135\fR -does not terminate a bracket expression. -Beware, however, that some applications (e.g., C compilers) interpret -such sequences themselves before the regular-expression package -gets to see them, which may require doubling (quadrupling, etc.) the `\fB\e\fR'. -.PP -Class-shorthand escapes (AREs only) provide shorthands for certain commonly-used -character classes: -.RS 2 -.TP 10 -\fB\ed\fR -\fB[[:digit:]]\fR -.TP -\fB\es\fR -\fB[[:space:]]\fR -.TP -\fB\ew\fR -\fB[[:alnum:]_]\fR -(note underscore) -.TP -\fB\eD\fR -\fB[^[:digit:]]\fR -.TP -\fB\eS\fR -\fB[^[:space:]]\fR -.TP -\fB\eW\fR -\fB[^[:alnum:]_]\fR -(note underscore) -.RE -.PP -Within bracket expressions, `\fB\ed\fR', `\fB\es\fR', -and `\fB\ew\fR'\& -lose their outer brackets, -and `\fB\eD\fR', `\fB\eS\fR', -and `\fB\eW\fR'\& -are illegal. -.VS 8.2 -(So, for example, \fB[a-c\ed]\fR is equivalent to \fB[a-c[:digit:]]\fR. -Also, \fB[a-c\eD]\fR, which is equivalent to \fB[a-c^[:digit:]]\fR, is illegal.) -.VE 8.2 -.PP -A constraint escape (AREs only) is a constraint, -matching the empty string if specific conditions are met, -written as an escape: -.RS 2 -.TP 6 -\fB\eA\fR -matches only at the beginning of the string -(see MATCHING, below, for how this differs from `\fB^\fR') -.TP -\fB\em\fR -matches only at the beginning of a word -.TP -\fB\eM\fR -matches only at the end of a word -.TP -\fB\ey\fR -matches only at the beginning or end of a word -.TP -\fB\eY\fR -matches only at a point that is not the beginning or end of a word -.TP -\fB\eZ\fR -matches only at the end of the string -(see MATCHING, below, for how this differs from `\fB$\fR') -.TP -\fB\e\fIm\fR -(where -\fIm\fR -is a nonzero digit) a \fIback reference\fR, see below -.TP -\fB\e\fImnn\fR -(where -\fIm\fR -is a nonzero digit, and -\fInn\fR -is some more digits, -and the decimal value -\fImnn\fR -is not greater than the number of closing capturing parentheses seen so far) -a \fIback reference\fR, see below -.RE -.PP -A word is defined as in the specification of -\fB[[:<:]]\fR -and -\fB[[:>:]]\fR -above. -Constraint escapes are illegal within bracket expressions. -.PP -A back reference (AREs only) matches the same string matched by the parenthesized -subexpression specified by the number, -so that (e.g.) -\fB([bc])\e1\fR -matches -\fBbb\fR -or -\fBcc\fR -but not `\fBbc\fR'. -The subexpression must entirely precede the back reference in the RE. -Subexpressions are numbered in the order of their leading parentheses. -Non-capturing parentheses do not define subexpressions. -.PP -There is an inherent historical ambiguity between octal character-entry -escapes and back references, which is resolved by heuristics, -as hinted at above. -A leading zero always indicates an octal escape. -A single non-zero digit, not followed by another digit, -is always taken as a back reference. -A multi-digit sequence not starting with a zero is taken as a back -reference if it comes after a suitable subexpression -(i.e. the number is in the legal range for a back reference), -and otherwise is taken as octal. -.SH "METASYNTAX" -In addition to the main syntax described above, there are some special -forms and miscellaneous syntactic facilities available. -.PP -Normally the flavor of RE being used is specified by -application-dependent means. -However, this can be overridden by a \fIdirector\fR. -If an RE of any flavor begins with `\fB***:\fR', -the rest of the RE is an ARE. -If an RE of any flavor begins with `\fB***=\fR', -the rest of the RE is taken to be a literal string, -with all characters considered ordinary characters. -.PP -An ARE may begin with \fIembedded options\fR: -a sequence -\fB(?\fIxyz\fB)\fR -(where -\fIxyz\fR -is one or more alphabetic characters) -specifies options affecting the rest of the RE. -These supplement, and can override, -any options specified by the application. -The available option letters are: -.RS 2 -.TP 3 -\fBb\fR -rest of RE is a BRE -.TP 3 -\fBc\fR -case-sensitive matching (usual default) -.TP 3 -\fBe\fR -rest of RE is an ERE -.TP 3 -\fBi\fR -case-insensitive matching (see MATCHING, below) -.TP 3 -\fBm\fR -historical synonym for -\fBn\fR -.TP 3 -\fBn\fR -newline-sensitive matching (see MATCHING, below) -.TP 3 -\fBp\fR -partial newline-sensitive matching (see MATCHING, below) -.TP 3 -\fBq\fR -rest of RE is a literal (``quoted'') string, all ordinary characters -.TP 3 -\fBs\fR -non-newline-sensitive matching (usual default) -.TP 3 -\fBt\fR -tight syntax (usual default; see below) -.TP 3 -\fBw\fR -inverse partial newline-sensitive (``weird'') matching (see MATCHING, below) -.TP 3 -\fBx\fR -expanded syntax (see below) -.RE -.PP -Embedded options take effect at the -\fB)\fR -terminating the sequence. -They are available only at the start of an ARE, -and may not be used later within it. -.PP -In addition to the usual (\fItight\fR) RE syntax, in which all characters are -significant, there is an \fIexpanded\fR syntax, -available in all flavors of RE -with the \fB-expanded\fR switch, or in AREs with the embedded x option. -In the expanded syntax, -white-space characters are ignored -and all characters between a -\fB#\fR -and the following newline (or the end of the RE) are ignored, -permitting paragraphing and commenting a complex RE. -There are three exceptions to that basic rule: -.RS 2 -.PP -a white-space character or `\fB#\fR' preceded by `\fB\e\fR' is retained -.PP -white space or `\fB#\fR' within a bracket expression is retained -.PP -white space and comments are illegal within multi-character symbols -like the ARE `\fB(?:\fR' or the BRE `\fB\e(\fR' -.RE -.PP -Expanded-syntax white-space characters are blank, tab, newline, and -.VS 8.2 -any character that belongs to the \fIspace\fR character class. -.VE 8.2 -.PP -Finally, in an ARE, -outside bracket expressions, the sequence `\fB(?#\fIttt\fB)\fR' -(where -\fIttt\fR -is any text not containing a `\fB)\fR') -is a comment, -completely ignored. -Again, this is not allowed between the characters of -multi-character symbols like `\fB(?:\fR'. -Such comments are more a historical artifact than a useful facility, -and their use is deprecated; -use the expanded syntax instead. -.PP -\fINone\fR of these metasyntax extensions is available if the application -(or an initial -\fB***=\fR -director) -has specified that the user's input be treated as a literal string -rather than as an RE. -.SH MATCHING -In the event that an RE could match more than one substring of a given -string, -the RE matches the one starting earliest in the string. -If the RE could match more than one substring starting at that point, -its choice is determined by its \fIpreference\fR: -either the longest substring, or the shortest. -.PP -Most atoms, and all constraints, have no preference. -A parenthesized RE has the same preference (possibly none) as the RE. -A quantified atom with quantifier -\fB{\fIm\fB}\fR -or -\fB{\fIm\fB}?\fR -has the same preference (possibly none) as the atom itself. -A quantified atom with other normal quantifiers (including -\fB{\fIm\fB,\fIn\fB}\fR -with -\fIm\fR -equal to -\fIn\fR) -prefers longest match. -A quantified atom with other non-greedy quantifiers (including -\fB{\fIm\fB,\fIn\fB}?\fR -with -\fIm\fR -equal to -\fIn\fR) -prefers shortest match. -A branch has the same preference as the first quantified atom in it -which has a preference. -An RE consisting of two or more branches connected by the -\fB|\fR -operator prefers longest match. -.PP -Subject to the constraints imposed by the rules for matching the whole RE, -subexpressions also match the longest or shortest possible substrings, -based on their preferences, -with subexpressions starting earlier in the RE taking priority over -ones starting later. -Note that outer subexpressions thus take priority over -their component subexpressions. -.PP -Note that the quantifiers -\fB{1,1}\fR -and -\fB{1,1}?\fR -can be used to force longest and shortest preference, respectively, -on a subexpression or a whole RE. -.PP -Match lengths are measured in characters, not collating elements. -An empty string is considered longer than no match at all. -For example, -\fBbb*\fR -matches the three middle characters of `\fBabbbc\fR', -\fB(week|wee)(night|knights)\fR -matches all ten characters of `\fBweeknights\fR', -when -\fB(.*).*\fR -is matched against -\fBabc\fR -the parenthesized subexpression -matches all three characters, and -when -\fB(a*)*\fR -is matched against -\fBbc\fR -both the whole RE and the parenthesized -subexpression match an empty 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, -so that -\fBx\fR -becomes `\fB[xX]\fR'. -When it appears inside a bracket expression, all case counterparts -of it are added to the bracket expression, so that -\fB[x]\fR -becomes -\fB[xX]\fR -and -\fB[^x]\fR -becomes `\fB[^xX]\fR'. -.PP -If newline-sensitive matching is specified, \fB.\fR -and bracket expressions using -\fB^\fR -will never match the newline character -(so that matches will never cross newlines unless the RE -explicitly arranges it) -and -\fB^\fR -and -\fB$\fR -will match the empty string after and before a newline -respectively, in addition to matching at beginning and end of string -respectively. -ARE -\fB\eA\fR -and -\fB\eZ\fR -continue to match beginning or end of string \fIonly\fR. -.PP -If partial newline-sensitive matching is specified, -this affects \fB.\fR -and bracket expressions -as with newline-sensitive matching, but not -\fB^\fR -and `\fB$\fR'. -.PP -If inverse partial newline-sensitive matching is specified, -this affects -\fB^\fR -and -\fB$\fR -as with -newline-sensitive matching, -but not \fB.\fR -and bracket expressions. -This isn't very useful but is provided for symmetry. -.SH "LIMITS AND COMPATIBILITY" -No particular limit is imposed on the length of REs. -Programs intended to be highly portable should not employ REs longer -than 256 bytes, -as a POSIX-compliant implementation can refuse to accept such REs. -.PP -The only feature of AREs that is actually incompatible with -POSIX EREs is that -\fB\e\fR -does not lose its special -significance inside bracket expressions. -All other ARE features use syntax which is illegal or has -undefined or unspecified effects in POSIX EREs; -the -\fB***\fR -syntax of directors likewise is outside the POSIX -syntax for both BREs and EREs. -.PP -Many of the ARE extensions are borrowed from Perl, but some have -been changed to clean them up, and a few Perl extensions are not present. -Incompatibilities of note include `\fB\eb\fR', `\fB\eB\fR', -the lack of special treatment for a trailing newline, -the addition of complemented bracket expressions to the things -affected by newline-sensitive matching, -the restrictions on parentheses and back references in lookahead constraints, -and the longest/shortest-match (rather than first-match) matching semantics. -.PP -The matching rules for REs containing both normal and non-greedy quantifiers -have changed since early beta-test versions of this package. -(The new rules are much simpler and cleaner, -but don't work as hard at guessing the user's real intentions.) -.PP -Henry Spencer's original 1986 \fIregexp\fR package, -still in widespread use (e.g., in pre-8.1 releases of Tcl), -implemented an early version of today's EREs. -There are four incompatibilities between \fIregexp\fR's near-EREs -(`RREs' for short) and AREs. -In roughly increasing order of significance: -.PP -.RS -In AREs, -\fB\e\fR -followed by an alphanumeric character is either an -escape or an error, -while in RREs, it was just another way of writing the -alphanumeric. -This should not be a problem because there was no reason to write -such a sequence in RREs. -.PP -\fB{\fR -followed by a digit in an ARE is the beginning of a bound, -while in RREs, -\fB{\fR -was always an ordinary character. -Such sequences should be rare, -and will often result in an error because following characters -will not look like a valid bound. -.PP -In AREs, -\fB\e\fR -remains a special character within `\fB[\|]\fR', -so a literal -\fB\e\fR -within -\fB[\|]\fR -must be written `\fB\e\e\fR'. -\fB\e\e\fR -also gives a literal -\fB\e\fR -within -\fB[\|]\fR -in RREs, -but only truly paranoid programmers routinely doubled the backslash. -.PP -AREs report the longest/shortest match for the RE, -rather than the first found in a specified search order. -This may affect some RREs which were written in the expectation that -the first match would be reported. -(The careful crafting of RREs to optimize the search order for fast -matching is obsolete (AREs examine all possible matches -in parallel, and their performance is largely insensitive to their -complexity) but cases where the search order was exploited to deliberately -find a match which was \fInot\fR the longest/shortest will need rewriting.) -.RE - -.SH "BASIC REGULAR EXPRESSIONS" -BREs differ from EREs in several respects. `\fB|\fR', `\fB+\fR', -and -\fB?\fR -are ordinary characters and there is no equivalent -for their functionality. -The delimiters for bounds are -\fB\e{\fR -and `\fB\e}\fR', -with -\fB{\fR -and -\fB}\fR -by themselves ordinary characters. -The parentheses for nested subexpressions are -\fB\e(\fR -and `\fB\e)\fR', -with -\fB(\fR -and -\fB)\fR -by themselves ordinary characters. -\fB^\fR -is an ordinary character except at the beginning of the -RE or the beginning of a parenthesized subexpression, -\fB$\fR -is an ordinary character except at the end of the -RE or the end of a parenthesized subexpression, -and -\fB*\fR -is an ordinary character if it appears at the beginning of the -RE or the beginning of a parenthesized subexpression -(after a possible leading `\fB^\fR'). -Finally, -single-digit back references are available, -and -\fB\e<\fR -and -\fB\e>\fR -are synonyms for -\fB[[:<:]]\fR -and -\fB[[:>:]]\fR -respectively; -no other escapes are available. - -.SH "SEE ALSO" -RegExp(3), regexp(n), regsub(n), lsearch(n), switch(n), text(n) - -.SH KEYWORDS -match, regular expression, string diff --git a/src/regex/regc_nfa.c b/src/regex/regc_nfa.c deleted file mode 100644 index cc9f6ea2f9..0000000000 --- a/src/regex/regc_nfa.c +++ /dev/null @@ -1,1559 +0,0 @@ -/* - * NFA utilities. - * This file is #included by regcomp.c. - * - * 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. - * - * $Header$ - * - * - * One or two things that technically ought to be in here - * are actually in color.c, thanks to some incestuous relationships in - * the color chains. - */ - -#define NISERR() VISERR(nfa->v) -#define NERR(e) VERR(nfa->v, (e)) - - -/* - * newnfa - set up an NFA - */ -static struct nfa * /* the NFA, or NULL */ -newnfa(struct vars * v, - struct colormap * cm, - struct nfa * parent) /* NULL if primary NFA */ -{ - struct nfa *nfa; - - nfa = (struct nfa *) MALLOC(sizeof(struct nfa)); - if (nfa == NULL) - return NULL; - - nfa->states = NULL; - nfa->slast = NULL; - nfa->free = NULL; - nfa->nstates = 0; - nfa->cm = cm; - nfa->v = v; - nfa->bos[0] = nfa->bos[1] = COLORLESS; - nfa->eos[0] = nfa->eos[1] = COLORLESS; - nfa->post = newfstate(nfa, '@'); /* number 0 */ - nfa->pre = newfstate(nfa, '>'); /* number 1 */ - nfa->parent = parent; - - nfa->init = newstate(nfa); /* may become invalid later */ - nfa->final = newstate(nfa); - if (ISERR()) - { - freenfa(nfa); - return NULL; - } - rainbow(nfa, nfa->cm, PLAIN, COLORLESS, nfa->pre, nfa->init); - newarc(nfa, '^', 1, nfa->pre, nfa->init); - newarc(nfa, '^', 0, nfa->pre, nfa->init); - rainbow(nfa, nfa->cm, PLAIN, COLORLESS, nfa->final, nfa->post); - newarc(nfa, '$', 1, nfa->final, nfa->post); - newarc(nfa, '$', 0, nfa->final, nfa->post); - - if (ISERR()) - { - freenfa(nfa); - return NULL; - } - return nfa; -} - -/* - * freenfa - free an entire NFA - */ -static void -freenfa(struct nfa * nfa) -{ - struct state *s; - - while ((s = nfa->states) != NULL) - { - s->nins = s->nouts = 0; /* don't worry about arcs */ - freestate(nfa, s); - } - while ((s = nfa->free) != NULL) - { - nfa->free = s->next; - destroystate(nfa, s); - } - - nfa->slast = NULL; - nfa->nstates = -1; - nfa->pre = NULL; - nfa->post = NULL; - FREE(nfa); -} - -/* - * newstate - allocate an NFA state, with zero flag value - */ -static struct state * /* NULL on error */ -newstate(struct nfa * nfa) -{ - struct state *s; - - if (nfa->free != NULL) - { - s = nfa->free; - nfa->free = s->next; - } - else - { - s = (struct state *) MALLOC(sizeof(struct state)); - if (s == NULL) - { - NERR(REG_ESPACE); - return NULL; - } - s->oas.next = NULL; - s->free = NULL; - s->noas = 0; - } - - assert(nfa->nstates >= 0); - s->no = nfa->nstates++; - s->flag = 0; - if (nfa->states == NULL) - nfa->states = s; - s->nins = 0; - s->ins = NULL; - s->nouts = 0; - s->outs = NULL; - s->tmp = NULL; - s->next = NULL; - if (nfa->slast != NULL) - { - assert(nfa->slast->next == NULL); - nfa->slast->next = s; - } - s->prev = nfa->slast; - nfa->slast = s; - return s; -} - -/* - * newfstate - allocate an NFA state with a specified flag value - */ -static struct state * /* NULL on error */ -newfstate(struct nfa * nfa, int flag) -{ - struct state *s; - - s = newstate(nfa); - if (s != NULL) - s->flag = (char) flag; - return s; -} - -/* - * dropstate - delete a state's inarcs and outarcs and free it - */ -static void -dropstate(struct nfa * nfa, - struct state * s) -{ - struct arc *a; - - while ((a = s->ins) != NULL) - freearc(nfa, a); - while ((a = s->outs) != NULL) - freearc(nfa, a); - freestate(nfa, s); -} - -/* - * freestate - free a state, which has no in-arcs or out-arcs - */ -static void -freestate(struct nfa * nfa, - struct state * s) -{ - assert(s != NULL); - assert(s->nins == 0 && s->nouts == 0); - - s->no = FREESTATE; - s->flag = 0; - if (s->next != NULL) - s->next->prev = s->prev; - else - { - assert(s == nfa->slast); - nfa->slast = s->prev; - } - if (s->prev != NULL) - s->prev->next = s->next; - else - { - assert(s == nfa->states); - nfa->states = s->next; - } - s->prev = NULL; - s->next = nfa->free; /* don't delete it, put it on the free - * list */ - nfa->free = s; -} - -/* - * destroystate - really get rid of an already-freed state - */ -static void -destroystate(struct nfa * nfa, - struct state * s) -{ - struct arcbatch *ab; - struct arcbatch *abnext; - - assert(s->no == FREESTATE); - for (ab = s->oas.next; ab != NULL; ab = abnext) - { - abnext = ab->next; - FREE(ab); - } - s->ins = NULL; - s->outs = NULL; - s->next = NULL; - FREE(s); -} - -/* - * newarc - set up a new arc within an NFA - */ -static void -newarc(struct nfa * nfa, - int t, - pcolor co, - struct state * from, - struct state * to) -{ - struct arc *a; - - assert(from != NULL && to != NULL); - - /* check for duplicates */ - for (a = from->outs; a != NULL; a = a->outchain) - if (a->to == to && a->co == co && a->type == t) - return; - - a = allocarc(nfa, from); - if (NISERR()) - return; - assert(a != NULL); - - a->type = t; - a->co = (color) co; - a->to = to; - a->from = from; - - /* - * Put the new arc on the beginning, not the end, of the chains. Not - * only is this easier, it has the very useful side effect that - * deleting the most-recently-added arc is the cheapest case rather - * than the most expensive one. - */ - a->inchain = to->ins; - to->ins = a; - a->outchain = from->outs; - from->outs = a; - - from->nouts++; - to->nins++; - - if (COLORED(a) && nfa->parent == NULL) - colorchain(nfa->cm, a); - - return; -} - -/* - * allocarc - allocate a new out-arc within a state - */ -static struct arc * /* NULL for failure */ -allocarc(struct nfa * nfa, - struct state * s) -{ - struct arc *a; - struct arcbatch *new; - int i; - - /* shortcut */ - if (s->free == NULL && s->noas < ABSIZE) - { - a = &s->oas.a[s->noas]; - s->noas++; - return a; - } - - /* if none at hand, get more */ - if (s->free == NULL) - { - new = (struct arcbatch *) MALLOC(sizeof(struct arcbatch)); - if (new == NULL) - { - NERR(REG_ESPACE); - return NULL; - } - new->next = s->oas.next; - s->oas.next = new; - - for (i = 0; i < ABSIZE; i++) - { - new->a[i].type = 0; - new->a[i].freechain = &new->a[i + 1]; - } - new->a[ABSIZE - 1].freechain = NULL; - s->free = &new->a[0]; - } - assert(s->free != NULL); - - a = s->free; - s->free = a->freechain; - return a; -} - -/* - * freearc - free an arc - */ -static void -freearc(struct nfa * nfa, - struct arc * victim) -{ - struct state *from = victim->from; - struct state *to = victim->to; - struct arc *a; - - assert(victim->type != 0); - - /* take it off color chain if necessary */ - if (COLORED(victim) && nfa->parent == NULL) - uncolorchain(nfa->cm, victim); - - /* take it off source's out-chain */ - assert(from != NULL); - assert(from->outs != NULL); - a = from->outs; - if (a == victim) /* simple case: first in chain */ - from->outs = victim->outchain; - else - { - for (; a != NULL && a->outchain != victim; a = a->outchain) - continue; - assert(a != NULL); - a->outchain = victim->outchain; - } - from->nouts--; - - /* take it off target's in-chain */ - assert(to != NULL); - assert(to->ins != NULL); - a = to->ins; - if (a == victim) /* simple case: first in chain */ - to->ins = victim->inchain; - else - { - for (; a != NULL && a->inchain != victim; a = a->inchain) - continue; - assert(a != NULL); - a->inchain = victim->inchain; - } - to->nins--; - - /* clean up and place on free list */ - victim->type = 0; - victim->from = NULL; /* precautions... */ - victim->to = NULL; - victim->inchain = NULL; - victim->outchain = NULL; - victim->freechain = from->free; - from->free = victim; -} - -/* - * findarc - find arc, if any, from given source with given type and color - * If there is more than one such arc, the result is random. - */ -static struct arc * -findarc(struct state * s, - int type, - pcolor co) -{ - struct arc *a; - - for (a = s->outs; a != NULL; a = a->outchain) - if (a->type == type && a->co == co) - return a; - return NULL; -} - -/* - * cparc - allocate a new arc within an NFA, copying details from old one - */ -static void -cparc(struct nfa * nfa, - struct arc * oa, - struct state * from, - struct state * to) -{ - newarc(nfa, oa->type, oa->co, from, to); -} - -/* - * moveins - move all in arcs of a state to another state - * - * You might think this could be done better by just updating the - * existing arcs, and you would be right if it weren't for the desire - * for duplicate suppression, which makes it easier to just make new - * ones to exploit the suppression built into newarc. - */ -static void -moveins(struct nfa * nfa, - struct state * old, - struct state * new) -{ - struct arc *a; - - assert(old != new); - - while ((a = old->ins) != NULL) - { - cparc(nfa, a, a->from, new); - freearc(nfa, a); - } - assert(old->nins == 0); - assert(old->ins == NULL); -} - -/* - * copyins - copy all in arcs of a state to another state - */ -static void -copyins(struct nfa * nfa, - struct state * old, - struct state * new) -{ - struct arc *a; - - assert(old != new); - - for (a = old->ins; a != NULL; a = a->inchain) - cparc(nfa, a, a->from, new); -} - -/* - * moveouts - move all out arcs of a state to another state - */ -static void -moveouts(struct nfa * nfa, - struct state * old, - struct state * new) -{ - struct arc *a; - - assert(old != new); - - while ((a = old->outs) != NULL) - { - cparc(nfa, a, new, a->to); - freearc(nfa, a); - } -} - -/* - * copyouts - copy all out arcs of a state to another state - */ -static void -copyouts(struct nfa * nfa, - struct state * old, - struct state * new) -{ - struct arc *a; - - assert(old != new); - - for (a = old->outs; a != NULL; a = a->outchain) - cparc(nfa, a, new, a->to); -} - -/* - * cloneouts - copy out arcs of a state to another state pair, modifying type - */ -static void -cloneouts(struct nfa * nfa, - struct state * old, - struct state * from, - struct state * to, - int type) -{ - struct arc *a; - - assert(old != from); - - for (a = old->outs; a != NULL; a = a->outchain) - newarc(nfa, type, a->co, from, to); -} - -/* - * delsub - delete a sub-NFA, updating subre pointers if necessary - * - * This uses a recursive traversal of the sub-NFA, marking already-seen - * states using their tmp pointer. - */ -static void -delsub(struct nfa * nfa, - struct state * lp, /* the sub-NFA goes from here... */ - struct state * rp) /* ...to here, *not* inclusive */ -{ - assert(lp != rp); - - rp->tmp = rp; /* mark end */ - - deltraverse(nfa, lp, lp); - assert(lp->nouts == 0 && rp->nins == 0); /* did the job */ - assert(lp->no != FREESTATE && rp->no != FREESTATE); /* no more */ - - rp->tmp = NULL; /* unmark end */ - lp->tmp = NULL; /* and begin, marked by deltraverse */ -} - -/* - * deltraverse - the recursive heart of delsub - * This routine's basic job is to destroy all out-arcs of the state. - */ -static void -deltraverse(struct nfa * nfa, - struct state * leftend, - struct state * s) -{ - struct arc *a; - struct state *to; - - if (s->nouts == 0) - return; /* nothing to do */ - if (s->tmp != NULL) - return; /* already in progress */ - - s->tmp = s; /* mark as in progress */ - - while ((a = s->outs) != NULL) - { - to = a->to; - deltraverse(nfa, leftend, to); - assert(to->nouts == 0 || to->tmp != NULL); - freearc(nfa, a); - if (to->nins == 0 && to->tmp == NULL) - { - assert(to->nouts == 0); - freestate(nfa, to); - } - } - - assert(s->no != FREESTATE); /* we're still here */ - assert(s == leftend || s->nins != 0); /* and still reachable */ - assert(s->nouts == 0); /* but have no outarcs */ - - s->tmp = NULL; /* we're done here */ -} - -/* - * dupnfa - duplicate sub-NFA - * - * Another recursive traversal, this time using tmp to point to duplicates - * as well as mark already-seen states. (You knew there was a reason why - * it's a state pointer, didn't you? :-)) - */ -static void -dupnfa(struct nfa * nfa, - struct state * start, /* duplicate of subNFA starting here */ - struct state * stop, /* and stopping here */ - struct state * from, /* stringing duplicate from here */ - struct state * to) /* to here */ -{ - if (start == stop) - { - newarc(nfa, EMPTY, 0, from, to); - return; - } - - stop->tmp = to; - duptraverse(nfa, start, from); - /* done, except for clearing out the tmp pointers */ - - stop->tmp = NULL; - cleartraverse(nfa, start); -} - -/* - * duptraverse - recursive heart of dupnfa - */ -static void -duptraverse(struct nfa * nfa, - struct state * s, - struct state * stmp) /* s's duplicate, or NULL */ -{ - struct arc *a; - - if (s->tmp != NULL) - return; /* already done */ - - s->tmp = (stmp == NULL) ? newstate(nfa) : stmp; - if (s->tmp == NULL) - { - assert(NISERR()); - return; - } - - for (a = s->outs; a != NULL && !NISERR(); a = a->outchain) - { - duptraverse(nfa, a->to, (struct state *) NULL); - assert(a->to->tmp != NULL); - cparc(nfa, a, s->tmp, a->to->tmp); - } -} - -/* - * cleartraverse - recursive cleanup for algorithms that leave tmp ptrs set - */ -static void -cleartraverse(struct nfa * nfa, - struct state * s) -{ - struct arc *a; - - if (s->tmp == NULL) - return; - s->tmp = NULL; - - for (a = s->outs; a != NULL; a = a->outchain) - cleartraverse(nfa, a->to); -} - -/* - * specialcolors - fill in special colors for an NFA - */ -static void -specialcolors(struct nfa * nfa) -{ - /* false colors for BOS, BOL, EOS, EOL */ - if (nfa->parent == NULL) - { - nfa->bos[0] = pseudocolor(nfa->cm); - nfa->bos[1] = pseudocolor(nfa->cm); - nfa->eos[0] = pseudocolor(nfa->cm); - nfa->eos[1] = pseudocolor(nfa->cm); - } - else - { - assert(nfa->parent->bos[0] != COLORLESS); - nfa->bos[0] = nfa->parent->bos[0]; - assert(nfa->parent->bos[1] != COLORLESS); - nfa->bos[1] = nfa->parent->bos[1]; - assert(nfa->parent->eos[0] != COLORLESS); - nfa->eos[0] = nfa->parent->eos[0]; - assert(nfa->parent->eos[1] != COLORLESS); - nfa->eos[1] = nfa->parent->eos[1]; - } -} - -/* - * optimize - optimize an NFA - */ -static long /* re_info bits */ -optimize(struct nfa * nfa, - FILE *f) /* for debug output; NULL none */ -{ -#ifdef REG_DEBUG - int verbose = (f != NULL) ? 1 : 0; - - if (verbose) - fprintf(f, "\ninitial cleanup:\n"); -#endif - cleanup(nfa); /* may simplify situation */ -#ifdef REG_DEBUG - if (verbose) - dumpnfa(nfa, f); - if (verbose) - fprintf(f, "\nempties:\n"); -#endif - fixempties(nfa, f); /* get rid of EMPTY arcs */ -#ifdef REG_DEBUG - if (verbose) - fprintf(f, "\nconstraints:\n"); -#endif - pullback(nfa, f); /* pull back constraints backward */ - pushfwd(nfa, f); /* push fwd constraints forward */ -#ifdef REG_DEBUG - if (verbose) - fprintf(f, "\nfinal cleanup:\n"); -#endif - cleanup(nfa); /* final tidying */ - return analyze(nfa); /* and analysis */ -} - -/* - * pullback - pull back constraints backward to (with luck) eliminate them - */ -static void -pullback(struct nfa * nfa, - FILE *f) /* for debug output; NULL none */ -{ - struct state *s; - struct state *nexts; - struct arc *a; - struct arc *nexta; - int progress; - - /* find and pull until there are no more */ - do - { - progress = 0; - for (s = nfa->states; s != NULL && !NISERR(); s = nexts) - { - nexts = s->next; - for (a = s->outs; a != NULL && !NISERR(); a = nexta) - { - nexta = a->outchain; - if (a->type == '^' || a->type == BEHIND) - if (pull(nfa, a)) - progress = 1; - assert(nexta == NULL || s->no != FREESTATE); - } - } - if (progress && f != NULL) - dumpnfa(nfa, f); - } while (progress && !NISERR()); - if (NISERR()) - return; - - for (a = nfa->pre->outs; a != NULL; a = nexta) - { - nexta = a->outchain; - if (a->type == '^') - { - assert(a->co == 0 || a->co == 1); - newarc(nfa, PLAIN, nfa->bos[a->co], a->from, a->to); - freearc(nfa, a); - } - } -} - -/* - * pull - pull a back constraint backward past its source state - * A significant property of this function is that it deletes at most - * one state -- the constraint's from state -- and only if the constraint - * was that state's last outarc. - */ -static int /* 0 couldn't, 1 could */ -pull(struct nfa * nfa, - struct arc * con) -{ - struct state *from = con->from; - struct state *to = con->to; - struct arc *a; - struct arc *nexta; - struct state *s; - - if (from == to) - { /* circular constraint is pointless */ - freearc(nfa, con); - return 1; - } - if (from->flag) /* can't pull back beyond start */ - return 0; - if (from->nins == 0) - { /* unreachable */ - freearc(nfa, con); - return 1; - } - - /* first, clone from state if necessary to avoid other outarcs */ - if (from->nouts > 1) - { - s = newstate(nfa); - if (NISERR()) - return 0; - assert(to != from); /* con is not an inarc */ - copyins(nfa, from, s); /* duplicate inarcs */ - cparc(nfa, con, s, to); /* move constraint arc */ - freearc(nfa, con); - from = s; - con = from->outs; - } - assert(from->nouts == 1); - - /* propagate the constraint into the from state's inarcs */ - for (a = from->ins; a != NULL; a = nexta) - { - nexta = a->inchain; - switch (combine(con, a)) - { - case INCOMPATIBLE: /* destroy the arc */ - freearc(nfa, a); - break; - case SATISFIED: /* no action needed */ - break; - case COMPATIBLE: /* swap the two arcs, more or less */ - s = newstate(nfa); - if (NISERR()) - return 0; - cparc(nfa, a, s, to); /* anticipate move */ - cparc(nfa, con, a->from, s); - if (NISERR()) - return 0; - freearc(nfa, a); - break; - default: - assert(NOTREACHED); - break; - } - } - - /* remaining inarcs, if any, incorporate the constraint */ - moveins(nfa, from, to); - dropstate(nfa, from); /* will free the constraint */ - return 1; -} - -/* - * pushfwd - push forward constraints forward to (with luck) eliminate them - */ -static void -pushfwd(struct nfa * nfa, - FILE *f) /* for debug output; NULL none */ -{ - struct state *s; - struct state *nexts; - struct arc *a; - struct arc *nexta; - int progress; - - /* find and push until there are no more */ - do - { - progress = 0; - for (s = nfa->states; s != NULL && !NISERR(); s = nexts) - { - nexts = s->next; - for (a = s->ins; a != NULL && !NISERR(); a = nexta) - { - nexta = a->inchain; - if (a->type == '$' || a->type == AHEAD) - if (push(nfa, a)) - progress = 1; - assert(nexta == NULL || s->no != FREESTATE); - } - } - if (progress && f != NULL) - dumpnfa(nfa, f); - } while (progress && !NISERR()); - if (NISERR()) - return; - - for (a = nfa->post->ins; a != NULL; a = nexta) - { - nexta = a->inchain; - if (a->type == '$') - { - assert(a->co == 0 || a->co == 1); - newarc(nfa, PLAIN, nfa->eos[a->co], a->from, a->to); - freearc(nfa, a); - } - } -} - -/* - * push - push a forward constraint forward past its destination state - * A significant property of this function is that it deletes at most - * one state -- the constraint's to state -- and only if the constraint - * was that state's last inarc. - */ -static int /* 0 couldn't, 1 could */ -push(struct nfa * nfa, - struct arc * con) -{ - struct state *from = con->from; - struct state *to = con->to; - struct arc *a; - struct arc *nexta; - struct state *s; - - if (to == from) - { /* circular constraint is pointless */ - freearc(nfa, con); - return 1; - } - if (to->flag) /* can't push forward beyond end */ - return 0; - if (to->nouts == 0) - { /* dead end */ - freearc(nfa, con); - return 1; - } - - /* first, clone to state if necessary to avoid other inarcs */ - if (to->nins > 1) - { - s = newstate(nfa); - if (NISERR()) - return 0; - copyouts(nfa, to, s); /* duplicate outarcs */ - cparc(nfa, con, from, s); /* move constraint */ - freearc(nfa, con); - to = s; - con = to->ins; - } - assert(to->nins == 1); - - /* propagate the constraint into the to state's outarcs */ - for (a = to->outs; a != NULL; a = nexta) - { - nexta = a->outchain; - switch (combine(con, a)) - { - case INCOMPATIBLE: /* destroy the arc */ - freearc(nfa, a); - break; - case SATISFIED: /* no action needed */ - break; - case COMPATIBLE: /* swap the two arcs, more or less */ - s = newstate(nfa); - if (NISERR()) - return 0; - cparc(nfa, con, s, a->to); /* anticipate move */ - cparc(nfa, a, from, s); - if (NISERR()) - return 0; - freearc(nfa, a); - break; - default: - assert(NOTREACHED); - break; - } - } - - /* remaining outarcs, if any, incorporate the constraint */ - moveouts(nfa, to, from); - dropstate(nfa, to); /* will free the constraint */ - return 1; -} - -/* - * combine - constraint lands on an arc, what happens? - * - * #def INCOMPATIBLE 1 // destroys arc - * #def SATISFIED 2 // constraint satisfied - * #def COMPATIBLE 3 // compatible but not satisfied yet - */ -static int -combine(struct arc * con, - struct arc * a) -{ -#define CA(ct,at) (((ct)<type, a->type)) - { - case CA('^', PLAIN): /* newlines are handled separately */ - case CA('$', PLAIN): - return INCOMPATIBLE; - break; - case CA(AHEAD, PLAIN): /* color constraints meet colors */ - case CA(BEHIND, PLAIN): - if (con->co == a->co) - return SATISFIED; - return INCOMPATIBLE; - break; - case CA('^', '^'): /* collision, similar constraints */ - case CA('$', '$'): - case CA(AHEAD, AHEAD): - case CA(BEHIND, BEHIND): - if (con->co == a->co) /* true duplication */ - return SATISFIED; - return INCOMPATIBLE; - break; - case CA('^', BEHIND): /* collision, dissimilar constraints */ - case CA(BEHIND, '^'): - case CA('$', AHEAD): - case CA(AHEAD, '$'): - return INCOMPATIBLE; - break; - case CA('^', '$'): /* constraints passing each other */ - case CA('^', AHEAD): - case CA(BEHIND, '$'): - case CA(BEHIND, AHEAD): - case CA('$', '^'): - case CA('$', BEHIND): - case CA(AHEAD, '^'): - case CA(AHEAD, BEHIND): - case CA('^', LACON): - case CA(BEHIND, LACON): - case CA('$', LACON): - case CA(AHEAD, LACON): - return COMPATIBLE; - break; - } - assert(NOTREACHED); - return INCOMPATIBLE; /* for benefit of blind compilers */ -} - -/* - * fixempties - get rid of EMPTY arcs - */ -static void -fixempties(struct nfa * nfa, - FILE *f) /* for debug output; NULL none */ -{ - struct state *s; - struct state *nexts; - struct arc *a; - struct arc *nexta; - int progress; - - /* find and eliminate empties until there are no more */ - do - { - progress = 0; - for (s = nfa->states; s != NULL && !NISERR(); s = nexts) - { - nexts = s->next; - for (a = s->outs; a != NULL && !NISERR(); a = nexta) - { - nexta = a->outchain; - if (a->type == EMPTY && unempty(nfa, a)) - progress = 1; - assert(nexta == NULL || s->no != FREESTATE); - } - } - if (progress && f != NULL) - dumpnfa(nfa, f); - } while (progress && !NISERR()); -} - -/* - * unempty - optimize out an EMPTY arc, if possible - * - * Actually, as it stands this function always succeeds, but the return - * value is kept with an eye on possible future changes. - */ -static int /* 0 couldn't, 1 could */ -unempty(struct nfa * nfa, - struct arc * a) -{ - struct state *from = a->from; - struct state *to = a->to; - int usefrom; /* work on from, as opposed to to? */ - - assert(a->type == EMPTY); - assert(from != nfa->pre && to != nfa->post); - - if (from == to) - { /* vacuous loop */ - freearc(nfa, a); - return 1; - } - - /* decide which end to work on */ - usefrom = 1; /* default: attack from */ - if (from->nouts > to->nins) - usefrom = 0; - else if (from->nouts == to->nins) - { - /* decide on secondary issue: move/copy fewest arcs */ - if (from->nins > to->nouts) - usefrom = 0; - } - - freearc(nfa, a); - if (usefrom) - { - if (from->nouts == 0) - { - /* was the state's only outarc */ - moveins(nfa, from, to); - freestate(nfa, from); - } - else - copyins(nfa, from, to); - } - else - { - if (to->nins == 0) - { - /* was the state's only inarc */ - moveouts(nfa, to, from); - freestate(nfa, to); - } - else - copyouts(nfa, to, from); - } - - return 1; -} - -/* - * cleanup - clean up NFA after optimizations - */ -static void -cleanup(struct nfa * nfa) -{ - struct state *s; - struct state *nexts; - int n; - - /* clear out unreachable or dead-end states */ - /* use pre to mark reachable, then post to mark can-reach-post */ - markreachable(nfa, nfa->pre, (struct state *) NULL, nfa->pre); - markcanreach(nfa, nfa->post, nfa->pre, nfa->post); - for (s = nfa->states; s != NULL; s = nexts) - { - nexts = s->next; - if (s->tmp != nfa->post && !s->flag) - dropstate(nfa, s); - } - assert(nfa->post->nins == 0 || nfa->post->tmp == nfa->post); - cleartraverse(nfa, nfa->pre); - assert(nfa->post->nins == 0 || nfa->post->tmp == NULL); - /* the nins==0 (final unreachable) case will be caught later */ - - /* renumber surviving states */ - n = 0; - for (s = nfa->states; s != NULL; s = s->next) - s->no = n++; - nfa->nstates = n; -} - -/* - * markreachable - recursive marking of reachable states - */ -static void -markreachable(struct nfa * nfa, - struct state * s, - struct state * okay, /* consider only states with this - * mark */ - struct state * mark) /* the value to mark with */ -{ - struct arc *a; - - if (s->tmp != okay) - return; - s->tmp = mark; - - for (a = s->outs; a != NULL; a = a->outchain) - markreachable(nfa, a->to, okay, mark); -} - -/* - * markcanreach - recursive marking of states which can reach here - */ -static void -markcanreach(struct nfa * nfa, - struct state * s, - struct state * okay, /* consider only states with this - * mark */ - struct state * mark) /* the value to mark with */ -{ - struct arc *a; - - if (s->tmp != okay) - return; - s->tmp = mark; - - for (a = s->ins; a != NULL; a = a->inchain) - markcanreach(nfa, a->from, okay, mark); -} - -/* - * analyze - ascertain potentially-useful facts about an optimized NFA - */ -static long /* re_info bits to be ORed in */ -analyze(struct nfa * nfa) -{ - struct arc *a; - struct arc *aa; - - if (nfa->pre->outs == NULL) - return REG_UIMPOSSIBLE; - for (a = nfa->pre->outs; a != NULL; a = a->outchain) - for (aa = a->to->outs; aa != NULL; aa = aa->outchain) - if (aa->to == nfa->post) - return REG_UEMPTYMATCH; - return 0; -} - -/* - * compact - compact an NFA - */ -static void -compact(struct nfa * nfa, - struct cnfa * cnfa) -{ - struct state *s; - struct arc *a; - size_t nstates; - size_t narcs; - struct carc *ca; - struct carc *first; - - assert(!NISERR()); - - nstates = 0; - narcs = 0; - for (s = nfa->states; s != NULL; s = s->next) - { - nstates++; - narcs += 1 + s->nouts + 1; - /* 1 as a fake for flags, nouts for arcs, 1 as endmarker */ - } - - cnfa->states = (struct carc **) MALLOC(nstates * sizeof(struct carc *)); - cnfa->arcs = (struct carc *) MALLOC(narcs * sizeof(struct carc)); - if (cnfa->states == NULL || cnfa->arcs == NULL) - { - if (cnfa->states != NULL) - FREE(cnfa->states); - if (cnfa->arcs != NULL) - FREE(cnfa->arcs); - NERR(REG_ESPACE); - return; - } - cnfa->nstates = nstates; - cnfa->pre = nfa->pre->no; - cnfa->post = nfa->post->no; - cnfa->bos[0] = nfa->bos[0]; - cnfa->bos[1] = nfa->bos[1]; - cnfa->eos[0] = nfa->eos[0]; - cnfa->eos[1] = nfa->eos[1]; - cnfa->ncolors = maxcolor(nfa->cm) + 1; - cnfa->flags = 0; - - ca = cnfa->arcs; - for (s = nfa->states; s != NULL; s = s->next) - { - assert((size_t) s->no < nstates); - cnfa->states[s->no] = ca; - ca->co = 0; /* clear and skip flags "arc" */ - ca++; - first = ca; - for (a = s->outs; a != NULL; a = a->outchain) - switch (a->type) - { - case PLAIN: - ca->co = a->co; - ca->to = a->to->no; - ca++; - break; - case LACON: - assert(s->no != cnfa->pre); - ca->co = (color) (cnfa->ncolors + a->co); - ca->to = a->to->no; - ca++; - cnfa->flags |= HASLACONS; - break; - default: - assert(NOTREACHED); - break; - } - carcsort(first, ca - 1); - ca->co = COLORLESS; - ca->to = 0; - ca++; - } - assert(ca == &cnfa->arcs[narcs]); - assert(cnfa->nstates != 0); - - /* mark no-progress states */ - for (a = nfa->pre->outs; a != NULL; a = a->outchain) - cnfa->states[a->to->no]->co = 1; - cnfa->states[nfa->pre->no]->co = 1; -} - -/* - * carcsort - sort compacted-NFA arcs by color - * - * Really dumb algorithm, but if the list is long enough for that to matter, - * you're in real trouble anyway. - */ -static void -carcsort(struct carc * first, - struct carc * last) -{ - struct carc *p; - struct carc *q; - struct carc tmp; - - if (last - first <= 1) - return; - - for (p = first; p <= last; p++) - for (q = p; q <= last; q++) - if (p->co > q->co || - (p->co == q->co && p->to > q->to)) - { - assert(p != q); - tmp = *p; - *p = *q; - *q = tmp; - } -} - -/* - * freecnfa - free a compacted NFA - */ -static void -freecnfa(struct cnfa * cnfa) -{ - assert(cnfa->nstates != 0); /* not empty already */ - cnfa->nstates = 0; - FREE(cnfa->states); - FREE(cnfa->arcs); -} - -/* - * dumpnfa - dump an NFA in human-readable form - */ -static void -dumpnfa(struct nfa * nfa, - FILE *f) -{ -#ifdef REG_DEBUG - struct state *s; - - fprintf(f, "pre %d, post %d", nfa->pre->no, nfa->post->no); - if (nfa->bos[0] != COLORLESS) - fprintf(f, ", bos [%ld]", (long) nfa->bos[0]); - if (nfa->bos[1] != COLORLESS) - fprintf(f, ", bol [%ld]", (long) nfa->bos[1]); - if (nfa->eos[0] != COLORLESS) - fprintf(f, ", eos [%ld]", (long) nfa->eos[0]); - if (nfa->eos[1] != COLORLESS) - fprintf(f, ", eol [%ld]", (long) nfa->eos[1]); - fprintf(f, "\n"); - for (s = nfa->states; s != NULL; s = s->next) - dumpstate(s, f); - if (nfa->parent == NULL) - dumpcolors(nfa->cm, f); - fflush(f); -#endif -} - -#ifdef REG_DEBUG /* subordinates of dumpnfa */ - -/* - * dumpstate - dump an NFA state in human-readable form - */ -static void -dumpstate(struct state * s, - FILE *f) -{ - struct arc *a; - - fprintf(f, "%d%s%c", s->no, (s->tmp != NULL) ? "T" : "", - (s->flag) ? s->flag : '.'); - if (s->prev != NULL && s->prev->next != s) - fprintf(f, "\tstate chain bad\n"); - if (s->nouts == 0) - fprintf(f, "\tno out arcs\n"); - else - dumparcs(s, f); - fflush(f); - for (a = s->ins; a != NULL; a = a->inchain) - { - if (a->to != s) - fprintf(f, "\tlink from %d to %d on %d's in-chain\n", - a->from->no, a->to->no, s->no); - } -} - -/* - * dumparcs - dump out-arcs in human-readable form - */ -static void -dumparcs(struct state * s, - FILE *f) -{ - int pos; - - assert(s->nouts > 0); - /* printing arcs in reverse order is usually clearer */ - pos = dumprarcs(s->outs, s, f, 1); - if (pos != 1) - fprintf(f, "\n"); -} - -/* - * dumprarcs - dump remaining outarcs, recursively, in reverse order - */ -static int /* resulting print position */ -dumprarcs(struct arc * a, - struct state * s, - FILE *f, - int pos) /* initial print position */ -{ - if (a->outchain != NULL) - pos = dumprarcs(a->outchain, s, f, pos); - dumparc(a, s, f); - if (pos == 5) - { - fprintf(f, "\n"); - pos = 1; - } - else - pos++; - return pos; -} - -/* - * dumparc - dump one outarc in readable form, including prefixing tab - */ -static void -dumparc(struct arc * a, - struct state * s, - FILE *f) -{ - struct arc *aa; - struct arcbatch *ab; - - fprintf(f, "\t"); - switch (a->type) - { - case PLAIN: - fprintf(f, "[%ld]", (long) a->co); - break; - case AHEAD: - fprintf(f, ">%ld>", (long) a->co); - break; - case BEHIND: - fprintf(f, "<%ld<", (long) a->co); - break; - case LACON: - fprintf(f, ":%ld:", (long) a->co); - break; - case '^': - case '$': - fprintf(f, "%c%d", a->type, (int) a->co); - break; - case EMPTY: - break; - default: - fprintf(f, "0x%x/0%lo", a->type, (long) a->co); - break; - } - if (a->from != s) - fprintf(f, "?%d?", a->from->no); - for (ab = &a->from->oas; ab != NULL; ab = ab->next) - { - for (aa = &ab->a[0]; aa < &ab->a[ABSIZE]; aa++) - if (aa == a) - break; /* NOTE BREAK OUT */ - if (aa < &ab->a[ABSIZE]) /* propagate break */ - break; /* NOTE BREAK OUT */ - } - if (ab == NULL) - fprintf(f, "?!?"); /* not in allocated space */ - fprintf(f, "->"); - if (a->to == NULL) - { - fprintf(f, "NULL"); - return; - } - fprintf(f, "%d", a->to->no); - for (aa = a->to->ins; aa != NULL; aa = aa->inchain) - if (aa == a) - break; /* NOTE BREAK OUT */ - if (aa == NULL) - fprintf(f, "?!?"); /* missing from in-chain */ -} -#endif /* REG_DEBUG */ - -/* - * dumpcnfa - dump a compacted NFA in human-readable form - */ -#ifdef REG_DEBUG -static void -dumpcnfa(struct cnfa * cnfa, - FILE *f) -{ - int st; - - fprintf(f, "pre %d, post %d", cnfa->pre, cnfa->post); - if (cnfa->bos[0] != COLORLESS) - fprintf(f, ", bos [%ld]", (long) cnfa->bos[0]); - if (cnfa->bos[1] != COLORLESS) - fprintf(f, ", bol [%ld]", (long) cnfa->bos[1]); - if (cnfa->eos[0] != COLORLESS) - fprintf(f, ", eos [%ld]", (long) cnfa->eos[0]); - if (cnfa->eos[1] != COLORLESS) - fprintf(f, ", eol [%ld]", (long) cnfa->eos[1]); - if (cnfa->flags & HASLACONS) - fprintf(f, ", haslacons"); - fprintf(f, "\n"); - for (st = 0; st < cnfa->nstates; st++) - dumpcstate(st, cnfa->states[st], cnfa, f); - fflush(f); -} -#endif - -#ifdef REG_DEBUG /* subordinates of dumpcnfa */ - -/* - * dumpcstate - dump a compacted-NFA state in human-readable form - */ -static void -dumpcstate(int st, - struct carc * ca, - struct cnfa * cnfa, - FILE *f) -{ - int i; - int pos; - - fprintf(f, "%d%s", st, (ca[0].co) ? ":" : "."); - pos = 1; - for (i = 1; ca[i].co != COLORLESS; i++) - { - if (ca[i].co < cnfa->ncolors) - fprintf(f, "\t[%ld]->%d", (long) ca[i].co, ca[i].to); - else - fprintf(f, "\t:%ld:->%d", (long) ca[i].co - cnfa->ncolors, - ca[i].to); - if (pos == 5) - { - fprintf(f, "\n"); - pos = 1; - } - else - pos++; - } - if (i == 1 || pos != 1) - fprintf(f, "\n"); - fflush(f); -} - -#endif /* REG_DEBUG */ diff --git a/src/regex/rege_dfa.c b/src/regex/rege_dfa.c deleted file mode 100644 index 5347b90d73..0000000000 --- a/src/regex/rege_dfa.c +++ /dev/null @@ -1,699 +0,0 @@ -/* - * DFA routines - * This file is #included by regexec.c. - * - * 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. - * - * $Header$ - * - */ - -/* - * longest - longest-preferred matching engine - */ -static chr * /* endpoint, or NULL */ -longest(struct vars * v, /* used only for debug and exec flags */ - struct dfa * d, - chr *start, /* where the match should start */ - chr *stop, /* match must end at or before here */ - int *hitstopp) /* record whether hit v->stop, if non-NULL */ -{ - chr *cp; - chr *realstop = (stop == v->stop) ? stop : stop + 1; - color co; - struct sset *css; - struct sset *ss; - chr *post; - int i; - struct colormap *cm = d->cm; - - /* initialize */ - css = initialize(v, d, start); - cp = start; - if (hitstopp != NULL) - *hitstopp = 0; - - /* startup */ - FDEBUG(("+++ startup +++\n")); - if (cp == v->start) - { - co = d->cnfa->bos[(v->eflags & REG_NOTBOL) ? 0 : 1]; - FDEBUG(("color %ld\n", (long) co)); - } - else - { - co = GETCOLOR(cm, *(cp - 1)); - FDEBUG(("char %c, color %ld\n", (char) *(cp - 1), (long) co)); - } - css = miss(v, d, css, co, cp, start); - if (css == NULL) - return NULL; - css->lastseen = cp; - - /* main loop */ - if (v->eflags & REG_FTRACE) - while (cp < realstop) - { - FDEBUG(("+++ at c%d +++\n", css - d->ssets)); - co = GETCOLOR(cm, *cp); - FDEBUG(("char %c, color %ld\n", (char) *cp, (long) co)); - ss = css->outs[co]; - if (ss == NULL) - { - ss = miss(v, d, css, co, cp + 1, start); - if (ss == NULL) - break; /* NOTE BREAK OUT */ - } - cp++; - ss->lastseen = cp; - css = ss; - } - else - while (cp < realstop) - { - co = GETCOLOR(cm, *cp); - ss = css->outs[co]; - if (ss == NULL) - { - ss = miss(v, d, css, co, cp + 1, start); - if (ss == NULL) - break; /* NOTE BREAK OUT */ - } - cp++; - ss->lastseen = cp; - css = ss; - } - - /* shutdown */ - FDEBUG(("+++ shutdown at c%d +++\n", css - d->ssets)); - if (cp == v->stop && stop == v->stop) - { - if (hitstopp != NULL) - *hitstopp = 1; - co = d->cnfa->eos[(v->eflags & REG_NOTEOL) ? 0 : 1]; - FDEBUG(("color %ld\n", (long) co)); - ss = miss(v, d, css, co, cp, start); - /* special case: match ended at eol? */ - if (ss != NULL && (ss->flags & POSTSTATE)) - return cp; - else if (ss != NULL) - ss->lastseen = cp; /* to be tidy */ - } - - /* find last match, if any */ - post = d->lastpost; - for (ss = d->ssets, i = d->nssused; i > 0; ss++, i--) - if ((ss->flags & POSTSTATE) && post != ss->lastseen && - (post == NULL || post < ss->lastseen)) - post = ss->lastseen; - if (post != NULL) /* found one */ - return post - 1; - - return NULL; -} - -/* - * shortest - shortest-preferred matching engine - */ -static chr * /* endpoint, or NULL */ -shortest(struct vars * v, - struct dfa * d, - chr *start, /* where the match should start */ - chr *min, /* match must end at or after here */ - chr *max, /* match must end at or before here */ - chr **coldp, /* store coldstart pointer here, if - * nonNULL */ - int *hitstopp) /* record whether hit v->stop, if non-NULL */ -{ - chr *cp; - chr *realmin = (min == v->stop) ? min : min + 1; - chr *realmax = (max == v->stop) ? max : max + 1; - color co; - struct sset *css; - struct sset *ss; - struct colormap *cm = d->cm; - - /* initialize */ - css = initialize(v, d, start); - cp = start; - if (hitstopp != NULL) - *hitstopp = 0; - - /* startup */ - FDEBUG(("--- startup ---\n")); - if (cp == v->start) - { - co = d->cnfa->bos[(v->eflags & REG_NOTBOL) ? 0 : 1]; - FDEBUG(("color %ld\n", (long) co)); - } - else - { - co = GETCOLOR(cm, *(cp - 1)); - FDEBUG(("char %c, color %ld\n", (char) *(cp - 1), (long) co)); - } - css = miss(v, d, css, co, cp, start); - if (css == NULL) - return NULL; - css->lastseen = cp; - ss = css; - - /* main loop */ - if (v->eflags & REG_FTRACE) - while (cp < realmax) - { - FDEBUG(("--- at c%d ---\n", css - d->ssets)); - co = GETCOLOR(cm, *cp); - FDEBUG(("char %c, color %ld\n", (char) *cp, (long) co)); - ss = css->outs[co]; - if (ss == NULL) - { - ss = miss(v, d, css, co, cp + 1, start); - if (ss == NULL) - break; /* NOTE BREAK OUT */ - } - cp++; - ss->lastseen = cp; - css = ss; - if ((ss->flags & POSTSTATE) && cp >= realmin) - break; /* NOTE BREAK OUT */ - } - else - while (cp < realmax) - { - co = GETCOLOR(cm, *cp); - ss = css->outs[co]; - if (ss == NULL) - { - ss = miss(v, d, css, co, cp + 1, start); - if (ss == NULL) - break; /* NOTE BREAK OUT */ - } - cp++; - ss->lastseen = cp; - css = ss; - if ((ss->flags & POSTSTATE) && cp >= realmin) - break; /* NOTE BREAK OUT */ - } - - if (ss == NULL) - return NULL; - - if (coldp != NULL) /* report last no-progress state set, if - * any */ - *coldp = lastcold(v, d); - - if ((ss->flags & POSTSTATE) && cp > min) - { - assert(cp >= realmin); - cp--; - } - else if (cp == v->stop && max == v->stop) - { - co = d->cnfa->eos[(v->eflags & REG_NOTEOL) ? 0 : 1]; - FDEBUG(("color %ld\n", (long) co)); - ss = miss(v, d, css, co, cp, start); - /* match might have ended at eol */ - if ((ss == NULL || !(ss->flags & POSTSTATE)) && hitstopp != NULL) - *hitstopp = 1; - } - - if (ss == NULL || !(ss->flags & POSTSTATE)) - return NULL; - - return cp; -} - -/* - * lastcold - determine last point at which no progress had been made - */ -static chr * /* endpoint, or NULL */ -lastcold(struct vars * v, - struct dfa * d) -{ - struct sset *ss; - chr *nopr; - int i; - - nopr = d->lastnopr; - if (nopr == NULL) - nopr = v->start; - for (ss = d->ssets, i = d->nssused; i > 0; ss++, i--) - if ((ss->flags & NOPROGRESS) && nopr < ss->lastseen) - nopr = ss->lastseen; - return nopr; -} - -/* - * newdfa - set up a fresh DFA - */ -static struct dfa * -newdfa(struct vars * v, - struct cnfa * cnfa, - struct colormap * cm, - struct smalldfa * small) /* preallocated space, may be NULL */ -{ - struct dfa *d; - size_t nss = cnfa->nstates * 2; - int wordsper = (cnfa->nstates + UBITS - 1) / UBITS; - struct smalldfa *smallwas = small; - - assert(cnfa != NULL && cnfa->nstates != 0); - - if (nss <= FEWSTATES && cnfa->ncolors <= FEWCOLORS) - { - assert(wordsper == 1); - if (small == NULL) - { - small = (struct smalldfa *) MALLOC( - sizeof(struct smalldfa)); - if (small == NULL) - { - ERR(REG_ESPACE); - return NULL; - } - } - d = &small->dfa; - d->ssets = small->ssets; - d->statesarea = small->statesarea; - d->work = &d->statesarea[nss]; - d->outsarea = small->outsarea; - d->incarea = small->incarea; - d->cptsmalloced = 0; - d->mallocarea = (smallwas == NULL) ? (char *) small : NULL; - } - else - { - d = (struct dfa *) MALLOC(sizeof(struct dfa)); - if (d == NULL) - { - ERR(REG_ESPACE); - return NULL; - } - d->ssets = (struct sset *) MALLOC(nss * sizeof(struct sset)); - d->statesarea = (unsigned *) MALLOC((nss + WORK) * wordsper * - sizeof(unsigned)); - d->work = &d->statesarea[nss * wordsper]; - d->outsarea = (struct sset **) MALLOC(nss * cnfa->ncolors * - sizeof(struct sset *)); - d->incarea = (struct arcp *) MALLOC(nss * cnfa->ncolors * - sizeof(struct arcp)); - d->cptsmalloced = 1; - d->mallocarea = (char *) d; - if (d->ssets == NULL || d->statesarea == NULL || - d->outsarea == NULL || d->incarea == NULL) - { - freedfa(d); - ERR(REG_ESPACE); - return NULL; - } - } - - d->nssets = (v->eflags & REG_SMALL) ? 7 : nss; - d->nssused = 0; - d->nstates = cnfa->nstates; - d->ncolors = cnfa->ncolors; - d->wordsper = wordsper; - d->cnfa = cnfa; - d->cm = cm; - d->lastpost = NULL; - d->lastnopr = NULL; - d->search = d->ssets; - - /* initialization of sset fields is done as needed */ - - return d; -} - -/* - * freedfa - free a DFA - */ -static void -freedfa(struct dfa * d) -{ - if (d->cptsmalloced) - { - if (d->ssets != NULL) - FREE(d->ssets); - if (d->statesarea != NULL) - FREE(d->statesarea); - if (d->outsarea != NULL) - FREE(d->outsarea); - if (d->incarea != NULL) - FREE(d->incarea); - } - - if (d->mallocarea != NULL) - FREE(d->mallocarea); -} - -/* - * hash - construct a hash code for a bitvector - * - * There are probably better ways, but they're more expensive. - */ -static unsigned -hash(unsigned *uv, - int n) -{ - int i; - unsigned h; - - h = 0; - for (i = 0; i < n; i++) - h ^= uv[i]; - return h; -} - -/* - * initialize - hand-craft a cache entry for startup, otherwise get ready - */ -static struct sset * -initialize(struct vars * v, /* used only for debug flags */ - struct dfa * d, - chr *start) -{ - struct sset *ss; - int i; - - /* is previous one still there? */ - if (d->nssused > 0 && (d->ssets[0].flags & STARTER)) - ss = &d->ssets[0]; - else - { /* no, must (re)build it */ - ss = getvacant(v, d, start, start); - for (i = 0; i < d->wordsper; i++) - ss->states[i] = 0; - BSET(ss->states, d->cnfa->pre); - ss->hash = HASH(ss->states, d->wordsper); - assert(d->cnfa->pre != d->cnfa->post); - ss->flags = STARTER | LOCKED | NOPROGRESS; - /* lastseen dealt with below */ - } - - for (i = 0; i < d->nssused; i++) - d->ssets[i].lastseen = NULL; - ss->lastseen = start; /* maybe untrue, but harmless */ - d->lastpost = NULL; - d->lastnopr = NULL; - return ss; -} - -/* - * miss - handle a cache miss - */ -static struct sset * /* NULL if goes to empty set */ -miss(struct vars * v, /* used only for debug flags */ - struct dfa * d, - struct sset * css, - pcolor co, - chr *cp, /* next chr */ - chr *start) /* where the attempt got started */ -{ - struct cnfa *cnfa = d->cnfa; - int i; - unsigned h; - struct carc *ca; - struct sset *p; - int ispost; - int noprogress; - int gotstate; - int dolacons; - int sawlacons; - - /* for convenience, we can be called even if it might not be a miss */ - if (css->outs[co] != NULL) - { - FDEBUG(("hit\n")); - return css->outs[co]; - } - FDEBUG(("miss\n")); - - /* first, what set of states would we end up in? */ - for (i = 0; i < d->wordsper; i++) - d->work[i] = 0; - ispost = 0; - noprogress = 1; - gotstate = 0; - for (i = 0; i < d->nstates; i++) - if (ISBSET(css->states, i)) - for (ca = cnfa->states[i] + 1; ca->co != COLORLESS; ca++) - if (ca->co == co) - { - BSET(d->work, ca->to); - gotstate = 1; - if (ca->to == cnfa->post) - ispost = 1; - if (!cnfa->states[ca->to]->co) - noprogress = 0; - FDEBUG(("%d -> %d\n", i, ca->to)); - } - dolacons = (gotstate) ? (cnfa->flags & HASLACONS) : 0; - sawlacons = 0; - while (dolacons) - { /* transitive closure */ - dolacons = 0; - for (i = 0; i < d->nstates; i++) - if (ISBSET(d->work, i)) - for (ca = cnfa->states[i] + 1; ca->co != COLORLESS; - ca++) - { - if (ca->co <= cnfa->ncolors) - continue; /* NOTE CONTINUE */ - sawlacons = 1; - if (ISBSET(d->work, ca->to)) - continue; /* NOTE CONTINUE */ - if (!lacon(v, cnfa, cp, ca->co)) - continue; /* NOTE CONTINUE */ - BSET(d->work, ca->to); - dolacons = 1; - if (ca->to == cnfa->post) - ispost = 1; - if (!cnfa->states[ca->to]->co) - noprogress = 0; - FDEBUG(("%d :> %d\n", i, ca->to)); - } - } - if (!gotstate) - return NULL; - h = HASH(d->work, d->wordsper); - - /* next, is that in the cache? */ - for (p = d->ssets, i = d->nssused; i > 0; p++, i--) - if (HIT(h, d->work, p, d->wordsper)) - { - FDEBUG(("cached c%d\n", p - d->ssets)); - break; /* NOTE BREAK OUT */ - } - if (i == 0) - { /* nope, need a new cache entry */ - p = getvacant(v, d, cp, start); - assert(p != css); - for (i = 0; i < d->wordsper; i++) - p->states[i] = d->work[i]; - p->hash = h; - p->flags = (ispost) ? POSTSTATE : 0; - if (noprogress) - p->flags |= NOPROGRESS; - /* lastseen to be dealt with by caller */ - } - - if (!sawlacons) - { /* lookahead conds. always cache miss */ - FDEBUG(("c%d[%d]->c%d\n", css - d->ssets, co, p - d->ssets)); - css->outs[co] = p; - css->inchain[co] = p->ins; - p->ins.ss = css; - p->ins.co = (color) co; - } - return p; -} - -/* - * lacon - lookahead-constraint checker for miss() - */ -static int /* predicate: constraint satisfied? */ -lacon(struct vars * v, - struct cnfa * pcnfa, /* parent cnfa */ - chr *cp, - pcolor co) /* "color" of the lookahead constraint */ -{ - int n; - struct subre *sub; - struct dfa *d; - struct smalldfa sd; - chr *end; - - n = co - pcnfa->ncolors; - assert(n < v->g->nlacons && v->g->lacons != NULL); - FDEBUG(("=== testing lacon %d\n", n)); - sub = &v->g->lacons[n]; - d = newdfa(v, &sub->cnfa, &v->g->cmap, &sd); - if (d == NULL) - { - ERR(REG_ESPACE); - return 0; - } - end = longest(v, d, cp, v->stop, (int *) NULL); - freedfa(d); - FDEBUG(("=== lacon %d match %d\n", n, (end != NULL))); - return (sub->subno) ? (end != NULL) : (end == NULL); -} - -/* - * getvacant - get a vacant state set - * This routine clears out the inarcs and outarcs, but does not otherwise - * clear the innards of the state set -- that's up to the caller. - */ -static struct sset * -getvacant(struct vars * v, /* used only for debug flags */ - struct dfa * d, - chr *cp, - chr *start) -{ - int i; - struct sset *ss; - struct sset *p; - struct arcp ap; - struct arcp lastap; - color co; - - ss = pickss(v, d, cp, start); - assert(!(ss->flags & LOCKED)); - - /* clear out its inarcs, including self-referential ones */ - ap = ss->ins; - while ((p = ap.ss) != NULL) - { - co = ap.co; - FDEBUG(("zapping c%d's %ld outarc\n", p - d->ssets, (long) co)); - p->outs[co] = NULL; - ap = p->inchain[co]; - p->inchain[co].ss = NULL; /* paranoia */ - } - ss->ins.ss = NULL; - - /* take it off the inarc chains of the ssets reached by its outarcs */ - for (i = 0; i < d->ncolors; i++) - { - p = ss->outs[i]; - assert(p != ss); /* not self-referential */ - if (p == NULL) - continue; /* NOTE CONTINUE */ - FDEBUG(("del outarc %d from c%d's in chn\n", i, p - d->ssets)); - if (p->ins.ss == ss && p->ins.co == i) - p->ins = ss->inchain[i]; - else - { - assert(p->ins.ss != NULL); - for (ap = p->ins; ap.ss != NULL && - !(ap.ss == ss && ap.co == i); - ap = ap.ss->inchain[ap.co]) - lastap = ap; - assert(ap.ss != NULL); - lastap.ss->inchain[lastap.co] = ss->inchain[i]; - } - ss->outs[i] = NULL; - ss->inchain[i].ss = NULL; - } - - /* if ss was a success state, may need to remember location */ - if ((ss->flags & POSTSTATE) && ss->lastseen != d->lastpost && - (d->lastpost == NULL || d->lastpost < ss->lastseen)) - d->lastpost = ss->lastseen; - - /* likewise for a no-progress state */ - if ((ss->flags & NOPROGRESS) && ss->lastseen != d->lastnopr && - (d->lastnopr == NULL || d->lastnopr < ss->lastseen)) - d->lastnopr = ss->lastseen; - - return ss; -} - -/* - * pickss - pick the next stateset to be used - */ -static struct sset * -pickss(struct vars * v, /* used only for debug flags */ - struct dfa * d, - chr *cp, - chr *start) -{ - int i; - struct sset *ss; - struct sset *end; - chr *ancient; - - /* shortcut for cases where cache isn't full */ - if (d->nssused < d->nssets) - { - i = d->nssused; - d->nssused++; - ss = &d->ssets[i]; - FDEBUG(("new c%d\n", i)); - /* set up innards */ - ss->states = &d->statesarea[i * d->wordsper]; - ss->flags = 0; - ss->ins.ss = NULL; - ss->ins.co = WHITE; /* give it some value */ - ss->outs = &d->outsarea[i * d->ncolors]; - ss->inchain = &d->incarea[i * d->ncolors]; - for (i = 0; i < d->ncolors; i++) - { - ss->outs[i] = NULL; - ss->inchain[i].ss = NULL; - } - return ss; - } - - /* look for oldest, or old enough anyway */ - if (cp - start > d->nssets * 2 / 3) /* oldest 33% are expendable */ - ancient = cp - d->nssets * 2 / 3; - else - ancient = start; - for (ss = d->search, end = &d->ssets[d->nssets]; ss < end; ss++) - if ((ss->lastseen == NULL || ss->lastseen < ancient) && - !(ss->flags & LOCKED)) - { - d->search = ss + 1; - FDEBUG(("replacing c%d\n", ss - d->ssets)); - return ss; - } - for (ss = d->ssets, end = d->search; ss < end; ss++) - if ((ss->lastseen == NULL || ss->lastseen < ancient) && - !(ss->flags & LOCKED)) - { - d->search = ss + 1; - FDEBUG(("replacing c%d\n", ss - d->ssets)); - return ss; - } - - /* nobody's old enough?!? -- something's really wrong */ - FDEBUG(("can't find victim to replace!\n")); - assert(NOTREACHED); - ERR(REG_ASSERT); - return d->ssets; -} 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/gsockno.c b/src/stubs/gsockno.c deleted file mode 100644 index 0f40f3efdc..0000000000 --- a/src/stubs/gsockno.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ------------------------------------------------------------------------- - * Project: GSocket (Generic Socket) for WX - * Name: gsockno.c - * Purpose: GSocket stub GUI file - * CVSID: $Id$ - * ------------------------------------------------------------------------- - */ -#include -#include "gsocket.h" - -void _GSocket_GUI_Init(GSocket *socket) -{ -} - -void _GSocket_GUI_Destroy(GSocket *socket) -{ -} - -void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event) -{ -} - -void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent event) -{ -} - -unsigned long GSocket_GetEventID(GSocket *socket) -{ - return 0; -} - -void GSocket_DoEvent(unsigned long evt_id) -{ -} 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/gsocket.c b/src/unix/gsocket.c deleted file mode 100644 index 2ffafc86b6..0000000000 --- a/src/unix/gsocket.c +++ /dev/null @@ -1,1158 +0,0 @@ -/* ------------------------------------------------------------------------- - * Project: GSocket (Generic Socket) for WX - * Name: gsocket.c - * Purpose: GSocket main Unix file - * CVSID: $Id$ - * ------------------------------------------------------------------------- - */ - -#include "wx/setup.h" - -#if wxUSE_SOCKETS - -#include -#include -#include -#ifdef vms -#include -#else -#include -#endif -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#ifdef sun -# include -#endif - -#ifdef sgi -# include -#endif - -#include - -#include "wx/gsocket.h" -#include "gsockunx.h" - -#ifndef SOCKLEN_T - -#ifdef __GLIBC__ -# if __GLIBC__ == 2 -# define SOCKLEN_T socklen_t -# endif -#else -# define SOCKLEN_T int -#endif - -#endif - -#if !defined(__LINUX__) && !defined(__FREEBSD__) -# define CAN_USE_TIMEOUT -#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) -# if (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 1) -# define CAN_USE_TIMEOUT -# endif -#endif - -/* Global initialisers */ - -bool GSocket_Init() -{ - return TRUE; -} - -void GSocket_Cleanup() -{ -} - -/* Constructors / Destructors */ - -GSocket *GSocket_new() -{ - int i; - GSocket *socket; - - socket = (GSocket *)malloc(sizeof(GSocket)); - - if (socket == NULL) - return NULL; - - socket->m_fd = -1; - for (i=0;im_cbacks[i] = NULL; - socket->m_iocalls[i] = FALSE; - } - socket->m_local = NULL; - socket->m_peer = NULL; - socket->m_error = GSOCK_NOERROR; - socket->m_server = FALSE; - socket->m_stream = TRUE; - socket->m_gui_dependent = NULL; - socket->m_non_blocking = FALSE; - socket->m_timeout = 10*60*1000; - /* 10 minutes * 60 sec * 1000 millisec */ - - /* We initialize the GUI specific entries here */ - _GSocket_GUI_Init(socket); - - return socket; -} - -void GSocket_destroy(GSocket *socket) -{ - assert(socket != NULL); - - /* First, we check that the socket is really shutdowned */ - if (socket->m_fd != -1) - GSocket_Shutdown(socket); - - /* We destroy GUI specific variables */ - _GSocket_GUI_Destroy(socket); - - /* We destroy private addresses */ - if (socket->m_local) - GAddress_destroy(socket->m_local); - - if (socket->m_peer) - GAddress_destroy(socket->m_peer); - - /* We destroy socket itself */ - free(socket); -} - -void GSocket_Shutdown(GSocket *socket) -{ - int evt; - - assert(socket != NULL); - - /* If socket has been created, we shutdown it */ - if (socket->m_fd != -1) { - /* Only oriented connection should be shutdowned */ - if (socket->m_oriented) - shutdown(socket->m_fd, 2); - close(socket->m_fd); - socket->m_fd = -1; - } - - /* We also disable GUI callbacks */ - for (evt=0;evtm_fd != -1 && !socket->m_server)) { - socket->m_error = GSOCK_INVSOCK; - return GSOCK_INVSOCK; - } - - if (address == NULL || address->m_family == GSOCK_NOFAMILY) { - socket->m_error = GSOCK_INVADDR; - return GSOCK_INVADDR; - } - - if (socket->m_local) - GAddress_destroy(socket->m_local); - - socket->m_local = GAddress_copy(address); - - return GSOCK_NOERROR; -} - -GSocketError GSocket_SetPeer(GSocket *socket, GAddress *address) -{ - assert(socket != NULL); - - if (address == NULL || address->m_family == GSOCK_NOFAMILY) { - socket->m_error = GSOCK_INVADDR; - return GSOCK_INVADDR; - } - - if (socket->m_peer) - GAddress_destroy(socket->m_peer); - - socket->m_peer = GAddress_copy(address); - - return GSOCK_NOERROR; -} - -GAddress *GSocket_GetLocal(GSocket *socket) -{ - GAddress *address; - struct sockaddr addr; - SOCKLEN_T size; - - assert(socket != NULL); - - if (socket->m_local) - return GAddress_copy(socket->m_local); - - if (socket->m_fd == -1) { - socket->m_error = GSOCK_INVSOCK; - return NULL; - } - - size = sizeof(addr); - - if (getsockname(socket->m_fd, &addr, &size) < 0) { - socket->m_error = GSOCK_IOERR; - return NULL; - } - - address = GAddress_new(); - if (address == NULL) { - socket->m_error = GSOCK_MEMERR; - return NULL; - } - if (_GAddress_translate_from(address, &addr, size) != GSOCK_NOERROR) { - GAddress_destroy(address); - return NULL; - } - - return address; -} - -GAddress *GSocket_GetPeer(GSocket *socket) -{ - assert(socket != NULL); - - if (socket->m_peer) - return GAddress_copy(socket->m_peer); - - return NULL; -} - -/* Server specific parts */ - -/* - GSocket_SetServer() setup the socket as a server. It uses the "Local" field - of GSocket. "Local" must be set by GSocket_SetLocal() before - GSocket_SetServer() is called. GSOCK_INVSOCK if socket has been initialized. - In case, you haven't yet defined the local address, it returns GSOCK_INVADDR. - In the other cases it returns GSOCK_IOERR. -*/ -GSocketError GSocket_SetServer(GSocket *sck) -{ - int type; - - assert(sck != NULL); - - if (sck->m_fd != -1) { - sck->m_error = GSOCK_INVSOCK; - return GSOCK_INVSOCK; - } - - if (!sck->m_local) { - sck->m_error = GSOCK_INVADDR; - return GSOCK_INVADDR; - } - - /* We always have a stream here */ - sck->m_stream = TRUE; - sck->m_server = TRUE; - - /* Create the socket */ - sck->m_fd = socket(sck->m_local->m_realfamily, SOCK_STREAM, 0); - - if (sck->m_fd == -1) { - sck->m_error = GSOCK_IOERR; - return GSOCK_IOERR; - } - - /* Bind the socket to the LOCAL address */ - if (bind(sck->m_fd, sck->m_local->m_addr, sck->m_local->m_len) < 0) { - close(sck->m_fd); - sck->m_fd = -1; - sck->m_error = GSOCK_IOERR; - return GSOCK_IOERR; - } - - /* Enable listening up to 5 connections */ - if (listen(sck->m_fd, 5) < 0) { - close(sck->m_fd); - sck->m_fd = -1; - sck->m_error = GSOCK_IOERR; - return GSOCK_IOERR; - } - - GSocket_SetNonBlocking(sck, sck->m_non_blocking); - GSocket_SetTimeout(sck, sck->m_timeout); - - return GSOCK_NOERROR; -} - -/* - GSocket_WaitConnection() waits for an incoming client connection. -*/ -GSocket *GSocket_WaitConnection(GSocket *socket) -{ - GSocket *connection; - - assert(socket != NULL); - - /* If the socket has already been created, we exit immediately */ - if (socket->m_fd == -1 || !socket->m_server) { - socket->m_error = GSOCK_INVSOCK; - return NULL; - } - - /* Reenable GSOCK_CONNECTION event */ - _GSocket_Enable(socket, GSOCK_CONNECTION); - - /* Create a GSocket object for the new connection */ - connection = GSocket_new(); - - /* Accept the incoming connection */ - connection->m_fd = accept(socket->m_fd, NULL, NULL); - if (connection->m_fd == -1) { - GSocket_destroy(connection); - socket->m_error = GSOCK_IOERR; - return NULL; - } - - /* Initialize all fields */ - connection->m_stream = TRUE; - connection->m_server = FALSE; - connection->m_oriented = TRUE; - - return connection; -} - -/* Non oriented connections */ - -GSocketError GSocket_SetNonOriented(GSocket *sck) -{ - assert(sck != NULL); - - if (sck->m_fd != -1) { - sck->m_error = GSOCK_INVSOCK; - return GSOCK_INVSOCK; - } - - if (!sck->m_local) { - sck->m_error = GSOCK_INVADDR; - return GSOCK_INVADDR; - } - - sck->m_stream = FALSE; - sck->m_server = FALSE; - sck->m_oriented = FALSE; - - /* Create the socket */ - sck->m_fd = socket(sck->m_local->m_realfamily, SOCK_DGRAM, 0); - - /* Bind it to the LOCAL address */ - if (bind(sck->m_fd, sck->m_local->m_addr, sck->m_local->m_len) < 0) { - close(sck->m_fd); - sck->m_fd = -1; - sck->m_error = GSOCK_IOERR; - return GSOCK_IOERR; - } - - GSocket_SetNonBlocking(sck, sck->m_non_blocking); - GSocket_SetTimeout(sck, sck->m_timeout); - - return GSOCK_NOERROR; -} - -/* Client specific parts */ - -/* - GSocket_Connect() establishes a client connection to a server using the "Peer" - field of GSocket. "Peer" must be set by GSocket_SetPeer() before - GSocket_Connect() is called. In the other case, it returns GSOCK_INVADDR. -*/ -GSocketError GSocket_Connect(GSocket *sck, GSocketStream stream) -{ - int type; - - assert(sck != NULL); - - if (sck->m_fd != -1) { - sck->m_error = GSOCK_INVSOCK; - return GSOCK_INVSOCK; - } - - if (!sck->m_peer) { - sck->m_error = GSOCK_INVADDR; - return GSOCK_INVADDR; - } - - /* Test whether we want the socket to be a stream (e.g. TCP) */ - sck->m_stream = (stream == GSOCK_STREAMED); - sck->m_oriented = TRUE; - - if (sck->m_stream) - type = SOCK_STREAM; - else - type = SOCK_DGRAM; - - /* Create the socket */ - sck->m_fd = socket(sck->m_peer->m_realfamily, type, 0); - - if (sck->m_fd == -1) { - sck->m_error = GSOCK_IOERR; - return GSOCK_IOERR; - } - - /* Connect it to the PEER address */ - if (connect(sck->m_fd, sck->m_peer->m_addr, - sck->m_peer->m_len) != 0) { - close(sck->m_fd); - sck->m_fd = -1; - sck->m_error = GSOCK_IOERR; - return GSOCK_IOERR; - } - - /* It is not a server */ - sck->m_server = FALSE; - - GSocket_SetNonBlocking(sck, sck->m_non_blocking); - GSocket_SetTimeout(sck, sck->m_timeout); - - return GSOCK_NOERROR; -} - -/* Generic IO */ - -/* Like recv(), send(), ... */ -int GSocket_Read(GSocket *socket, char *buffer, int size) -{ - assert(socket != NULL); - - if (socket->m_fd == -1 || socket->m_server) { - socket->m_error = GSOCK_INVSOCK; - return -1; - } - - /* Reenable GSOCK_INPUT event */ - _GSocket_Enable(socket, GSOCK_INPUT); - - if (socket->m_stream) - return _GSocket_Recv_Stream(socket, buffer, size); - else - return _GSocket_Recv_Dgram(socket, buffer, size); -} - -int GSocket_Write(GSocket *socket, const char *buffer, - int size) -{ - assert(socket != NULL); - - if (socket->m_fd == -1 || socket->m_server) { - socket->m_error = GSOCK_INVSOCK; - return -1; - } - - _GSocket_Enable(socket, GSOCK_OUTPUT); - - if (socket->m_stream) - return _GSocket_Send_Stream(socket, buffer, size); - else - return _GSocket_Send_Dgram(socket, buffer, size); -} - -bool GSocket_DataAvailable(GSocket *socket) -{ - fd_set read_set; - struct timeval tv; - - assert(socket != NULL); - - if (socket->m_fd == -1 || socket->m_server) { - socket->m_error = GSOCK_INVSOCK; - return FALSE; - } - - FD_ZERO(&read_set); - FD_SET(socket->m_fd, &read_set); - - tv.tv_sec = 0; - tv.tv_usec = 0; - - select(socket->m_fd+1, &read_set, NULL, NULL, &tv); - - return FD_ISSET(socket->m_fd, &read_set); -} - -/* Flags */ - -/* - GSocket_SetNonBlocking() puts the socket in non-blocking mode. This is useful - if we don't want to wait. -*/ -void GSocket_SetNonBlocking(GSocket *socket, bool non_block) -{ - assert(socket != NULL); - - socket->m_non_blocking = non_block; - - if (socket->m_fd != -1) - ioctl(socket->m_fd, FIONBIO, &non_block); -} - -/* - * GSocket_SetTimeout() - */ - -void GSocket_SetTimeout(GSocket *socket, unsigned long millisec) -{ - assert(socket != NULL); - - socket->m_timeout = millisec; - /* Neither GLIBC 2.0 nor the kernel 2.0.36 define SO_SNDTIMEO or - SO_RCVTIMEO. The man pages, that these flags should exist but - are read only. RR. */ - /* OK, restrict this to GLIBC 2.1. GL. */ - /* Anyway, they seem to pose problems: I need to know the socket level and - it varies (may be SOL_TCP, SOL_UDP, ...). I disables this and use the - other solution. GL. */ -#if 0 -#ifdef CAN_USE_TIMEOUT - if (socket->m_fd != -1) { - struct timeval tval; - - tval.tv_sec = millisec / 1000; - tval.tv_usec = (millisec % 1000) * 1000; - setsockopt(socket->m_fd, SOL_SOCKET, SO_SNDTIMEO, &tval, sizeof(tval)); - setsockopt(socket->m_fd, SOL_SOCKET, SO_RCVTIMEO, &tval, sizeof(tval)); - } -#endif -#endif -} - -/* - GSocket_GetError() returns the last error occured on the socket stream. -*/ - -GSocketError GSocket_GetError(GSocket *socket) -{ - assert(socket != NULL); - - return socket->m_error; -} - -/* Callbacks */ - -/* - Only one callback is possible for each event (INPUT, OUTPUT, CONNECTION) - INPUT: The function is called when there is at least a byte in the - input buffer - OUTPUT: The function is called when the system is sure the next write call - will not block - CONNECTION: Two cases is possible: - Client socket -> the connection is established - Server socket -> a client request a connection - LOST: the connection is lost - - SetCallback accepts a combination of these flags so a same callback can - receive different events. - - An event is generated only once and its state is reseted when the relative - IO call is requested. - For example: INPUT -> GSocket_Read() - CONNECTION -> GSocket_Accept() -*/ -void GSocket_SetCallback(GSocket *socket, GSocketEventFlags event, - GSocketCallback callback, char *cdata) -{ - int count; - - assert (socket != NULL); - - for (count=0;countm_cbacks[count] = callback; - socket->m_data[count] = cdata; - _GSocket_Enable(socket, count); - } - } -} - -/* - UnsetCallback will disables all callbacks specified by "event". - NOTE: event may be a combination of flags -*/ -void GSocket_UnsetCallback(GSocket *socket, GSocketEventFlags event) -{ - int count = 0; - - assert(socket != NULL); - - for (count=0;countm_cbacks[count] = NULL; - } - } -} - -#define CALL_FALLBACK(socket, event) \ -if (socket->m_iocalls[event] && \ - socket->m_cbacks[event]) {\ - _GSocket_Disable(socket, event); \ - socket->m_cbacks[event](socket, event, \ - socket->m_data[event]); \ -} - -#define MASK_SIGNAL() \ -{ \ - void (*old_handler)(int); \ -\ - old_handler = signal(SIGPIPE, SIG_IGN); - -#define UNMASK_SIGNAL() \ - signal(SIGPIPE, old_handler); \ -} - -#define ENABLE_TIMEOUT(socket) \ -{ \ - struct itimerval old_ival, new_ival; \ - void (*old_timer_sig)(int); \ -\ - old_timer_sig = signal(SIGALRM, SIG_DFL); \ - siginterrupt(SIGALRM, 1); \ - new_ival.it_value.tv_sec = socket->m_timeout / 1000; \ - new_ival.it_value.tv_usec = (socket->m_timeout % 1000) * 1000; \ - new_ival.it_interval.tv_sec = 0; \ - new_ival.it_interval.tv_usec = 0; \ - setitimer(ITIMER_REAL, &new_ival, &old_ival); - -#define DISABLE_TIMEOUT(socket) \ - signal(SIGALRM, old_timer_sig); \ - siginterrupt(SIGALRM, 0); \ - setitimer(ITIMER_REAL, &old_ival, NULL); \ -} - -void _GSocket_Enable(GSocket *socket, GSocketEvent event) -{ - socket->m_iocalls[event] = TRUE; - if (socket->m_cbacks[event]) - _GSocket_Install_Callback(socket, event); -} - -void _GSocket_Disable(GSocket *socket, GSocketEvent event) -{ - socket->m_iocalls[event] = FALSE; - if (socket->m_cbacks[event]) - _GSocket_Uninstall_Callback(socket, event); -} - -int _GSocket_Recv_Stream(GSocket *socket, char *buffer, int size) -{ - int ret; - - MASK_SIGNAL(); - ENABLE_TIMEOUT(socket); - ret = recv(socket->m_fd, buffer, size, 0); - DISABLE_TIMEOUT(socket); - UNMASK_SIGNAL(); - - if (ret == -1 && errno != EWOULDBLOCK) { - socket->m_error = GSOCK_IOERR; - return -1; - } - if (errno == EWOULDBLOCK) { - socket->m_error = GSOCK_WOULDBLOCK; - return -1; - } - return ret; -} - -int _GSocket_Recv_Dgram(GSocket *socket, char *buffer, int size) -{ - struct sockaddr from; - SOCKLEN_T fromlen; - int ret; - - fromlen = sizeof(from); - - MASK_SIGNAL(); - ENABLE_TIMEOUT(socket); - ret = recvfrom(socket->m_fd, buffer, size, 0, &from, &fromlen); - DISABLE_TIMEOUT(socket); - UNMASK_SIGNAL(); - if (ret == -1 && errno != EWOULDBLOCK) { - socket->m_error = GSOCK_IOERR; - return -1; - } - if (errno == EWOULDBLOCK) { - socket->m_error = GSOCK_WOULDBLOCK; - return -1; - } - - /* Translate a system address into a GSocket address */ - if (!socket->m_peer) { - socket->m_peer = GAddress_new(); - if (!socket->m_peer) { - socket->m_error = GSOCK_MEMERR; - return -1; - } - } - if (_GAddress_translate_from(socket->m_peer, &from, fromlen) != GSOCK_NOERROR) - return -1; - - return ret; -} - -int _GSocket_Send_Stream(GSocket *socket, const char *buffer, int size) -{ - int ret; - - MASK_SIGNAL(); - ENABLE_TIMEOUT(socket); - ret = send(socket->m_fd, buffer, size, 0); - DISABLE_TIMEOUT(socket); - UNMASK_SIGNAL(); - if (ret == -1 && errno != EWOULDBLOCK) { - socket->m_error = GSOCK_IOERR; - return -1; - } - if (errno == EWOULDBLOCK) { - socket->m_error = GSOCK_WOULDBLOCK; - return -1; - } - return ret; -} - -int _GSocket_Send_Dgram(GSocket *socket, const char *buffer, int size) -{ - struct sockaddr *addr; - int len, ret; - - if (!socket->m_peer) { - socket->m_error = GSOCK_INVADDR; - return -1; - } - - if (_GAddress_translate_to(socket->m_peer, &addr, &len) != GSOCK_NOERROR) { - return -1; - } - - MASK_SIGNAL(); - ENABLE_TIMEOUT(socket); - ret = sendto(socket->m_fd, buffer, size, 0, addr, len); - DISABLE_TIMEOUT(socket); - UNMASK_SIGNAL(); - - /* Frees memory allocated from _GAddress_translate_to */ - free(addr); - - if (ret == -1 && errno != EWOULDBLOCK) { - socket->m_error = GSOCK_IOERR; - return -1; - } - if (errno == EWOULDBLOCK) { - socket->m_error = GSOCK_WOULDBLOCK; - return -1; - } - - return ret; -} - -void _GSocket_Detected_Read(GSocket *socket) -{ - char c; - int ret; - - if (socket->m_stream) { - ret = recv(socket->m_fd, &c, 1, MSG_PEEK); - - if (ret < 0 && socket->m_server) { - CALL_FALLBACK(socket, GSOCK_CONNECTION); - return; - } - - if (ret > 0) { - CALL_FALLBACK(socket, GSOCK_INPUT); - } else { - CALL_FALLBACK(socket, GSOCK_LOST); - } - } -} - -void _GSocket_Detected_Write(GSocket *socket) -{ - CALL_FALLBACK(socket, GSOCK_OUTPUT); -} - -#undef CALL_FALLBACK -#undef MASK_SIGNAL -#undef UNMASK_SIGNAL - -/* - * ------------------------------------------------------------------------- - * GAddress - * ------------------------------------------------------------------------- - */ - -/* CHECK_ADDRESS verifies that the current family is either GSOCK_NOFAMILY or - * GSOCK_*family*. In case it is GSOCK_NOFAMILY, it initializes address to be - * a GSOCK_*family*. In other cases, it returns GSOCK_INVADDR. - */ -#define CHECK_ADDRESS(address, family, retval) \ -{ \ - if (address->m_family == GSOCK_NOFAMILY) \ - if (_GAddress_Init_##family(address) != GSOCK_NOERROR) {\ - return address->m_error; \ - }\ - if (address->m_family != GSOCK_##family) {\ - address->m_error = GSOCK_INVADDR; \ - return retval; \ - } \ -} - -GAddress *GAddress_new() -{ - GAddress *address; - - address = (GAddress *)malloc(sizeof(GAddress)); - - if (address == NULL) - return NULL; - - address->m_family = GSOCK_NOFAMILY; - address->m_addr = NULL; - address->m_len = 0; - - return address; -} - -GAddress *GAddress_copy(GAddress *address) -{ - GAddress *addr2; - - assert(address != NULL); - - addr2 = (GAddress *)malloc(sizeof(GAddress)); - - if (addr2 == NULL) - return NULL; - - memcpy(addr2, address, sizeof(GAddress)); - - if (address->m_addr) { - addr2->m_addr = (struct sockaddr *)malloc(addr2->m_len); - if (addr2->m_addr == NULL) { - free(addr2); - return NULL; - } - memcpy(addr2->m_addr, address->m_addr, addr2->m_len); - } - - return addr2; -} - -void GAddress_destroy(GAddress *address) -{ - assert(address != NULL); - - free(address); -} - -void GAddress_SetFamily(GAddress *address, GAddressType type) -{ - assert(address != NULL); - - address->m_family = type; -} - -GAddressType GAddress_GetFamily(GAddress *address) -{ - assert(address != NULL); - - return address->m_family; -} - -GSocketError _GAddress_translate_from(GAddress *address, struct sockaddr *addr, int len){ - address->m_realfamily = addr->sa_family; - switch (addr->sa_family) { - case AF_INET: - address->m_family = GSOCK_INET; - break; - case AF_UNIX: - address->m_family = GSOCK_UNIX; - break; -#ifdef AF_INET6 - case AF_INET6: - address->m_family = GSOCK_INET6; - break; -#endif - default: - { - address->m_error = GSOCK_INVOP; - return GSOCK_INVOP; - } - } - - if (address->m_addr) - free(address->m_addr); - - address->m_len = len; - address->m_addr = (struct sockaddr *)malloc(len); - if (address->m_addr == NULL) { - address->m_error = GSOCK_MEMERR; - return GSOCK_MEMERR; - } - memcpy(address->m_addr, addr, len); - - return GSOCK_NOERROR; -} - -GSocketError _GAddress_translate_to(GAddress *address, - struct sockaddr **addr, int *len) -{ - if (!address->m_addr) { - address->m_error = GSOCK_INVADDR; - return GSOCK_INVADDR; - } - - *len = address->m_len; - *addr = (struct sockaddr *)malloc(address->m_len); - if (*addr == NULL) { - address->m_error = GSOCK_MEMERR; - return GSOCK_MEMERR; - } - - memcpy(*addr, address->m_addr, address->m_len); - return GSOCK_NOERROR; -} - -/* - * ------------------------------------------------------------------------- - * Internet address family - * ------------------------------------------------------------------------- - */ - -GSocketError _GAddress_Init_INET(GAddress *address) -{ - address->m_addr = (struct sockaddr *)malloc(sizeof(struct sockaddr_in)); - if (address->m_addr == NULL) { - address->m_error = GSOCK_MEMERR; - return GSOCK_MEMERR; - } - - address->m_len = sizeof(struct sockaddr_in); - - address->m_family = GSOCK_INET; - address->m_realfamily = PF_INET; - ((struct sockaddr_in *)address->m_addr)->sin_family = AF_INET; - ((struct sockaddr_in *)address->m_addr)->sin_addr.s_addr = INADDR_ANY; - - return GSOCK_NOERROR; -} - -GSocketError GAddress_INET_SetHostName(GAddress *address, const char *hostname) -{ - struct hostent *he; - struct in_addr *addr; - - assert(address != NULL); - - CHECK_ADDRESS(address, INET, GSOCK_INVADDR); - - addr = &(((struct sockaddr_in *)address->m_addr)->sin_addr); - - /* If it is a numeric host name, convert it now */ -#if defined(HAVE_INET_ATON) - if (inet_aton(hostname, addr) == 0) { -#elif defined(HAVE_INET_ADDR) - /* Fix from Guillermo Rodriguez Garcia */ - if ( (addr->s_addr = inet_addr(hostname)) == -1 ) { -#else - /* Use gethostbyname by default */ - if (1) { -#endif - struct in_addr *array_addr; - - /* It is a real name, we solve it */ - if ((he = gethostbyname(hostname)) == NULL) { - address->m_error = GSOCK_NOHOST; - return GSOCK_NOHOST; - } - array_addr = (struct in_addr *) *(he->h_addr_list); - addr->s_addr = array_addr[0].s_addr; - } - return GSOCK_NOERROR; -} - -GSocketError GAddress_INET_SetHostAddress(GAddress *address, - unsigned long hostaddr) -{ - struct in_addr *addr; - - assert(address != NULL); - - CHECK_ADDRESS(address, INET, GSOCK_INVADDR); - - addr = &(((struct sockaddr_in *)address->m_addr)->sin_addr); - addr->s_addr = hostaddr; - - return GSOCK_NOERROR; -} - -GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port, - const char *protocol) -{ - struct servent *se; - struct sockaddr_in *addr; - - assert(address != NULL); - CHECK_ADDRESS(address, INET, GSOCK_INVADDR); - - if (!port) { - address->m_error = GSOCK_INVPORT; - return GSOCK_INVPORT; - } - - se = getservbyname(port, protocol); - if (!se) { - if (isdigit(port[0])) { - int port_int; - - port_int = atoi(port); - addr = (struct sockaddr_in *)address->m_addr; - addr->sin_port = htons(port_int); - return GSOCK_NOERROR; - } - - address->m_error = GSOCK_INVPORT; - return GSOCK_INVPORT; - } - - addr = (struct sockaddr_in *)address->m_addr; - addr->sin_port = se->s_port; - - return GSOCK_NOERROR; -} - -GSocketError GAddress_INET_SetPort(GAddress *address, unsigned short port) -{ - struct sockaddr_in *addr; - - assert(address != NULL); - CHECK_ADDRESS(address, INET, GSOCK_INVADDR); - - addr = (struct sockaddr_in *)address->m_addr; - addr->sin_port = htons(port); - - return GSOCK_NOERROR; -} - -GSocketError GAddress_INET_GetHostName(GAddress *address, char *hostname, size_t sbuf) -{ - struct hostent *he; - char *addr_buf; - struct sockaddr_in *addr; - - assert(address != NULL); - CHECK_ADDRESS(address, INET, GSOCK_INVADDR); - - addr = (struct sockaddr_in *)address->m_addr; - addr_buf = (char *)&(addr->sin_addr); - - he = gethostbyaddr(addr_buf, sizeof(addr->sin_addr), AF_INET); - if (he == NULL) { - address->m_error = GSOCK_NOHOST; - return GSOCK_NOHOST; - } - - strncpy(hostname, he->h_name, sbuf); - - return GSOCK_NOERROR; -} - -unsigned long GAddress_INET_GetHostAddress(GAddress *address) -{ - struct sockaddr_in *addr; - - assert(address != NULL); - CHECK_ADDRESS(address, INET, 0); - - addr = (struct sockaddr_in *)address->m_addr; - - return addr->sin_addr.s_addr; -} - -unsigned short GAddress_INET_GetPort(GAddress *address) -{ - struct sockaddr_in *addr; - - assert(address != NULL); - CHECK_ADDRESS(address, INET, 0); - - addr = (struct sockaddr_in *)address->m_addr; - return ntohs(addr->sin_port); -} - -/* - * ------------------------------------------------------------------------- - * Unix address family - * ------------------------------------------------------------------------- - */ - -GSocketError _GAddress_Init_UNIX(GAddress *address) -{ - address->m_addr = (struct sockaddr *)malloc(address->m_len); - if (address->m_addr == NULL) { - address->m_error = GSOCK_MEMERR; - return GSOCK_MEMERR; - } - - address->m_len = sizeof(struct sockaddr_un); - address->m_family = GSOCK_UNIX; - address->m_realfamily = PF_UNIX; - ((struct sockaddr_un *)address->m_addr)->sun_family = AF_UNIX; - ((struct sockaddr_un *)address->m_addr)->sun_path[0] = 0; - - return TRUE; -} - -GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path) -{ - struct sockaddr_un *addr; - - assert(address != NULL); - - CHECK_ADDRESS(address, UNIX, GSOCK_INVADDR); - - addr = ((struct sockaddr_un *)address->m_addr); - memcpy(addr->sun_path, path, strlen(path)); - - return GSOCK_NOERROR; -} - -GSocketError GAddress_UNIX_GetPath(GAddress *address, char *path, size_t sbuf) -{ - struct sockaddr_un *addr; - - assert(address != NULL); - CHECK_ADDRESS(address, UNIX, GSOCK_INVADDR); - - addr = (struct sockaddr_un *)address->m_addr; - - strncpy(path, addr->sun_path, sbuf); - - return GSOCK_NOERROR; -} - -#endif - /* wxUSE_SOCKETS */ diff --git a/src/unix/gsockunx.h b/src/unix/gsockunx.h deleted file mode 100644 index 79321a2374..0000000000 --- a/src/unix/gsockunx.h +++ /dev/null @@ -1,86 +0,0 @@ -/* ------------------------------------------------------------------------- - * Project: GSocket (Generic Socket) for WX - * Name: gsockunx.h - * Purpose: GSocket Unix header - * CVSID: $Id$ - * ------------------------------------------------------------------------- - */ -#ifndef __GSOCK_UNX_H -#define __GSOCK_UNX_H - -#include "wx/setup.h" - -#if wxUSE_SOCKETS - -#include "wx/gsocket.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -/* Definition of GSocket */ -struct _GSocket { - int m_fd; - GAddress *m_local, *m_peer; - GSocketError m_error; - - bool m_non_blocking, m_server, m_stream, m_oriented; - unsigned long m_timeout; - - /* Callbacks */ - GSocketCallback m_cbacks[GSOCK_MAX_EVENT]; - char *m_data[GSOCK_MAX_EVENT]; - - /* IO calls associated */ - bool m_iocalls[GSOCK_MAX_EVENT]; - - char *m_gui_dependent; -}; - -/* Definition of GAddress */ -struct _GAddress { - struct sockaddr *m_addr; - size_t m_len; - - GAddressType m_family; - int m_realfamily; - - GSocketError m_error; -}; - -void _GSocket_Enable(GSocket *socket, GSocketEvent event); -void _GSocket_Disable(GSocket *socket, GSocketEvent event); -int _GSocket_Recv_Stream(GSocket *socket, char *buffer, int size); -int _GSocket_Recv_Dgram(GSocket *socket, char *buffer, int size); -int _GSocket_Send_Stream(GSocket *socket, const char *buffer, int size); -int _GSocket_Send_Dgram(GSocket *socket, const char *buffer, int size); -void _GSocket_Install_Callback(GSocket *socket, GSocketEvent count); -void _GSocket_Uninstall_Callback(GSocket *socket, GSocketEvent count); -void _GSocket_Detected_Read(GSocket *socket); -void _GSocket_Detected_Write(GSocket *socket); -void _GSocket_GUI_Init(GSocket *socket); -void _GSocket_GUI_Destroy(GSocket *socket); - -/* Translaters returns false when memory is exhausted */ -GSocketError _GAddress_translate_from(GAddress *address, - struct sockaddr *addr, int len); -GSocketError _GAddress_translate_to(GAddress *address, - struct sockaddr **addr, int *len); - -/* Initialisers returns FALSE when an error happened in the initialisation */ - -/* Internet address family */ -GSocketError _GAddress_Init_INET(GAddress *address); -/* Local address family */ -GSocketError _GAddress_Init_UNIX(GAddress *address); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - /* wxUSE_SOCKETS */ - -#endif - /* __GSOCK_UNX_H */ diff --git a/src/unix/threadpsx.cpp b/src/unix/threadpsx.cpp deleted file mode 100644 index 130ea38598..0000000000 --- a/src/unix/threadpsx.cpp +++ /dev/null @@ -1,888 +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() -{ - if (IsPaused()) - Resume(); - - 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(); - } - //GL: As we must auto-destroy, the destruction must happen here. - delete this; - - 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; - } - //GL: As we must auto-destroy, the destruction must happen here (2). - delete this; - - 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 e9510f7235..0000000000 --- a/src/unix/utilsunx.cpp +++ /dev/null @@ -1,571 +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__) || defined(__EMX__) - extern "C" - { - #ifdef __SUN__ - int usleep(unsigned int usec); - #else // !Sun - #ifdef __EMX - /* I copied this from the XFree86 diffs. AV. */ - #define INCL_DOSPROCESS - #include - void usleep(unsigned long delay) - { - DosSleep(delay ? (delay/1000l) : 1l); - } - #else - void usleep(unsigned long usec); - #endif - #endif // Sun/EMX/Something else - }; -#define HAVE_USLEEP 1 -#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 = wxConvCurrent->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 -#if 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(wxConvCurrent->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 ? wxConvCurrent->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, wxConvCurrent->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(wxConvCurrent->cWX2MB(buf)); - if ( !host ) - { - wxLogSysError(_("Cannot get the official hostname")); - - ok = FALSE; - } - else - { - // the canonical name - wxStrncpy(buf, wxConvCurrent->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, wxConvCurrent->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, wxConvCurrent->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 0bb2609c9c..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 += "

    "; - 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 326b7c7867..0000000000 Binary files a/user/wxTest/horse.png and /dev/null differ 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", -"
    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/Makefile.in b/utils/Makefile.in deleted file mode 100644 index 332c37b60a..0000000000 --- a/utils/Makefile.in +++ /dev/null @@ -1,10 +0,0 @@ -# -# Makefile : Builds wxWindows utils for Unix. -# - -all: - cd wxMMedia2; make - -clean: - cd wxMMedia2; make clean - diff --git a/utils/dialoged/docs/alignb.bmp b/utils/dialoged/docs/alignb.bmp deleted file mode 100644 index 6cc2e1dee4..0000000000 Binary files a/utils/dialoged/docs/alignb.bmp and /dev/null differ 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 7aa46845c9..0000000000 Binary files a/utils/dialoged/docs/alignb.gif and /dev/null differ diff --git a/utils/dialoged/docs/alignl.bmp b/utils/dialoged/docs/alignl.bmp deleted file mode 100644 index 30471101b1..0000000000 Binary files a/utils/dialoged/docs/alignl.bmp and /dev/null differ diff --git a/utils/dialoged/docs/alignl.eps b/utils/dialoged/docs/alignl.eps deleted file mode 100644 index 41b75ede45..0000000000 --- a/utils/dialoged/docs/alignl.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: alignl.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 -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 650ce39749..0000000000 Binary files a/utils/dialoged/docs/alignl.gif and /dev/null differ diff --git a/utils/dialoged/docs/alignr.bmp b/utils/dialoged/docs/alignr.bmp deleted file mode 100644 index 14a2f85241..0000000000 Binary files a/utils/dialoged/docs/alignr.bmp and /dev/null differ 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 19f9a9207e..0000000000 Binary files a/utils/dialoged/docs/alignr.gif and /dev/null differ diff --git a/utils/dialoged/docs/alignt.bmp b/utils/dialoged/docs/alignt.bmp deleted file mode 100644 index 4505cbab56..0000000000 Binary files a/utils/dialoged/docs/alignt.bmp and /dev/null differ 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 633f980bed..0000000000 Binary files a/utils/dialoged/docs/alignt.gif and /dev/null differ diff --git a/utils/dialoged/docs/arrow.bmp b/utils/dialoged/docs/arrow.bmp deleted file mode 100644 index a6b99c8991..0000000000 Binary files a/utils/dialoged/docs/arrow.bmp and /dev/null differ 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 aa2c4605cb..0000000000 Binary files a/utils/dialoged/docs/arrow.gif and /dev/null differ diff --git a/utils/dialoged/docs/back.gif b/utils/dialoged/docs/back.gif deleted file mode 100644 index 8a61076d3b..0000000000 Binary files a/utils/dialoged/docs/back.gif and /dev/null differ diff --git a/utils/dialoged/docs/bmpbuttn.bmp b/utils/dialoged/docs/bmpbuttn.bmp deleted file mode 100644 index 270cf634fe..0000000000 Binary files a/utils/dialoged/docs/bmpbuttn.bmp and /dev/null differ 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 220bddc623..0000000000 Binary files a/utils/dialoged/docs/bmpbuttn.gif and /dev/null differ 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 cf1e148734..0000000000 Binary files a/utils/dialoged/docs/books.bmp and /dev/null differ diff --git a/utils/dialoged/docs/books.gif b/utils/dialoged/docs/books.gif deleted file mode 100644 index a9a1e46844..0000000000 Binary files a/utils/dialoged/docs/books.gif and /dev/null differ 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 aad8fc793e..0000000000 Binary files a/utils/dialoged/docs/bullet.bmp and /dev/null differ diff --git a/utils/dialoged/docs/button.bmp b/utils/dialoged/docs/button.bmp deleted file mode 100644 index e7e95d73f0..0000000000 Binary files a/utils/dialoged/docs/button.bmp and /dev/null differ diff --git a/utils/dialoged/docs/button.eps b/utils/dialoged/docs/button.eps deleted file mode 100644 index f9438398bd..0000000000 --- a/utils/dialoged/docs/button.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: button.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 -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 cbbb8d485a..0000000000 Binary files a/utils/dialoged/docs/button.gif and /dev/null differ 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 718f0a9f02..0000000000 Binary files a/utils/dialoged/docs/check.bmp and /dev/null differ 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 d10100c03e..0000000000 Binary files a/utils/dialoged/docs/check.gif and /dev/null differ diff --git a/utils/dialoged/docs/choice.bmp b/utils/dialoged/docs/choice.bmp deleted file mode 100644 index 2f56ee55b0..0000000000 Binary files a/utils/dialoged/docs/choice.bmp and /dev/null differ 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 a05ff4dee7..0000000000 Binary files a/utils/dialoged/docs/choice.gif and /dev/null differ 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 3dddfa3dd5..0000000000 Binary files a/utils/dialoged/docs/contents.gif and /dev/null differ diff --git a/utils/dialoged/docs/copysize.bmp b/utils/dialoged/docs/copysize.bmp deleted file mode 100644 index 36060ad72b..0000000000 Binary files a/utils/dialoged/docs/copysize.bmp and /dev/null differ 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 72b6f08a39..0000000000 Binary files a/utils/dialoged/docs/copysize.gif and /dev/null differ diff --git a/utils/dialoged/docs/dialog.bmp b/utils/dialoged/docs/dialog.bmp deleted file mode 100644 index 889d6ad216..0000000000 Binary files a/utils/dialoged/docs/dialog.bmp and /dev/null differ 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 ae430e3345..0000000000 Binary files a/utils/dialoged/docs/dialog.gif and /dev/null differ 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 9c81e8c92f..0000000000 Binary files a/utils/dialoged/docs/forward.gif and /dev/null differ diff --git a/utils/dialoged/docs/gauge.bmp b/utils/dialoged/docs/gauge.bmp deleted file mode 100644 index fbb6259915..0000000000 Binary files a/utils/dialoged/docs/gauge.bmp and /dev/null differ 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 af79fe1aef..0000000000 Binary files a/utils/dialoged/docs/gauge.gif and /dev/null differ diff --git a/utils/dialoged/docs/group.bmp b/utils/dialoged/docs/group.bmp deleted file mode 100644 index b202efd768..0000000000 Binary files a/utils/dialoged/docs/group.bmp and /dev/null differ 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 683efa8ce7..0000000000 Binary files a/utils/dialoged/docs/group.gif and /dev/null differ diff --git a/utils/dialoged/docs/help.bmp b/utils/dialoged/docs/help.bmp deleted file mode 100644 index 54d5aa4b56..0000000000 Binary files a/utils/dialoged/docs/help.bmp and /dev/null differ 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 ef1825ee19..0000000000 Binary files a/utils/dialoged/docs/help.gif and /dev/null differ diff --git a/utils/dialoged/docs/horiz.bmp b/utils/dialoged/docs/horiz.bmp deleted file mode 100644 index 58af34a727..0000000000 Binary files a/utils/dialoged/docs/horiz.bmp and /dev/null differ 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 12025ea84e..0000000000 Binary files a/utils/dialoged/docs/horiz.gif and /dev/null differ diff --git a/utils/dialoged/docs/listbox.bmp b/utils/dialoged/docs/listbox.bmp deleted file mode 100644 index 07091ea9e3..0000000000 Binary files a/utils/dialoged/docs/listbox.bmp and /dev/null differ 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 04b4b2cc5b..0000000000 Binary files a/utils/dialoged/docs/listbox.gif and /dev/null differ diff --git a/utils/dialoged/docs/load.bmp b/utils/dialoged/docs/load.bmp deleted file mode 100644 index 1c38e97b59..0000000000 Binary files a/utils/dialoged/docs/load.bmp and /dev/null differ 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 1ae4cecc50..0000000000 Binary files a/utils/dialoged/docs/load.gif and /dev/null differ diff --git a/utils/dialoged/docs/message.bmp b/utils/dialoged/docs/message.bmp deleted file mode 100644 index 8861e7c3e1..0000000000 Binary files a/utils/dialoged/docs/message.bmp and /dev/null differ 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 54975c536b..0000000000 Binary files a/utils/dialoged/docs/message.gif and /dev/null differ diff --git a/utils/dialoged/docs/mtext.bmp b/utils/dialoged/docs/mtext.bmp deleted file mode 100644 index a7d0854737..0000000000 Binary files a/utils/dialoged/docs/mtext.bmp and /dev/null differ 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 c1be400816..0000000000 Binary files a/utils/dialoged/docs/mtext.gif and /dev/null differ diff --git a/utils/dialoged/docs/new.bmp b/utils/dialoged/docs/new.bmp deleted file mode 100644 index d66feb2384..0000000000 Binary files a/utils/dialoged/docs/new.bmp and /dev/null differ 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 3b1fd4c6db..0000000000 Binary files a/utils/dialoged/docs/new.gif and /dev/null differ diff --git a/utils/dialoged/docs/notes.txt b/utils/dialoged/docs/notes.txt deleted file mode 100644 index 8ea471d280..0000000000 --- a/utils/dialoged/docs/notes.txt +++ /dev/null @@ -1,16 +0,0 @@ - -To do ------ - -Nov 26th 1995 - - - Add wxPropertyView::OnPropertyChange(wxProperty *property) member - so that when a property is changed, this can be immediately - reflected in the object. Derive a new wxPropertyListView - in dialoged. - - - Make the property list a modeless dialog or (preferably) resizeable - frame. Allow many property lists to be up at once. Associate - real window, resource and property list. When window is deleted, - delete property list. - \ No newline at end of file diff --git a/utils/dialoged/docs/open.bmp b/utils/dialoged/docs/open.bmp deleted file mode 100644 index 9d90ab6fd0..0000000000 Binary files a/utils/dialoged/docs/open.bmp and /dev/null differ 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 9f2e6503db..0000000000 Binary files a/utils/dialoged/docs/open.gif and /dev/null differ diff --git a/utils/dialoged/docs/picture.bmp b/utils/dialoged/docs/picture.bmp deleted file mode 100644 index 00603f0280..0000000000 Binary files a/utils/dialoged/docs/picture.bmp and /dev/null differ 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 05b19aef45..0000000000 Binary files a/utils/dialoged/docs/picture.gif and /dev/null differ diff --git a/utils/dialoged/docs/radio.bmp b/utils/dialoged/docs/radio.bmp deleted file mode 100644 index 9a8e93b554..0000000000 Binary files a/utils/dialoged/docs/radio.bmp and /dev/null differ diff --git a/utils/dialoged/docs/radio.eps b/utils/dialoged/docs/radio.eps deleted file mode 100644 index 8e8dcba556..0000000000 --- a/utils/dialoged/docs/radio.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: radio.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 -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 90ed06ce31..0000000000 Binary files a/utils/dialoged/docs/radio.gif and /dev/null differ diff --git a/utils/dialoged/docs/readme.txt b/utils/dialoged/docs/readme.txt deleted file mode 100644 index f54a18a687..0000000000 --- a/utils/dialoged/docs/readme.txt +++ /dev/null @@ -1,39 +0,0 @@ - -Prototype dialog editor and property sheet classes --------------------------------------------------- - -Julian Smart, October 4th 1995 ------------------------------- - -Here's what I've done so far on a lightweight dialog editor. The 16-bit -Windows binaries in the bin directory are dialoged.exe (the dialog -editor) and test.exe (a small property sheet demo). - -Main points: - - - You can create a new dialog box and add items to it. - - You can move items around, and right-click - to edit a few properties (very incomplete). - - Can't write out .wxr files yet. Loading code is in - wxWindows, but writing code is absent: should be put - into wxWindows. - - No attempt at resources other than dialogs yet. - Should have menu editor too. - - Should *somehow* have a protocol to allow - existing resources e.g. in wxCLIPS/wxPython - to be edited in situ. - This should be made simpler by the existance of - the plug-in event handler mechanism, which means you - can temporarily handle all the events yourself. - - See dialoged.cc: the main program is tiny because - it's meant to be embeddable. - - The wxPropertySheet (set of) classes are very - general and should be put into wxWin and documented. - -Comments, chivvying and help all appreciated. Maybe if -I documented what I had, it would be easier for others -to do some work on it. - -Regards, - -Julian \ No newline at end of file diff --git a/utils/dialoged/docs/save.bmp b/utils/dialoged/docs/save.bmp deleted file mode 100644 index 545671fa17..0000000000 Binary files a/utils/dialoged/docs/save.bmp and /dev/null differ 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 3a031950e5..0000000000 Binary files a/utils/dialoged/docs/save.gif and /dev/null differ diff --git a/utils/dialoged/docs/scroll.bmp b/utils/dialoged/docs/scroll.bmp deleted file mode 100644 index 08f1a28f5c..0000000000 Binary files a/utils/dialoged/docs/scroll.bmp and /dev/null differ 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 fca1d06ccb..0000000000 Binary files a/utils/dialoged/docs/scroll.gif and /dev/null differ diff --git a/utils/dialoged/docs/slider.bmp b/utils/dialoged/docs/slider.bmp deleted file mode 100644 index 884166a2fc..0000000000 Binary files a/utils/dialoged/docs/slider.bmp and /dev/null differ 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 701aa1704f..0000000000 Binary files a/utils/dialoged/docs/slider.gif and /dev/null differ diff --git a/utils/dialoged/docs/tech.tex b/utils/dialoged/docs/tech.tex deleted file mode 100644 index 978d35527f..0000000000 --- a/utils/dialoged/docs/tech.tex +++ /dev/null @@ -1,97 +0,0 @@ -\chapter{Technical notes}\label{technotes} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{Overview} - -The dialog editor is written as a library, to be invoked by other programs. As you can see, -dialoged.cc is a very small program which invokes the main window via a wxResourceManager -object. The wxResourceManager object controls the user interface and other aspects -of the dialog editor. - -There is wxResourceTable object in wxResourceManager: this contains a list of -all the wxItemResources currently being edited. wxResourceTable and wxItemResource -are classes already in wxWindows, defined in wx\_res.h. In order to edit a new -dialog box, the dialog is created, and the existing event handler is temporarily replaced -with a new one which defines editing functionality. This allows existing dialogs - even -instances of subclasses of wxDialogBox - to be edited, the application-specific functionality -being temporarily taken over by the dialog editor. - -In order to edit the properties of a dialog box or item, a property list editor is invoked. -This uses the property classes from utils/wxprop. In order to map between properties and the -actual window API, such as SetSize and GetSize, a `proxy' class called wxPropertyInfo -has been defined, with a subclass for each class of wxWindows window to be edited. -This class defines the main members SetProperty, GetProperty, GetPropertyNames, -which transform the normal API into `property' terms. - -Properties are mostly extracted directly from the window being edited. This is -in contrast with wxBuilder, where everything is stored in a set of parallel -data structures, and windows `properties' only only set. However, there -are exceptions to this rule in the dialog editor. There {\it is} in fact a set of -parallel objects, the wxItemResource objects which can be seen listed in -the main Dialog Editor window as a dialog is built up. These usually parallel -the properties in the windows, but occasionally this is not possible. For example, -all dialog boxes being edited must be modeless: or the user would not be -able to access other windows. However, the user must be able to specify that -when used in an application, that dialog box will be modal. In this case, -the value in the wxItemResource will not match that in the actual dialog box. - -There is a major problem with taking values directly from the windows: this -information sometimes does not match what went in. In Motif and XView, -size values returned are not the same as those given. This causes speedy -`degeneration' of window properties. Under Windows, properties are almost -always consistent. The other platforms will need to be catered for by -relying more on the wxItemResource objects, and not taking size -information directly from windows. - -\subsection{Dynamic setting versus recreation} - -The property editor scheme relies on being able to set window properties -dynamically: the user changes a value, and the window changes immediately -to reflect the new value. Unfortunately, not all properties can be -changed dynamically in wxWindows; for example, in Motif, the label position -must be given at panel item creation time, because the way the widgets -are laid out depend on the label position. The label position cannot then -be changed without deleting and recreating the item. - -Hence the dialog editor takes two approaches: where values are dynamically -settable, this is done. Where they are not, the item is deleted and recreated, -after all existing values have been transferred into the parallel wxItemResource -object. Therefore in wx\_rprop.cc, some of the SetProperty implementations have one or -more call to RecreateWindowFromResource. - -\section{Resource associations} - -wxItemResource objects (containing information about panel items and dialogs) are not visual -objects. However, they need to be associated with the visual objects when the latter -are created for editing purposes. Therefore there is a hash table called resourceAssociations -in wxResourceManager. When a window is created, the resource pointer and window pointer -are associated via the hash table. When the window is deleted, the association is removed. -Children of a dialog are associated with child wxItemResource objects by calling -wxFindWindowByName with the wxItemResource name. - -\section{What needs to be done for XView and Motif} - -The following areas need attention before Dialog Editor will run properly on these platforms. - -\begin{enumerate}\itemsep=0pt -\item For XView, the property editor needs to be made a modeless, not modal dialog, which has -implications for flow of control in wxPropertyInfo::Edit. -\item Properties which do not return the same value they are set to, such as width and height, -need to be stored directly in wxItemResource and {\it not} transferred from window to wxItemResource -in wxWindowPropertyInfo::InstantiateResource. -\item Properties which cannot be dynamically set in XView or Motif need to have the item recreated (e.g. labelOrientation). -\end{enumerate} - -\section{Files} - -The Dialog Editor source files are as follows: - -\begin{itemize}\itemsep=0pt -\item wx\_rprop.h, wx\_rprop.cc: handle property setting and getting through the `proxy' wxPropertyInfo -classes and using the property list editor from utils/wxprop. -\item wx\_resed.h, wx\_resed.cc: the main implementation, in particular the wxResourceManager class. -\item wx\_reswr.cc: resource writing code. -\item wx\_repal.cc: the dialog editor palette implementation. -\item dialoged.h, dialoged.cc: small `stub' for invoking the user interface via a wxResourceManager object. -\end{itemize} diff --git a/utils/dialoged/docs/tex2rtf.ini b/utils/dialoged/docs/tex2rtf.ini deleted file mode 100644 index 8d897c9c63..0000000000 --- a/utils/dialoged/docs/tex2rtf.ini +++ /dev/null @@ -1,22 +0,0 @@ -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -contentsDepth = 2 -listItemIndent=40 -generateHPJ = no -htmlBrowseButtons = bitmap -winHelpVersion = 3 -winHelpContents = yes -winHelpTitle = "Dialog Editor Manual" -truncateFilenames = yes -\overview [2] { \sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}} -\htmlonly{\image{}{books.gif}}\helpref{#1}{#2} -\sethotspotcolour{on}\sethotspotunderline{on}} -\icon [2] {\xlpignore{\image{2cm;0cm}{#1}}\xlponly{#2}} - diff --git a/utils/dialoged/docs/text.bmp b/utils/dialoged/docs/text.bmp deleted file mode 100644 index be169c6633..0000000000 Binary files a/utils/dialoged/docs/text.bmp and /dev/null differ 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 58b51dd161..0000000000 Binary files a/utils/dialoged/docs/text.gif and /dev/null differ diff --git a/utils/dialoged/docs/toback.bmp b/utils/dialoged/docs/toback.bmp deleted file mode 100644 index d2e5efffce..0000000000 Binary files a/utils/dialoged/docs/toback.bmp and /dev/null differ diff --git a/utils/dialoged/docs/toback.eps b/utils/dialoged/docs/toback.eps deleted file mode 100644 index ac0382dee7..0000000000 --- a/utils/dialoged/docs/toback.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: toback.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 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 82a4ad88ea..0000000000 Binary files a/utils/dialoged/docs/toback.gif and /dev/null differ diff --git a/utils/dialoged/docs/tofront.bmp b/utils/dialoged/docs/tofront.bmp deleted file mode 100644 index 5b17cc44c8..0000000000 Binary files a/utils/dialoged/docs/tofront.bmp and /dev/null differ diff --git a/utils/dialoged/docs/tofront.eps b/utils/dialoged/docs/tofront.eps deleted file mode 100644 index 89a0cfebce..0000000000 --- a/utils/dialoged/docs/tofront.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: tofront.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 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 ff09220da3..0000000000 Binary files a/utils/dialoged/docs/tofront.gif and /dev/null differ diff --git a/utils/dialoged/docs/up.gif b/utils/dialoged/docs/up.gif deleted file mode 100644 index 316d0d2a14..0000000000 Binary files a/utils/dialoged/docs/up.gif and /dev/null differ diff --git a/utils/dialoged/docs/vert.bmp b/utils/dialoged/docs/vert.bmp deleted file mode 100644 index dfd7b5cb53..0000000000 Binary files a/utils/dialoged/docs/vert.bmp and /dev/null differ 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 7992f4c40a..0000000000 Binary files a/utils/dialoged/docs/vert.gif and /dev/null differ diff --git a/utils/dialoged/src/.cvsignore b/utils/dialoged/src/.cvsignore deleted file mode 100644 index 7437ad4782..0000000000 --- a/utils/dialoged/src/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -Linux -linux-gnu -linux -Test.h -Test.wxr -dialog.h -dialog.wxr \ No newline at end of file diff --git a/utils/dialoged/src/bitmaps/alignb.bmp b/utils/dialoged/src/bitmaps/alignb.bmp deleted file mode 100644 index 6cc2e1dee4..0000000000 Binary files a/utils/dialoged/src/bitmaps/alignb.bmp and /dev/null differ 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 30471101b1..0000000000 Binary files a/utils/dialoged/src/bitmaps/alignl.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/alignl.xbm b/utils/dialoged/src/bitmaps/alignl.xbm deleted file mode 100644 index 91e01e0150..0000000000 --- a/utils/dialoged/src/bitmaps/alignl.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define alignl_width 24 -#define alignl_height 24 -static char alignl_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc0, 0x0f, 0x00, 0x40, 0x08, 0x00, 0x40, 0x08, 0x00, 0x40, 0x08, 0x00, - 0xc0, 0x0f, 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/alignl.xpm b/utils/dialoged/src/bitmaps/alignl.xpm deleted file mode 100644 index 6d7def92fb..0000000000 --- a/utils/dialoged/src/bitmaps/alignl.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignl_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/alignr.bmp b/utils/dialoged/src/bitmaps/alignr.bmp deleted file mode 100644 index 14a2f85241..0000000000 Binary files a/utils/dialoged/src/bitmaps/alignr.bmp and /dev/null differ 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 4505cbab56..0000000000 Binary files a/utils/dialoged/src/bitmaps/alignt.bmp and /dev/null differ 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 d406ceb64f..0000000000 Binary files a/utils/dialoged/src/bitmaps/arrow.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/arrow.ico b/utils/dialoged/src/bitmaps/arrow.ico deleted file mode 100644 index 09ec640155..0000000000 Binary files a/utils/dialoged/src/bitmaps/arrow.ico and /dev/null differ 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 36278f425a..0000000000 Binary files a/utils/dialoged/src/bitmaps/bmpbuttn.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/bmpbuttn.ico b/utils/dialoged/src/bitmaps/bmpbuttn.ico deleted file mode 100644 index ef54c4c501..0000000000 Binary files a/utils/dialoged/src/bitmaps/bmpbuttn.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/bmpbuttn.xbm b/utils/dialoged/src/bitmaps/bmpbuttn.xbm deleted file mode 100644 index 3aea3e793b..0000000000 --- a/utils/dialoged/src/bitmaps/bmpbuttn.xbm +++ /dev/null @@ -1,11 +0,0 @@ -#define bmpbuttn_width 28 -#define bmpbuttn_height 28 -static char bmpbuttn_bits[] = { - 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, - 0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00, - 0x00,0xf0,0x80,0xff,0x0f,0xf0,0x40,0x00,0x10,0xf0,0x40,0x84,0x31,0xf0,0x40, - 0x44,0x32,0xf0,0x40,0x45,0x32,0xf0,0x40,0x8d,0x31,0xf0,0x40,0x09,0x30,0xf0, - 0x40,0xfb,0x3f,0xf0,0x40,0x04,0x30,0xf0,0x40,0xc4,0x30,0xf0,0x80,0xff,0x3f, - 0xf0,0x00,0xff,0x1f,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00, - 0x00,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/bmpbuttn.xpm b/utils/dialoged/src/bitmaps/bmpbuttn.xpm deleted file mode 100644 index 669246ddad..0000000000 --- a/utils/dialoged/src/bitmaps/bmpbuttn.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * bmpbuttn_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 8 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #ff0000", -"# c #00ff00", -"$ c #ffff00", -"% c #0000ff", -"& c #ffffff", -/* pixels */ -" ", -" ", -" ", -"+++++++++++++++.", -"+@@.&&&&&&&&&&&.", -"+@@.&&&&&&&&&&&.", -"+@@.&&&&&&&&&&&.", -"+...............", -"+&&.&&&&&&&.%%%.", -"+&&.&&&&&&&.%%%.", -"+&&.........%%%.", -"+&&.$$$$.##.%%%.", -"+&&.$$$$.##.%%%.", -"+...............", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/button.bmp b/utils/dialoged/src/bitmaps/button.bmp deleted file mode 100644 index 14af485b29..0000000000 Binary files a/utils/dialoged/src/bitmaps/button.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/button.ico b/utils/dialoged/src/bitmaps/button.ico deleted file mode 100644 index 1f7253212a..0000000000 Binary files a/utils/dialoged/src/bitmaps/button.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/button.xbm b/utils/dialoged/src/bitmaps/button.xbm deleted file mode 100644 index 118f1661e8..0000000000 --- a/utils/dialoged/src/bitmaps/button.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define button_width 28 -#define button_height 28 -static char button_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, 0x80, 0xff, 0x0f, 0x00, - 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x30, 0x00, 0x40, 0x00, 0x30, 0x00, - 0x40, 0x00, 0x30, 0x00, 0x40, 0x00, 0x30, 0x00, 0x40, 0x00, 0x30, 0x00, - 0x40, 0x00, 0x30, 0x00, 0x40, 0x00, 0x30, 0x00, 0x40, 0x00, 0x30, 0x00, - 0x80, 0xff, 0x3f, 0x00, 0x00, 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, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/button.xpm b/utils/dialoged/src/bitmaps/button.xpm deleted file mode 100644 index 40ad7e29d0..0000000000 --- a/utils/dialoged/src/bitmaps/button.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char * button_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 4 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -/* pixels */ -" ", -" ", -" ", -"+++++++++++++++.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+@@@@@@@@@@@@@@.", -"+...............", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/buttonsm.ico b/utils/dialoged/src/bitmaps/buttonsm.ico deleted file mode 100644 index 69d4aaf12f..0000000000 Binary files a/utils/dialoged/src/bitmaps/buttonsm.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/buttonsm.xpm b/utils/dialoged/src/bitmaps/buttonsm.xpm deleted file mode 100644 index 818fb50a73..0000000000 --- a/utils/dialoged/src/bitmaps/buttonsm.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char * buttonsm_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 4 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -/* pixels */ -" ", -" ", -" ", -" ", -" ", -" ++++++++++++ ", -" +@@@@@@@@@@. ", -" +@@@@@@@@@@. ", -" +@@@@@@@@@@. ", -" +........... ", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/canvas.xbm b/utils/dialoged/src/bitmaps/canvas.xbm deleted file mode 100644 index 0dddd66253..0000000000 --- a/utils/dialoged/src/bitmaps/canvas.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define canvas_width 28 -#define canvas_height 28 -static char canvas_bits[] = { - 0x01, 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/check.bmp b/utils/dialoged/src/bitmaps/check.bmp deleted file mode 100644 index 6d0f9cb77e..0000000000 Binary files a/utils/dialoged/src/bitmaps/check.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/check.xbm b/utils/dialoged/src/bitmaps/check.xbm deleted file mode 100644 index 0f7bbb513c..0000000000 --- a/utils/dialoged/src/bitmaps/check.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define check_width 28 -#define check_height 28 -static char check_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, 0x80, 0xff, 0x0f, 0x00, 0x80, 0x01, 0x0c, 0x00, - 0x80, 0x02, 0x0a, 0x00, 0x80, 0x04, 0x09, 0x00, 0x80, 0x88, 0x08, 0x00, - 0x80, 0x50, 0x08, 0x00, 0x80, 0x20, 0x08, 0x00, 0x80, 0x50, 0x08, 0x00, - 0x80, 0x88, 0x08, 0x00, 0x80, 0x04, 0x09, 0x00, 0x80, 0x02, 0x0a, 0x00, - 0x80, 0x01, 0x0c, 0x00, 0x80, 0xff, 0x0f, 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/checkbox.ico b/utils/dialoged/src/bitmaps/checkbox.ico deleted file mode 100644 index ce62251232..0000000000 Binary files a/utils/dialoged/src/bitmaps/checkbox.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/checkbox.xpm b/utils/dialoged/src/bitmaps/checkbox.xpm deleted file mode 100644 index 5814e842ee..0000000000 --- a/utils/dialoged/src/bitmaps/checkbox.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * checkbox_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/choice.bmp b/utils/dialoged/src/bitmaps/choice.bmp deleted file mode 100644 index 4562a12ee2..0000000000 Binary files a/utils/dialoged/src/bitmaps/choice.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/choice.ico b/utils/dialoged/src/bitmaps/choice.ico deleted file mode 100644 index 3a1f98d329..0000000000 Binary files a/utils/dialoged/src/bitmaps/choice.ico and /dev/null differ 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 ff2941bb29..0000000000 Binary files a/utils/dialoged/src/bitmaps/combobox.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/combobox.xpm b/utils/dialoged/src/bitmaps/combobox.xpm deleted file mode 100644 index e0d2aa8a96..0000000000 --- a/utils/dialoged/src/bitmaps/combobox.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * combobox_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/copysize.bmp b/utils/dialoged/src/bitmaps/copysize.bmp deleted file mode 100644 index 36060ad72b..0000000000 Binary files a/utils/dialoged/src/bitmaps/copysize.bmp and /dev/null differ 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 079cb0dd58..0000000000 Binary files a/utils/dialoged/src/bitmaps/cross.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/dialog.bmp b/utils/dialoged/src/bitmaps/dialog.bmp deleted file mode 100644 index 889d6ad216..0000000000 Binary files a/utils/dialoged/src/bitmaps/dialog.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/dialog.ico b/utils/dialoged/src/bitmaps/dialog.ico deleted file mode 100644 index 6e8c9aab41..0000000000 Binary files a/utils/dialoged/src/bitmaps/dialog.ico and /dev/null differ 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 cec6bac64e..0000000000 Binary files a/utils/dialoged/src/bitmaps/dialoged.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/dialoged.xpm b/utils/dialoged/src/bitmaps/dialoged.xpm deleted file mode 100644 index 4b94e8e5ef..0000000000 --- a/utils/dialoged/src/bitmaps/dialoged.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char * dialoged_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 6 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #800000", -"@ c #c0c0c0", -"# c #808080", -"$ c #ffffff", -/* pixels */ -" .. ", -" .. ", -" @@@@@@@@@@@@@@@@@@@@@@@@@@@. ", -" @++++++++++++++++++++++++++. ", -" @++++++++++++++++++++++++++. ", -" @++++++++++++++++++++++++++. ", -" @##########################. ", -" @##########################. ", -" @#.............##@@@@@@@@.#. ", -" @#.$$$$$$$$$$$.##@@@@@@@@.#. ", -" @#.$$$$$$$$$$$.##@@@@@@@@.#. ", -" @#.............##.........#. ", -" @##########################. ", -" @##########################. ", -" @#.............##@@@@@@@@.#. ", -" @#.$$$$$$$$$$$.##@@@@@@@@.#. ", -" @#.............##@@@@@@@@.#. ", -" @#.$$$$$$$$$$$.##.........#. ", -" @#.............############. ", -" @#.$$$$$$$$$$$.############. ", -" @#.............############. ", -" @#.$$$$$$$$$$$.############. ", -" @#.............############. ", -" @##########################. ", -" @##########################. ", -" ............................ ", -" .. .. ", -" .. .. ", -" .. .. ", -" .. .. ", -" .. .. ", -" .. .. "}; diff --git a/utils/dialoged/src/bitmaps/folder1.ico b/utils/dialoged/src/bitmaps/folder1.ico deleted file mode 100644 index ed3fb3863f..0000000000 Binary files a/utils/dialoged/src/bitmaps/folder1.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/folder1.xpm b/utils/dialoged/src/bitmaps/folder1.xpm deleted file mode 100644 index 03f6f03555..0000000000 --- a/utils/dialoged/src/bitmaps/folder1.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * folder1_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/folder2.ico b/utils/dialoged/src/bitmaps/folder2.ico deleted file mode 100644 index 4ba582a2a0..0000000000 Binary files a/utils/dialoged/src/bitmaps/folder2.ico and /dev/null differ 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 7803dd76c1..0000000000 Binary files a/utils/dialoged/src/bitmaps/gauge.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/gauge.ico b/utils/dialoged/src/bitmaps/gauge.ico deleted file mode 100644 index d369e41520..0000000000 Binary files a/utils/dialoged/src/bitmaps/gauge.ico and /dev/null differ 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 387a988b69..0000000000 Binary files a/utils/dialoged/src/bitmaps/group.bmp and /dev/null differ 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 54d5aa4b56..0000000000 Binary files a/utils/dialoged/src/bitmaps/help.bmp and /dev/null differ 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 58af34a727..0000000000 Binary files a/utils/dialoged/src/bitmaps/horiz.bmp and /dev/null differ 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 4d5fb34779..0000000000 Binary files a/utils/dialoged/src/bitmaps/listbox.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/listbox.ico b/utils/dialoged/src/bitmaps/listbox.ico deleted file mode 100644 index 5dc9ac1667..0000000000 Binary files a/utils/dialoged/src/bitmaps/listbox.ico and /dev/null differ 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 1c38e97b59..0000000000 Binary files a/utils/dialoged/src/bitmaps/load.bmp and /dev/null differ 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 fb682e89e6..0000000000 Binary files a/utils/dialoged/src/bitmaps/message.bmp and /dev/null differ 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 5ab765b69a..0000000000 Binary files a/utils/dialoged/src/bitmaps/mtext.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/mtext.xbm b/utils/dialoged/src/bitmaps/mtext.xbm deleted file mode 100644 index e68cbd3841..0000000000 --- a/utils/dialoged/src/bitmaps/mtext.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define mtext_width 28 -#define mtext_height 28 -static char mtext_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, 0x10, 0x90, 0x00, 0x10, 0x13, 0x90, 0x00, - 0x10, 0xf2, 0xf0, 0x00, 0x90, 0x93, 0xf0, 0x00, 0x90, 0x92, 0xf0, 0x00, - 0x90, 0xfb, 0xf0, 0x00, 0x10, 0x00, 0xf0, 0x00, 0x10, 0x80, 0xf0, 0x00, - 0x10, 0x80, 0xf0, 0x00, 0x90, 0xf3, 0xf0, 0x00, 0x90, 0x90, 0xf0, 0x00, - 0x90, 0x90, 0xf0, 0x00, 0x90, 0xf3, 0x91, 0x00, 0x10, 0x00, 0x90, 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/new.bmp b/utils/dialoged/src/bitmaps/new.bmp deleted file mode 100644 index d66feb2384..0000000000 Binary files a/utils/dialoged/src/bitmaps/new.bmp and /dev/null differ 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 9d90ab6fd0..0000000000 Binary files a/utils/dialoged/src/bitmaps/open.bmp and /dev/null differ 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 60dde983ad..0000000000 Binary files a/utils/dialoged/src/bitmaps/picture.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/picture.xbm b/utils/dialoged/src/bitmaps/picture.xbm deleted file mode 100644 index f9c8faaf3a..0000000000 --- a/utils/dialoged/src/bitmaps/picture.xbm +++ /dev/null @@ -1,11 +0,0 @@ -#define picture_width 28 -#define picture_height 28 -static char picture_bits[] = { - 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, - 0xf0,0x00,0x00,0x00,0xf0,0xf0,0xff,0x7f,0xf0,0x10,0x00,0x40,0xf0,0x10,0x02, - 0x47,0xf0,0x10,0x85,0x48,0xf0,0x90,0x85,0x48,0xf0,0x50,0x85,0x48,0xf0,0x50, - 0x0d,0x47,0xf0,0x50,0x15,0x40,0xf0,0x90,0x14,0x40,0xf0,0xf0,0xf4,0x7f,0xf0, - 0x10,0x09,0x40,0xf0,0x10,0x65,0x46,0xf0,0x10,0x95,0x40,0xf0,0x90,0xf7,0x59, - 0xf0,0xd0,0x01,0x40,0xf0,0xf0,0xff,0x7f,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00, - 0x00,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/radio.bmp b/utils/dialoged/src/bitmaps/radio.bmp deleted file mode 100644 index e843dc4359..0000000000 Binary files a/utils/dialoged/src/bitmaps/radio.bmp and /dev/null differ 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 a09e1491f7..0000000000 Binary files a/utils/dialoged/src/bitmaps/radiobox.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/radiobox.xpm b/utils/dialoged/src/bitmaps/radiobox.xpm deleted file mode 100644 index 8efbf842e8..0000000000 --- a/utils/dialoged/src/bitmaps/radiobox.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * radiobox_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/radiobtn.ico b/utils/dialoged/src/bitmaps/radiobtn.ico deleted file mode 100644 index d38063e150..0000000000 Binary files a/utils/dialoged/src/bitmaps/radiobtn.ico and /dev/null differ 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 545671fa17..0000000000 Binary files a/utils/dialoged/src/bitmaps/save.bmp and /dev/null differ 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 29bcbc0708..0000000000 Binary files a/utils/dialoged/src/bitmaps/scrolbar.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/scrolbar.xpm b/utils/dialoged/src/bitmaps/scrolbar.xpm deleted file mode 100644 index 4ec940cb32..0000000000 --- a/utils/dialoged/src/bitmaps/scrolbar.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char * scrolbar_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 4 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -/* pixels */ -" ", -" ", -" ", -" ", -" ", -" ", -"++++.@@@@@@++++.", -"+@@@.@@@@@@+@@@.", -"+@@@.@@@@@@+@@@.", -"+....@@@@@@+....", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/scroll.bmp b/utils/dialoged/src/bitmaps/scroll.bmp deleted file mode 100644 index 3f78964525..0000000000 Binary files a/utils/dialoged/src/bitmaps/scroll.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/scroll.xbm b/utils/dialoged/src/bitmaps/scroll.xbm deleted file mode 100644 index 68640bae6c..0000000000 --- a/utils/dialoged/src/bitmaps/scroll.xbm +++ /dev/null @@ -1,11 +0,0 @@ -#define scroll_width 28 -#define scroll_height 28 -static char scroll_bits[] = { - 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, - 0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00, - 0x00,0xf0,0xf8,0xff,0xff,0xf0,0x08,0x20,0x80,0xf0,0x08,0x20,0x80,0xf0,0x08, - 0x21,0x84,0xf0,0x88,0x27,0x8f,0xf0,0xc8,0x27,0x9f,0xf0,0x88,0x27,0x8f,0xf0, - 0x08,0x21,0x84,0xf0,0x08,0x20,0x80,0xf0,0x08,0x20,0x80,0xf0,0xf8,0xff,0xff, - 0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00, - 0x00,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/slider.bmp b/utils/dialoged/src/bitmaps/slider.bmp deleted file mode 100644 index 59ce662e9b..0000000000 Binary files a/utils/dialoged/src/bitmaps/slider.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/slider.ico b/utils/dialoged/src/bitmaps/slider.ico deleted file mode 100644 index 060d9d72fe..0000000000 Binary files a/utils/dialoged/src/bitmaps/slider.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/slider.xbm b/utils/dialoged/src/bitmaps/slider.xbm deleted file mode 100644 index 789340fc41..0000000000 --- a/utils/dialoged/src/bitmaps/slider.xbm +++ /dev/null @@ -1,11 +0,0 @@ -#define slider_width 28 -#define slider_height 28 -static char slider_bits[] = { - 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, - 0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00, - 0x00,0xf0,0x18,0x00,0xec,0xf0,0x10,0x00,0xa8,0xf0,0x10,0x00,0xa8,0xf0,0x38, - 0x00,0xfc,0xf0,0x00,0x00,0x00,0xf0,0xf8,0xff,0xff,0xf0,0x08,0x00,0x80,0xf0, - 0x08,0x03,0x80,0xf0,0x08,0x03,0x80,0xf0,0x08,0x00,0x80,0xf0,0xf8,0xff,0xff, - 0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00, - 0x00,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/slider.xpm b/utils/dialoged/src/bitmaps/slider.xpm deleted file mode 100644 index 9b6be672f4..0000000000 --- a/utils/dialoged/src/bitmaps/slider.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char * slider_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 4 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -/* pixels */ -" ", -" ", -" ", -"++++. ", -"+@@@. ", -"+@@@.@@@@@@@@@@@", -"+@@@............", -"+@@@.+++++++++++", -"+@@@. ", -"+@@@. ", -" +@. ", -" + ", -" ", -" ", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/statbmp.ico b/utils/dialoged/src/bitmaps/statbmp.ico deleted file mode 100644 index ef54c4c501..0000000000 Binary files a/utils/dialoged/src/bitmaps/statbmp.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/statbmp.xpm b/utils/dialoged/src/bitmaps/statbmp.xpm deleted file mode 100644 index 573e42ee3f..0000000000 --- a/utils/dialoged/src/bitmaps/statbmp.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * statbmp_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 8 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #ff0000", -"# c #00ff00", -"$ c #ffff00", -"% c #0000ff", -"& c #ffffff", -/* pixels */ -" ", -" ", -" ", -"+++++++++++++++.", -"+@@.&&&&&&&&&&&.", -"+@@.&&&&&&&&&&&.", -"+@@.&&&&&&&&&&&.", -"+...............", -"+&&.&&&&&&&.%%%.", -"+&&.&&&&&&&.%%%.", -"+&&.........%%%.", -"+&&.$$$$.##.%%%.", -"+&&.$$$$.##.%%%.", -"+...............", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/statbox.ico b/utils/dialoged/src/bitmaps/statbox.ico deleted file mode 100644 index 74e132a0d9..0000000000 Binary files a/utils/dialoged/src/bitmaps/statbox.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/statbox.xpm b/utils/dialoged/src/bitmaps/statbox.xpm deleted file mode 100644 index 1c3efb2e14..0000000000 --- a/utils/dialoged/src/bitmaps/statbox.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char * statbox_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 4 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -/* pixels */ -" . ", -" .. .. ", -"+++.+.++...++++.", -"+@.@...@@..@@@@.", -"+@. . .... @.", -"+@ @.", -"+@ @.", -"+@ @.", -"+@ @.", -"+@ @.", -"+@ @.", -"+@ @.", -"+@ @.", -"+@ @.", -"+@@@@@@@@@@@@@@.", -"................"}; diff --git a/utils/dialoged/src/bitmaps/stattext.ico b/utils/dialoged/src/bitmaps/stattext.ico deleted file mode 100644 index ef2e0d4592..0000000000 Binary files a/utils/dialoged/src/bitmaps/stattext.ico and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/stattext.xpm b/utils/dialoged/src/bitmaps/stattext.xpm deleted file mode 100644 index 1ff8e94d4e..0000000000 --- a/utils/dialoged/src/bitmaps/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/utils/dialoged/src/bitmaps/text.bmp b/utils/dialoged/src/bitmaps/text.bmp deleted file mode 100644 index 6f4b7a8aa8..0000000000 Binary files a/utils/dialoged/src/bitmaps/text.bmp and /dev/null differ 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 a03bf65051..0000000000 Binary files a/utils/dialoged/src/bitmaps/textmult.ico and /dev/null differ 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 74cfd83d87..0000000000 Binary files a/utils/dialoged/src/bitmaps/textsing.ico and /dev/null differ 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 3673eda5de..0000000000 Binary files a/utils/dialoged/src/bitmaps/tick.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/toback.bmp b/utils/dialoged/src/bitmaps/toback.bmp deleted file mode 100644 index d2e5efffce..0000000000 Binary files a/utils/dialoged/src/bitmaps/toback.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/toback.xbm b/utils/dialoged/src/bitmaps/toback.xbm deleted file mode 100644 index 71ed8c8a9f..0000000000 --- a/utils/dialoged/src/bitmaps/toback.xbm +++ /dev/null @@ -1,8 +0,0 @@ -#define toback_width 24 -#define toback_height 24 -static char toback_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x0f,0x00, - 0x20,0x08,0x00,0x20,0xf8,0x01,0x20,0xf8,0x01,0x20,0xf8,0x01,0x20,0xf8,0x01, - 0xe0,0xff,0x01,0x00,0xff,0x0f,0x00,0x3f,0x08,0x00,0x3f,0x08,0x00,0x3f,0x08, - 0x00,0x20,0x08,0x00,0x20,0x08,0x00,0xe0,0x0f,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/toback.xpm b/utils/dialoged/src/bitmaps/toback.xpm deleted file mode 100644 index f7a1c46ab8..0000000000 --- a/utils/dialoged/src/bitmaps/toback.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *toback_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808080", -"o c Yellow", -/* pixels */ -" ....... ", -" .XXXXX. ", -" .XXXXX...... ", -" .XXXXX.oooo. ", -" .XXXXX.oooo. ", -" .XXXXX.oooo. ", -" .......oooo. ", -" .oooo.......", -" .oooo.XXXXX.", -" .oooo.XXXXX.", -" ......XXXXX.", -" .XXXXX.", -" .XXXXX.", -" .......", -" " -}; diff --git a/utils/dialoged/src/bitmaps/tofront.bmp b/utils/dialoged/src/bitmaps/tofront.bmp deleted file mode 100644 index 5b17cc44c8..0000000000 Binary files a/utils/dialoged/src/bitmaps/tofront.bmp and /dev/null differ diff --git a/utils/dialoged/src/bitmaps/tofront.xbm b/utils/dialoged/src/bitmaps/tofront.xbm deleted file mode 100644 index a6e801b9b8..0000000000 --- a/utils/dialoged/src/bitmaps/tofront.xbm +++ /dev/null @@ -1,8 +0,0 @@ -#define tofront_width 24 -#define tofront_height 24 -static char tofront_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x0f,0x00, - 0x20,0x08,0x00,0x20,0xff,0x01,0x20,0xff,0x01,0x20,0xff,0x01,0x20,0xff,0x01, - 0xe0,0xff,0x01,0x00,0xff,0x0f,0x00,0xff,0x09,0x00,0xff,0x09,0x00,0xff,0x09, - 0x00,0x20,0x08,0x00,0x20,0x08,0x00,0xe0,0x0f,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/tofront.xpm b/utils/dialoged/src/bitmaps/tofront.xpm deleted file mode 100644 index f5ce7652a2..0000000000 --- a/utils/dialoged/src/bitmaps/tofront.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *tofront_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808080", -"o c Yellow", -/* pixels */ -" ....... ", -" .XXXXX. ", -" .XX......... ", -" .XX.ooooooo. ", -" .XX.ooooooo. ", -" .XX.ooooooo. ", -" ....ooooooo. ", -" .ooooooo....", -" .ooooooo.XX.", -" .ooooooo.XX.", -" .........XX.", -" .XXXXX.", -" .XXXXX.", -" .......", -" " -}; diff --git a/utils/dialoged/src/bitmaps/tree.xbm b/utils/dialoged/src/bitmaps/tree.xbm deleted file mode 100644 index c9d496e38e..0000000000 --- a/utils/dialoged/src/bitmaps/tree.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define tree_width 24 -#define tree_height 24 -static char tree_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x07, - 0xc0, 0xff, 0x00, 0x20, 0x01, 0x07, 0x10, 0x02, 0x00, 0x08, 0x3c, 0x00, - 0x04, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x1c, 0x00, 0x80, 0x83, 0x03, - 0x00, 0x7c, 0x00, 0x00, 0x80, 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/treeicn.xbm b/utils/dialoged/src/bitmaps/treeicn.xbm deleted file mode 100644 index 01b784ee4e..0000000000 --- a/utils/dialoged/src/bitmaps/treeicn.xbm +++ /dev/null @@ -1,46 +0,0 @@ -#define treeicn_width 64 -#define treeicn_height 64 -static char treeicn_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, 0x00, 0x00, 0x00, - 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, - 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1c, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x80, 0x7f, 0x00, 0x00, - 0x00, 0x00, 0xf0, 0x07, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x1c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x0f, 0x38, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x70, - 0x80, 0xff, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xe0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x3f, 0x00, 0xc0, 0xe1, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x80, - 0xf3, 0xff, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0xbf, 0xff, 0x00, 0x00, - 0xfc, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x1c, 0xff, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xff, 0x03, - 0xc0, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, - 0x00, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xff, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xfe, 0x1f, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, - 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/vert.bmp b/utils/dialoged/src/bitmaps/vert.bmp deleted file mode 100644 index dfd7b5cb53..0000000000 Binary files a/utils/dialoged/src/bitmaps/vert.bmp and /dev/null differ 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 6817374f3d..0000000000 Binary files a/utils/dialoged/src/bitmaps/wxwin.bmp and /dev/null differ 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 cec6bac64e..0000000000 Binary files a/utils/dialoged/src/dialoged.ico and /dev/null differ diff --git a/utils/dialoged/src/dialoged.rc b/utils/dialoged/src/dialoged.rc deleted file mode 100644 index e931061123..0000000000 --- a/utils/dialoged/src/dialoged.rc +++ /dev/null @@ -1,67 +0,0 @@ -aaa ICON "bitmaps/dialoged.ico" -DIALOGEDICON ICON "bitmaps/dialoged.ico" - -DIALOG_ICON ICON "bitmaps/dialog.ico" -FOLDER1_ICON ICON "bitmaps/folder1.ico" -FOLDER2_ICON ICON "bitmaps/folder2.ico" -BUTTONSM_ICON ICON "bitmaps/buttonsm.ico" - -/* For control list */ -ARROW_ICON ICON "bitmaps/arrow.ico" -BUTTON_ICON ICON "bitmaps/button.ico" -BMPBUTTON_ICON ICON "bitmaps/bmpbuttn.ico" -STATICTEXT_ICON ICON "bitmaps/stattext.ico" -STATICBMP_ICON ICON "bitmaps/statbmp.ico" -STATICBOX_ICON ICON "bitmaps/statbox.ico" -TEXTSING_ICON ICON "bitmaps/textsing.ico" -TEXTMULT_ICON ICON "bitmaps/textmult.ico" -LISTBOX_ICON ICON "bitmaps/listbox.ico" -CHOICE_ICON ICON "bitmaps/choice.ico" -COMBOBOX_ICON ICON "bitmaps/combobox.ico" -CHECKBOX_ICON ICON "bitmaps/checkbox.ico" -SLIDER_ICON ICON "bitmaps/slider.ico" -GAUGE_ICON ICON "bitmaps/gauge.ico" -RADIOBOX_ICON ICON "bitmaps/radiobox.ico" -RADIOBTN_ICON ICON "bitmaps/radiobtn.ico" -SCROLBAR_ICON ICON "bitmaps/scrolbar.ico" - -#include "wx/msw/wx.rc" - -DIALOGBOXTOOL BITMAP "bitmaps/dialog.bmp" -MESSAGETOOL BITMAP "bitmaps/message.bmp" -BUTTONTOOL BITMAP "bitmaps/button.bmp" -CHECKBOXTOOL BITMAP "bitmaps/check.bmp" -RADIOBOXTOOL BITMAP "bitmaps/radio.bmp" -LISTBOXTOOL BITMAP "bitmaps/listbox.bmp" -CHOICETOOL BITMAP "bitmaps/choice.bmp" -TEXTTOOL BITMAP "bitmaps/text.bmp" -MULTITEXTTOOL BITMAP "bitmaps/mtext.bmp" -SLIDERTOOL BITMAP "bitmaps/slider.bmp" -ARROWTOOL BITMAP "bitmaps/arrow.bmp" -GROUPTOOL BITMAP "bitmaps/group.bmp" -GAUGETOOL BITMAP "bitmaps/gauge.bmp" -PICTURETOOL BITMAP "bitmaps/picture.bmp" -BMPBUTTONTOOL BITMAP "bitmaps/bmpbuttn.bmp" -SCROLLBARTOOL BITMAP "bitmaps/scroll.bmp" - -NEWTOOL BITMAP "bitmaps/new.bmp" -LOADTOOL BITMAP "bitmaps/load.bmp" -SAVETOOL BITMAP "bitmaps/save.bmp" -VERTTOOL BITMAP "bitmaps/vert.bmp" -ALIGNTTOOL BITMAP "bitmaps/alignt.bmp" -ALIGNBTOOL BITMAP "bitmaps/alignb.bmp" -ALIGNLTOOL BITMAP "bitmaps/alignl.bmp" -ALIGNRTOOL BITMAP "bitmaps/alignr.bmp" -HORIZTOOL BITMAP "bitmaps/horiz.bmp" -HELPTOOL BITMAP "bitmaps/help.bmp" -COPYSIZETOOL BITMAP "bitmaps/copysize.bmp" -TOFRONTTOOL BITMAP "bitmaps/tofront.bmp" -TOBACKTOOL BITMAP "bitmaps/toback.bmp" - -WXWINBMP BITMAP "bitmaps/wxwin.bmp" - -/* -These files are both invalid and it doesn't appear anyone uses them -tick_bmp BITMAP "bitmaps/tick.bmp" -cross_bmp BITMAP "bitmaps/cross.bmp" -*/ diff --git a/utils/dialoged/src/dlghndlr.cpp b/utils/dialoged/src/dlghndlr.cpp deleted file mode 100644 index 794043ecb0..0000000000 --- a/utils/dialoged/src/dlghndlr.cpp +++ /dev/null @@ -1,1202 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dlghndlr.cpp -// Purpose: Dialog handler -// 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 - -#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 e6157c5e82..0000000000 --- a/utils/dialoged/src/reseditr.cpp +++ /dev/null @@ -1,2408 +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 - -#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 - * - */ - -BEGIN_EVENT_TABLE(EditorToolBar, wxToolBar) -// EVT_PAINT(EditorToolBar::OnPaint) -END_EVENT_TABLE() - -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 c0b2c6840b..0000000000 --- a/utils/dialoged/src/reseditr.h +++ /dev/null @@ -1,455 +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 "wx/txtstrm.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(wxTextOutputStream& 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(wxTextOutputStream& 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 3959269ab0..0000000000 --- a/utils/dialoged/src/reswrite.cpp +++ /dev/null @@ -1,592 +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 - -#include "wx/scrolbar.h" -#include "wx/string.h" -#include "wx/wfstream.h" -#include "wx/txtstrm.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(wxTextOutputStream& 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) -{ - wxFileOutputStream file_output( filename.fn_str() ); - if (file_output.LastError()) - return FALSE; - - wxTextOutputStream stream( file_output ); - - 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(wxTextOutputStream& 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 ad0bd926f6..0000000000 --- a/utils/dialoged/src/winprop.cpp +++ /dev/null @@ -1,2549 +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 - -#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/Makefile.vc b/utils/framelayout/samples/Makefile.vc deleted file mode 100644 index a19d821432..0000000000 --- a/utils/framelayout/samples/Makefile.vc +++ /dev/null @@ -1,35 +0,0 @@ -# -# File: makefile.vc -# Author: J. Russell Smyth -# Created: 1999 -# Updated: -# Copyright: -# -# "%W% %G%" -# -# Makefile : Builds framelayout 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)\utils\framelayout\samples - -!include $(WXDIR)\src\makevc.env - -all: - cd $(WXDIR)\utils\framelayout\samples\test - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\utils\framelayout\samples\demo - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\utils\framelayout\samples\sample - nmake -f makefile.vc FINAL=$(FINAL) - -clean: - cd $(WXDIR)\utils\framelayout\samples\test - nmake -f makefile.vc clean - cd $(WXDIR)\utils\framelayout\samples\demo - nmake -f makefile.vc clean - cd $(WXDIR)\utils\framelayout\samples\sample - nmake -f makefile.vc clean diff --git a/utils/framelayout/samples/bitmaps/bookmarks.bmp b/utils/framelayout/samples/bitmaps/bookmarks.bmp deleted file mode 100644 index d6a3a7977c..0000000000 Binary files a/utils/framelayout/samples/bitmaps/bookmarks.bmp and /dev/null differ 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 fe1a0c9d87..0000000000 Binary files a/utils/framelayout/samples/bitmaps/class_icon.bmp and /dev/null differ diff --git a/utils/framelayout/samples/bitmaps/class_icon.xpm b/utils/framelayout/samples/bitmaps/class_icon.xpm deleted file mode 100644 index 44baaa0623..0000000000 --- a/utils/framelayout/samples/bitmaps/class_icon.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * class_icon_xpm[] = { -"12 12 15 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", -" ", -"..... ", -".,,,. ", -".,,,. ....", -".,,,.***.''.", -".,,,. * ....", -"..... * ", -" * ", -" * ....", -" **.)).", -" ....", -" "}; diff --git a/utils/framelayout/samples/bitmaps/class_icon1.bmp b/utils/framelayout/samples/bitmaps/class_icon1.bmp deleted file mode 100644 index ef9846d737..0000000000 Binary files a/utils/framelayout/samples/bitmaps/class_icon1.bmp and /dev/null differ 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 5e66fc8dfe..0000000000 Binary files a/utils/framelayout/samples/bitmaps/copy.bmp and /dev/null differ 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 cf9247f2ea..0000000000 Binary files a/utils/framelayout/samples/bitmaps/cut.bmp and /dev/null differ 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 941b5ccabf..0000000000 Binary files a/utils/framelayout/samples/bitmaps/file_icon.bmp and /dev/null differ diff --git a/utils/framelayout/samples/bitmaps/file_icon.xpm b/utils/framelayout/samples/bitmaps/file_icon.xpm deleted file mode 100644 index a79a01cbac..0000000000 --- a/utils/framelayout/samples/bitmaps/file_icon.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char * file_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/folder_icon.bmp b/utils/framelayout/samples/bitmaps/folder_icon.bmp deleted file mode 100644 index 7e45f597ec..0000000000 Binary files a/utils/framelayout/samples/bitmaps/folder_icon.bmp and /dev/null differ diff --git a/utils/framelayout/samples/bitmaps/folder_icon.xpm b/utils/framelayout/samples/bitmaps/folder_icon.xpm deleted file mode 100644 index 015b0baceb..0000000000 --- a/utils/framelayout/samples/bitmaps/folder_icon.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char * folder_icon_xpm[] = { -"16 16 6 1", -" c None", -". c #FFFFFF", -"+ c #848284", -"@ c #C6C3C6", -"# c #FFFF00", -"$ c #000000", -" +++++ ", -" +@#@#@+ ", -"+@#@#@#@++++++ ", -"+............+$ ", -"+.#@#@#@#@#@#+$ ", -"+.@#@#@#@#@#@+$ ", -"+.#@#@#@#@#@#+$ ", -"+.@#@#@#@#@#@+$ ", -"+.#@#@#@#@#@#+$ ", -"+.@#@#@#@#@#@+$ ", -"+.#@#@#@#@#@#+$ ", -"++++++++++++++$ ", -" $$$$$$$$$$$$$$ ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/help_icon.bmp b/utils/framelayout/samples/bitmaps/help_icon.bmp deleted file mode 100644 index cd1b36244c..0000000000 Binary files a/utils/framelayout/samples/bitmaps/help_icon.bmp and /dev/null differ 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 1785f051bb..0000000000 Binary files a/utils/framelayout/samples/bitmaps/new.bmp and /dev/null differ 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 ce916ee63d..0000000000 Binary files a/utils/framelayout/samples/bitmaps/nextmark.bmp and /dev/null differ diff --git a/utils/framelayout/samples/bitmaps/nextmark.xpm b/utils/framelayout/samples/bitmaps/nextmark.xpm deleted file mode 100644 index a6b9e8d749..0000000000 --- a/utils/framelayout/samples/bitmaps/nextmark.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * nextmark_xpm[] = { -"26 21 6 1", -" c None", -"+ c #848284", -"@ c #000084", -"# c #000000", -"$ c #FFFF00", -"% c #0000FF", -" ", -" ", -" ", -" +@@@@ ", -" +@ +@ @ ", -" @ @@@ ", -" @ @@@ # ", -" +@ @@@@ # ", -" +@ ## ", -" +$$$$ #%%# ", -" +$$++$$#%%%# ", -" +$$++$$%%%@# ", -" ++ +$$#%%@@@## ", -" +$$ #@@@@%%# ", -" +$$ #@@@%%%# ", -" #++ #@@%%%# ", -" #+$$ ##%%# ", -" # +$$ +## ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/open.bmp b/utils/framelayout/samples/bitmaps/open.bmp deleted file mode 100644 index 8a2ac5cc01..0000000000 Binary files a/utils/framelayout/samples/bitmaps/open.bmp and /dev/null differ diff --git a/utils/framelayout/samples/bitmaps/open.xpm b/utils/framelayout/samples/bitmaps/open.xpm deleted file mode 100644 index c0def9124f..0000000000 --- a/utils/framelayout/samples/bitmaps/open.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -static char * open_xpm[] = { -"20 21 5 1", -" c None", -"+ c #000000", -"@ c #FFFFFF", -"# c #FFFF00", -"$ c #848200", -" ", -" ", -" ", -" +++ ", -" + + + ", -" ++ ", -" +++ +++ ", -" +@#@+++++++ ", -" +#@#@#@#@#+ ", -" +@#@#@#@#@+ ", -" +#@#@++++++++++ ", -" +@#@+$$$$$$$$$+ ", -" +#@+$$$$$$$$$+ ", -" +@+$$$$$$$$$+ ", -" ++$$$$$$$$$+ ", -" +++++++++++ ", -" ", -" ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/paste.bmp b/utils/framelayout/samples/bitmaps/paste.bmp deleted file mode 100644 index 8c4b66bfe8..0000000000 Binary files a/utils/framelayout/samples/bitmaps/paste.bmp and /dev/null differ diff --git a/utils/framelayout/samples/bitmaps/paste.xpm b/utils/framelayout/samples/bitmaps/paste.xpm deleted file mode 100644 index ce3724b12c..0000000000 --- a/utils/framelayout/samples/bitmaps/paste.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char * paste_xpm[] = { -"23 21 7 1", -" c None", -"+ c #000000", -"@ c #FFFF00", -"# c #848284", -"$ c #848200", -"% c #000084", -"& c #FFFFFF", -" ", -" ", -" ", -" ++++ ", -" +++++@@+++++ ", -" +++++@@+++++ ", -" +#$#+@++@+$#$+ ", -" +$#+ +$#+ ", -" +#$++++++++#$+ ", -" +$#$#$#$#$#$#+ ", -" +#$#$#%%%%%%%+ ", -" +$#$#$%&&&&&%% ", -" +#$#$#%&&&&&%&% ", -" +$#$#$%&%%%&%%% ", -" +#$#$#%&&&&&&&% ", -" +$#$#$%&%%%%%&% ", -" +++++%&&&&&&&% ", -" %%%%%%%%% ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/prevmark.bmp b/utils/framelayout/samples/bitmaps/prevmark.bmp deleted file mode 100644 index 4b2a12e1c8..0000000000 Binary files a/utils/framelayout/samples/bitmaps/prevmark.bmp and /dev/null differ 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 770cc35547..0000000000 Binary files a/utils/framelayout/samples/bitmaps/res_icon.bmp and /dev/null differ 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 02f8c7d5cb..0000000000 Binary files a/utils/framelayout/samples/bitmaps/save.bmp and /dev/null differ 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 bd04e1c10f..0000000000 Binary files a/utils/framelayout/samples/bitmaps/saveall.bmp and /dev/null differ 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 dee7606132..0000000000 Binary files a/utils/framelayout/samples/bitmaps/search.bmp and /dev/null differ 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 d18943575d..0000000000 Binary files a/utils/framelayout/samples/bitmaps/start95_dp.bmp and /dev/null differ 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 002c41da14..0000000000 Binary files a/utils/framelayout/samples/bitmaps/start95_pr.bmp and /dev/null differ 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 2269ce2f5f..0000000000 Binary files a/utils/framelayout/samples/bitmaps/tile.bmp and /dev/null differ 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/Makefile.vc b/utils/framelayout/samples/demo/Makefile.vc deleted file mode 100644 index 582efd661d..0000000000 --- a/utils/framelayout/samples/demo/Makefile.vc +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.vc -# Author: J Russell Smyth -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds frame layout demo -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -EXTRAINC = -I..\..\src -EXTRALIBS = $(WXDIR)\lib\fl.lib -EXTRAFLAGS = /DwxDUMMY_OBJ_INCLUDED -PROGRAM=fl_demo -OBJECTS = $(PROGRAM).obj settingsdlg.obj wxinfo.obj - -!include $(WXDIR)\src\makeprog.vc - 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/Makefile.vc b/utils/framelayout/samples/sample/Makefile.vc deleted file mode 100644 index 2b78779ede..0000000000 --- a/utils/framelayout/samples/sample/Makefile.vc +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.vc -# Author: J Russell Smyth -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds frame layout sample -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -EXTRAINC = -I..\..\src -EXTRALIBS = $(WXDIR)\lib\fl.lib -EXTRAFLAGS = /DwxDUMMY_OBJ_INCLUDED -PROGRAM=fl_sample -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - 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/Makefile.vc b/utils/framelayout/samples/test/Makefile.vc deleted file mode 100644 index 68a6f8810a..0000000000 --- a/utils/framelayout/samples/test/Makefile.vc +++ /dev/null @@ -1,21 +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) - -EXTRAINC = -I..\..\src -EXTRALIBS = $(WXDIR)\lib\fl.lib -EXTRAFLAGS = /DwxDUMMY_OBJ_INCLUDED -PROGRAM=fl_test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - 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 d2401b700b..0000000000 --- a/utils/framelayout/src/controlbar.cpp +++ /dev/null @@ -1,3351 +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 0 - - 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 ); -#endif - pChild->Reparent(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 ), - wxFRAME_FLOAT_ON_PARENT | wxFRAME_TOOL_WINDOW - ); - - 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 ce78b52c6e..0000000000 --- a/utils/framelayout/src/toolwnd.cpp +++ /dev/null @@ -1,1145 +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 ) -{ - wxPaintDC pdc( this ); - 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 fc5c324d52..0000000000 --- a/utils/glcanvas/gtk/glcanvas.cpp +++ /dev/null @@ -1,418 +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 */ - GLX_RED_SIZE, 1, - GLX_GREEN_SIZE, 1, - GLX_BLUE_SIZE, 1, - GLX_ALPHA_SIZE, 0, - None }; - attribList = (int*) data; - } - 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 2310c5d275..0000000000 Binary files a/utils/glcanvas/samples/cube/mondrian.ico and /dev/null differ diff --git a/utils/glcanvas/samples/isosurf/Makefile b/utils/glcanvas/samples/isosurf/Makefile deleted file mode 100644 index ca096666db..0000000000 --- a/utils/glcanvas/samples/isosurf/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++ - -isosurf: isosurf.o glcanvas.o - $(CC) -o isosurf \ - isosurf.o glcanvas.o \ - `wx-config --libs` -lMesaGL -lMesaGLU - -isosurf.o: isosurf.cpp - $(CC) `wx-config --cflags` -I../../gtk -c isosurf.cpp - -glcanvas.o: ../../gtk/glcanvas.cpp - $(CC) `wx-config --cflags` `gtk-config --cflags` -I../../gtk -c ../../gtk/glcanvas.cpp - -clean: - rm -f *.o isosurf diff --git a/utils/glcanvas/samples/isosurf/isosurf.cpp b/utils/glcanvas/samples/isosurf/isosurf.cpp deleted file mode 100644 index bc5615f81f..0000000000 --- a/utils/glcanvas/samples/isosurf/isosurf.cpp +++ /dev/null @@ -1,412 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: isosurf.cpp -// 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 -///////////////////////////////////////////////////////////////////////////// - -#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/timer.h" -#include "glcanvas.h" - -#include -#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 c07dc570d2..0000000000 Binary files a/utils/glcanvas/samples/isosurf/isosurf.dat.gz and /dev/null differ 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 2310c5d275..0000000000 Binary files a/utils/glcanvas/samples/isosurf/mondrian.ico and /dev/null differ diff --git a/utils/glcanvas/samples/penguin/Makefile b/utils/glcanvas/samples/penguin/Makefile deleted file mode 100644 index 0401bb93aa..0000000000 --- a/utils/glcanvas/samples/penguin/Makefile +++ /dev/null @@ -1,36 +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. -# - -CPP = g++ -CC = gcc - -Penguin: penguin.o trackball.o lw.o glcanvas.o - $(CPP) -o Penguin \ - penguin.o trackball.o lw.o glcanvas.o \ - `wx-config --libs` -lMesaGL -lMesaGLU - -penguin.o: penguin.cpp - $(CPP) `wx-config --cflags` -I../../gtk -c penguin.cpp - -lw.o: lw.cpp - $(CPP) `wx-config --cflags` -I../../gtk -c lw.cpp - -trackball.o: trackball.c - $(CC) `wx-config --cflags` -I../../gtk -c trackball.c - -glcanvas.o: ../../gtk/glcanvas.cpp - $(CPP) `wx-config --cflags` `gtk-config --cflags` -I../../gtk -c ../../gtk/glcanvas.cpp - -clean: - rm -f *.o Penguin diff --git a/utils/glcanvas/samples/penguin/lw.cpp b/utils/glcanvas/samples/penguin/lw.cpp deleted file mode 100644 index e7bfe17843..0000000000 --- a/utils/glcanvas/samples/penguin/lw.cpp +++ /dev/null @@ -1,427 +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. - */ - -#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 3f5122db82..0000000000 Binary files a/utils/glcanvas/samples/penguin/penguin.lwo and /dev/null differ 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 8a61076d3b..0000000000 Binary files a/utils/ogl/docs/back.gif and /dev/null differ diff --git a/utils/ogl/docs/books.bmp b/utils/ogl/docs/books.bmp deleted file mode 100644 index cf1e148734..0000000000 Binary files a/utils/ogl/docs/books.bmp and /dev/null differ 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 aad8fc793e..0000000000 Binary files a/utils/ogl/docs/bullet.bmp and /dev/null differ 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 3dddfa3dd5..0000000000 Binary files a/utils/ogl/docs/contents.gif and /dev/null differ diff --git a/utils/ogl/docs/forward.gif b/utils/ogl/docs/forward.gif deleted file mode 100644 index 9c81e8c92f..0000000000 Binary files a/utils/ogl/docs/forward.gif and /dev/null differ 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 e7cf417cf5..0000000000 Binary files a/utils/ogl/docs/ogledit.bmp and /dev/null differ diff --git a/utils/ogl/docs/ogledit.gif b/utils/ogl/docs/ogledit.gif deleted file mode 100644 index 9784681b2d..0000000000 Binary files a/utils/ogl/docs/ogledit.gif and /dev/null differ 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 316d0d2a14..0000000000 Binary files a/utils/ogl/docs/up.gif and /dev/null differ diff --git a/utils/ogl/samples/ogledit/bitmaps/arrow.bmp b/utils/ogl/samples/ogledit/bitmaps/arrow.bmp deleted file mode 100644 index d406ceb64f..0000000000 Binary files a/utils/ogl/samples/ogledit/bitmaps/arrow.bmp and /dev/null differ 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 cb1760d285..0000000000 Binary files a/utils/ogl/samples/ogledit/bitmaps/tool1.bmp and /dev/null differ diff --git a/utils/ogl/samples/ogledit/bitmaps/tool1.xpm b/utils/ogl/samples/ogledit/bitmaps/tool1.xpm deleted file mode 100644 index 89a313d94c..0000000000 --- a/utils/ogl/samples/ogledit/bitmaps/tool1.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *tool1_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/tool2.bmp b/utils/ogl/samples/ogledit/bitmaps/tool2.bmp deleted file mode 100644 index a18faccff7..0000000000 Binary files a/utils/ogl/samples/ogledit/bitmaps/tool2.bmp and /dev/null differ 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 6a49f459c3..0000000000 Binary files a/utils/ogl/samples/ogledit/bitmaps/tool3.bmp and /dev/null differ diff --git a/utils/ogl/samples/ogledit/bitmaps/tool3.xpm b/utils/ogl/samples/ogledit/bitmaps/tool3.xpm deleted file mode 100644 index 7ba078573c..0000000000 --- a/utils/ogl/samples/ogledit/bitmaps/tool3.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *tool3_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/tool4.bmp b/utils/ogl/samples/ogledit/bitmaps/tool4.bmp deleted file mode 100644 index 95c2061a90..0000000000 Binary files a/utils/ogl/samples/ogledit/bitmaps/tool4.bmp and /dev/null differ diff --git a/utils/ogl/samples/ogledit/bitmaps/tool4.xpm b/utils/ogl/samples/ogledit/bitmaps/tool4.xpm deleted file mode 100644 index 154e93b832..0000000000 --- a/utils/ogl/samples/ogledit/bitmaps/tool4.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *tool4_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/doc.cpp b/utils/ogl/samples/ogledit/doc.cpp deleted file mode 100644 index 5e11ad2d05..0000000000 --- a/utils/ogl/samples/ogledit/doc.cpp +++ /dev/null @@ -1,570 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.cpp -// Purpose: Implements document 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 - -#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 7cb092e04c..0000000000 Binary files a/utils/ogl/samples/ogledit/ogl.ico and /dev/null differ 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 6cc2e1dee4..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/alignb.bmp and /dev/null differ 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 30471101b1..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/alignl.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/alignl.xpm b/utils/ogl/samples/studio/bitmaps/alignl.xpm deleted file mode 100644 index 6d7def92fb..0000000000 --- a/utils/ogl/samples/studio/bitmaps/alignl.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignl_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/alignr.bmp b/utils/ogl/samples/studio/bitmaps/alignr.bmp deleted file mode 100644 index 14a2f85241..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/alignr.bmp and /dev/null differ 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 4505cbab56..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/alignt.bmp and /dev/null differ 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 d406ceb64f..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/arrow.bmp and /dev/null differ 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 13e2170b73..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/bitmap1.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/bitmap2.bmp b/utils/ogl/samples/studio/bitmaps/bitmap2.bmp deleted file mode 100644 index 3d523b2de9..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/bitmap2.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/copy.bmp b/utils/ogl/samples/studio/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/copy.bmp and /dev/null differ 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 36060ad72b..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/copysize.bmp and /dev/null differ 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 15554338a0..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/cut.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/cut.xpm b/utils/ogl/samples/studio/bitmaps/cut.xpm deleted file mode 100644 index bfe7e95cea..0000000000 --- a/utils/ogl/samples/studio/bitmaps/cut.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *cut_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c #000080", -/* pixels */ -" ", -" . . ", -" . . ", -" . . ", -" .. .. ", -" . . ", -" ... ", -" . ", -" X.X ", -" X XXX ", -" XXX X X ", -" X X X X ", -" X X X X ", -" X X XX ", -" XX " -}; diff --git a/utils/ogl/samples/studio/bitmaps/cutpoint.bmp b/utils/ogl/samples/studio/bitmaps/cutpoint.bmp deleted file mode 100644 index 2f7dc780a2..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/cutpoint.bmp and /dev/null differ 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 cc828ab4f2..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/file1.ico and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/folder1.ico b/utils/ogl/samples/studio/bitmaps/folder1.ico deleted file mode 100644 index c43de1c07c..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/folder1.ico and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/help.bmp b/utils/ogl/samples/studio/bitmaps/help.bmp deleted file mode 100644 index 2d9e6922ca..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/help.bmp and /dev/null differ 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 8837381681..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/helpcs.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/helpcs.xpm b/utils/ogl/samples/studio/bitmaps/helpcs.xpm deleted file mode 100644 index 4a3e8fcb70..0000000000 --- a/utils/ogl/samples/studio/bitmaps/helpcs.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *helpcs_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/horiz.bmp b/utils/ogl/samples/studio/bitmaps/horiz.bmp deleted file mode 100644 index 58af34a727..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/horiz.bmp and /dev/null differ 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 1fd21fb08a..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/linearrow.bmp and /dev/null differ 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 d66feb2384..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/new.bmp and /dev/null differ 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 cb4f267afc..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/newpoint.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/newpoint.xpm b/utils/ogl/samples/studio/bitmaps/newpoint.xpm deleted file mode 100644 index c1d9fefcce..0000000000 --- a/utils/ogl/samples/studio/bitmaps/newpoint.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *newpoint_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 16 15 3 1", -/* colors */ -". c #000000", -"# c #c0c0c0", -"a c #ffff00", -/* pixels */ -"#######a########", -"###a###a###a####", -"####a##a##a#####", -"#####a#a#a######", -"################", -"##aaa#....#aaa##", -"######....######", -"................", -"######....######", -"######....######", -"################", -"################", -"################", -"################", -"################" -}; diff --git a/utils/ogl/samples/studio/bitmaps/open.bmp b/utils/ogl/samples/studio/bitmaps/open.bmp deleted file mode 100644 index bbf93fe033..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/open.bmp and /dev/null differ 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 564f514e0d..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/paste.bmp and /dev/null differ 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 da1f4dbc4b..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/preview.bmp and /dev/null differ 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 00319b55bb..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/print.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/print.xpm b/utils/ogl/samples/studio/bitmaps/print.xpm deleted file mode 100644 index 3c2e2be781..0000000000 --- a/utils/ogl/samples/studio/bitmaps/print.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *print_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Gray100", -"o c #808000", -"O c Yellow", -/* pixels */ -" ", -" ......... ", -" .XXXXXXXX. ", -" .X.....X. ", -" .XXXXXXXX. ", -" .X.....X.... ", -" .XXXXXXXX. . .", -" .......... . ..", -". . . .", -"............. .", -". ooo . . ", -". OOO ... ", -"............. . ", -" . . . ", -" ........... " -}; diff --git a/utils/ogl/samples/studio/bitmaps/redo.bmp b/utils/ogl/samples/studio/bitmaps/redo.bmp deleted file mode 100644 index 5877e34e00..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/redo.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/redo.xpm b/utils/ogl/samples/studio/bitmaps/redo.xpm deleted file mode 100644 index 04df64ae54..0000000000 --- a/utils/ogl/samples/studio/bitmaps/redo.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *redo_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 16 15 3 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -/* pixels */ -"################", -"################", -"################", -"################", -"###a....########", -"##a.####..###.##", -"##.#######.#..##", -"##.########...##", -"##.#######....##", -"##a.#####.....##", -"###.a###########", -"################", -"################", -"################", -"################" -}; diff --git a/utils/ogl/samples/studio/bitmaps/save.bmp b/utils/ogl/samples/studio/bitmaps/save.bmp deleted file mode 100644 index 56dd10b6e3..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/save.bmp and /dev/null differ 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 529366590b..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/straight.bmp and /dev/null differ 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 09c989aac1..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/texttool.bmp and /dev/null differ 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 c0d66c9460..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/tick.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/tick.xpm b/utils/ogl/samples/studio/bitmaps/tick.xpm deleted file mode 100644 index 6099b2b8b3..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/tick.xpm and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/toback.bmp b/utils/ogl/samples/studio/bitmaps/toback.bmp deleted file mode 100644 index d2e5efffce..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/toback.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/toback.xpm b/utils/ogl/samples/studio/bitmaps/toback.xpm deleted file mode 100644 index f7a1c46ab8..0000000000 --- a/utils/ogl/samples/studio/bitmaps/toback.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *toback_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808080", -"o c Yellow", -/* pixels */ -" ....... ", -" .XXXXX. ", -" .XXXXX...... ", -" .XXXXX.oooo. ", -" .XXXXX.oooo. ", -" .XXXXX.oooo. ", -" .......oooo. ", -" .oooo.......", -" .oooo.XXXXX.", -" .oooo.XXXXX.", -" ......XXXXX.", -" .XXXXX.", -" .XXXXX.", -" .......", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/tofront.bmp b/utils/ogl/samples/studio/bitmaps/tofront.bmp deleted file mode 100644 index 5b17cc44c8..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/tofront.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/tofront.xpm b/utils/ogl/samples/studio/bitmaps/tofront.xpm deleted file mode 100644 index f5ce7652a2..0000000000 --- a/utils/ogl/samples/studio/bitmaps/tofront.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *tofront_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808080", -"o c Yellow", -/* pixels */ -" ....... ", -" .XXXXX. ", -" .XX......... ", -" .XX.ooooooo. ", -" .XX.ooooooo. ", -" .XX.ooooooo. ", -" ....ooooooo. ", -" .ooooooo....", -" .ooooooo.XX.", -" .ooooooo.XX.", -" .........XX.", -" .XXXXX.", -" .XXXXX.", -" .......", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/undo.bmp b/utils/ogl/samples/studio/bitmaps/undo.bmp deleted file mode 100644 index 4ad80c772f..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/undo.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/bitmaps/undo.xpm b/utils/ogl/samples/studio/bitmaps/undo.xpm deleted file mode 100644 index 157a623e3c..0000000000 --- a/utils/ogl/samples/studio/bitmaps/undo.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *undo_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 16 15 3 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -/* pixels */ -"################", -"################", -"################", -"################", -"########....a###", -"##.###..####.a##", -"##..#.#######.##", -"##...########.##", -"##....#######.##", -"##.....#####.a##", -"###########a.###", -"################", -"################", -"################", -"################" -}; diff --git a/utils/ogl/samples/studio/bitmaps/vert.bmp b/utils/ogl/samples/studio/bitmaps/vert.bmp deleted file mode 100644 index dfd7b5cb53..0000000000 Binary files a/utils/ogl/samples/studio/bitmaps/vert.bmp and /dev/null differ 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 8a61076d3b..0000000000 Binary files a/utils/ogl/samples/studio/manual/BACK.GIF and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/BULLET.BMP b/utils/ogl/samples/studio/manual/BULLET.BMP deleted file mode 100644 index aad8fc793e..0000000000 Binary files a/utils/ogl/samples/studio/manual/BULLET.BMP and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/CONTENTS.GIF b/utils/ogl/samples/studio/manual/CONTENTS.GIF deleted file mode 100644 index 3dddfa3dd5..0000000000 Binary files a/utils/ogl/samples/studio/manual/CONTENTS.GIF and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/FORWARD.GIF b/utils/ogl/samples/studio/manual/FORWARD.GIF deleted file mode 100644 index 9c81e8c92f..0000000000 Binary files a/utils/ogl/samples/studio/manual/FORWARD.GIF and /dev/null differ 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 316d0d2a14..0000000000 Binary files a/utils/ogl/samples/studio/manual/UP.GIF and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/abacus.bmp b/utils/ogl/samples/studio/manual/abacus.bmp deleted file mode 100644 index 49bfa2a84e..0000000000 Binary files a/utils/ogl/samples/studio/manual/abacus.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/alignb.bmp b/utils/ogl/samples/studio/manual/alignb.bmp deleted file mode 100644 index 6cc2e1dee4..0000000000 Binary files a/utils/ogl/samples/studio/manual/alignb.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/alignl.bmp b/utils/ogl/samples/studio/manual/alignl.bmp deleted file mode 100644 index 30471101b1..0000000000 Binary files a/utils/ogl/samples/studio/manual/alignl.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/alignr.bmp b/utils/ogl/samples/studio/manual/alignr.bmp deleted file mode 100644 index 14a2f85241..0000000000 Binary files a/utils/ogl/samples/studio/manual/alignr.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/alignt.bmp b/utils/ogl/samples/studio/manual/alignt.bmp deleted file mode 100644 index 4505cbab56..0000000000 Binary files a/utils/ogl/samples/studio/manual/alignt.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/arrow.bmp b/utils/ogl/samples/studio/manual/arrow.bmp deleted file mode 100644 index d406ceb64f..0000000000 Binary files a/utils/ogl/samples/studio/manual/arrow.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/bitmap1.bmp b/utils/ogl/samples/studio/manual/bitmap1.bmp deleted file mode 100644 index 13e2170b73..0000000000 Binary files a/utils/ogl/samples/studio/manual/bitmap1.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/bitmap2.bmp b/utils/ogl/samples/studio/manual/bitmap2.bmp deleted file mode 100644 index 3d523b2de9..0000000000 Binary files a/utils/ogl/samples/studio/manual/bitmap2.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/brush.bmp b/utils/ogl/samples/studio/manual/brush.bmp deleted file mode 100644 index 0bf4ac5527..0000000000 Binary files a/utils/ogl/samples/studio/manual/brush.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/calc.bmp b/utils/ogl/samples/studio/manual/calc.bmp deleted file mode 100644 index 6eee9cce8c..0000000000 Binary files a/utils/ogl/samples/studio/manual/calc.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/chart.bmp b/utils/ogl/samples/studio/manual/chart.bmp deleted file mode 100644 index 54218089a9..0000000000 Binary files a/utils/ogl/samples/studio/manual/chart.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/colour.bmp b/utils/ogl/samples/studio/manual/colour.bmp deleted file mode 100644 index b4ffd72550..0000000000 Binary files a/utils/ogl/samples/studio/manual/colour.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/copy.bmp b/utils/ogl/samples/studio/manual/copy.bmp deleted file mode 100644 index 4551a06bfa..0000000000 Binary files a/utils/ogl/samples/studio/manual/copy.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/copysize.bmp b/utils/ogl/samples/studio/manual/copysize.bmp deleted file mode 100644 index 36060ad72b..0000000000 Binary files a/utils/ogl/samples/studio/manual/copysize.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/cut.bmp b/utils/ogl/samples/studio/manual/cut.bmp deleted file mode 100644 index 15554338a0..0000000000 Binary files a/utils/ogl/samples/studio/manual/cut.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/cutpoint.bmp b/utils/ogl/samples/studio/manual/cutpoint.bmp deleted file mode 100644 index 2f7dc780a2..0000000000 Binary files a/utils/ogl/samples/studio/manual/cutpoint.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/files.bmp b/utils/ogl/samples/studio/manual/files.bmp deleted file mode 100644 index 877e24afc7..0000000000 Binary files a/utils/ogl/samples/studio/manual/files.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/help.bmp b/utils/ogl/samples/studio/manual/help.bmp deleted file mode 100644 index 2d9e6922ca..0000000000 Binary files a/utils/ogl/samples/studio/manual/help.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/helpcs.bmp b/utils/ogl/samples/studio/manual/helpcs.bmp deleted file mode 100644 index 8837381681..0000000000 Binary files a/utils/ogl/samples/studio/manual/helpcs.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/horiz.bmp b/utils/ogl/samples/studio/manual/horiz.bmp deleted file mode 100644 index 58af34a727..0000000000 Binary files a/utils/ogl/samples/studio/manual/horiz.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/linearrow.bmp b/utils/ogl/samples/studio/manual/linearrow.bmp deleted file mode 100644 index 1fd21fb08a..0000000000 Binary files a/utils/ogl/samples/studio/manual/linearrow.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/magnify.bmp b/utils/ogl/samples/studio/manual/magnify.bmp deleted file mode 100644 index b237b31f8c..0000000000 Binary files a/utils/ogl/samples/studio/manual/magnify.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/mike.bmp b/utils/ogl/samples/studio/manual/mike.bmp deleted file mode 100644 index 0d736190e4..0000000000 Binary files a/utils/ogl/samples/studio/manual/mike.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/new.bmp b/utils/ogl/samples/studio/manual/new.bmp deleted file mode 100644 index d66feb2384..0000000000 Binary files a/utils/ogl/samples/studio/manual/new.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/newpoint.bmp b/utils/ogl/samples/studio/manual/newpoint.bmp deleted file mode 100644 index cb4f267afc..0000000000 Binary files a/utils/ogl/samples/studio/manual/newpoint.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/open.bmp b/utils/ogl/samples/studio/manual/open.bmp deleted file mode 100644 index bbf93fe033..0000000000 Binary files a/utils/ogl/samples/studio/manual/open.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/page.bmp b/utils/ogl/samples/studio/manual/page.bmp deleted file mode 100644 index 3dbd4b05b4..0000000000 Binary files a/utils/ogl/samples/studio/manual/page.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/paste.bmp b/utils/ogl/samples/studio/manual/paste.bmp deleted file mode 100644 index 564f514e0d..0000000000 Binary files a/utils/ogl/samples/studio/manual/paste.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/pointsize.bmp b/utils/ogl/samples/studio/manual/pointsize.bmp deleted file mode 100644 index 8a01c8a42c..0000000000 Binary files a/utils/ogl/samples/studio/manual/pointsize.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/preview.bmp b/utils/ogl/samples/studio/manual/preview.bmp deleted file mode 100644 index da1f4dbc4b..0000000000 Binary files a/utils/ogl/samples/studio/manual/preview.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/print.bmp b/utils/ogl/samples/studio/manual/print.bmp deleted file mode 100644 index 00319b55bb..0000000000 Binary files a/utils/ogl/samples/studio/manual/print.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/redo.bmp b/utils/ogl/samples/studio/manual/redo.bmp deleted file mode 100644 index 5877e34e00..0000000000 Binary files a/utils/ogl/samples/studio/manual/redo.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/save.bmp b/utils/ogl/samples/studio/manual/save.bmp deleted file mode 100644 index 56dd10b6e3..0000000000 Binary files a/utils/ogl/samples/studio/manual/save.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/screw.bmp b/utils/ogl/samples/studio/manual/screw.bmp deleted file mode 100644 index 7625c4e6b6..0000000000 Binary files a/utils/ogl/samples/studio/manual/screw.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/shapes.bmp b/utils/ogl/samples/studio/manual/shapes.bmp deleted file mode 100644 index 0e2e2ba043..0000000000 Binary files a/utils/ogl/samples/studio/manual/shapes.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/speaker.bmp b/utils/ogl/samples/studio/manual/speaker.bmp deleted file mode 100644 index a32ec48bba..0000000000 Binary files a/utils/ogl/samples/studio/manual/speaker.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/straight.bmp b/utils/ogl/samples/studio/manual/straight.bmp deleted file mode 100644 index 529366590b..0000000000 Binary files a/utils/ogl/samples/studio/manual/straight.bmp and /dev/null differ 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 1788be8a72..0000000000 Binary files a/utils/ogl/samples/studio/manual/telephon.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/texttool.bmp b/utils/ogl/samples/studio/manual/texttool.bmp deleted file mode 100644 index 09c989aac1..0000000000 Binary files a/utils/ogl/samples/studio/manual/texttool.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/therm.bmp b/utils/ogl/samples/studio/manual/therm.bmp deleted file mode 100644 index 00971562ed..0000000000 Binary files a/utils/ogl/samples/studio/manual/therm.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/tick.bmp b/utils/ogl/samples/studio/manual/tick.bmp deleted file mode 100644 index c0d66c9460..0000000000 Binary files a/utils/ogl/samples/studio/manual/tick.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/toback.bmp b/utils/ogl/samples/studio/manual/toback.bmp deleted file mode 100644 index d2e5efffce..0000000000 Binary files a/utils/ogl/samples/studio/manual/toback.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/tofront.bmp b/utils/ogl/samples/studio/manual/tofront.bmp deleted file mode 100644 index 5b17cc44c8..0000000000 Binary files a/utils/ogl/samples/studio/manual/tofront.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/tool1.bmp b/utils/ogl/samples/studio/manual/tool1.bmp deleted file mode 100644 index cb1760d285..0000000000 Binary files a/utils/ogl/samples/studio/manual/tool1.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/tool2.bmp b/utils/ogl/samples/studio/manual/tool2.bmp deleted file mode 100644 index a18faccff7..0000000000 Binary files a/utils/ogl/samples/studio/manual/tool2.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/tool3.bmp b/utils/ogl/samples/studio/manual/tool3.bmp deleted file mode 100644 index 6a49f459c3..0000000000 Binary files a/utils/ogl/samples/studio/manual/tool3.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/tool4.bmp b/utils/ogl/samples/studio/manual/tool4.bmp deleted file mode 100644 index 95c2061a90..0000000000 Binary files a/utils/ogl/samples/studio/manual/tool4.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/torch.bmp b/utils/ogl/samples/studio/manual/torch.bmp deleted file mode 100644 index f7f235c171..0000000000 Binary files a/utils/ogl/samples/studio/manual/torch.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/undo.bmp b/utils/ogl/samples/studio/manual/undo.bmp deleted file mode 100644 index 4ad80c772f..0000000000 Binary files a/utils/ogl/samples/studio/manual/undo.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/vert.bmp b/utils/ogl/samples/studio/manual/vert.bmp deleted file mode 100644 index dfd7b5cb53..0000000000 Binary files a/utils/ogl/samples/studio/manual/vert.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/wrench.bmp b/utils/ogl/samples/studio/manual/wrench.bmp deleted file mode 100644 index 8062f7d0c3..0000000000 Binary files a/utils/ogl/samples/studio/manual/wrench.bmp and /dev/null differ diff --git a/utils/ogl/samples/studio/manual/zoom.bmp b/utils/ogl/samples/studio/manual/zoom.bmp deleted file mode 100644 index c6a137ada5..0000000000 Binary files a/utils/ogl/samples/studio/manual/zoom.bmp and /dev/null differ 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 7cb092e04c..0000000000 Binary files a/utils/ogl/samples/studio/studio.ico and /dev/null differ 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 b447f545ed..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); - FILE* file = fopen(tempFile, "w"); - if (! file) - { - wxEndBusyCursor(); - delete database; - return FALSE; - } - - database->Write(file); - fclose(file); - 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 8a61076d3b..0000000000 Binary files a/utils/tex2rtf/docs/back.gif and /dev/null differ diff --git a/utils/tex2rtf/docs/books.gif b/utils/tex2rtf/docs/books.gif deleted file mode 100644 index 26ff394df6..0000000000 Binary files a/utils/tex2rtf/docs/books.gif and /dev/null differ diff --git a/utils/tex2rtf/docs/bullet.bmp b/utils/tex2rtf/docs/bullet.bmp deleted file mode 100644 index aad8fc793e..0000000000 Binary files a/utils/tex2rtf/docs/bullet.bmp and /dev/null differ diff --git a/utils/tex2rtf/docs/contents.gif b/utils/tex2rtf/docs/contents.gif deleted file mode 100644 index 3dddfa3dd5..0000000000 Binary files a/utils/tex2rtf/docs/contents.gif and /dev/null differ diff --git a/utils/tex2rtf/docs/fancyhea.sty b/utils/tex2rtf/docs/fancyhea.sty deleted file mode 100644 index 83914fa63c..0000000000 --- a/utils/tex2rtf/docs/fancyhea.sty +++ /dev/null @@ -1,145 +0,0 @@ -% fancyheadings.sty version 1.92 -% Fancy headers and footers. -% Piet van Oostrum, Dept of Computer Science, University of Utrecht -% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands -% Telephone: +31-30-531806. piet@cs.ruu.nl (mcvax!sun4nl!ruuinf!piet) -% Sep 16, 1994 -% version 1.4: Correction for use with \reversemargin -% Sep 29, 1994: -% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands -% Oct 4, 1994: -% version 1.6: Reset single spacing in headers/footers for use with -% setspace.sty or doublespace.sty -% Oct 4, 1994: -% version 1.7: changed \let\@mkboth\markboth to -% \def\@mkboth{\protect\markboth} to make it more robust -% Dec 5, 1994: -% version 1.8: corrections for amsbook/amsart: define \@chapapp and (more -% importantly) use the \chapter/sectionmark definitions from ps@headings if -% they exist (which should be true for all standard classes). -% May 31, 1995: -% version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage... -% construction in the doc did not work properly with the fancyplain style. -% June 1, 1995: -% version 1.91: The definition of \@mkboth wasn't restored on subsequent -% \pagestyle{fancy}'s. -% June 1, 1995: -% version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain} -% \pagestyle{fancy} would erroneously select the plain version. - -\def\lhead{\@ifnextchar[{\@xlhead}{\@ylhead}} -\def\@xlhead[#1]#2{\gdef\@elhead{#1}\gdef\@olhead{#2}} -\def\@ylhead#1{\gdef\@elhead{#1}\gdef\@olhead{#1}} - -\def\chead{\@ifnextchar[{\@xchead}{\@ychead}} -\def\@xchead[#1]#2{\gdef\@echead{#1}\gdef\@ochead{#2}} -\def\@ychead#1{\gdef\@echead{#1}\gdef\@ochead{#1}} - -\def\rhead{\@ifnextchar[{\@xrhead}{\@yrhead}} -\def\@xrhead[#1]#2{\gdef\@erhead{#1}\gdef\@orhead{#2}} -\def\@yrhead#1{\gdef\@erhead{#1}\gdef\@orhead{#1}} - -\def\lfoot{\@ifnextchar[{\@xlfoot}{\@ylfoot}} -\def\@xlfoot[#1]#2{\gdef\@elfoot{#1}\gdef\@olfoot{#2}} -\def\@ylfoot#1{\gdef\@elfoot{#1}\gdef\@olfoot{#1}} - -\def\cfoot{\@ifnextchar[{\@xcfoot}{\@ycfoot}} -\def\@xcfoot[#1]#2{\gdef\@ecfoot{#1}\gdef\@ocfoot{#2}} -\def\@ycfoot#1{\gdef\@ecfoot{#1}\gdef\@ocfoot{#1}} - -\def\rfoot{\@ifnextchar[{\@xrfoot}{\@yrfoot}} -\def\@xrfoot[#1]#2{\gdef\@erfoot{#1}\gdef\@orfoot{#2}} -\def\@yrfoot#1{\gdef\@erfoot{#1}\gdef\@orfoot{#1}} - -\newdimen\headrulewidth -\newdimen\footrulewidth -\newdimen\plainheadrulewidth -\newdimen\plainfootrulewidth -\newdimen\headwidth -\newif\if@fancyplain -\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi} - -% Command to reset various things in the headers: -% a.o. single spacing (taken from setspace.sty) -% and the catcode of ^^M (so that epsf files in the header work if a -% verbatim crosses a page boundary) -\def\fancy@reset{\restorecr - \def\baselinestretch{1}% - \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e - \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi% - \else% NFSS (2.09) present - \@newbaseline% - \fi} - -% Initialization of the head and foot text. - -\headrulewidth 0.4pt -\footrulewidth\z@ -\plainheadrulewidth\z@ -\plainfootrulewidth\z@ - -\lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}} -% i.e. empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages -\chead{} -\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}} -% i.e. empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages -\lfoot{} -\cfoot{\rm\thepage} % page number -\rfoot{} - -% Put together a header or footer given the left, center and -% right text, fillers at left and right and a rule. -% The \lap commands put the text into an hbox of zero size, -% so overlapping text does not generate an errormessage. - -\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\hbox -{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill -\parbox[b]{\headwidth}{\centering#3\strut}\hfill -\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5} - - -\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\footrule -\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill -\parbox[t]{\headwidth}{\centering#3\strut}\hfill -\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5} - -\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi -\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}} - -\def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi -\vskip-0.3\normalbaselineskip\vskip-\footrulewidth -\hrule\@width\headwidth\@height\footrulewidth\vskip0.3\normalbaselineskip}} - -\def\ps@fancy{% -\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook -\@ifundefined{chapter}{\def\sectionmark##1{\markboth -{\uppercase{\ifnum \c@secnumdepth>\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 9c81e8c92f..0000000000 Binary files a/utils/tex2rtf/docs/forward.gif and /dev/null differ 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 5dacb0924a..0000000000 Binary files a/utils/tex2rtf/docs/screen.bmp and /dev/null differ diff --git a/utils/tex2rtf/docs/screen.gif b/utils/tex2rtf/docs/screen.gif deleted file mode 100644 index be8d929bb0..0000000000 Binary files a/utils/tex2rtf/docs/screen.gif and /dev/null differ diff --git a/utils/tex2rtf/docs/screen.shg b/utils/tex2rtf/docs/screen.shg deleted file mode 100644 index 5ec685cf9d..0000000000 Binary files a/utils/tex2rtf/docs/screen.shg and /dev/null differ 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 2a17268454..0000000000 Binary files a/utils/tex2rtf/docs/tex2rtf.wmf and /dev/null differ diff --git a/utils/tex2rtf/docs/texhelp.sty b/utils/tex2rtf/docs/texhelp.sty deleted file mode 100644 index df04b586d7..0000000000 --- a/utils/tex2rtf/docs/texhelp.sty +++ /dev/null @@ -1,282 +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} (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 316d0d2a14..0000000000 Binary files a/utils/tex2rtf/docs/up.gif and /dev/null differ diff --git a/utils/tex2rtf/docs/verbatim.sty b/utils/tex2rtf/docs/verbatim.sty deleted file mode 100644 index 462c3299b0..0000000000 --- a/utils/tex2rtf/docs/verbatim.sty +++ /dev/null @@ -1,212 +0,0 @@ -%% -%% This is file `verbatim.sty' generated -%% on <1991/9/3> 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 cf1e148734..0000000000 Binary files a/utils/tex2rtf/src/books.bmp and /dev/null differ 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 b68125570f..0000000000 Binary files a/utils/tex2rtf/src/tex2rtf.ico and /dev/null differ diff --git a/utils/tex2rtf/src/tex2rtf.ini b/utils/tex2rtf/src/tex2rtf.ini deleted file mode 100644 index 48800d37db..0000000000 --- a/utils/tex2rtf/src/tex2rtf.ini +++ /dev/null @@ -1,17 +0,0 @@ -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -; RTF only -headerRule = yes -footerRule = yes -useHeadingStyles = yes -listItemIndent=40 -truncateFilenames = FALSE -winHelpContents = yes -winHelpVersion = 4 ; 3 for Windows 3.x, 4 for Windows 95 -generateHPJ = true -\overview [2] { \image{}{books.bmp}\helpref{#1}{#2}} -; Some stuff \ No newline at end of file diff --git a/utils/tex2rtf/src/tex2rtf.rc b/utils/tex2rtf/src/tex2rtf.rc deleted file mode 100644 index b97ff28e70..0000000000 --- a/utils/tex2rtf/src/tex2rtf.rc +++ /dev/null @@ -1,4 +0,0 @@ -aaa ICON "tex2rtf.ico" -tex2rtf ICON "tex2rtf.ico" -#include "wx/msw/wx.rc" - diff --git a/utils/tex2rtf/src/tex2rtf.xpm b/utils/tex2rtf/src/tex2rtf.xpm deleted file mode 100644 index 20e566f048..0000000000 --- a/utils/tex2rtf/src/tex2rtf.xpm +++ /dev/null @@ -1,42 +0,0 @@ -/* XPM */ -static char *tex2rtf_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 32 32 3 1", -/* colors */ -". c #000000", -"# c #c0c0c0", -"a c #ffffff", -/* pixels */ -"aaaaaaaaaaaaaaaaaaaaa.aaaaaaa..a", -"aaaaaaaaaaaaaaaaaaaaa..aaaaa.aa.", -"aaaaaaaaaaaaaaaaaaaa#.a.aaaa.aa.", -"aaaaaaaaaaaaaaaaaaaa#..a.aaaaa.a", -"aaaaaaaaaaaaaaaaaaaa#...a.aaaa.a", -"aaaaaaaaaaaaaaaaa........a.aaaaa", -"aaaaaaaaaaaaa....aaaa.....a.aa.a", -"aaaaaaaaaaa..aaaa..........a.aaa", -"aaaaaaaaa..aa...............a.aa", -"aaaaaaaa.aa..................a.a", -"aaaaaaa.a.....................#a", -"aaaaaa.a.....................###", -"aaaaa.a.....................###a", -"aaaa.......................###aa", -"aaaa..............###.....###aaa", -"aaa...........#######....###aaaa", -"aaa.........#####aaa#...###aaaaa", -"aa........###aaaaaaaa..a##aaaaaa", -"aa.......##aaaaaaaaaa.aa#aaaaaaa", -"aa......##aaaaaaaaaaaaaaaaaaaaaa", -"a......##aaaaaaaaaaaaaaaaaaaaaaa", -"a.....##aaaaaaaaaaaaaaaaaaaaaaaa", -"a.....#aaaaaaaaaaaaaaaaaaaaaaaaa", -"a....#aaaaaaaaaaaaaaaaaaaaaaaaaa", -"a....aaaa.aaaaaaaaaaaaaaaaaaaaaa", -"a......a.a.a...aaa..a..aaaaaaaaa", -"a...a.aa...aa.aaaaa.a.aaaaaaaaaa", -"a...a.a.aaa.a.....aa.aaaaaaaaaaa", -"aa.aa.aa.aaaa.a.aaa.a.aaaaaaaaaa", -"aa.a.....aaaa.a..a..a..aaaaaaaaa", -"aaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaa", -"aaaaaaaaaaaaaa....aaaaaaaaaaaaaa" -}; diff --git a/utils/tex2rtf/src/texutils.cpp b/utils/tex2rtf/src/texutils.cpp deleted file mode 100644 index 5746339422..0000000000 --- a/utils/tex2rtf/src/texutils.cpp +++ /dev/null @@ -1,1648 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: texutils.cpp -// Purpose: Miscellaneous utilities -// 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 - -#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/wxMMedia2/Makefile.in b/utils/wxMMedia2/Makefile.in deleted file mode 100644 index e9c58e47e9..0000000000 --- a/utils/wxMMedia2/Makefile.in +++ /dev/null @@ -1,3 +0,0 @@ -all: - cd lib; make - cd sample; make diff --git a/utils/wxMMedia2/README b/utils/wxMMedia2/README deleted file mode 100644 index 05faac97fe..0000000000 --- a/utils/wxMMedia2/README +++ /dev/null @@ -1,8 +0,0 @@ -To build Makefile with automake: - in the top source directory type: - automake utils/wxMMedia2/Makefile - in the top build directory type: - mkdir -p utils/wxMMedia2 - CONFIG_FILES="utils/wxMMedia2/Makefile utils/wxMMedia2/lib/Makefile utils/wxMMedia2/sample/Makefile" CONFIG_HEADERS= ./config.status - -and then you can run make in utils/wxMMedia2. diff --git a/utils/wxMMedia2/lib/Makefile.in b/utils/wxMMedia2/lib/Makefile.in deleted file mode 100644 index ee1d2fb46a..0000000000 --- a/utils/wxMMedia2/lib/Makefile.in +++ /dev/null @@ -1,26 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for thread example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. - -VPATH= $(top_srcdir)/utils/wxMMedia2/lib - -LIBTARGET=libwxmmedia2 - -OBJECTS=sndbase.o sndcodec.o sndpcm.o sndcpcm.o sndulaw.o sndfile.o sndoss.o\ - sndaiff.o sndwav.o \ - g711.o g721.o g723_24.o g723_40.o g72x.o \ - cdbase.o cdunix.o \ - vidbase.o vidxanm.o - -include $(top_builddir)/src/makelib.env - diff --git a/utils/wxMMedia2/lib/cdbase.cpp b/utils/wxMMedia2/lib/cdbase.cpp deleted file mode 100644 index 0f570e2eba..0000000000 --- a/utils/wxMMedia2/lib/cdbase.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// --------------------------------------------------------------------------- -// Name: sndsnd.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1999 -// Copyright: (C) 1997, 1998, 1999 Guilhem Lavaux -// License: wxWindows license -// --------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation -#endif -#include "wx/wxprec.h" -#include "cdbase.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxCDAudio, wxObject) -#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/wxMMedia2/lib/cdbase.h b/utils/wxMMedia2/lib/cdbase.h deleted file mode 100644 index a46821b38c..0000000000 --- a/utils/wxMMedia2/lib/cdbase.h +++ /dev/null @@ -1,74 +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 - -#include "wx/wxprec.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 - // track: track to get length - wxCDtime GetTrackTime(wxUint8 track) const; - // Returns the position of the specified track - // 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 - virtual bool Play(const wxCDtime& beg_play, const wxCDtime& end_play) = 0; - // Play audio from the specified to the end of the CD audio - 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/wxMMedia2/lib/cdunix.cpp b/utils/wxMMedia2/lib/cdunix.cpp deleted file mode 100644 index 73563d8182..0000000000 --- a/utils/wxMMedia2/lib/cdunix.cpp +++ /dev/null @@ -1,203 +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 "cdbase.h" -#include "cdunix.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCDAudioLinux, wxCDAudio) -#endif - -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/wxMMedia2/lib/cdunix.h b/utils/wxMMedia2/lib/cdunix.h deleted file mode 100644 index 1758b1d9c3..0000000000 --- a/utils/wxMMedia2/lib/cdunix.h +++ /dev/null @@ -1,60 +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 "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/wxMMedia2/lib/cdwin.cpp b/utils/wxMMedia2/lib/cdwin.cpp deleted file mode 100644 index 8ac8c3a243..0000000000 --- a/utils/wxMMedia2/lib/cdwin.cpp +++ /dev/null @@ -1,202 +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 -#include "wx/wxprec.h" -#define WXMMEDIA_INTERNAL -#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; - 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; -} - -const wxCDAudio::CDtoc& wxCDAudioWin::GetToc(void) -{ - return *m_toc; -} diff --git a/utils/wxMMedia2/lib/cdwin.h b/utils/wxMMedia2/lib/cdwin.h deleted file mode 100644 index 0c8fa5fd95..0000000000 --- a/utils/wxMMedia2/lib/cdwin.h +++ /dev/null @@ -1,62 +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 - -#include "wx/wxprec.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 const CDtoc& GetToc(void); - /// - virtual inline bool Ok(void) const { return m_ok; } -protected: - void PrepareToc(); -}; - -#endif diff --git a/utils/wxMMedia2/lib/converter.def b/utils/wxMMedia2/lib/converter.def deleted file mode 100644 index dc8074b06e..0000000000 --- a/utils/wxMMedia2/lib/converter.def +++ /dev/null @@ -1,110 +0,0 @@ -#define DEFINE_CONV_8(name) \ -static void Convert_##name##_8(const char *buf_in, char *buf_out, size_t len) \ -{\ - wxUint16 val; \ -\ - while (len > 0) { \ - val = *buf_in++; \ - len--; - -#if SWAP_BYTES==0 - -#define DEFINE_CONV_16(name) \ -static void Convert_##name##_16_no(const char *buf_in, char *buf_out, size_t len) \ -{\ - wxUint16 val; \ -\ - while (len > 0) { \ - val = *(wxUint16 *)(buf_in); \ - buf_in += 2; \ - len -= 2; - -#else - -#define DEFINE_CONV_16(name) \ -static void Convert_##name##_16_yes(const char *buf_in, char *buf_out, size_t len) \ -{\ - wxUint16 val; \ -\ - while (len > 0) { \ - val = *(wxUint16 *)(buf_in); \ - val = wxUINT16_SWAP_ALWAYS(val); \ - buf_in += 2; \ - len -= 2; - -#endif - -#define END_CONV } } - -#define PUT16 *((wxUint16 *)buf_out) = val, buf_out += 2; -#define PUT16_SWAP *((wxUint16 *)buf_out) = wxUINT16_SWAP_ALWAYS(val), buf_out += 2; -#define PUT8 *buf_out++ = val; -#define CHANGE16_SIGN val ^= 0x8000; -#define CHANGE8_SIGN val ^= 0x80; -#define REDUCE16_TO_8 val /= 256; -#define AUGMENT8_TO_16 val *= 256; - -DEFINE_CONV_16(16to8) -REDUCE16_TO_8 -PUT8 -END_CONV - -DEFINE_CONV_16(16to8_U2S) -CHANGE16_SIGN -REDUCE16_TO_8 -PUT8 -END_CONV - -DEFINE_CONV_16(U2S) -CHANGE16_SIGN -PUT16 -END_CONV - -DEFINE_CONV_16(U2S_SWAP) -CHANGE16_SIGN -PUT16_SWAP -END_CONV - -#if SWAP_BYTES == 0 - -DEFINE_CONV_16(SWAP) -PUT16_SWAP -END_CONV - -DEFINE_CONV_8(U2S) -CHANGE8_SIGN -PUT8 -END_CONV - -DEFINE_CONV_8(8to16) -AUGMENT8_TO_16 -PUT16 -END_CONV - -DEFINE_CONV_8(8to16_SWAP) -AUGMENT8_TO_16 -PUT16_SWAP -END_CONV - -DEFINE_CONV_8(8to16_U2S) -CHANGE8_SIGN -AUGMENT8_TO_16 -PUT16 -END_CONV - -DEFINE_CONV_8(8to16_U2S_SWAP) -CHANGE8_SIGN -AUGMENT8_TO_16 -PUT16_SWAP -END_CONV - -#endif - -#undef DEFINE_CONV_16 -#undef DEFINE_CONV_8 -#undef END_CONV -#undef CHANGE16_SIGN -#undef CHANGE8_SIGN -#undef PUT16_SWAP -#undef PUT16 -#undef PUT8 diff --git a/utils/wxMMedia2/lib/g711.cpp b/utils/wxMMedia2/lib/g711.cpp deleted file mode 100644 index 99fb3cafc0..0000000000 --- a/utils/wxMMedia2/lib/g711.cpp +++ /dev/null @@ -1,285 +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 - */ - -#include - -/* - * 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/wxMMedia2/lib/g721.cpp b/utils/wxMMedia2/lib/g721.cpp deleted file mode 100644 index 309d039068..0000000000 --- a/utils/wxMMedia2/lib/g721.cpp +++ /dev/null @@ -1,175 +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 - */ - -#include - -/* - * 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/wxMMedia2/lib/g723_24.cpp b/utils/wxMMedia2/lib/g723_24.cpp deleted file mode 100644 index 3193ad427e..0000000000 --- a/utils/wxMMedia2/lib/g723_24.cpp +++ /dev/null @@ -1,159 +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 -#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/wxMMedia2/lib/g723_40.cpp b/utils/wxMMedia2/lib/g723_40.cpp deleted file mode 100644 index 141fe7b67d..0000000000 --- a/utils/wxMMedia2/lib/g723_40.cpp +++ /dev/null @@ -1,179 +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 -#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/wxMMedia2/lib/g72x.cpp b/utils/wxMMedia2/lib/g72x.cpp deleted file mode 100644 index ff571bdad7..0000000000 --- a/utils/wxMMedia2/lib/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/wxMMedia2/lib/g72x.h b/utils/wxMMedia2/lib/g72x.h deleted file mode 100644 index dbfd64fd5b..0000000000 --- a/utils/wxMMedia2/lib/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/wxMMedia2/lib/makefile.vc b/utils/wxMMedia2/lib/makefile.vc deleted file mode 100644 index 12736d67ca..0000000000 --- a/utils/wxMMedia2/lib/makefile.vc +++ /dev/null @@ -1,106 +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) -MMDIR = $(WXDIR)\utils\wxMMedia2 -THISDIR = $(MMDIR)\lib -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib - -LIBTARGET=$(WXDIR)\lib\mmedia2.lib -OBJECTS = cdbase.obj cdwin.obj g711.obj g721.obj g723_24.obj \ - g723_40.obj g72x.obj sndbase.obj sndcodec.obj sndpcm.obj \ - sndcpcm.obj sndulaw.obj sndfile.obj sndwav.obj sndaiff.obj sndwin.obj \ - vidbase.obj - -!include $(WXDIR)\src\makelib.vc - -cdbase.obj: cdbase.h cdbase.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -cdwin.obj: cdwin.h cdwin.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -g711.obj: g72x.h g711.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -g721.obj: g72x.h g721.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -g723_24.obj: g72x.h g723_24.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -g723_40.obj: g72x.h g723_40.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndbase.obj: sndbase.h sndbase.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndcodec.obj: sndcodec.h sndcodec.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndpcm.obj: sndpcm.h sndpcm.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndcpcm.obj: sndcpcm.h converter.def sndcpcm.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndulaw.obj: sndulaw.h g72x.h sndulaw.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndfile.obj: sndfile.h sndfile.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndwav.obj: sndwav.h sndwav.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndaiff.obj: sndaiff.h sndaiff.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -sndwin.obj: sndwin.h sndwin.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -vidbase.obj: vidbase.h vidbase.$(SRCSUFF) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< diff --git a/utils/wxMMedia2/lib/sndaiff.cpp b/utils/wxMMedia2/lib/sndaiff.cpp deleted file mode 100644 index a65f8756e9..0000000000 --- a/utils/wxMMedia2/lib/sndaiff.cpp +++ /dev/null @@ -1,135 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndaiff.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndaiff.cpp" -#endif - -#include - -#include -#include -#include -#include "sndbase.h" -#include "sndcodec.h" -#include "sndfile.h" -#include "sndpcm.h" -#include "sndaiff.h" - -#define BUILD_SIGNATURE(a,b,c,d) (((wxUint32)a) | (((wxUint32)b) << 8) | (((wxUint32)c) << 16) | (((wxUint32)d) << 24)) - -#define FORM_SIGNATURE BUILD_SIGNATURE('F','O','R','M') -#define AIFF_SIGNATURE BUILD_SIGNATURE('A','I','F','F') -#define AIFC_SIGNATURE BUILD_SIGNATURE('A','I','F','C') -#define COMM_SIGNATURE BUILD_SIGNATURE('C','O','M','M') -#define SSND_SIGNATURE BUILD_SIGNATURE('S','S','N','D') - -wxSoundAiff::wxSoundAiff(wxInputStream& stream, wxSoundStream& io_sound) - : wxSoundFileStream(stream, io_sound) -{ -} - -wxSoundAiff::wxSoundAiff(wxOutputStream& stream, wxSoundStream& io_sound) - : wxSoundFileStream(stream, io_sound) -{ -} - -wxSoundAiff::~wxSoundAiff() -{ -} - -#define FAIL_WITH(condition, err) if (condition) { m_snderror = err; return FALSE; } - -bool wxSoundAiff::PrepareToPlay() -{ - wxDataInputStream data(*m_input); - wxUint32 signature, len, ssnd; - bool end_headers; - - if (!m_input) { - m_snderror = wxSOUND_INVSTRM; - return FALSE; - } - - data.BigEndianOrdered(TRUE); - - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - FAIL_WITH(wxUINT32_SWAP_ON_BE(signature) != FORM_SIGNATURE, wxSOUND_INVSTRM); - // "FORM" - - len = data.Read32(); - FAIL_WITH(m_input->LastRead() != 4, wxSOUND_INVSTRM); - // dummy len - - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - FAIL_WITH( - wxUINT32_SWAP_ON_BE(signature) != AIFF_SIGNATURE && - wxUINT32_SWAP_ON_BE(signature) != AIFC_SIGNATURE, wxSOUND_INVSTRM); - // "AIFF" / "AIFC" - - end_headers = FALSE; - while (!end_headers) { - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - - len = data.Read32(); - FAIL_WITH(m_input->LastRead() != 4, wxSOUND_INVSTRM); - - switch (wxUINT32_SWAP_ON_BE(signature)) { - case COMM_SIGNATURE: { // "COMM" - wxUint16 channels, bps; - wxUint32 num_samples; - double srate; - wxSoundFormatPcm sndformat; - - data >> channels >> num_samples >> bps >> srate; - - sndformat.SetSampleRate((wxUint32) srate); - sndformat.SetBPS(bps); - sndformat.SetChannels(channels); - sndformat.Signed(TRUE); - sndformat.SetOrder(wxBIG_ENDIAN); - - if (!SetSoundFormat(sndformat)) - return FALSE; - m_input->SeekI(len-18, wxFromCurrent); - break; - } - case SSND_SIGNATURE: { // "SSND" - data >> ssnd; - // m_input->SeekI(4, wxFromCurrent); // Pass an INT32 - // m_input->SeekI(len-4, wxFromCurrent); // Pass the rest - m_input->SeekI(ssnd + 4, wxFromCurrent); - end_headers = TRUE; - break; - } - default: - m_input->SeekI(len, wxFromCurrent); - break; - } - } - return TRUE; -} - -bool wxSoundAiff::PrepareToRecord(unsigned long time) -{ - return FALSE; -} - -bool wxSoundAiff::FinishRecording() -{ - return FALSE; -} - -size_t wxSoundAiff::GetData(void *buffer, size_t len) -{ - return m_input->Read(buffer, len).LastRead(); -} - -size_t wxSoundAiff::PutData(const void *buffer, size_t len) -{ - return m_output->Write(buffer, len).LastWrite(); -} diff --git a/utils/wxMMedia2/lib/sndaiff.h b/utils/wxMMedia2/lib/sndaiff.h deleted file mode 100644 index b2ab01ccb5..0000000000 --- a/utils/wxMMedia2/lib/sndaiff.h +++ /dev/null @@ -1,39 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndaiff.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDAIFF_H -#define _WX_SNDAIFF_H - -#ifdef __GNUG__ -#pragma interface "sndaiff.h" -#endif - -#include -#include "sndbase.h" -#include "sndcodec.h" -#include "sndfile.h" - -// -// AIFF codec -// - -class wxSoundAiff: public wxSoundFileStream { - public: - wxSoundAiff(wxInputStream& stream, wxSoundStream& io_sound); - wxSoundAiff(wxOutputStream& stream, wxSoundStream& io_sound); - ~wxSoundAiff(); - - protected: - bool PrepareToPlay(); - bool PrepareToRecord(unsigned long time); - bool FinishRecording(); - - size_t GetData(void *buffer, size_t len); - size_t PutData(const void *buffer, size_t len); -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndbase.cpp b/utils/wxMMedia2/lib/sndbase.cpp deleted file mode 100644 index d5e6e8f72a..0000000000 --- a/utils/wxMMedia2/lib/sndbase.cpp +++ /dev/null @@ -1,110 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndbase.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndbase.cpp" -#endif - -#include -#include "sndbase.h" - - -// --------------------------------------------------------------------------- -// wxSoundFormatBase -// --------------------------------------------------------------------------- - -wxSoundFormatBase::wxSoundFormatBase() -{ -} - -wxSoundFormatBase::~wxSoundFormatBase() -{ -} - -wxSoundFormatBase *wxSoundFormatBase::Clone() const -{ - return NULL; -} - -bool wxSoundFormatBase::operator!=(const wxSoundFormatBase& frmt2) const -{ - return (GetType() != frmt2.GetType()); -} - -// --------------------------------------------------------------------------- -// wxSoundStream -// --------------------------------------------------------------------------- - -wxSoundStream::wxSoundStream() -{ - int i; - - m_sndformat = NULL; - m_handler = NULL; - m_snderror = wxSOUND_NOERR; - m_lastcount = 0; - for (i=0;i<2;i++) - m_callback[i] = NULL; -} - -wxSoundStream::~wxSoundStream() -{ - if (m_sndformat) - delete m_sndformat; -} - -// SetSoundFormat returns TRUE when the format can be handled. -bool wxSoundStream::SetSoundFormat(const wxSoundFormatBase& format) -{ - if (m_sndformat) - delete m_sndformat; - - m_sndformat = format.Clone(); - return TRUE; -} - -// Register a callback for a specified async event. -void wxSoundStream::Register(int evt, wxSoundCallback cbk, char *cdata) -{ - int c; - - switch (evt) { - case wxSOUND_INPUT: - c = 0; - break; - case wxSOUND_OUTPUT: - c = 1; - break; - default: - return; - } - m_callback[c] = cbk; - m_cdata[c] = cdata; -} - -void wxSoundStream::OnSoundEvent(int evt) -{ - int c; - - if (m_handler) { - m_handler->OnSoundEvent(evt); - return; - } - - switch (evt) { - case wxSOUND_INPUT: - c = 0; - break; - case wxSOUND_OUTPUT: - c = 1; - break; - default: - return; - } - if (m_callback[c]) - m_callback[c](this, evt, m_cdata[c]); -} diff --git a/utils/wxMMedia2/lib/sndbase.h b/utils/wxMMedia2/lib/sndbase.h deleted file mode 100644 index 26fae17890..0000000000 --- a/utils/wxMMedia2/lib/sndbase.h +++ /dev/null @@ -1,125 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndbase.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDBASE_H -#define _WX_SNDBASE_H - -#ifdef __GNUG__ -#pragma interface "sndbase.h" -#endif - -#include - -enum { - wxSOUND_INPUT = 1, - wxSOUND_OUTPUT = 2, - wxSOUND_DUPLEX = wxSOUND_INPUT | wxSOUND_OUTPUT, -}; - -typedef enum { - wxSOUND_NOFORMAT, - wxSOUND_PCM, - wxSOUND_ULAW -} wxSoundFormatType; - -typedef enum { - wxSOUND_NOERR, - wxSOUND_IOERR, - wxSOUND_INVFRMT, - wxSOUND_INVDEV, - wxSOUND_NOTEXACT, - wxSOUND_INVSTRM, - wxSOUND_NOCODEC, - wxSOUND_MEMERR -} wxSoundError; - -class WXDLLEXPORT wxSoundStream; - -typedef void (*wxSoundCallback)(wxSoundStream *stream, int evt, - char *cdata); - -// -// Base class for sound format specification -// - -class WXDLLEXPORT wxSoundFormatBase { - public: - wxSoundFormatBase(); - virtual ~wxSoundFormatBase(); - - virtual wxSoundFormatType GetType() const { return wxSOUND_NOFORMAT; } - virtual wxSoundFormatBase *Clone() const; - - virtual wxUint32 GetTimeFromBytes(wxUint32 bytes) const = 0; - virtual wxUint32 GetBytesFromTime(wxUint32 time) const = 0; - - virtual bool operator !=(const wxSoundFormatBase& frmt2) const; -}; - -// -// Base class for sound streams -// - -class wxSoundStream { - public: - wxSoundStream(); - virtual ~wxSoundStream(); - - // Reads "len" bytes from the sound stream. - virtual wxSoundStream& Read(void *buffer, size_t len) = 0; - // Writes "len" byte to the sound stream. - virtual wxSoundStream& Write(const void *buffer, size_t len) = 0; - // Returns the best size for IO calls - virtual wxUint32 GetBestSize() const { return 1024; } - - // SetSoundFormat returns TRUE when the format can be handled. - virtual bool SetSoundFormat(const wxSoundFormatBase& format); - - // GetSoundFormat returns the current sound format. - wxSoundFormatBase& GetSoundFormat() const { return *m_sndformat; } - - // Register a callback for a specified async event. - void Register(int evt, wxSoundCallback cbk, char *cdata); - - // Starts the async notifier. - virtual bool StartProduction(int evt) = 0; - // Stops the async notifier. - virtual bool StopProduction() = 0; - // Sets the event handler: if it is non-null, all events are routed to it. - void SetEventHandler(wxSoundStream *handler) { m_handler = handler; } - - // Initializes the full duplex mode. - virtual void SetDuplexMode(bool duplex) = 0; - - wxSoundError GetError() const { return m_snderror; } - size_t GetLastAccess() const { return m_lastcount; } - - protected: - // Current sound format - wxSoundFormatBase *m_sndformat; - - // Last error - wxSoundError m_snderror; - - // Last access - size_t m_lastcount; - - // Event handler - wxSoundStream *m_handler; - - wxSoundCallback m_callback[2]; - char *m_cdata[2]; - - protected: - // Do the async stuff. - void DoAsyncStuff(int evt); - - // Handles event - virtual void OnSoundEvent(int evt); -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndcodec.cpp b/utils/wxMMedia2/lib/sndcodec.cpp deleted file mode 100644 index a21281b7b5..0000000000 --- a/utils/wxMMedia2/lib/sndcodec.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndcodec.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndcodec.cpp" -#endif - -#include -#include "sndbase.h" -#include "sndcodec.h" - -wxSoundStreamCodec::wxSoundStreamCodec(wxSoundStream& snd_io) - : m_sndio(&snd_io) -{ -} - -wxSoundStreamCodec::~wxSoundStreamCodec() -{ -} - -bool wxSoundStreamCodec::StartProduction(int evt) -{ - return m_sndio->StartProduction(evt); -} - -bool wxSoundStreamCodec::StopProduction() -{ - return m_sndio->StopProduction(); -} - -void wxSoundStreamCodec::SetDuplexMode(bool duplex) -{ - m_sndio->SetDuplexMode(duplex); -} diff --git a/utils/wxMMedia2/lib/sndcodec.h b/utils/wxMMedia2/lib/sndcodec.h deleted file mode 100644 index 209dc91da2..0000000000 --- a/utils/wxMMedia2/lib/sndcodec.h +++ /dev/null @@ -1,31 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndcodec.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDCODEC_H -#define _WX_SNDCODEC_H - -#ifdef __GNUG__ -#pragma interface "sndcodec.h" -#endif - -#include "sndbase.h" - -class wxSoundStreamCodec: public wxSoundStream { - public: - wxSoundStreamCodec(wxSoundStream& snd_io); - ~wxSoundStreamCodec(); - - bool StartProduction(int evt); - bool StopProduction(); - - void SetDuplexMode(bool duplex); - - protected: - wxSoundStream *m_sndio; -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndcpcm.cpp b/utils/wxMMedia2/lib/sndcpcm.cpp deleted file mode 100644 index 8f54607ec1..0000000000 --- a/utils/wxMMedia2/lib/sndcpcm.cpp +++ /dev/null @@ -1,175 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndcpcm.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndcpcm.cpp" -#endif - -#include -#include "sndbase.h" -#include "sndpcm.h" -#include "sndcpcm.h" - -wxSoundStreamPcm::wxSoundStreamPcm(wxSoundStream& sndio) - : wxSoundStreamCodec(sndio) -{ - m_function_in = NULL; - m_function_out = NULL; -} - -wxSoundStreamPcm::~wxSoundStreamPcm() -{ -} - - -#define SWAP_BYTES 0 -#include "converter.def" -#undef SWAP_BYTES - -#define SWAP_BYTES 1 -#include "converter.def" -#undef SWAP_BYTES - -wxSoundStreamPcm::ConverterType s_convert_16_to_8[] = { - Convert_16to8_16_no, - Convert_16to8_U2S_16_no, - NULL, - NULL, - Convert_16to8_U2S_16_yes, - Convert_16to8_16_yes, -}; - -wxSoundStreamPcm::ConverterType s_convert_16[] = { - NULL, - Convert_U2S_16_no, - Convert_U2S_SWAP_16_no, - Convert_U2S_SWAP_16_yes, - Convert_U2S_16_yes, - Convert_SWAP_16_no -}; - -wxSoundStreamPcm::ConverterType s_convert_8[] = { - NULL, - Convert_U2S_8, - Convert_U2S_8, - Convert_U2S_8, - Convert_U2S_8, - NULL -}; - -#define CONVERTER 0 -#define CONVERTER_SIGN 1 -#define CONVERTER_SIGN_SWAP 2 -#define CONVERTER_SWAP_SIGN_SWAP 3 -#define CONVERTER_SWAP_SIGN 4 -#define CONVERTER_SWAP 5 - -wxSoundStream& wxSoundStreamPcm::Read(void *buffer, size_t len) -{ - if (!m_function_in) { - m_sndio->Read(buffer, len); - m_lastcount = m_sndio->GetLastAccess(); - m_snderror = m_sndio->GetError(); - return *this; - } - - // TODO - m_sndio->Read(buffer, len); - m_lastcount = m_sndio->GetLastAccess(); - m_snderror = m_sndio->GetError(); - return *this; -} - -wxSoundStream& wxSoundStreamPcm::Write(const void *buffer, size_t len) -{ - char *tmp_buf; - size_t len2; - - if (!m_function_out) - return m_sndio->Write(buffer, len); - - len2 = (m_16_to_8) ? len / 2 : len; - - tmp_buf = new char[len2]; - m_function_out((const char *)buffer, tmp_buf, len); - m_sndio->Write(tmp_buf, len); - delete[] tmp_buf; - - m_lastcount = (m_16_to_8) ? - (m_sndio->GetLastAccess() * 2) : m_sndio->GetLastAccess(); - - return *this; -} - -bool wxSoundStreamPcm::SetSoundFormat(const wxSoundFormatBase& format) -{ - wxSoundFormatBase *new_format; - wxSoundFormatPcm *pcm_format, *pcm_format2; - ConverterType *current_table; - int index; - bool change_sign; - - if (m_sndio->SetSoundFormat(format)) { - m_function_out = NULL; - m_function_in = NULL; - return TRUE; - } - if (format.GetType() != wxSOUND_PCM) { - m_snderror = wxSOUND_INVFRMT; - return FALSE; - } - if (m_sndformat) - delete m_sndformat; - - new_format = m_sndio->GetSoundFormat().Clone(); - pcm_format = (wxSoundFormatPcm *)&format; - pcm_format2 = (wxSoundFormatPcm *)new_format; - - m_16_to_8 = FALSE; - if (pcm_format->GetBPS() == 16 && pcm_format2->GetBPS() == 8) { - m_16_to_8 = TRUE; - current_table = s_convert_16_to_8; - } else if (pcm_format->GetBPS() == 16) - current_table = s_convert_16; - else - current_table = s_convert_8; - - change_sign = (pcm_format2->Signed() != pcm_format->Signed()); - -#define MY_ORDER wxBYTE_ORDER -#if wxBYTE_ORDER == wxLITTLE_ENDIAN -#define OTHER_ORDER wxBIG_ENDIAN -#else -#define OTHER_ORDER wxLITTLE_ENDIAN -#endif - - if (pcm_format->GetOrder() == OTHER_ORDER && - pcm_format2->GetOrder() == OTHER_ORDER && change_sign) - index = CONVERTER_SWAP_SIGN_SWAP; - - else if (pcm_format->GetOrder() == OTHER_ORDER && - pcm_format2->GetOrder() == MY_ORDER && change_sign) - index = CONVERTER_SWAP_SIGN; - - else if (pcm_format->GetOrder() == MY_ORDER && - pcm_format->GetOrder() == OTHER_ORDER && change_sign) - index = CONVERTER_SIGN_SWAP; - - else if (!change_sign && - pcm_format->GetOrder() != pcm_format2->GetOrder()) - index = CONVERTER_SWAP; - - else - index = CONVERTER; - - m_function_out = current_table[index]; -// m_function_in = current_table[index+1]; - - m_sndio->SetSoundFormat(*new_format); - m_sndformat = new_format; - return TRUE; -} diff --git a/utils/wxMMedia2/lib/sndcpcm.h b/utils/wxMMedia2/lib/sndcpcm.h deleted file mode 100644 index e2a5db1fef..0000000000 --- a/utils/wxMMedia2/lib/sndcpcm.h +++ /dev/null @@ -1,40 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndcpcm.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDCPCM_H -#define _WX_SNDCPCM_H - -#ifdef __GNUG__ -#pragma interface "sndcpcm.h" -#endif - -#include -#include "sndcodec.h" - -// -// PCM converter class -// - -class wxSoundStreamPcm: public wxSoundStreamCodec { - public: - typedef void (*ConverterType)(const char *buf_in, char *buf_out, size_t len); - - wxSoundStreamPcm(wxSoundStream& sndio); - ~wxSoundStreamPcm(); - - wxSoundStream& Read(void *buffer, size_t len); - wxSoundStream& Write(const void *buffer, size_t len); - - bool SetSoundFormat(const wxSoundFormatBase& format); - - protected: - ConverterType m_function_out, m_function_in; - - bool m_16_to_8; -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndesd.cpp b/utils/wxMMedia2/lib/sndesd.cpp deleted file mode 100644 index 79cb1f10b3..0000000000 --- a/utils/wxMMedia2/lib/sndesd.cpp +++ /dev/null @@ -1,209 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndesd.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndesd.cpp" -#endif - -#include -#include -#include -#include -#include -#include -#include "sndbase.h" -#include "sndesd.h" -#include "sndpcm.h" -#ifdef __WXGTK__ -#include -#endif - -#define MY_ESD_NAME "wxWindows/wxSoundStreamESD" - -wxSoundStreamESD::wxSoundStreamESD(const wxString& hostname) -{ - wxSoundFormatPcm pcm_default; - - m_fd = esd_monitor_stream(ESD_MONO | ESD_BITS8 | ESD_RECORD, 22050, - hostname.mb_str(), MY_ESD_NAME); - - if (m_fd == -1) { - m_snderror = wxSOUND_INVDEV; - return; - } - - esd_close(m_fd); - - m_hostname = hostname; - - SetSoundFormat(pcm_default); - - m_snderror = wxSOUND_NOERR; - m_esd_stop = TRUE; -} - -wxSoundStreamESD::~wxSoundStreamESD() -{ - if (m_fd > 0) - esd_close(m_fd); -} - -wxSoundStream& wxSoundStreamESD::Read(void *buffer, size_t len) -{ - int ret; - - m_lastcount = (size_t)ret = read(m_fd, buffer, len); - - if (ret < 0) - m_snderror = wxSOUND_IOERR; - else - m_snderror = wxSOUND_NOERR; - - return *this; -} - -wxSoundStream& wxSoundStreamESD::Write(const void *buffer, size_t len) -{ - int ret; - - m_lastcount = (size_t)ret = write(m_fd, buffer, len); - - if (ret < 0) - m_snderror = wxSOUND_IOERR; - else - m_snderror = wxSOUND_NOERR; - - return *this; -} - -bool wxSoundStreamESD::SetSoundFormat(const wxSoundFormatBase& format) -{ - wxSoundFormatPcm *pcm_format; - - if (format.GetType() != wxSOUND_PCM) { - m_snderror = wxSOUND_INVFRMT; - return FALSE; - } - - if (m_fd == -1) { - m_snderror = wxSOUND_INVDEV; - return FALSE; - } - - if (m_sndformat) - delete m_sndformat; - - m_sndformat = format.Clone(); - if (!m_sndformat) { - m_snderror = wxSOUND_MEMERR; - return FALSE; - } - pcm_format = (wxSoundFormatPcm *)m_sndformat; - - // Detect the best format - DetectBest(pcm_format); - - m_snderror = wxSOUND_NOERR; - if (*pcm_format != format) { - m_snderror = wxSOUND_NOTEXACT; - return FALSE; - } - return TRUE; -} - -#ifdef __WXGTK__ -static void _wxSound_OSS_CBack(gpointer data, int source, - GdkInputCondition condition) -{ - wxSoundStreamESD *esd = (wxSoundStreamESD *)data; - - switch (condition) { - case GDK_INPUT_READ: - esd->WakeUpEvt(wxSOUND_INPUT); - break; - case GDK_INPUT_WRITE: - esd->WakeUpEvt(wxSOUND_OUTPUT); - break; - default: - break; - } -} -#endif - -void wxSoundStreamESD::WakeUpEvt(int evt) -{ - OnSoundEvent(evt); -} - -bool wxSoundStreamESD::StartProduction(int evt) -{ - wxSoundFormatPcm *pcm; - int flag = 0; - - if (!m_esd_stop) - StopProduction(); - - pcm = (wxSoundFormatPcm *)m_sndformat; - - flag |= (pcm->GetBPS() == 16) ? ESD_BITS16 : ESD_BITS8; - flag |= (pcm->GetChannels() == 2) ? ESD_STEREO : ESD_MONO; - - if (evt == wxSOUND_OUTPUT) { - flag |= ESD_PLAY | ESD_STREAM; - m_fd = esd_play_stream(flag, pcm->GetSampleRate(), m_hostname.mb_str(), - MY_ESD_NAME); - } else { - flag |= ESD_RECORD | ESD_STREAM; - m_fd = esd_record_stream(flag, pcm->GetSampleRate(), m_hostname.mb_str(), - MY_ESD_NAME); - } - -#ifdef __WXGTK__ - if (evt == wxSOUND_OUTPUT) - m_tag = gdk_input_add(m_fd, GDK_INPUT_WRITE, _wxSound_OSS_CBack, (gpointer)this); - else - m_tag = gdk_input_add(m_fd, GDK_INPUT_READ, _wxSound_OSS_CBack, (gpointer)this); -#endif - - m_esd_stop = FALSE; - - return TRUE; -} - -bool wxSoundStreamESD::StopProduction() -{ - if (m_esd_stop) - return FALSE; - - gdk_input_remove(m_tag); - esd_close(m_fd); - m_esd_stop = TRUE; - return TRUE; -} - -// -// Detect the closest format (The best). -// -void wxSoundStreamESD::DetectBest(wxSoundFormatPcm *pcm) -{ - wxSoundFormatPcm best_pcm; - - // We change neither the number of channels nor the sample rate - - best_pcm.SetSampleRate(pcm->GetSampleRate()); - best_pcm.SetChannels(pcm->GetChannels()); - - // It supports 16 bits - if (pcm->GetBPS() == 16) - best_pcm.SetBPS(16); - - best_pcm.SetOrder(wxLITTLE_ENDIAN); - best_pcm.Signed(TRUE); - - // Finally recopy the new format - *pcm = best_pcm; -} diff --git a/utils/wxMMedia2/lib/sndesd.h b/utils/wxMMedia2/lib/sndesd.h deleted file mode 100644 index 56e44f88d2..0000000000 --- a/utils/wxMMedia2/lib/sndesd.h +++ /dev/null @@ -1,50 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndesd.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDESD_H -#define _WX_SNDESD_H - -#ifdef __GNUG__ -#pragma interface "sndesd.h" -#endif - -#include -#include "sndbase.h" -#include "sndpcm.h" - -// -// ESD output class -// - -class wxSoundStreamESD : public wxSoundStream { - public: - wxSoundStreamESD(const wxString& hostname = _T("localhost")); - ~wxSoundStreamESD(); - - wxSoundStream& Read(void *buffer, size_t len); - wxSoundStream& Write(const void *buffer, size_t len); - - bool SetSoundFormat(const wxSoundFormatBase& format); - - bool StartProduction(int evt); - bool StopProduction(); - - void SetDuplexMode(bool duplex) {} - - // You should not call this. - void WakeUpEvt(int evt); - protected: - int m_fd; - int m_tag; - bool m_esd_stop; - wxString m_hostname; - - private: - void DetectBest(wxSoundFormatPcm *pcm); -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndfile.cpp b/utils/wxMMedia2/lib/sndfile.cpp deleted file mode 100644 index 6525d2bbc6..0000000000 --- a/utils/wxMMedia2/lib/sndfile.cpp +++ /dev/null @@ -1,300 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndfile.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#include - -#ifndef WX_PRECOMP -#include -#endif - -#include "sndbase.h" -#include "sndcodec.h" -#include "sndfile.h" -#include "sndcpcm.h" -#include "sndulaw.h" - -// -------------------------------------------------------------------------- -// Sound codec router -// -------------------------------------------------------------------------- - -wxSoundRouterStream::wxSoundRouterStream(wxSoundStream& sndio) - : wxSoundStreamCodec(sndio) -{ - m_router = NULL; -} - -wxSoundRouterStream::~wxSoundRouterStream() -{ - if (m_router) - delete m_router; -} - -wxSoundStream& wxSoundRouterStream::Read(void *buffer, size_t len) -{ - if (m_router) { - m_router->Read(buffer, len); - m_snderror = m_router->GetError(); - m_lastcount = m_router->GetLastAccess(); - } else { - m_sndio->Read(buffer, len); - m_snderror = m_sndio->GetError(); - m_lastcount = m_sndio->GetLastAccess(); - } - return *this; -} - -wxSoundStream& wxSoundRouterStream::Write(const void *buffer, size_t len) -{ - if (m_router) { - m_router->Write(buffer, len); - m_snderror = m_router->GetError(); - m_lastcount = m_router->GetLastAccess(); - } else { - m_sndio->Write(buffer, len); - m_snderror = m_sndio->GetError(); - m_lastcount = m_sndio->GetLastAccess(); - } - return *this; -} - -bool wxSoundRouterStream::SetSoundFormat(const wxSoundFormatBase& format) -{ - if (m_router) - delete m_router; - - if (m_sndio->SetSoundFormat(format)) { - wxSoundStream::SetSoundFormat(m_sndio->GetSoundFormat()); - return TRUE; - } - - switch(format.GetType()) { - case wxSOUND_NOFORMAT: - return FALSE; - case wxSOUND_PCM: - m_router = new wxSoundStreamPcm(*m_sndio); - m_router->SetSoundFormat(format); - break; - case wxSOUND_ULAW: - m_router = new wxSoundStreamUlaw(*m_sndio); - m_router->SetSoundFormat(format); - break; - } - wxSoundStream::SetSoundFormat(m_router->GetSoundFormat()); - return TRUE; -} - -bool wxSoundRouterStream::StartProduction(int evt) -{ - if (!m_router) { - if (m_sndio->StartProduction(evt)) - return TRUE; - - m_snderror = m_sndio->GetError(); - m_lastcount = m_sndio->GetLastAccess(); - return FALSE; - } - - if (m_router->StartProduction(evt)) - return TRUE; - - m_snderror = m_router->GetError(); - m_lastcount = m_router->GetLastAccess(); - return FALSE; -} - -bool wxSoundRouterStream::StopProduction() -{ - if (!m_router) { - if (m_sndio->StopProduction()) - return TRUE; - - m_snderror = m_sndio->GetError(); - m_lastcount = m_sndio->GetLastAccess(); - return FALSE; - } - - if (m_router->StopProduction()) - return TRUE; - - m_snderror = m_router->GetError(); - m_lastcount = m_router->GetLastAccess(); - return FALSE; -} - - -// -------------------------------------------------------------------------- -// wxSoundFileStream: generic reader -// -------------------------------------------------------------------------- - -wxSoundFileStream::wxSoundFileStream(wxInputStream& stream, - wxSoundStream& io_sound) - : m_codec(io_sound), m_sndio(&io_sound), - m_input(&stream), m_output(NULL), m_state(wxSOUND_FILE_STOPPED) -{ -} - -wxSoundFileStream::wxSoundFileStream(wxOutputStream& stream, - wxSoundStream& io_sound) - : m_codec(io_sound), m_sndio(&io_sound), - m_input(NULL), m_output(&stream), m_state(wxSOUND_FILE_STOPPED) -{ -} - -wxSoundFileStream::~wxSoundFileStream() -{ - if (m_state != wxSOUND_FILE_STOPPED) - Stop(); -} - -bool wxSoundFileStream::Play() -{ - if (m_state != wxSOUND_FILE_STOPPED) - return FALSE; - - if (!PrepareToPlay()) - return FALSE; - - if (!StartProduction(wxSOUND_OUTPUT)) - return FALSE; - - m_state = wxSOUND_FILE_PLAYING; - return TRUE; -} - -bool wxSoundFileStream::Record(unsigned long time) -{ - if (m_state != wxSOUND_FILE_STOPPED) - return FALSE; - - if (!PrepareToRecord(time)) - return FALSE; - - m_len = m_sndformat->GetBytesFromTime(time); - - if (!StartProduction(wxSOUND_INPUT)) - return FALSE; - - m_state = wxSOUND_FILE_RECORDING; - return TRUE; -} - -bool wxSoundFileStream::Stop() -{ - if (m_state == wxSOUND_FILE_STOPPED) - return FALSE; - - if (!StopProduction()) - return FALSE; - - if (m_state == wxSOUND_FILE_RECORDING) - if (!FinishRecording()) { - m_state = wxSOUND_FILE_STOPPED; - return FALSE; - } - - // TODO reset counter - m_state = wxSOUND_FILE_STOPPED; - return TRUE; -} - -bool wxSoundFileStream::Pause() -{ - if (m_state == wxSOUND_FILE_PAUSED || m_state == wxSOUND_FILE_STOPPED) - return FALSE; - - if (!StopProduction()) - return FALSE; - - m_oldstate = m_state; - m_state = wxSOUND_FILE_PAUSED; - return TRUE; -} - -bool wxSoundFileStream::Resume() -{ - if (m_state == wxSOUND_FILE_PLAYING || m_state == wxSOUND_FILE_RECORDING || - m_state == wxSOUND_FILE_STOPPED) - return FALSE; - - if (!StartProduction( (m_oldstate == wxSOUND_FILE_PLAYING) ? - wxSOUND_OUTPUT : wxSOUND_INPUT)) - return FALSE; - - m_state = m_oldstate; - - return TRUE; -} - -wxSoundStream& wxSoundFileStream::Read(void *buffer, size_t len) -{ - m_lastcount = GetData(buffer, len); - return *this; -} - -wxSoundStream& wxSoundFileStream::Write(const void *buffer, size_t len) -{ - m_lastcount = PutData(buffer, len); - return *this; -} - -void wxSoundFileStream::SetDuplexMode(bool duplex) -{ -} - -bool wxSoundFileStream::StartProduction(int evt) -{ - m_sndio->SetEventHandler(this); - - if (!m_codec.StartProduction(evt)) - return FALSE; - - return TRUE; -} - -bool wxSoundFileStream::StopProduction() -{ - return m_codec.StopProduction(); -} - -void wxSoundFileStream::OnSoundEvent(int evt) -{ - size_t len = m_sndio->GetBestSize(); - char *buffer; - - buffer = new char[m_sndio->GetBestSize()]; - wxSoundStream::OnSoundEvent(evt); - - switch(evt) { - case wxSOUND_INPUT: - if (len > m_len) - len = m_len; - - len = m_codec.Read(buffer, len).GetLastAccess(); - PutData(buffer, len); - m_len -= len; - if (m_len == 0) { - Stop(); - return; - } - break; - case wxSOUND_OUTPUT: - len = GetData(buffer, len); - if (len == 0) { - Stop(); - return; - } - m_codec.Write(buffer, len); - break; - } - delete[] buffer; -} - -bool wxSoundFileStream::SetSoundFormat(const wxSoundFormatBase& format) -{ - wxSoundStream::SetSoundFormat(format); - return m_codec.SetSoundFormat(format); -} diff --git a/utils/wxMMedia2/lib/sndfile.h b/utils/wxMMedia2/lib/sndfile.h deleted file mode 100644 index f08a1db83a..0000000000 --- a/utils/wxMMedia2/lib/sndfile.h +++ /dev/null @@ -1,99 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndfile.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDFILE_H -#define _WX_SNDFILE_H - -#include -#include -#include -#include "sndbase.h" -#include "sndcodec.h" - -#define wxSOUND_INFINITE_TIME ((unsigned long)-1) - -// -// Codec router class -// - -class WXDLLEXPORT wxSoundRouterStream: public wxSoundStreamCodec { - public: - wxSoundRouterStream(wxSoundStream& sndio); - ~wxSoundRouterStream(); - - wxSoundStream& Read(void *buffer, size_t len); - wxSoundStream& Write(const void *buffer, size_t len); - - bool SetSoundFormat(const wxSoundFormatBase& format); - - bool StartProduction(int evt); - bool StopProduction(); - - protected: - wxSoundStream *m_router; -}; - -typedef enum { - wxSOUND_FILE_STOPPED, - wxSOUND_FILE_PAUSED, - wxSOUND_FILE_PLAYING, - wxSOUND_FILE_RECORDING -} wxSoundFileState; - -// -// Base class for file coders/decoders -// - -class wxSoundFileStream: public wxSoundStream { - public: - wxSoundFileStream(wxInputStream& stream, wxSoundStream& io_sound); - wxSoundFileStream(wxOutputStream& stream, wxSoundStream& io_sound); - ~wxSoundFileStream(); - - bool Play(); - bool Record(unsigned long time); - bool Stop(); - bool Pause(); - bool Resume(); - - bool IsStopped() const { return m_state == wxSOUND_FILE_STOPPED; } - - bool StartProduction(int evt); - bool StopProduction(); - - unsigned long GetLength() const; - - wxSoundStream& Read(void *buffer, size_t len); - wxSoundStream& Write(const void *buffer, size_t len); - - void SetDuplexMode(bool duplex); - - bool SetSoundFormat(const wxSoundFormatBase& format); - - virtual bool CanRead() { return TRUE; } - - protected: - wxSoundRouterStream m_codec; - wxSoundStream *m_sndio; - wxInputStream *m_input; - wxOutputStream *m_output; - - wxSoundFileState m_state, m_oldstate; - wxUint32 m_len; - - protected: - virtual bool PrepareToPlay() = 0; - virtual bool PrepareToRecord(unsigned long time) = 0; - virtual bool FinishRecording() = 0; - - virtual size_t GetData(void *buffer, size_t len) = 0; - virtual size_t PutData(const void *buffer, size_t len) = 0; - - void OnSoundEvent(int evt); -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndoss.cpp b/utils/wxMMedia2/lib/sndoss.cpp deleted file mode 100644 index 8b890a02e8..0000000000 --- a/utils/wxMMedia2/lib/sndoss.cpp +++ /dev/null @@ -1,324 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndoss.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndoss.cpp" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include "sndbase.h" -#include "sndoss.h" -#include "sndpcm.h" -#ifdef __WXGTK__ -#include -#endif - -wxSoundStreamOSS::wxSoundStreamOSS(const wxString& dev_name) -{ - wxSoundFormatPcm pcm_default; - - m_fd = open(dev_name.mb_str(), O_RDWR); - - if (m_fd == -1) { - m_snderror = wxSOUND_INVDEV; - return; - } - - m_devname = dev_name; - - wxSoundStreamOSS::SetSoundFormat(pcm_default); - - ioctl(m_fd, SNDCTL_DSP_GETBLKSIZE, &m_bufsize); - - m_snderror = wxSOUND_NOERR; - - close(m_fd); - - m_oss_stop = TRUE; -} - -wxSoundStreamOSS::~wxSoundStreamOSS() -{ - if (m_fd > 0) - close(m_fd); -} - -wxUint32 wxSoundStreamOSS::GetBestSize() const -{ - return m_bufsize; -} - -wxSoundStream& wxSoundStreamOSS::Read(void *buffer, size_t len) -{ - int ret; - - m_lastcount = (size_t)ret = read(m_fd, buffer, len); - - if (ret < 0) - m_snderror = wxSOUND_IOERR; - else - m_snderror = wxSOUND_NOERR; - - return *this; -} - -wxSoundStream& wxSoundStreamOSS::Write(const void *buffer, size_t len) -{ - int ret; - - m_lastcount = (size_t)ret = write(m_fd, buffer, len); - - if (ret < 0) - m_snderror = wxSOUND_IOERR; - else - m_snderror = wxSOUND_NOERR; - - return *this; -} - -bool wxSoundStreamOSS::SetSoundFormat(const wxSoundFormatBase& format) -{ - int tmp; - wxSoundFormatPcm *pcm_format; - - if (format.GetType() != wxSOUND_PCM) { - m_snderror = wxSOUND_INVFRMT; - return FALSE; - } - - if (m_fd == -1) { - m_snderror = wxSOUND_INVDEV; - return FALSE; - } - - if (m_sndformat) - delete m_sndformat; - - m_sndformat = format.Clone(); - if (!m_sndformat) { - m_snderror = wxSOUND_MEMERR; - return FALSE; - } - pcm_format = (wxSoundFormatPcm *)m_sndformat; - - // Set the sample rate field. - tmp = pcm_format->GetSampleRate(); - ioctl(m_fd, SNDCTL_DSP_SPEED, &tmp); - - pcm_format->SetSampleRate(tmp); - - // Detect the best format - DetectBest(pcm_format); - SetupFormat(pcm_format); - - tmp = pcm_format->GetChannels(); - ioctl(m_fd, SNDCTL_DSP_CHANNELS, &tmp); - pcm_format->SetChannels(tmp); - - m_snderror = wxSOUND_NOERR; - if (*pcm_format != format) { - m_snderror = wxSOUND_NOTEXACT; - return FALSE; - } - return TRUE; -} - -bool wxSoundStreamOSS::SetupFormat(wxSoundFormatPcm *pcm_format) -{ - int tmp; - - switch(pcm_format->GetBPS()) { - case 8: - if (pcm_format->Signed()) - tmp = AFMT_S8; - else - tmp = AFMT_U8; - break; - case 16: - switch (pcm_format->GetOrder()) { - case wxBIG_ENDIAN: - if (pcm_format->Signed()) - tmp = AFMT_S16_BE; - else - tmp = AFMT_U16_BE; - break; - case wxLITTLE_ENDIAN: - if (pcm_format->Signed()) - tmp = AFMT_S16_LE; - else - tmp = AFMT_U16_LE; - break; - } - break; - } - - ioctl(m_fd, SNDCTL_DSP_SETFMT, &tmp); - - // Demangling. - switch (tmp) { - case AFMT_U8: - pcm_format->SetBPS(8); - pcm_format->Signed(FALSE); - break; - case AFMT_S8: - pcm_format->SetBPS(8); - pcm_format->Signed(TRUE); - break; - case AFMT_U16_LE: - pcm_format->SetBPS(16); - pcm_format->Signed(FALSE); - pcm_format->SetOrder(wxLITTLE_ENDIAN); - break; - case AFMT_U16_BE: - pcm_format->SetBPS(16); - pcm_format->Signed(FALSE); - pcm_format->SetOrder(wxBIG_ENDIAN); - break; - case AFMT_S16_LE: - pcm_format->SetBPS(16); - pcm_format->Signed(TRUE); - pcm_format->SetOrder(wxLITTLE_ENDIAN); - break; - case AFMT_S16_BE: - pcm_format->SetBPS(16); - pcm_format->Signed(TRUE); - pcm_format->SetOrder(wxBIG_ENDIAN); - break; - } - return TRUE; -} - -#ifdef __WXGTK__ -static void _wxSound_OSS_CBack(gpointer data, int source, - GdkInputCondition condition) -{ - wxSoundStreamOSS *oss = (wxSoundStreamOSS *)data; - - switch (condition) { - case GDK_INPUT_READ: - oss->WakeUpEvt(wxSOUND_INPUT); - break; - case GDK_INPUT_WRITE: - oss->WakeUpEvt(wxSOUND_OUTPUT); - break; - default: - break; - } -} -#endif - -void wxSoundStreamOSS::WakeUpEvt(int evt) -{ - OnSoundEvent(evt); -} - -bool wxSoundStreamOSS::StartProduction(int evt) -{ - wxSoundFormatBase *old_frmt; - - if (!m_oss_stop) - StopProduction(); - - old_frmt = m_sndformat->Clone(); - - if (evt == wxSOUND_OUTPUT) - m_fd = open(m_devname.mb_str(), O_WRONLY); - else if (evt == wxSOUND_INPUT) - m_fd = open(m_devname.mb_str(), O_RDONLY); - - if (m_fd == -1) { - m_snderror = wxSOUND_INVDEV; - return FALSE; - } - - SetSoundFormat(*old_frmt); - delete old_frmt; - -#ifdef __WXGTK__ - int trig; - - if (evt == wxSOUND_OUTPUT) { - m_tag = gdk_input_add(m_fd, GDK_INPUT_WRITE, _wxSound_OSS_CBack, (gpointer)this); - trig = PCM_ENABLE_OUTPUT; - } else { - m_tag = gdk_input_add(m_fd, GDK_INPUT_READ, _wxSound_OSS_CBack, (gpointer)this); - trig = PCM_ENABLE_INPUT; - } -#else - while (!m_oss_stop) - OnSoundEvent(evt); -#endif - - ioctl(m_fd, SNDCTL_DSP_SETTRIGGER, &trig); - - m_oss_stop = FALSE; - - return TRUE; -} - -bool wxSoundStreamOSS::StopProduction() -{ - if (m_oss_stop) - return FALSE; - -#ifdef __WXGTK__ - gdk_input_remove(m_tag); -#endif - - close(m_fd); - m_oss_stop = TRUE; - return TRUE; -} - -// -// Detect the closest format (The best). -// -void wxSoundStreamOSS::DetectBest(wxSoundFormatPcm *pcm) -{ -#define MASK_16BITS (AFMT_S16_LE | AFMT_S16_BE | AFMT_U16_LE | AFMT_U16_BE) - - int fmt_mask; - wxSoundFormatPcm best_pcm; - - // We change neither the number of channels nor the sample rate - - best_pcm.SetSampleRate(pcm->GetSampleRate()); - best_pcm.SetChannels(pcm->GetChannels()); - - // Get the supported format by the sound card - ioctl(m_fd, SNDCTL_DSP_GETFMTS, &fmt_mask); - - // It supports 16 bits - if (pcm->GetBPS() == 16 && ((fmt_mask & MASK_16BITS) != 0)) - best_pcm.SetBPS(16); - - // It supports big endianness - if (pcm->GetOrder() == wxBIG_ENDIAN && ((fmt_mask & (AFMT_S16_BE | AFMT_U16_BE)) != 0)) - best_pcm.SetOrder(wxBIG_ENDIAN); - - // It supports little endianness - if (pcm->GetOrder() == wxLITTLE_ENDIAN && ((fmt_mask & (AFMT_S16_LE | AFMT_U16_LE)) != 0)) - best_pcm.SetOrder(wxLITTLE_ENDIAN); - - // It supports signed samples - if (pcm->Signed() && ((fmt_mask & (AFMT_S16_LE | AFMT_S16_BE | AFMT_S8)) != 0)) - best_pcm.Signed(TRUE); - - // It supports unsigned samples - if (!pcm->Signed() && ((fmt_mask & (AFMT_U16_LE | AFMT_U16_BE | AFMT_U8)) != 0)) - best_pcm.Signed(FALSE); - - // Finally recopy the new format - *pcm = best_pcm; -} diff --git a/utils/wxMMedia2/lib/sndoss.h b/utils/wxMMedia2/lib/sndoss.h deleted file mode 100644 index 1fa28c0b4e..0000000000 --- a/utils/wxMMedia2/lib/sndoss.h +++ /dev/null @@ -1,53 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndoss.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDOSS_H -#define _WX_SNDOSS_H - -#ifdef __GNUG__ -#pragma interface "sndoss.h" -#endif - -#include -#include "sndbase.h" -#include "sndpcm.h" - -// -// OSS output class -// - -class wxSoundStreamOSS : public wxSoundStream { - public: - wxSoundStreamOSS(const wxString& dev_name = _T("/dev/dsp")); - ~wxSoundStreamOSS(); - - wxSoundStream& Read(void *buffer, size_t len); - wxSoundStream& Write(const void *buffer, size_t len); - wxUint32 GetBestSize() const; - - bool SetSoundFormat(const wxSoundFormatBase& format); - - bool StartProduction(int evt); - bool StopProduction(); - - void SetDuplexMode(bool duplex) {} - - // You should not call this. - void WakeUpEvt(int evt); - protected: - int m_fd; - wxUint32 m_bufsize; - int m_tag; - bool m_oss_stop; - wxString m_devname; - - private: - bool SetupFormat(wxSoundFormatPcm *pcm); - void DetectBest(wxSoundFormatPcm *pcm); -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndpcm.cpp b/utils/wxMMedia2/lib/sndpcm.cpp deleted file mode 100644 index 8e3225c1f7..0000000000 --- a/utils/wxMMedia2/lib/sndpcm.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndpcm.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndpcm.cpp" -#endif - -#include -#include "sndbase.h" -#include "sndpcm.h" - -wxSoundFormatPcm::wxSoundFormatPcm(wxUint32 srate, wxUint8 bps, - wxUint16 nchannels, bool sign, - int order) - : m_srate(srate), m_bps(bps), m_nchan(nchannels), m_order(order), - m_signed(sign) -{ -} - -wxSoundFormatPcm::~wxSoundFormatPcm() -{ -} - -void wxSoundFormatPcm::SetSampleRate(wxUint32 srate) -{ - m_srate = srate; -} - -void wxSoundFormatPcm::SetBPS(wxUint8 bps) -{ - m_bps = bps; -} - -void wxSoundFormatPcm::SetChannels(wxUint16 nchannels) -{ - m_nchan = nchannels; -} - -void wxSoundFormatPcm::SetOrder(int order) -{ - m_order = order; -} - -void wxSoundFormatPcm::Signed(bool sign) -{ - m_signed = sign; -} - -wxSoundFormatBase *wxSoundFormatPcm::Clone() const -{ - wxSoundFormatPcm *new_pcm; - - new_pcm = new wxSoundFormatPcm(); - new_pcm->m_srate = m_srate; - new_pcm->m_bps = m_bps; - new_pcm->m_nchan = m_nchan; - new_pcm->m_order = m_order; - new_pcm->m_signed= m_signed; - - return new_pcm; -} - -wxUint32 wxSoundFormatPcm::GetTimeFromBytes(wxUint32 bytes) const -{ - return (bytes / (m_srate * (m_bps / 8) * m_nchan)); -} - -wxUint32 wxSoundFormatPcm::GetBytesFromTime(wxUint32 time) const -{ - return (time * (m_srate * (m_bps / 8) * m_nchan)); -} - -bool wxSoundFormatPcm::operator!=(const wxSoundFormatBase& format) const -{ - wxSoundFormatPcm *format2 = (wxSoundFormatPcm *)&format; - - if (format.GetType() != wxSOUND_PCM) - return TRUE; - - return ( (m_srate != format2->m_srate) || - (m_bps != format2->m_bps) || - (m_nchan != format2->m_nchan) || - (m_order != format2->m_order) || - (m_signed != format2->m_signed) ); -} diff --git a/utils/wxMMedia2/lib/sndpcm.h b/utils/wxMMedia2/lib/sndpcm.h deleted file mode 100644 index cae649c29c..0000000000 --- a/utils/wxMMedia2/lib/sndpcm.h +++ /dev/null @@ -1,57 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndpcm.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDPCM_H -#define _WX_SNDPCM_H - -#ifdef __GNUG__ -#pragma interface "sndpcm.h" -#endif - -#include -#include "sndbase.h" - -// -// PCM specification class -// - -class wxSoundFormatPcm : public wxSoundFormatBase { - public: - wxSoundFormatPcm(wxUint32 srate = 22500, wxUint8 bps = 8, - wxUint16 channels = 2, bool sign = TRUE, - int order = wxLITTLE_ENDIAN); - ~wxSoundFormatPcm(); - - void SetSampleRate(wxUint32 srate); - void SetBPS(wxUint8 bps); - void SetChannels(wxUint16 nchannels); - void SetOrder(int order); - void Signed(bool sign); - - wxUint32 GetSampleRate() const { return m_srate; } - wxUint8 GetBPS() const { return m_bps; } - wxUint16 GetChannels() const { return m_nchan; } - int GetOrder() const { return m_order; } - bool Signed() const { return m_signed; } - - wxSoundFormatType GetType() const { return wxSOUND_PCM; } - wxSoundFormatBase *Clone() const; - - wxUint32 GetTimeFromBytes(wxUint32 bytes) const; - wxUint32 GetBytesFromTime(wxUint32 time) const; - - bool operator!=(const wxSoundFormatBase& frmt2) const; - - protected: - wxUint32 m_srate; - wxUint8 m_bps; - wxUint16 m_nchan; - int m_order; - bool m_signed; -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndulaw.cpp b/utils/wxMMedia2/lib/sndulaw.cpp deleted file mode 100644 index 3142d173c5..0000000000 --- a/utils/wxMMedia2/lib/sndulaw.cpp +++ /dev/null @@ -1,135 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndulaw.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndulaw.cpp" -#endif - -#include -#include "sndbase.h" -#include "sndfile.h" -#include "sndpcm.h" -#include "sndulaw.h" -#include "g72x.h" - -// -------------------------------------------------------------------------- -// wxSoundFormatUlaw -// -------------------------------------------------------------------------- - -wxSoundFormatUlaw::wxSoundFormatUlaw() - : m_srate(22050) -{ -} - -wxSoundFormatUlaw::~wxSoundFormatUlaw() -{ -} - -void wxSoundFormatUlaw::SetSampleRate(wxUint32 srate) -{ - m_srate = srate; -} - -wxUint32 wxSoundFormatUlaw::GetSampleRate() const -{ - return m_srate; -} - -wxSoundFormatBase *wxSoundFormatUlaw::Clone() const -{ - wxSoundFormatUlaw *ulaw = new wxSoundFormatUlaw(); - - ulaw->m_srate = m_srate; - return ulaw; -} - -wxUint32 wxSoundFormatUlaw::GetTimeFromBytes(wxUint32 bytes) const -{ - return (bytes / m_srate); -} - -wxUint32 wxSoundFormatUlaw::GetBytesFromTime(wxUint32 time) const -{ - return time * m_srate; -} - -bool wxSoundFormatUlaw::operator !=(const wxSoundFormatBase& frmt2) const -{ - wxSoundFormatUlaw *ulaw = (wxSoundFormatUlaw *)&frmt2; - - if (frmt2.GetType() != wxSOUND_ULAW) - return TRUE; - - return (ulaw->m_srate != m_srate); -} - -// -------------------------------------------------------------------------- -// wxSoundStreamUlaw -// -------------------------------------------------------------------------- -wxSoundStreamUlaw::wxSoundStreamUlaw(wxSoundStream& sndio) - : wxSoundStreamCodec(sndio) -{ - // PCM converter - m_router = new wxSoundRouterStream(sndio); -} - -wxSoundStreamUlaw::~wxSoundStreamUlaw() -{ - delete m_router; -} - -wxSoundStream& wxSoundStreamUlaw::Read(void *buffer, size_t len) -{ - return *this; -} - -wxSoundStream& wxSoundStreamUlaw::Write(const void *buffer, size_t len) -{ - wxUint16 *old_linear; - register wxUint16 *linear_buffer; - register const wxUint8 *ulaw_buffer; - register size_t countdown = len; - - old_linear = linear_buffer = new wxUint16[len*2]; - ulaw_buffer = (const wxUint8 *)buffer; - - while (countdown != 0) { - *linear_buffer++ = ulaw2linear(*ulaw_buffer++); - countdown--; - } - - m_router->Write(old_linear, len * 2); - - delete[] old_linear; - - return *m_router; -} - -bool wxSoundStreamUlaw::SetSoundFormat(const wxSoundFormatBase& format) -{ - if (format.GetType() != wxSOUND_ULAW) { - m_snderror = wxSOUND_INVFRMT; - return FALSE; - } - - wxSoundFormatPcm pcm; - wxSoundFormatUlaw *ulaw; - - wxSoundStreamCodec::SetSoundFormat(format); - - ulaw = (wxSoundFormatUlaw *)m_sndformat; - - pcm.SetSampleRate(ulaw->GetSampleRate()); - pcm.SetBPS(16); - pcm.SetChannels(1); - pcm.Signed(TRUE); - pcm.SetOrder(wxBYTE_ORDER); - - m_router->SetSoundFormat(pcm); - - return TRUE; -} diff --git a/utils/wxMMedia2/lib/sndulaw.h b/utils/wxMMedia2/lib/sndulaw.h deleted file mode 100644 index ef893d2e85..0000000000 --- a/utils/wxMMedia2/lib/sndulaw.h +++ /dev/null @@ -1,61 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndulaw.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDULAW_H -#define _WX_SNDULAW_H - -#ifdef __GNUG__ -#pragma interface "sndulaw.h" -#endif - -#include -#include "sndcodec.h" -#include "sndbase.h" - -// -// ULAW format -// -class WXDLLEXPORT wxSoundFormatUlaw: public wxSoundFormatBase { - public: - wxSoundFormatUlaw(); - ~wxSoundFormatUlaw(); - - void SetSampleRate(wxUint32 srate); - wxUint32 GetSampleRate() const; - - wxSoundFormatType GetType() const { return wxSOUND_ULAW; } - wxSoundFormatBase *Clone() const; - - wxUint32 GetTimeFromBytes(wxUint32 bytes) const; - wxUint32 GetBytesFromTime(wxUint32 time) const; - - bool operator !=(const wxSoundFormatBase& frmt2) const; - - protected: - wxUint32 m_srate; -}; - -// -// ULAW converter class -// - -class WXDLLEXPORT wxSoundRouterStream; -class WXDLLEXPORT wxSoundStreamUlaw: public wxSoundStreamCodec { - public: - wxSoundStreamUlaw(wxSoundStream& sndio); - ~wxSoundStreamUlaw(); - - wxSoundStream& Read(void *buffer, size_t len); - wxSoundStream& Write(const void *buffer, size_t len); - - bool SetSoundFormat(const wxSoundFormatBase& format); - - protected: - wxSoundRouterStream *m_router; -}; - -#endif diff --git a/utils/wxMMedia2/lib/sndwav.cpp b/utils/wxMMedia2/lib/sndwav.cpp deleted file mode 100644 index f0d3f66a29..0000000000 --- a/utils/wxMMedia2/lib/sndwav.cpp +++ /dev/null @@ -1,223 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndwav.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "sndwav.cpp" -#endif - -#include - -#include -#include -#include - -#include "sndbase.h" -#include "sndcodec.h" -#include "sndfile.h" -#include "sndpcm.h" -#include "sndwav.h" - -#define BUILD_SIGNATURE(a,b,c,d) (((wxUint32)a) | (((wxUint32)b) << 8) | (((wxUint32)c) << 16) | (((wxUint32)d) << 24)) - -#define RIFF_SIGNATURE BUILD_SIGNATURE('R','I','F','F') -#define WAVE_SIGNATURE BUILD_SIGNATURE('W','A','V','E') -#define FMT_SIGNATURE BUILD_SIGNATURE('f','m','t',' ') -#define DATA_SIGNATURE BUILD_SIGNATURE('d','a','t','a') - -#define HEADER_SIZE 4+4 + 4+4+16 + 4+4 - // 4+4 => NAME + LEN - // 16 => fmt size - -wxSoundWave::wxSoundWave(wxInputStream& stream, wxSoundStream& io_sound) - : wxSoundFileStream(stream, io_sound) -{ -} - -wxSoundWave::wxSoundWave(wxOutputStream& stream, wxSoundStream& io_sound) - : wxSoundFileStream(stream, io_sound) -{ -} - -wxSoundWave::~wxSoundWave() -{ -} - -#define FAIL_WITH(condition, err) if (condition) { m_snderror = err; return FALSE; } - -bool wxSoundWave::CanRead() -{ - wxUint32 len, signature; - m_snderror = wxSOUND_NOERR; - - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - - if (wxUINT32_SWAP_ON_BE(signature) != RIFF_SIGNATURE) { - m_input->Ungetch(&signature, 4); - return FALSE; - } - - m_input->Read(&len, 4); - FAIL_WITH(m_input->LastRead() != 4, wxSOUND_INVSTRM); - - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - if (wxUINT32_SWAP_ON_BE(signature) != WAVE_SIGNATURE) { - m_input->Ungetch(&signature, 4); - return FALSE; - } - - m_input->Ungetch("RIFF", 4); - m_input->Ungetch(&len, 4); - m_input->Ungetch("WAVE", 4); - - return TRUE; -} - -bool wxSoundWave::PrepareToPlay() -{ - wxUint32 signature, len; - bool end_headers; - - if (!m_input) { - m_snderror = wxSOUND_INVSTRM; - return FALSE; - } - - wxDataInputStream data(*m_input); - data.BigEndianOrdered(FALSE); - - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - FAIL_WITH(wxUINT32_SWAP_ON_BE(signature) != RIFF_SIGNATURE, wxSOUND_INVSTRM); - // "RIFF" - - len = data.Read32(); - FAIL_WITH(m_input->LastRead() != 4, wxSOUND_INVSTRM); - // dummy len - - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - FAIL_WITH(wxUINT32_SWAP_ON_BE(signature) != WAVE_SIGNATURE, wxSOUND_INVSTRM); - // "WAVE" - - end_headers = FALSE; - while (!end_headers) { - FAIL_WITH(m_input->Read(&signature, 4).LastRead() != 4, wxSOUND_INVSTRM); - - len = data.Read32(); - FAIL_WITH(m_input->LastRead() != 4, wxSOUND_INVSTRM); - - switch (wxUINT32_SWAP_ON_BE(signature)) { - case FMT_SIGNATURE: { // "fmt " - wxUint16 format, channels, byte_p_spl, bits_p_spl; - wxUint32 sample_fq, byte_p_sec; - wxSoundFormatPcm sndformat; - - data >> format >> channels >> sample_fq - >> byte_p_sec >> byte_p_spl >> bits_p_spl; - FAIL_WITH(format != 1, wxSOUND_NOCODEC); - - sndformat.SetSampleRate(sample_fq); - sndformat.SetBPS(bits_p_spl); - sndformat.SetChannels(channels); - sndformat.Signed(TRUE); - sndformat.SetOrder(wxLITTLE_ENDIAN); - - if (!SetSoundFormat(sndformat)) - return FALSE; - m_input->SeekI(len-16, wxFromCurrent); - break; - } - case DATA_SIGNATURE: // "data" - end_headers = TRUE; - break; - default: - m_input->SeekI(len, wxFromCurrent); - break; - } - } - return TRUE; -} - -bool wxSoundWave::PrepareToRecord(unsigned long time) -{ -#define WRITE_SIGNATURE(sig) \ -signature = sig; \ -signature = wxUINT32_SWAP_ON_BE(signature); \ -FAIL_WITH(m_output->Write(&signature, 4).LastWrite() != 4, wxSOUND_INVSTRM); - - wxUint32 signature, len; - - if (!m_output) { - m_snderror = wxSOUND_INVSTRM; - return FALSE; - } - - wxDataOutputStream data(*m_output); - data.BigEndianOrdered(FALSE); - - len = m_sndformat->GetBytesFromTime(time); - - len += HEADER_SIZE; - - WRITE_SIGNATURE(RIFF_SIGNATURE); - - data << len; - FAIL_WITH(m_output->LastWrite() != 4, wxSOUND_INVSTRM); - - WRITE_SIGNATURE(WAVE_SIGNATURE); - - { - wxUint16 format, channels, byte_p_spl, bits_p_spl; - wxUint32 sample_fq, byte_p_sec; - wxSoundFormatPcm *pcm; - - if (m_sndformat->GetType() != wxSOUND_PCM) { - m_snderror = wxSOUND_NOCODEC; - return FALSE; - } - - pcm = (wxSoundFormatPcm *)(m_sndformat->Clone()); - - WRITE_SIGNATURE(FMT_SIGNATURE); - data.Write32(16); - - sample_fq = pcm->GetSampleRate(); - bits_p_spl = pcm->GetBPS(); - channels = pcm->GetChannels(); - byte_p_spl = pcm->GetBPS() / 8; - byte_p_sec = pcm->GetBytesFromTime(1); - format = 1; - data << format << channels << sample_fq - << byte_p_sec << byte_p_spl << bits_p_spl; - - pcm->Signed(TRUE); - pcm->SetOrder(wxLITTLE_ENDIAN); - - if (!SetSoundFormat(*pcm)) - return FALSE; - - delete pcm; - } - - WRITE_SIGNATURE(DATA_SIGNATURE); - data.Write32(m_sndformat->GetBytesFromTime(time)); - return TRUE; -} - -bool wxSoundWave::FinishRecording() -{ - // TODO: Update headers when we stop before the specified time (if possible) - return TRUE; -} - -size_t wxSoundWave::GetData(void *buffer, size_t len) -{ - return m_input->Read(buffer, len).LastRead(); -} - -size_t wxSoundWave::PutData(const void *buffer, size_t len) -{ - return m_output->Write(buffer, len).LastWrite(); -} diff --git a/utils/wxMMedia2/lib/sndwav.h b/utils/wxMMedia2/lib/sndwav.h deleted file mode 100644 index 32b66737e0..0000000000 --- a/utils/wxMMedia2/lib/sndwav.h +++ /dev/null @@ -1,41 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: sndwav.h -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#ifndef _WX_SNDWAV_H -#define _WX_SNDWAV_H - -#ifdef __GNUG__ -#pragma interface "sndwav.h" -#endif - -#include -#include "sndbase.h" -#include "sndcodec.h" -#include "sndfile.h" - -// -// WAVE codec -// - -class wxSoundWave: public wxSoundFileStream { - public: - wxSoundWave(wxInputStream& stream, wxSoundStream& io_sound); - wxSoundWave(wxOutputStream& stream, wxSoundStream& io_sound); - ~wxSoundWave(); - - bool CanRead(); - - protected: - bool PrepareToPlay(); - bool PrepareToRecord(unsigned long time); - bool FinishRecording(); - - size_t GetData(void *buffer, size_t len); - size_t PutData(const void *buffer, size_t len); -}; - -#endif diff --git a/utils/wxMMedia2/lib/vidbase.cpp b/utils/wxMMedia2/lib/vidbase.cpp deleted file mode 100644 index 629389b52c..0000000000 --- a/utils/wxMMedia2/lib/vidbase.cpp +++ /dev/null @@ -1,91 +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 - -#ifndef WX_PRECOMP -#include -#include -#endif - -#include "vidbase.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxVideoBaseDriver, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxVideoOutput, wxWindow) -#endif - -wxVideoOutput::wxVideoOutput() - : wxWindow() -{ - m_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) -{ - m_dyn_size = TRUE; -} - -/// -wxVideoOutput::~wxVideoOutput() -{ -} - -wxVideoBaseDriver::wxVideoBaseDriver() -{ - m_video_output = NULL; -} - -wxVideoBaseDriver::wxVideoBaseDriver(wxInputStream& str) -{ - m_video_output = NULL; -} - -wxVideoBaseDriver::~wxVideoBaseDriver() -{ -} - -bool wxVideoBaseDriver::AttachOutput(wxVideoOutput& output) -{ - m_video_output = &output; - return TRUE; -} - -void wxVideoBaseDriver::DetachOutput() -{ - m_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, wxPoint(0, 0), wxSize(300, 300)); - - vid_out->DynamicSize(TRUE); - frame->Layout(); - frame->Show(TRUE); - wxYield(); - - vid_drv->AttachOutput(*vid_out); - - return frame; -} diff --git a/utils/wxMMedia2/lib/vidbase.h b/utils/wxMMedia2/lib/vidbase.h deleted file mode 100644 index 2a3b69d259..0000000000 --- a/utils/wxMMedia2/lib/vidbase.h +++ /dev/null @@ -1,102 +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 "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 m_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 m_dyn_size; } - /// - void DynamicSize(bool dyn) { m_dyn_size = dyn; } -}; - -/// -class wxVideoBaseDriver : public wxObject { - /// - DECLARE_ABSTRACT_CLASS(wxVideoBaseDriver) -protected: - wxVideoOutput *m_video_output; -public: - friend class wxVideoOutput; - - /// - wxVideoBaseDriver(); - /// - wxVideoBaseDriver(wxInputStream& str); - /// - 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/wxMMedia2/lib/vidwin.cpp b/utils/wxMMedia2/lib/vidwin.cpp deleted file mode 100644 index a8e83b2dec..0000000000 --- a/utils/wxMMedia2/lib/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/wxMMedia2/lib/vidwin.h b/utils/wxMMedia2/lib/vidwin.h deleted file mode 100644 index 784d72a2c0..0000000000 --- a/utils/wxMMedia2/lib/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/wxMMedia2/lib/vidxanm.cpp b/utils/wxMMedia2/lib/vidxanm.cpp deleted file mode 100644 index 09eebc2d57..0000000000 --- a/utils/wxMMedia2/lib/vidxanm.cpp +++ /dev/null @@ -1,236 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: vidxanm.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, 1999 Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "vidxanm.h" -#endif -#ifdef WX_PRECOMP -#include -#else -#include -#endif -#include -#include -#ifdef __WXGTK__ -#include -#include -#include -#include -#endif - -#include -#include - -#define WXMMEDIA_INTERNAL -#include "vidbase.h" -#include "vidxanm.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxVideoXANIM, wxVideoBaseDriver) -#endif - -wxVideoXANIM::wxVideoXANIM() - : wxVideoBaseDriver() -{ - m_internal = new wxXANIMinternal; - m_xanim_started = FALSE; - m_paused = FALSE; - m_filename = ""; -} - -wxVideoXANIM::wxVideoXANIM(wxInputStream& str) - : wxVideoBaseDriver(str) -{ - m_internal = new wxXANIMinternal; - m_xanim_started = FALSE; - m_paused = FALSE; - - m_filename = wxGetTempFileName("vidxa"); - wxFileOutputStream fout(m_filename); - - fout << str; -} - -wxVideoXANIM::~wxVideoXANIM() -{ - if (m_xanim_started) - StopPlay(); - delete m_internal; - - wxRemoveFile(m_filename); -} - -bool wxVideoXANIM::StartPlay() -{ - if (!m_paused && m_xanim_started) - return TRUE; - if (!m_video_output) { - wxVideoCreateFrame(this); - return TRUE; - } - - if (SendCommand(" ")) { - m_paused = FALSE; - return TRUE; - } - return FALSE; -} - -bool wxVideoXANIM::Pause() -{ - if (!m_paused && SendCommand(" ")) { - m_paused = TRUE; - return TRUE; - } - return FALSE; -} - -bool wxVideoXANIM::Resume() -{ - if (m_paused && SendCommand(" ")) { - m_paused = FALSE; - return TRUE; - } - return FALSE; -} - -void wxVideoXANIM::StopPlay() -{ - if (!m_xanim_started) - return; - - SendCommand("q"); - - m_xanim_started = FALSE; - m_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"); - m_xanim_started = FALSE; - m_paused = FALSE; - - wxVideoBaseDriver::DetachOutput(); -} - -bool wxVideoXANIM::SendCommand(const char *command, char **ret, - wxUint32 *size) -{ - if (!m_xanim_started) - if (!RestartXANIM()) - return FALSE; - - // Send a command to XAnim through X11 Property - XChangeProperty(m_internal->xanim_dpy, m_internal->xanim_window, - m_internal->xanim_atom, - XA_STRING, 8, PropModeReplace, (unsigned char *)command, - strlen(command)); - XFlush(m_internal->xanim_dpy); - if (ret) { - int prop_format; - Atom prop_type; - unsigned long extra; - - XGetWindowProperty(m_internal->xanim_dpy, m_internal->xanim_window, - m_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 (!m_video_output || m_xanim_started) - return FALSE; - - // Check if we can change the size of the window dynamicly - xanim_chg_size = m_video_output->DynamicSize(); - // Get current display -#ifdef __WXGTK__ - m_internal->xanim_dpy = gdk_display; - // We absolutely need the window to be realized. - gtk_widget_realize(m_video_output->m_wxwindow); - m_internal->xanim_window = - ((GdkWindowPrivate *)m_video_output->m_wxwindow->window)->xwindow; -#endif - // Get the XANIM atom - m_internal->xanim_atom = XInternAtom(m_internal->xanim_dpy, - "XANIM_PROPERTY", False); - - // Build the command - xanim_command.Printf(_T("xanim -Zr +Ze +Sr +f +W%d +f +q " - "+Av70 %s %s"), m_internal->xanim_window, - (xanim_chg_size) ? _T("") : _T(""), - WXSTRINGCAST m_filename); - - // Execute it - if (!wxExecute(xanim_command, FALSE)) - return FALSE; - - // Wait for XAnim to be ready - nitems = 0; - while (nitems == 0) { - ret = XGetWindowProperty(m_internal->xanim_dpy, m_internal->xanim_window, - m_internal->xanim_atom, - 0, 4, False, AnyPropertyType, &prop_type, - &prop_format, &nitems, &extra, - (unsigned char **)&prop); -// wxYield(); - } - -// m_paused = TRUE; - m_xanim_started = TRUE; - - return TRUE; -} diff --git a/utils/wxMMedia2/lib/vidxanm.h b/utils/wxMMedia2/lib/vidxanm.h deleted file mode 100644 index 86d6e13424..0000000000 --- a/utils/wxMMedia2/lib/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 m_xanim_started, m_paused; - struct wxXANIMinternal *m_internal; - wxString m_filename; -public: - wxVideoXANIM(); - wxVideoXANIM(wxInputStream& str); - ~wxVideoXANIM(); - - bool StartPlay(); - bool Pause(); - bool Resume(); - void StopPlay(); - - bool SetVolume(wxUint8 vol); - bool Resize(wxUint16 w, wxUint16 h); - - bool IsCapable(wxVideoType v_type); - - bool AttachOutput(wxVideoOutput& output); - void DetachOutput(); - -protected: - /// - bool RestartXANIM(); - /// - bool SendCommand(const char *command, char **ret = NULL, - wxUint32 *size = NULL); -}; - -#endif diff --git a/utils/wxMMedia2/sample/Makefile.in b/utils/wxMMedia2/sample/Makefile.in deleted file mode 100644 index f4d5cec63e..0000000000 --- a/utils/wxMMedia2/sample/Makefile.in +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for thread example (UNIX). - -top_srcdir = @top_srcdir@ -top_builddir = ../../.. -program_dir = utils/wxMMedia2/sample - -PROGRAM=test_med - -OBJECTS=$(PROGRAM).o ../lib/libwxmmedia2.a - -include $(top_builddir)/src/makeprog.env diff --git a/utils/wxMMedia2/sample/test_med.cpp b/utils/wxMMedia2/sample/test_med.cpp deleted file mode 100644 index bfaef8ccc2..0000000000 --- a/utils/wxMMedia2/sample/test_med.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: test_med.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#include -#include -#include -#include "../lib/sndoss.h" -#include "../lib/sndwav.h" -#include "../lib/sndaiff.h" -#include "../lib/sndulaw.h" - -wxSoundStreamOSS *oss_dev; -wxInputStream *f_input; -wxSoundStreamUlaw *ulaw_codec; - -class MySoundStream: public wxSoundStream { - public: - wxSoundStream& Read(void *buffer, size_t len) { return *this; } - wxSoundStream& Write(const void *buffer, size_t len) { return *this; } - - bool StartProduction(int evt) { return FALSE; } - bool StopProduction() { return FALSE; } - - void SetDuplexMode(bool on) {} - - void OnSoundEvent(int evt) { - char buffer[2048]; - - f_input->Read(buffer, sizeof(buffer)); - ulaw_codec->Write(buffer, sizeof(buffer)); - } -}; - -class MyApp: public wxApp { - bool OnInit() { - wxSoundFormatUlaw ulaw; - MySoundStream strm; - - oss_dev = new wxSoundStreamOSS(); - f_input = new wxFileInputStream(argv[1]); - - if (oss_dev->GetError() != wxSOUND_NOERR) { - wxPrintf("No device\n"); - return FALSE; - } - - ulaw.SetSampleRate(8000); - ulaw_codec = new wxSoundStreamUlaw(*oss_dev); - ulaw_codec->SetSoundFormat(ulaw); - - oss_dev->SetEventHandler(&strm); - oss_dev->StartProduction(wxSOUND_OUTPUT); - - while (1) { -// wxYield(); - strm.OnSoundEvent(0); - } - return TRUE; - } -}; - -IMPLEMENT_APP(MyApp) diff --git a/utils/wxMMedia2/sample/test_med2.cpp b/utils/wxMMedia2/sample/test_med2.cpp deleted file mode 100644 index 22d240a36f..0000000000 --- a/utils/wxMMedia2/sample/test_med2.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// -------------------------------------------------------------------------- -// Name: test_med.cpp -// Purpose: -// Date: 08/11/1999 -// Author: Guilhem Lavaux (C) 1999 -// CVSID: $Id$ -// -------------------------------------------------------------------------- -#include -#include -#include -#include "../lib/sndoss.h" -#include "../lib/sndwav.h" -#include "../lib/sndaiff.h" - -class MyApp: public wxApp { - bool OnInit() { - wxSoundStreamOSS *oss_dev = new wxSoundStreamOSS(); - wxFileInputStream *f_input = new wxFileInputStream(argv[1]); - wxSoundWave *wav_file = new wxSoundWave(*f_input, *oss_dev); - wxFrame *frame = new wxFrame(NULL, -1, "My Frame"); - wxSoundFormatPcm pcm; - - if (oss_dev->GetError() != wxSOUND_NOERR) { - wxPrintf("No device\n"); - return FALSE; - } - - wav_file->Play(); - frame->Show(TRUE); - return TRUE; - } -}; - -IMPLEMENT_APP(MyApp) 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 791552a2b0..0000000000 --- a/utils/wxPython/.cvsignore +++ /dev/null @@ -1,115 +0,0 @@ -*.py -*.pyc -*.pyc -*.pyd -*.pyd -*.pyo -*.pyo -*.zip -.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 -filelist -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 -glcanvasc.ilk -glcanvasc.pyd -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 -printfw.py -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 8c6c4919f8..0000000000 --- a/utils/wxPython/README.txt +++ /dev/null @@ -1,391 +0,0 @@ -wxPython README ---------------- - -Welcome to the wonderful world of wxPython! - -Once you have installed the wxPython 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." - -On Win32 systems the binary self-installer creates a program group on -the Start Menu that contains a link to running the demo and a link to -the help file. To help you save disk space I'm now using Microsoft's -HTML Help format. If your system doesn't know what to do with the help -file, you can install the HTML Help Viewer as part of IE 4+, NT -Service Pack 4+, or the HTML Workshop at - -http://msdn.microsoft.com/workshop/author/htmlhelp/download.asp. - - - -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.1b3 --------------------- - -Switched to using SWIG from CVS (see http://swig.cs.uchicago.edu/cvs.html) -for some of the new features and such. Also they have encorporated my -patches so there is really no reason to stick with the current (very -old) release... - - - -What's new in 2.1b2 --------------------- - -Added the missing wxWindow.GetUpdateRegion() method. - -Made a new change in SWIG (update your patches everybody) that -provides a fix for global shadow objects that get an exception in -their __del__ when their extension module has already been deleted. -It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about -line 496 if you want to do it by hand. - -It is now possible to run through MainLoop more than once in any one -process. The cleanup that used to happen as MainLoop completed (and -prevented it from running again) has been delayed until the wxc module -is being unloaded by Python. - -I fixed a bunch of stuff in the C++ version of wxGrid so it wouldn't -make wxPython look bad. - -wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added -wxWindow.PopupMenuXY to be consistent with some other methods. - -Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. - -You can now provide your own app.MainLoop method. See -wxPython/demo/demoMainLoop.py for an example and some explaination. - -Got the in-place-edit for the wxTreeCtrl fixed and added some demo -code to show how to use it. - -Put the wxIcon constructor back in for GTK as it now has one that -matches MSW's. - -Added wxGrid.GetCells - -Added wxSystemSettings static methods as functions with names like -wxSystemSettings_GetSystemColour. - -Removed wxPyMenu since using menu callbacks have been depreciated in -wxWindows. Use wxMenu and events instead. - -Added alternate wxBitmap constructor (for MSW only) as - wxBitmapFromData(data, type, width, height, depth = 1) - -Added a helper function named wxPyTypeCast that can convert shadow -objects of one type into shadow objects of another type. (Like doing -a down-cast.) See the implementation in wx.py for some docs. - -Fixed wxImage GetData and SetData to properly use String objects for -data transfer. - -Added access methods to wxGridEvent. - -New Makefile/Setup files supporting multiple dynamic extension modules -for unix systems. - -Fixes for the wxGLCanvas demo to work around a strange bug in gtk. - -SWIG support routines now compiled separately instead of being bundled -in wx.cpp. - - - - - -What's new in 2.1b1 --------------------- -Fixed wxComboBox.SetSelection so that it actually sets the selected -item. (Actually just removed it from wxPython and let it default to -wxChoice.SetSelection which was already doing the right thing.) - -Added the Printing Framework. - -Switched back to using the wxWindows DLL for the pre-built Win32 -version. The problem was needing to reinitialize static class info -data after loading each extension module. - -Lots of little tweaks and additions to reflect changes to various -wxWindows classes. - -Fixed a bug with attaching objects to tree items. Actually was a -symptom of a larger problem with not obtaining the interpreter lock -when doing any Py_DECREFs. - -wxSizer and friends. Sizers are layout tools that manage a colection -of windows and sizers. Different types of sizers apply different -types of layout algorithms. You saw it here first! These classes are -not even in the wxWindows C++ library yet! - - - -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 --disable-shared --enable-threads --disable-unicode - -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 7012b56d59..0000000000 --- a/utils/wxPython/SWIG.patches/Include.patch +++ /dev/null @@ -1,139 +0,0 @@ -*** swig.h.old Wed Feb 04 15:59:40 1998 ---- swig.h Fri Aug 28 15: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.2 1999/07/31 07:54:05 RD - * wxPython 2.1b1: - * - * Added the missing wxWindow.GetUpdateRegion() method. - * - * Made a new change in SWIG (update your patches everybody) that - * provides a fix for global shadow objects that get an exception in - * their __del__ when their extension module has already been deleted. - * It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about - * line 496 if you want to do it by hand. - * - * It is now possible to run through MainLoop more than once in any one - * process. The cleanup that used to happen as MainLoop completed (and - * prevented it from running again) has been delayed until the wxc module - * is being unloaded by Python. - * - * wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added - * wxWindow.PopupMenuXY to be consistent with some other methods. - * - * Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. - * - * You can now provide your own app.MainLoop method. See - * wxPython/demo/demoMainLoop.py for an example and some explaination. - * - * Got the in-place-edit for the wxTreeCtrl fixed and added some demo - * code to show how to use it. - * - * Put the wxIcon constructor back in for GTK as it now has one that - * matches MSW's. - * - * Added wxGrid.GetCells - * - * Added wxSystemSettings static methods as functions with names like - * wxSystemSettings_GetSystemColour. - * - * Removed wxPyMenu since using menu callbacks have been depreciated in - * wxWindows. Use wxMenu and events instead. - * - * Added alternate wxBitmap constructor (for MSW only) as - * wxBitmapFromData(data, type, width, height, depth = 1) - * - * Added a helper function named wxPyTypeCast that can convert shadow - * objects of one type into shadow objects of another type. (Like doing - * a down-cast.) See the implementation in wx.py for some docs. - * diff --git a/utils/wxPython/SWIG.patches/Modules.patch b/utils/wxPython/SWIG.patches/Modules.patch deleted file mode 100644 index 0cbc44f0f2..0000000000 --- a/utils/wxPython/SWIG.patches/Modules.patch +++ /dev/null @@ -1,202 +0,0 @@ -*** python.cxx.old Fri Jan 02 23:17:40 1998 ---- python.cxx Fri Aug 28 15:49:18 1998 -*************** -*** 1678,1685 **** ---- 1678,1702 ---- - fprintf(stderr,"%s : Line %d. Unable to locate file %s\n", input_file, line_number, value); - } - } - } -+ } 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 23:18:50 1997 ---- python.h Fri Aug 28 15:46:08 1998 -*************** -*** 184,191 **** ---- 184,203 ---- - void cpp_declare_const(char *name, char *iname, DataType *type, char *value); - 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 21:23:22 1998 ---- pycpp.cxx Tue Jul 20 14:34:36 1999 -*************** -*** 275,282 **** ---- 275,283 ---- - #endif - } - } - // 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 - -*************** -*** 393,400 **** ---- 394,402 ---- - } - } - *construct << ")\n"; - *construct << tab8 << "self.thisown = 1\n"; -+ emitAddPragmas(*construct, "__init__", tab8); - have_constructor = 1; - } else { - - // Hmmm. We seem to be creating a different constructor. We're just going to create a -*************** -*** 490,503 **** - if (class_renamed) realname = class_name; - else realname = name; - } - -! *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"; - } ---- 492,504 ---- - if (class_renamed) realname = class_name; - else realname = name; - } - -! *pyclass << tab4 << "def __del__(self, " << module << "=" << module << "):\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"; - } -*************** -*** 551,558 **** ---- 552,561 ---- - repr << tab4 << "def __repr__(self):\n" - << tab8 << "return \"\"\n"; - - classes << repr; -+ emitAddPragmas(classes, "__class__", tab4); -+ - } - - // Now build the real class with a normal constructor - -*************** -*** 746,753 **** ---- 749,778 ---- - hash.add(name,copy_string((char *) hash.lookup(t->name))); - } - } - -+ // -------------------------------------------------------------------------------- -+ // 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"; -+ } -+ } -+ } - - /********************************************************************************* - * - * $Log$ - * Revision 1.2 1999/07/31 07:54:05 RD - * wxPython 2.1b1: - * - * Added the missing wxWindow.GetUpdateRegion() method. - * - * Made a new change in SWIG (update your patches everybody) that - * provides a fix for global shadow objects that get an exception in - * their __del__ when their extension module has already been deleted. - * It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about - * line 496 if you want to do it by hand. - * - * It is now possible to run through MainLoop more than once in any one - * process. The cleanup that used to happen as MainLoop completed (and - * prevented it from running again) has been delayed until the wxc module - * is being unloaded by Python. - * - * wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added - * wxWindow.PopupMenuXY to be consistent with some other methods. - * - * Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. - * - * You can now provide your own app.MainLoop method. See - * wxPython/demo/demoMainLoop.py for an example and some explaination. - * - * Got the in-place-edit for the wxTreeCtrl fixed and added some demo - * code to show how to use it. - * - * Put the wxIcon constructor back in for GTK as it now has one that - * matches MSW's. - * - * Added wxGrid.GetCells - * - * Added wxSystemSettings static methods as functions with names like - * wxSystemSettings_GetSystemColour. - * - * Removed wxPyMenu since using menu callbacks have been depreciated in - * wxWindows. Use wxMenu and events instead. - * - * Added alternate wxBitmap constructor (for MSW only) as - * wxBitmapFromData(data, type, width, height, depth = 1) - * - * Added a helper function named wxPyTypeCast that can convert shadow - * objects of one type into shadow objects of another type. (Like doing - * a down-cast.) See the implementation in wx.py for some docs. - * diff --git a/utils/wxPython/SWIG.patches/SWIG.patch b/utils/wxPython/SWIG.patches/SWIG.patch deleted file mode 100644 index a50235c64b..0000000000 --- a/utils/wxPython/SWIG.patches/SWIG.patch +++ /dev/null @@ -1,530 +0,0 @@ -*** cplus.cxx.old Mon Feb 02 15:55:42 1998 ---- cplus.cxx Fri Aug 28 13: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 15:23:16 1998 ---- vector.cxx Fri Aug 28 15: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.3 1999/07/31 07:54:05 RD -+ * wxPython 2.1b1: -+ * -+ * Added the missing wxWindow.GetUpdateRegion() method. -+ * -+ * Made a new change in SWIG (update your patches everybody) that -+ * provides a fix for global shadow objects that get an exception in -+ * their __del__ when their extension module has already been deleted. -+ * It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about -+ * line 496 if you want to do it by hand. -+ * -+ * It is now possible to run through MainLoop more than once in any one -+ * process. The cleanup that used to happen as MainLoop completed (and -+ * prevented it from running again) has been delayed until the wxc module -+ * is being unloaded by Python. -+ * -+ * wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added -+ * wxWindow.PopupMenuXY to be consistent with some other methods. -+ * -+ * Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. -+ * -+ * You can now provide your own app.MainLoop method. See -+ * wxPython/demo/demoMainLoop.py for an example and some explaination. -+ * -+ * Got the in-place-edit for the wxTreeCtrl fixed and added some demo -+ * code to show how to use it. -+ * -+ * Put the wxIcon constructor back in for GTK as it now has one that -+ * matches MSW's. -+ * -+ * Added wxGrid.GetCells -+ * -+ * Added wxSystemSettings static methods as functions with names like -+ * wxSystemSettings_GetSystemColour. -+ * -+ * Removed wxPyMenu since using menu callbacks have been depreciated in -+ * wxWindows. Use wxMenu and events instead. -+ * -+ * Added alternate wxBitmap constructor (for MSW only) as -+ * wxBitmapFromData(data, type, width, height, depth = 1) -+ * -+ * Added a helper function named wxPyTypeCast that can convert shadow -+ * objects of one type into shadow objects of another type. (Like doing -+ * a down-cast.) See the implementation in wx.py for some docs. -+ * -+ * -+ ***********************************************************************/ -+ -+ -+ -+ -+ -+ -*** makefile.msc.old Mon Jun 23 16:15:32 1997 ---- makefile.msc Fri Aug 28 11: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 13:49:24 1998 ---- makefile.bc Fri Aug 28 15: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 23:56:56 1997 ---- Makefile.in Fri Aug 28 15: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 f90a8b0e73..0000000000 --- a/utils/wxPython/demo/ColorPanel.py +++ /dev/null @@ -1,13 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - - -class ColoredPanel(wxWindow): - def __init__(self, parent, color): - wxWindow.__init__(self, parent, -1, - wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER) - self.SetBackgroundColour(color) - -#--------------------------------------------------------------------------- diff --git a/utils/wxPython/demo/DialogUnits.py b/utils/wxPython/demo/DialogUnits.py deleted file mode 100644 index 8d293c2007..0000000000 --- a/utils/wxPython/demo/DialogUnits.py +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/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, 16)), 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, 16)), - wxDLG_SZE(panel, wxSize(36, -1)), - wxTE_READONLY) - - print wxDLG_PNT(panel, wxPoint(24, 4)), wxDLG_SZE(panel, wxSize(36, -1)) - print wxDLG_PNT(panel, wxPoint(24, 16)),wxDLG_SZE(panel, wxSize(36, -1)) - - - # 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 69dc714e46..0000000000 --- a/utils/wxPython/demo/Main.py +++ /dev/null @@ -1,337 +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', 'wxProgressDialog']), - - ('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice', - 'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'wxTextCtrl', - 'wxTreeCtrl', 'wxSpinButton', 'wxStaticText', 'wxStaticBitmap', - 'wxRadioBox', 'wxSlider']), - - ('Window Layout', ['wxLayoutConstraints', 'Sizers']), - - ('Miscellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage', - 'PrintFramework']), - - ('wxPython Library', ['Sizers', 'Layoutf', 'wxScrolledMessageDialog', - 'wxMultipleChoiceDialog', 'wxPlotCanvas']), - - ('Cool Contribs', ['pyTree', 'hangman', 'SlashDot', 'XMLtreeview']), - - ] - -#--------------------------------------------------------------------------- - -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) - - selectedDemo = None - selectedDemoName = "Nada" - if len(sys.argv) == 2: - selectedDemoName = sys.argv[1] - - # 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]: - theDemo = self.tree.AppendItem(child, childItem) - if childItem == selectedDemoName: - selectedDemo = theDemo - - 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.txt.SetFont(wxFont(9, wxMODERN, wxNORMAL, wxNORMAL, false)) - self.nb.AddPage(self.txt, "Demo Code") - - - # 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 - - # select initial items - self.nb.SetSelection(0) - self.tree.SelectItem(root) - if selectedDemo: - self.tree.SelectItem(selectedDemo) - self.tree.EnsureVisible(selectedDemo) - - #--------------------------------------------- - 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)) -## self.log.ShowPosition(self.log.GetLastPosition()) - self.log.SetInsertionPointEnd() - - 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) - try: - self.txt.SetValue(open(filename).read()) - except IOError: - 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/PrintFramework.py b/utils/wxPython/demo/PrintFramework.py deleted file mode 100644 index 133d6270d8..0000000000 --- a/utils/wxPython/demo/PrintFramework.py +++ /dev/null @@ -1,179 +0,0 @@ - -from wxPython.wx import * -from wxPython.lib.sizers import * -from wxScrolledWindow import MyCanvas - -#---------------------------------------------------------------------- - -class MyPrintout(wxPrintout): - def __init__(self, canvas, log): - wxPrintout.__init__(self) - self.canvas = canvas - self.log = log - - def OnBeginDocument(self, start, end): - self.log.WriteText("wxPrintout.OnBeginDocument\n") - return self.base_OnBeginDocument(start, end) - - def OnEndDocument(self): - self.log.WriteText("wxPrintout.OnEndDocument\n") - self.base_OnEndDocument() - - def OnBeginPrinting(self): - self.log.WriteText("wxPrintout.OnBeginPrinting\n") - self.base_OnBeginPrinting() - - def OnEndPrinting(self): - self.log.WriteText("wxPrintout.OnEndPrinting\n") - self.base_OnEndPrinting() - - def OnPreparePrinting(self): - self.log.WriteText("wxPrintout.OnPreparePrinting\n") - self.base_OnPreparePrinting() - - def HasPage(self, page): - self.log.WriteText("wxPrintout.HasPage\n") - if page == 1: - return true - else: - return false - - def GetPageInfo(self): - self.log.WriteText("wxPrintout.GetPageInfo\n") - return (1, 1, 1, 1) - - def OnPrintPage(self, page): - self.log.WriteText("wxPrintout.OnPrintPage\n") - dc = self.GetDC() - - #------------------------------------------- - # One possible method of setting scaling factors... - - maxX = self.canvas.getWidth() - maxY = self.canvas.getHeight() - - # Let's have at least 50 device units margin - marginX = 50 - marginY = 50 - - # Add the margin to the graphic size - maxX = maxX + (2 * marginX) - maxY = maxY + (2 * marginY) - - # Get the size of the DC in pixels - (w, h) = dc.GetSizeTuple() - - # Calculate a suitable scaling factor - scaleX = float(w) / maxX - scaleY = float(h) / maxY - - # Use x or y scaling factor, whichever fits on the DC - actualScale = min(scaleX, scaleY) - - # Calculate the position on the DC for centring the graphic - posX = (w - (self.canvas.getWidth() * actualScale)) / 2.0 - posY = (h - (self.canvas.getHeight() * actualScale)) / 2.0 - - # Set the scale and origin - dc.SetUserScale(actualScale, actualScale) - dc.SetDeviceOrigin(int(posX), int(posY)) - - #------------------------------------------- - - self.canvas.DoDrawing(dc) - return true - - -#---------------------------------------------------------------------- - - -class TestPrintPanel(wxPanel): - def __init__(self, parent, frame, log): - wxPanel.__init__(self, parent, -1) - self.log = log - self.frame = frame - - - self.printData = wxPrintData() - self.printData.SetPaperId(wxPAPER_LETTER) - - self.box = box.wxBoxSizer(wxVERTICAL) - self.canvas = MyCanvas(self) - self.box.Add(self.canvas, 1) - - subbox = wxBoxSizer(wxHORIZONTAL) - btn = wxButton(self, 1201, "Print Setup") - EVT_BUTTON(self, 1201, self.OnPrintSetup) - subbox.Add(btn, 1) - - btn = wxButton(self, 1202, "Print Preview") - EVT_BUTTON(self, 1202, self.OnPrintPreview) - subbox.Add(btn, 1) - - btn = wxButton(self, 1203, "Print") - EVT_BUTTON(self, 1203, self.OnDoPrint) - subbox.Add(btn, 1) - - self.box.Add(subbox) - - - - def OnSize(self, event): - size = self.GetClientSize() - self.box.Layout(size) - - def OnPrintSetup(self, event): - printerDialog = wxPrintDialog(self) - printerDialog.GetPrintDialogData().SetPrintData(self.printData) - printerDialog.GetPrintDialogData().SetSetupDialog(true) - printerDialog.ShowModal(); - self.printData = printerDialog.GetPrintDialogData().GetPrintData() - printerDialog.Destroy() - - - def OnPrintPreview(self, event): - self.log.WriteText("OnPrintPreview\n") - printout = MyPrintout(self.canvas, self.log) - printout2 = MyPrintout(self.canvas, self.log) - self.preview = wxPrintPreview(printout, printout2, self.printData) - if not self.preview.Ok(): - self.log.WriteText("Houston, we have a problem...\n") - return - - frame = wxPreviewFrame(self.preview, self.frame, "This is a print preview") - - frame.Initialize() - frame.SetPosition(self.frame.GetPosition()) - frame.SetSize(self.frame.GetSize()) - frame.Show(true) - - - - def OnDoPrint(self, event): - pdd = wxPrintDialogData() - pdd.SetPrintData(self.printData) - printer = wxPrinter(pdd) - printout = MyPrintout(self.canvas, self.log) - if not printer.Print(self.frame, printout): - wxMessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wxOK) - else: - self.printData = printer.GetPrintDialogData().GetPrintData() - printout.Destroy() - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPrintPanel(nb, frame, log) - return win - - -#---------------------------------------------------------------------- - - - - - -overview = """\ -""" - 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/Sizers.py b/utils/wxPython/demo/Sizers.py deleted file mode 100644 index 02befadba1..0000000000 --- a/utils/wxPython/demo/Sizers.py +++ /dev/null @@ -1,365 +0,0 @@ -#---------------------------------------------------------------------- -# sizer test code -#---------------------------------------------------------------------- - -from wxPython.wx import * -from wxPython.lib.sizers import * - -#---------------------------------------------------------------------- - -def makeSimpleBox1(win): - box = wxBoxSizer(wxHORIZONTAL) - box.Add(wxButton(win, 1010, "one"), 0) - box.Add(wxButton(win, 1010, "two"), 0) - box.Add(wxButton(win, 1010, "three"), 0) - box.Add(wxButton(win, 1010, "four"), 0) - - return box - -#---------------------------------------------------------------------- - -def makeSimpleBox2(win): - box = wxBoxSizer(wxVERTICAL) - box.Add(wxButton(win, 1010, "one"), 0) - box.Add(wxButton(win, 1010, "two"), 0) - box.Add(wxButton(win, 1010, "three"), 0) - box.Add(wxButton(win, 1010, "four"), 0) - - return box - -#---------------------------------------------------------------------- - -def makeSimpleBox3(win): - box = wxBoxSizer(wxHORIZONTAL) - box.Add(wxButton(win, 1010, "one"), 0) - box.Add(wxButton(win, 1010, "two"), 0) - box.Add(wxButton(win, 1010, "three"), 0) - box.Add(wxButton(win, 1010, "four"), 0) - box.Add(wxButton(win, 1010, "five"), 1) - - return box - -#---------------------------------------------------------------------- - -def makeSimpleBox4(win): - box = wxBoxSizer(wxHORIZONTAL) - box.Add(wxButton(win, 1010, "one"), 0) - box.Add(wxButton(win, 1010, "two"), 0) - box.Add(wxButton(win, 1010, "three"), 1) - box.Add(wxButton(win, 1010, "four"), 1) - box.Add(wxButton(win, 1010, "five"), 1) - - return box - -#---------------------------------------------------------------------- - -def makeSimpleBox5(win): - box = wxBoxSizer(wxHORIZONTAL) - box.Add(wxButton(win, 1010, "one"), 0) - box.Add(wxButton(win, 1010, "two"), 0) - box.Add(wxButton(win, 1010, "three"), 3) - box.Add(wxButton(win, 1010, "four"), 1) - box.Add(wxButton(win, 1010, "five"), 1) - - return box - -#---------------------------------------------------------------------- - -def makeSimpleBox6(win): - box = wxBoxSizer(wxHORIZONTAL, wxSize(250, 50)) - box.Add(wxButton(win, 1010, "10"), 10) - box.Add(wxButton(win, 1010, "20"), 20) - box.Add(wxButton(win, 1010, "30"), 30) - box.Add(wxButton(win, 1010, "15"), 15) - box.Add(wxButton(win, 1010, "5"), 5) - - return box - -#---------------------------------------------------------------------- - -def makeSimpleBorder1(win): - bdr = wxBorderSizer(wxALL) - btn = wxButton(win, 1010, "border") - btn.SetSize(wxSize(80, 80)) - bdr.Add(btn, 15) - - return bdr - -#---------------------------------------------------------------------- - -def makeSimpleBorder2(win): - bdr = wxBorderSizer(wxEAST | wxWEST) - btn = wxButton(win, 1010, "border") - btn.SetSize(wxSize(80, 80)) - bdr.Add(btn, 15) - - return bdr - -#---------------------------------------------------------------------- - -def makeSimpleBorder3(win): - bdr = wxBorderSizer(wxNORTH | wxWEST) - btn = wxButton(win, 1010, "border") - btn.SetSize(wxSize(80, 80)) - bdr.Add(btn, 15) - - return bdr - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- - -def makeBoxInBox(win): - box = wxBoxSizer(wxVERTICAL) - - box.Add(wxButton(win, 1010, "one")) - - box2 = wxBoxSizer(wxHORIZONTAL) - box2.AddMany([ wxButton(win, 1010, "two"), - wxButton(win, 1010, "three"), - wxButton(win, 1010, "four"), - wxButton(win, 1010, "five"), - ]) - - box3 = wxBoxSizer(wxVERTICAL) - box3.AddMany([ (wxButton(win, 1010, "six"), 0), - (wxButton(win, 1010, "seven"), 2), - (wxButton(win, 1010, "eight"), 1), - (wxButton(win, 1010, "nine"), 1), - ]) - - box2.Add(box3, 1) - box.Add(box2, 1) - - box.Add(wxButton(win, 1010, "ten")) - - return box - -#---------------------------------------------------------------------- - -def makeBoxInBorder(win): - bdr = wxBorderSizer(wxALL) - box = makeSimpleBox3(win) - bdr.Add(box, 15) - - return bdr - -#---------------------------------------------------------------------- - -def makeBorderInBox(win): - insideBox = wxBoxSizer(wxHORIZONTAL) - - box2 = wxBoxSizer(wxHORIZONTAL) - box2.AddMany([ wxButton(win, 1010, "one"), - wxButton(win, 1010, "two"), - wxButton(win, 1010, "three"), - wxButton(win, 1010, "four"), - wxButton(win, 1010, "five"), - ]) - - insideBox.Add(box2, 0) - - bdr = wxBorderSizer(wxALL) - bdr.Add(wxButton(win, 1010, "border"), 20) - insideBox.Add(bdr, 1) - - box3 = wxBoxSizer(wxVERTICAL) - box3.AddMany([ (wxButton(win, 1010, "six"), 0), - (wxButton(win, 1010, "seven"), 2), - (wxButton(win, 1010, "eight"), 1), - (wxButton(win, 1010, "nine"), 1), - ]) - insideBox.Add(box3, 1) - - outsideBox = wxBoxSizer(wxVERTICAL) - outsideBox.Add(wxButton(win, 1010, "top")) - outsideBox.Add(insideBox, 1) - outsideBox.Add(wxButton(win, 1010, "bottom")) - - return outsideBox - - -#---------------------------------------------------------------------- - -theTests = [ - ("Simple horizontal boxes", makeSimpleBox1, - "This is a HORIZONTAL box sizer with four non-stretchable buttons held " - "within it. Notice that the buttons are added and aligned in the horizontal " - "dimension. Also notice that they are fixed size in the horizontal dimension, " - "but will stretch vertically." - ), - - ("Simple vertical boxes", makeSimpleBox2, - "Exactly the same as the previous sample but using a VERTICAL box sizer " - "instead of a HORIZONTAL one." - ), - - ("Add a stretchable", makeSimpleBox3, - "We've added one more button with the strechable flag turned on. Notice " - "how it grows to fill the extra space in the otherwise fixed dimension." - ), - - ("More than one stretchable", makeSimpleBox4, - "Here there are several items that are stretchable, they all divide up the " - "extra space evenly." - ), - - ("Weighting factor", makeSimpleBox5, - "This one shows more than one strechable, but one of them has a weighting " - "factor so it gets more of the free space." - ), - -# ("Percent Sizer", makeSimpleBox6, -# "You can use the wxBoxSizer like a Percent Sizer. Just make sure that all " -# "the weighting factors add up to 100!" -# ), - - ("", None, ""), - - ("Simple border sizer", makeSimpleBorder1, - "The wxBorderSizer leaves empty space around its contents. This one " - "gives a border all the way around." - ), - - ("East and West border", makeSimpleBorder2, - "You can pick and choose which sides have borders." - ), - - ("North and West border", makeSimpleBorder3, - "You can pick and choose which sides have borders." - ), - - ("", None, ""), - - ("Boxes inside of boxes", makeBoxInBox, - "This one shows nesting of boxes within boxes within boxes, using both " - "orientations. Notice also that button seven has a greater weighting " - "factor than its siblings." - ), - - ("Boxes inside a Border", makeBoxInBorder, - "Sizers of different types can be nested withing each other as well. " - "Here is a box sizer with several buttons embedded within a border sizer." - ), - - ("Border in a Box", makeBorderInBox, - "Another nesting example. This one has Boxes and a Border inside another Box." - ), - - ] -#---------------------------------------------------------------------- - -class TestFrame(wxFrame): - def __init__(self, parent, title, sizerFunc): - wxFrame.__init__(self, parent, -1, title) - EVT_BUTTON(self, 1010, self.OnButton) - - self.sizer = sizerFunc(self) - self.CreateStatusBar() - self.SetStatusText("Resize this frame to see how the sizers respond...") - self.sizer.FitWindow(self) - - - def OnSize(self, event): - size = self.GetClientSize() - self.sizer.Layout(size) - - def OnCloseWindow(self, event): - self.MakeModal(false) - self.Destroy() - - def OnButton(self, event): - self.Close(true) - -#---------------------------------------------------------------------- - - - -class TestSelectionPanel(wxPanel): - def __init__(self, parent, frame): - wxPanel.__init__(self, parent, -1) - self.frame = frame - - self.list = wxListBox(self, 401, - wxDLG_PNT(self, 10, 10), wxDLG_SZE(self, 100, 60), - []) - EVT_LISTBOX(self, 401, self.OnSelect) - EVT_LISTBOX_DCLICK(self, 401, self.OnDClick) - - wxButton(self, 402, "Try it!", wxDLG_PNT(self, 120, 10)).SetDefault() - EVT_BUTTON(self, 402, self.OnDClick) - - self.text = wxTextCtrl(self, -1, "", - wxDLG_PNT(self, 10, 80), - wxDLG_SZE(self, 200, 60), - wxTE_MULTILINE | wxTE_READONLY) - - for item in theTests: - self.list.Append(item[0]) - - - - def OnSelect(self, event): - pos = self.list.GetSelection() - self.text.SetValue(theTests[pos][2]) - - - def OnDClick(self, event): - pos = self.list.GetSelection() - title = theTests[pos][0] - func = theTests[pos][1] - - if func: - win = TestFrame(self, title, func) - win.CentreOnParent(wxBOTH) - win.Show(true) - win.MakeModal(true) - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestSelectionPanel(nb, frame) - return win - -overview = wxSizer.__doc__ + '\n' + '-' * 80 + '\n' + \ - wxBoxSizer.__doc__ + '\n' + '-' * 80 + '\n' + \ - wxBorderSizer.__doc__ - -#---------------------------------------------------------------------- - - - -if __name__ == '__main__': - - class MainFrame(wxFrame): - def __init__(self): - wxFrame.__init__(self, NULL, -1, "Testing...") - - self.CreateStatusBar() - mainmenu = wxMenuBar() - menu = wxMenu() - menu.Append(200, 'E&xit', 'Get the heck outta here!') - mainmenu.Append(menu, "&File") - self.SetMenuBar(mainmenu) - EVT_MENU(self, 200, self.OnExit) - self.panel = TestSelectionPanel(self) - self.SetSize(wxSize(400, 380)) - - def OnCloseWindow(self, event): - self.Destroy() - - def OnExit(self, event): - self.Close(true) - - - class TestApp(wxApp): - def OnInit(self): - frame = MainFrame() - frame.Show(true) - self.SetTopWindow(frame) - return true - - app = TestApp(0) - app.MainLoop() - - -#---------------------------------------------------------------------- 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/XMLtreeview.py b/utils/wxPython/demo/XMLtreeview.py deleted file mode 100644 index 3815f014cc..0000000000 --- a/utils/wxPython/demo/XMLtreeview.py +++ /dev/null @@ -1,66 +0,0 @@ - -import string - -from wxPython.wx import * -try: - from xml.parsers import pyexpat - haveXML = true -except ImportError: - haveXML = false - -#---------------------------------------------------------------------- - -if not haveXML: - def runTest(frame, nb, log): - dlg = wxMessageDialog(frame, 'This demo requires the XML package. See http://www.python.org/sigs/xml-sig/', - 'Sorry', wxOK | wxICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - -else: - - class XMLTree(wxTreeCtrl): - def __init__(self, parent, ID): - wxTreeCtrl.__init__(self, parent, ID) - self.nodeStack = [self.AddRoot("Root")] - - # Define a handler for start element events - def StartElement(self, name, attrs ): - self.nodeStack.append(self.AppendItem(self.nodeStack[-1], name)) - - def EndElement(self, name ): - self.nodeStack = self.nodeStack[:-1] - - def CharacterData(self, data ): - if string.strip(data): - self.AppendItem(self.nodeStack[-1], data) - - - def LoadTree(self, filename): - # Create a parser - Parser = pyexpat.ParserCreate() - - # Tell the parser what the start element handler is - Parser.StartElementHandler = self.StartElement - Parser.EndElementHandler = self.EndElement - Parser.CharacterDataHandler = self.CharacterData - - # Parse the XML File - ParserStatus = Parser.Parse(open(filename,'r').read(), 1) - - - def runTest(frame, nb, log): - win = XMLTree(nb, -1) - win.LoadTree("paper.xml") - return win - -#---------------------------------------------------------------------- - - - - - - -overview = """\ -""" - diff --git a/utils/wxPython/demo/bitmaps/copy.bmp b/utils/wxPython/demo/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa..0000000000 Binary files a/utils/wxPython/demo/bitmaps/copy.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/image.bmp b/utils/wxPython/demo/bitmaps/image.bmp deleted file mode 100644 index bbab4cd3b0..0000000000 Binary files a/utils/wxPython/demo/bitmaps/image.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/image.gif b/utils/wxPython/demo/bitmaps/image.gif deleted file mode 100644 index 34b3e03570..0000000000 Binary files a/utils/wxPython/demo/bitmaps/image.gif and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/image.jpg b/utils/wxPython/demo/bitmaps/image.jpg deleted file mode 100644 index 8ec8f4872e..0000000000 Binary files a/utils/wxPython/demo/bitmaps/image.jpg and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/image.png b/utils/wxPython/demo/bitmaps/image.png deleted file mode 100644 index 5a4ce74b89..0000000000 Binary files a/utils/wxPython/demo/bitmaps/image.png and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/mondrian.ico b/utils/wxPython/demo/bitmaps/mondrian.ico deleted file mode 100644 index 2310c5d275..0000000000 Binary files a/utils/wxPython/demo/bitmaps/mondrian.ico and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/new.bmp b/utils/wxPython/demo/bitmaps/new.bmp deleted file mode 100644 index d66feb2384..0000000000 Binary files a/utils/wxPython/demo/bitmaps/new.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/open.bmp b/utils/wxPython/demo/bitmaps/open.bmp deleted file mode 100644 index 1c38e97b59..0000000000 Binary files a/utils/wxPython/demo/bitmaps/open.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/paste.bmp b/utils/wxPython/demo/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0d..0000000000 Binary files a/utils/wxPython/demo/bitmaps/paste.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/smiles.bmp b/utils/wxPython/demo/bitmaps/smiles.bmp deleted file mode 100644 index 39006fae82..0000000000 Binary files a/utils/wxPython/demo/bitmaps/smiles.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/smiles.ico b/utils/wxPython/demo/bitmaps/smiles.ico deleted file mode 100644 index bb29c8edd7..0000000000 Binary files a/utils/wxPython/demo/bitmaps/smiles.ico and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/test2.bmp b/utils/wxPython/demo/bitmaps/test2.bmp deleted file mode 100644 index 3a65473212..0000000000 Binary files a/utils/wxPython/demo/bitmaps/test2.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/tog1.bmp b/utils/wxPython/demo/bitmaps/tog1.bmp deleted file mode 100644 index 75f6e7c4cb..0000000000 Binary files a/utils/wxPython/demo/bitmaps/tog1.bmp and /dev/null differ diff --git a/utils/wxPython/demo/bitmaps/tog2.bmp b/utils/wxPython/demo/bitmaps/tog2.bmp deleted file mode 100644 index 7d6e7d580e..0000000000 Binary files a/utils/wxPython/demo/bitmaps/tog2.bmp and /dev/null differ diff --git a/utils/wxPython/demo/demo.py b/utils/wxPython/demo/demo.py deleted file mode 100755 index 99f75a1aa7..0000000000 --- a/utils/wxPython/demo/demo.py +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env python - -import Main -Main.main() diff --git a/utils/wxPython/demo/demoMainLoop.py b/utils/wxPython/demo/demoMainLoop.py deleted file mode 100755 index 9073f7ab64..0000000000 --- a/utils/wxPython/demo/demoMainLoop.py +++ /dev/null @@ -1,119 +0,0 @@ -""" -This demo attempts to override the C++ MainLoop and implement it -in Python. This is not part of the demo framework. - - - THIS FEATURE IS STILL EXPERIMENTAL... -""" - - -from wxPython.wx import * -import time - - -#--------------------------------------------------------------------------- - -class MyFrame(wxFrame): - - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, - wxPoint(100, 100), wxSize(160, 150)) - - EVT_SIZE(self, self.OnSize) - EVT_MOVE(self, self.OnMove) - EVT_CLOSE(self, self.OnCloseWindow) - EVT_IDLE(self, self.OnIdle) - - self.count = 0 - - panel = wxPanel(self, -1) - wxStaticText(panel, -1, "Size:", - wxDLG_PNT(panel, wxPoint(4, 4)), wxDefaultSize) - wxStaticText(panel, -1, "Pos:", - wxDLG_PNT(panel, wxPoint(4, 16)), wxDefaultSize) - - wxStaticText(panel, -1, "Idle:", - wxDLG_PNT(panel, wxPoint(4, 28)), 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, 16)), - wxDLG_SZE(panel, wxSize(36, -1)), - wxTE_READONLY) - - self.idleCtrl = wxTextCtrl(panel, -1, "", - wxDLG_PNT(panel, wxPoint(24, 28)), - wxDLG_SZE(panel, wxSize(36, -1)), - wxTE_READONLY) - - - def OnCloseWindow(self, event): - app.keepGoing = false - self.Destroy() - - def OnIdle(self, event): - self.idleCtrl.SetValue(str(self.count)) - self.count = self.count + 1 - - def OnSize(self, event): - size = event.GetSize() - self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height)) - event.Skip() - - def OnMove(self, event): - pos = event.GetPosition() - self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y)) - - - -#--------------------------------------------------------------------------- - -class MyApp(wxApp): - def MainLoop(self): - # This outer loop determines when to exit the application, for - # this example we let the main frame reset this flag when it - # closes. - while self.keepGoing: - # At this point in the outer loop you could do whatever you - # implemented your own MainLoop for. It should be quick and - # non-blocking, otherwise your GUI will freeze. For example, - # call Fnorb's reactor.do_one_event(0), etc. - - # call_your_code_here() - - - # This inner loop will process any GUI events until there - # are no more waiting. - while self.Pending(): - self.Dispatch() - - # Send idle events to idle handlers. You may want to throtle - # this back a bit so there is not too much CPU time spent in - # the idle handlers. For this example, I'll just snooze a - # little... - time.sleep(0.25) - self.ProcessIdle() - - - - def OnInit(self): - frame = MyFrame(NULL, -1, "This is a test") - frame.Show(true) - self.SetTopWindow(frame) - - self.keepGoing = true - - return true - - -app = MyApp(0) -app.MainLoop() - - - - - diff --git a/utils/wxPython/demo/hangman.py b/utils/wxPython/demo/hangman.py deleted file mode 100644 index 3f2c6da5c6..0000000000 --- a/utils/wxPython/demo/hangman.py +++ /dev/null @@ -1,465 +0,0 @@ -"""Hangman.py, a simple wxPython game, inspired by the -old bsd game by Ken Arnold. -From the original man page: - - In hangman, the computer picks a word from the on-line - word list and you must try to guess it. The computer - keeps track of which letters have been guessed and how - many wrong guesses you have made on the screen in a - graphic fashion. - -That says it all, doesn't it? - -Have fun with it, - -Harm van der Heijden (H.v.d.Heijden@phys.tue.nl)""" - -import random,re,string -from wxPython.wx import * - - - -class WordFetcher: - builtin_words = ' albatros banana electrometer eggshell' - - def __init__(self, filename, min_length = 5): - self.min_length = min_length - print "Trying to open file %s" % (filename,) - try: - f = open(filename, "r") - except: - print "Couldn't open dictionary file %s, using builtins" % (filename,) - self.words = self.builtin_words - self.filename = None - return - self.words = f.read() - self.filename = filename - print "Got %d bytes." % (len(self.words),) - - def SetMinLength(min_length): - self.min_length = min_length - - def Get(self): - reg = re.compile('\s+([a-zA-Z]+)\s+') - n = 50 # safety valve; maximum number of tries to find a suitable word - while n: - index = int(random.random()*len(self.words)) - m = reg.search(self.words[index:]) - if m and len(m.groups()[0]) >= 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: - #print "new" - self.OnGameNew(None) - return - key = event.KeyCode(); - #print key - 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/paper.xml b/utils/wxPython/demo/paper.xml deleted file mode 100644 index 8bf6254b54..0000000000 --- a/utils/wxPython/demo/paper.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - -]> - -Using SGML to make footprints in the sand -footprintssand -JaneDoe -Empress -
    Universe Corporation -1 Main Street -Perfect City -Dorado -Neutral999999 -+55 555 555 5550 -+55 555 555 5555 -jane@universe.com -www.universe.com -
    -Jane Doe is the Empress of the Universe , a position to which she has always aspired. -
    -FredBloggs -Designer -
    Fred (The Shoe) Bloggs Ltd -1 Shoe Lane -Perfect City -Dorado -Neutral999999 -+55 555 555 1122 -+55 555 555 1133 -fred@shoebloggs.com -www.shoebloggs.com
    -Fred has always wanted to create the perfect shoe for making footprints in the sand. Now with SGML and XML, he has been able to document his design. -
    - -easedocumentationIt's not easy being an Empress of the Universe (), but with the right pair of shoes and the right documentation on how to make footprints in the sand of life, it's easier than it was. Since the introduction of SGMLStandard Generalized Markup Language and XMLExtensible Markup Language it is now possible to identify and manage the key bits of information on this process. - -
    -
    Introduction -documentationSince its inception, the Universe has always had sand, now it has an Empress, a good shoe design, and SGML / XML documentation. The time is now ripe for making footprints in the sand.
    -
    Footprints - truly a push technologypush -One could safely say that making footprints is a push technology. This is even more true when the footprint maker is the Empress of the Universe. -The sands of timetime -The 1st think to remember about the Universe is the time/space continuum to which it conforms. This then confuses the sands of time to be something more like the sands of time/space continuum because if you wait on those sands long enough they may be somewhere else - not necessarily because of the time/space continuum but because the winds will push them down the beach. -Identifying the footprints -In order to truly understand who has walked on the sands and left the footprints, it is important to identify the characteristicscharacteristics of the footprint. In the graphic , we can see the footprints are large, well shaped, and evenly distributed from front to back and side to side. -
    Footprint in SandNote the evenly distributed shape and indention
    -This footprint begs the question, 'What kind of remarkable shoeshoe could make such a wonderful footprint?' - - -Shoe TypeRemarkability Rating -Acme ShoeUnremarkable -Budget ShoeNot worth remarking on -Super Duper ShoeAbsolutely Remarkable -
    -The Shoe What Made the Footprint -The remarkable footprint is made by a combination of a terrific shoe worn on a fantastic foot propelled by a one-of-a-kind Empress. As can be seen in Figure , the shoe is worthy of an Empress. -
    The Terrific Shoe
    -The design goals of the shoe were: - -
  • to minimize time-consuming manual tasks such as shoelace tying;
  • -
  • to allow different decorations to be placed on the toes; and
  • -
  • to enforce a good arch.
  • -
    Documenting the Shoe -Documenting the shoe was the best part for Fred Bloggs. His superior design could be captured for all time in a neutrally-encoded, content-specific manner. An excerpt from his DTD gives an insight into the type of information he captured in his documentation. -<!DOCTYPE shoedoc [ -<!ELEMENT shoedoc - - (design, mfg, care, recycle) > -<!ATTLIST shoedoc designer CDATA #REQUIRED - date CDATA #REQUIRED> -<!ELEMENT design - - (specs, desc) > -etc. - -An excerpt from the documentation also gives us insights. - - -The arch shall be high. The toe shall be narrow, but not pinch. The heel shall not come off in grates. Sand shall not get in.]]> - -
    - -The authors wish to express our thanks to the Universe for being there and to gravity for holding the sand down long enough to see the footprints. - -Barrett 00Barrett, B., Being Empress Made Easy, Galaxy Division of Universal Publishers. 0000
    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/quotes.xml b/utils/wxPython/demo/quotes.xml deleted file mode 100644 index b8f56e34d3..0000000000 --- a/utils/wxPython/demo/quotes.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - -]> -We will perhaps eventually be writing only small modules which are identified by name as they are used to build larger ones, so that devices like indentation, rather than delimiters, might become feasible for expressing local structure in the source language. Donald E. Knuth, "Structured Programming with goto Statements", Computing Surveys, Vol 6 No 4, Dec. 1974 The infinities aren't contagious except in that they often appear that way due to to their large size. Tim Peters on the IEEE 754 floating point standard, 27 Apr 1998 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 b4b3112f05..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, 500, "default value", wxPoint(80, 50), wxSize(95, -1), - sampleList, wxCB_DROPDOWN) - EVT_COMBOBOX(self, 500, 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 98ccbd9dba..0000000000 --- a/utils/wxPython/demo/wxGLCanvas.py +++ /dev/null @@ -1,158 +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 - win = wxFrame(frame, -1, "GL Cube", wxDefaultPosition, wxSize(400,300)) - canvas = TestGLCanvas(win) - frame.otherWin = win - win.Show(true) - return None - - - - 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, "GL Cube", wxDefaultPosition, wxSize(400,300)) - 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 e61e30ee05..0000000000 --- a/utils/wxPython/demo/wxGrid.py +++ /dev/null @@ -1,79 +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) - - self.SetEditInPlace(true) - #print self.GetCells() - - - 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 769e4fd2bb..0000000000 --- a/utils/wxPython/demo/wxListBox.py +++ /dev/null @@ -1,102 +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)) - self.lb1 = 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) - EVT_RIGHT_UP(self.lb1, self.EvtRightButton) - self.lb1.SetSelection(0) - - - wxStaticText(self, -1, "Select many:", wxPoint(200, 50), wxSize(65, 18)) - self.lb2 = 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.lb2.SetSelection(0) - - - def EvtListBox(self, event): - self.log.WriteText('EvtListBox: %s\n' % event.GetString()) - - def EvtListBoxDClick(self, event): - self.log.WriteText('EvtListBoxDClick: %s\n' % self.lb1.GetSelection()) - - def EvtMultiListBox(self, event): - self.log.WriteText('EvtMultiListBox: %s\n' % str(self.lb2.GetSelections())) - - def EvtRightButton(self, event): - self.log.WriteText('EvtRightButton: %s\n' % event.GetPosition()) - -#--------------------------------------------------------------------------- - -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 790a88ce23..0000000000 --- a/utils/wxPython/demo/wxListCtrl.py +++ /dev/null @@ -1,169 +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) - - self.list.SetItemState(5, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED) - - self.currentItem = 0 - EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected) - EVT_LIST_DELETE_ITEM(self, tID, self.OnItemDelete) - EVT_LEFT_DCLICK(self.list, self.OnDoubleClick) - EVT_RIGHT_DOWN(self.list, self.OnRightDown) - - # for wxMSW - EVT_COMMAND_RIGHT_CLICK(self.list, tID, self.OnRightClick) - - # for wxGTK - EVT_RIGHT_UP(self.list, self.OnRightClick) - - - def OnRightDown(self, event): - self.x = event.GetX() - self.y = event.GetY() - self.log.WriteText("x, y = %s\n" % str((self.x, self.y))) - event.Skip() - - def OnItemSelected(self, event): - self.currentItem = event.m_itemIndex - self.log.WriteText("OnItemSelected: %s\n" % self.list.GetItemText(self.currentItem)) - - def OnItemDelete(self, event): - self.log.WriteText("OnItemDelete\n") - - - def OnDoubleClick(self, event): - self.log.WriteText("OnDoubleClick item %s\n" % self.list.GetItemText(self.currentItem)) - - - def OnRightClick(self, event): - self.log.WriteText("OnRightClick %s\n" % self.list.GetItemText(self.currentItem)) - self.menu = wxMenu() - tPopupID1 = 0 - tPopupID2 = 1 - tPopupID3 = 2 - tPopupID4 = 3 - self.menu.Append(tPopupID1, "One") - self.menu.Append(tPopupID2, "Two") - self.menu.Append(tPopupID3, "Three") - self.menu.Append(tPopupID4, "DeleteAllItems") - EVT_MENU(self, tPopupID1, self.OnPopupOne) - EVT_MENU(self, tPopupID2, self.OnPopupTwo) - EVT_MENU(self, tPopupID3, self.OnPopupThree) - EVT_MENU(self, tPopupID4, self.OnPopupFour) - self.PopupMenu(self.menu, wxPoint(self.x, self.y)) - - def OnPopupOne(self, event): - self.log.WriteText("Popup one\n") - - def OnPopupTwo(self, event): - self.log.WriteText("Popup two\n") - - def OnPopupThree(self, event): - self.log.WriteText("Popup three\n") - - def OnPopupFour(self, event): - self.list.DeleteAllItems() - - 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/wxProgressDialog.py b/utils/wxPython/demo/wxProgressDialog.py deleted file mode 100644 index 61caba204e..0000000000 --- a/utils/wxPython/demo/wxProgressDialog.py +++ /dev/null @@ -1,38 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - max = 20 - dlg = wxProgressDialog("Progress dialog example", - "An informative message", - max, - frame, - wxPD_CAN_ABORT | wxPD_APP_MODAL) - - keepGoing = true - count = 0 - while keepGoing and count <= max: - count = count + 1 - wxSleep(1) - - if count == max / 2: - keepGoing = dlg.Update(count, "Half-time!") - else: - keepGoing = dlg.Update(count) - - dlg.Destroy() - - -#--------------------------------------------------------------------------- - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxRadioBox.py b/utils/wxPython/demo/wxRadioBox.py deleted file mode 100644 index e20db49a6d..0000000000 --- a/utils/wxPython/demo/wxRadioBox.py +++ /dev/null @@ -1,81 +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) - EVT_RADIOBOX(self, 30, self.EvtRadioBox) - - - rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(35, 120), 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 e565d8d394..0000000000 --- a/utils/wxPython/demo/wxScrolledWindow.py +++ /dev/null @@ -1,129 +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.maxWidth = 1000 - self.maxHeight = 1000 - - 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, self.maxWidth/20, self.maxHeight/20) - - def getWidth(self): - return self.maxWidth - - def getHeight(self): - return self.maxHeight - - - def OnPaint(self, event): - dc = wxPaintDC(self) - self.PrepareDC(dc) - self.DoDrawing(dc) - - - def DoDrawing(self, dc): - dc.BeginDrawing() - 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, 85) - - 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 1facf191a2..0000000000 --- a/utils/wxPython/demo/wxTreeCtrl.py +++ /dev/null @@ -1,147 +0,0 @@ - -from wxPython.wx import * - -import string - -#--------------------------------------------------------------------------- - -class TestTreeCtrlPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - - self.log = log - tID = NewId() - - self.tree = wxTreeCtrl(self, tID, wxDefaultPosition, wxDefaultSize, - wxTR_HAS_BUTTONS | wxTR_EDIT_LABELS) - - self.root = self.tree.AddRoot("The Root Item") - for x in range(15): - child = self.tree.AppendItem(self.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(self.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) - EVT_TREE_BEGIN_LABEL_EDIT(self, tID, self.OnBeginEdit) - EVT_TREE_END_LABEL_EDIT (self, tID, self.OnEndEdit) - - EVT_LEFT_DCLICK(self.tree, self.OnLeftDClick) - EVT_RIGHT_DOWN(self.tree, self.OnRightClick) - EVT_RIGHT_UP(self.tree, self.OnRightUp) - - def OnRightClick(self, event): - (x,y) = event.Position(); - item = self.tree.HitTest(wxPoint(x,y)) - self.log.WriteText("OnRightClick: %s\n" % self.tree.GetItemText(item)) - self.tree.SelectItem(item) - - def OnRightUp(self, event): - (x,y) = event.Position(); - item = self.tree.HitTest(wxPoint(x,y)) - self.log.WriteText("OnRightUp: %s (manually starting label edit)\n" - % self.tree.GetItemText(item)) - self.tree.EditLabel(item) - - - - def OnBeginEdit(self, event): - self.log.WriteText("OnBeginEdit\n") - # show how to prevent edit... - if self.tree.GetItemText(event.GetItem()) == "The Root Item": - wxBell() - self.log.WriteText("You can't edit this one...\n") - event.Veto() - - def OnEndEdit(self, event): - self.log.WriteText("OnEndEdit\n") - # show how to reject edit, we'll not allow any digits - for x in event.GetLabel(): - if x in string.digits: - self.log.WriteText("You can't enter digits...\n") - event.Veto() - return - - - - def OnLeftDClick(self, event): - (x,y) = event.Position(); - item = self.tree.HitTest(wxPoint(x,y)) - self.log.WriteText("OnLeftDClick: %s\n" % self.tree.GetItemText(item)) - - - 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): - self.item = event.GetItem() - self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(self.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 8a49c56dde..0000000000 --- a/utils/wxPython/distrib/makerpm +++ /dev/null @@ -1,32 +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 - - - -strip /usr/lib/python1.5/site-packages/wxPython/*.so -strip /usr/lib/libwxPyHelpers.so - -cat wxPython.spec.in | sed s/__VERSION__/$1/g > wxPython.spec - -mkdir /usr/doc/wxPython-$1 -cp ../README.txt /usr/doc/wxPython-$1 -cp ../../../docs/preamble.txt /usr/doc/wxPython-$1 -cp ../../../docs/licence.txt /usr/doc/wxPython-$1 -cp ../../../docs/licendoc.txt /usr/doc/wxPython-$1 -cp ../../../docs/lgpl.txt /usr/doc/wxPython-$1 -cp ../../../docs/gpl.txt /usr/doc/wxPython-$1 - -rpm -bb wxPython.spec - -mv /usr/src/redhat/RPMS/*/wxPython*.rpm . - -rm -r /usr/doc/wxPython-$1 \ No newline at end of file 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/makexferzip b/utils/wxPython/distrib/makexferzip deleted file mode 100755 index 88e06f3ab0..0000000000 --- a/utils/wxPython/distrib/makexferzip +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -cd ~/wx/utils/wxPython - -find . -name "*.py" > filelist -find . -name "*.i" >> filelist -find . -name "*.h" >> filelist -find . -name "*.cpp" >> filelist - -cat filelist | zip -r -u -@ xfer.zip diff --git a/utils/wxPython/distrib/makexferzip.bat b/utils/wxPython/distrib/makexferzip.bat deleted file mode 100755 index 133ecb15d9..0000000000 --- a/utils/wxPython/distrib/makexferzip.bat +++ /dev/null @@ -1,9 +0,0 @@ - - -cd %WXWIN%\utils\wxPython -find . -name "*.py" > filelist -find . -name "*.i" >> filelist -find . -name "*.h" >> filelist -find . -name "*.cpp" >> filelist - -cat filelist | zip -r -u -@ xfer.zip diff --git a/utils/wxPython/distrib/wxPython.bmp b/utils/wxPython/distrib/wxPython.bmp deleted file mode 100644 index e66da76cb4..0000000000 Binary files a/utils/wxPython/distrib/wxPython.bmp and /dev/null differ diff --git a/utils/wxPython/distrib/wxPython.rsp b/utils/wxPython/distrib/wxPython.rsp deleted file mode 100644 index 4a6fc93634..0000000000 --- a/utils/wxPython/distrib/wxPython.rsp +++ /dev/null @@ -1,46 +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/demo/*.xml - -wxPython/lib/*.py -wxPython/lib/*.txt -wxPython/lib/sizers/*.py -wxPython/lib/sizers/*.txt - - -wxPython/src/*.i -wxPython/src/*.py -wxPython/src/*.cpp -wxPython/src/*.c -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 e67b7bb249..0000000000 --- a/utils/wxPython/distrib/wxPython.spec.in +++ /dev/null @@ -1,53 +0,0 @@ -Summary: Cross platform GUI toolkit for use with the Python language. -Name: wxPython -Version: __VERSION__ -Release: 1 -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 - -%post -/sbin/ldconfig - -%postun -/sbin/ldconfig - -%files -%doc /usr/doc/wxPython-__VERSION__ -/usr/lib/libwxPyHelpers.so -/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 87e4fc4328..0000000000 --- a/utils/wxPython/distrib/wxPython.wse +++ /dev/null @@ -1,1325 +0,0 @@ -Document Type: WSE -item: Global - Version=6.01 - Title=wxPython 2.1 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.1b2.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.1 - Flags=10000000 -end -item: Set Variable - Variable=GROUP - Value=wxPython 2.1 - 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 - 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: Although this program is OpenSource, it is still protected by copyright law and international treaties. See wxWindows Library Licence, Version 3 for details. - Text= - Text= - 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=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 -remarked item: If/While Statement - Variable=COMPONENTS - Value=A - Flags=00001010 -end -remarked item: End Block -end -item: Install File - Source=d:\WINNT\System32\Msvcirt.dll - Destination=%SYS%\Msvcirt.dll - Flags=0000001010000011 -end -item: Install File - Source=d:\WINNT\System32\Msvcrt.dll - Destination=%SYS%\Msvcrt.dll - Flags=0000001010000011 -end -item: Install File - Source=e:\projects\wx\lib\wx21b8.dll - Destination=%SYS%\wx21b8.dll - Flags=0000001010010010 -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\lib\sizers\*.py - Destination=%MAINDIR%\wxPython\lib\sizers - 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\README.txt - Destination=%MAINDIR%\wxPython\demo - Description=Demos - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\demo\*.xml - 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: Remark -end -item: Install File - Source=E:\PROJECTS\wx\docs\html\wx\wx.chm - Destination=%MAINDIR%\wxPython\docs\wx.chm - Description=wxPython documentation - Flags=0000000010000010 -end -item: Install File - Source=E:\PROJECTS\wx\docs\preamble.txt - Destination=%MAINDIR%\wxPython\docs\preamble.txt - Description=wxPython documentation - Flags=0000000010000010 -end -item: Install File - Source=E:\PROJECTS\wx\docs\licence.txt - Destination=%MAINDIR%\wxPython\docs\licence.txt - Description=wxPython documentation - Flags=0000000010000010 -end -item: Install File - Source=E:\PROJECTS\wx\docs\licendoc.txt - Destination=%MAINDIR%\wxPython\docs\licendoc.txt - Description=wxPython documentation - Flags=0000000010000010 -end -item: Install File - Source=E:\PROJECTS\wx\docs\lgpl.txt - Destination=%MAINDIR%\wxPython\docs\lgpl.txt - Description=wxPython documentation - Flags=0000000010000010 -end -item: Install File - Source=E:\PROJECTS\wx\docs\gpl.txt - Destination=%MAINDIR%\wxPython\docs\gpl.txt - Description=wxPython documentation - Flags=0000000010000010 -end -item: Remark -end -remarked item: If/While Statement - Variable=COMPONENTS - Value=B - Flags=00001010 -end -remarked item: Install File - Source=e:\projects\wx\docs\html\wx\*.* - Destination=%MAINDIR%\wxPython\docs - Description=wxPython documentation - Flags=0000000010000010 -end -remarked item: Install File - Source=e:\projects\wx\docs\html\wx\wx.htm - Destination=%MAINDIR%\wxPython\docs\index.htm - Description=wxPython documentation - Flags=0000000010000010 -end -remarked 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: 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: Create Shortcut - Source=%UNINSTALL_PATH% - Destination=%CGROUPDIR%\%CGROUP_SAVE%\Uninstall %APPTITLE%.lnk - Command Options=%INST_LOG_PATH% - Icon Number=0 -end -item: Create Shortcut - Source=pythonw.exe - Destination=%CGROUPDIR%\%CGROUP_SAVE%\Run the DEMO.lnk - Command Options=demo.py - Working Directory=%MAINDIR%\wxPython\demo - Icon Number=0 -end -item: Create Shortcut - Source=%MAINDIR%\wxPython\docs\wx.chm - Destination=%CGROUPDIR%\%CGROUP_SAVE%\wxWindows User Guide.lnk - Icon Number=0 -end -item: Else Statement -end -item: Add ProgMan Icon - Group=%GROUP% - Icon Name=Uninstall %APPTITLE% - Command Line=%UNINSTALL_PATH% %INST_LOG_PATH% -end -item: Add ProgMan Icon - Group=%GROUP% - Icon Name=Run the DEMO - Command Line=pythonw.exe demo.py - Default Directory=%MAINDIR%\wxPython\demo -end -item: Add ProgMan Icon - Group=%GROUP% - Icon Name=wxWindows User Guide - Command Line=%MAINDIR%\wxPython\docs\wx.chm -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 aef1c81592..0000000000 --- a/utils/wxPython/distrib/wxPython.wsm +++ /dev/null @@ -1 +0,0 @@ -WSM6 \ No newline at end of file diff --git a/utils/wxPython/distrib/zipit.bat b/utils/wxPython/distrib/zipit.bat deleted file mode 100755 index b8713f58a8..0000000000 --- a/utils/wxPython/distrib/zipit.bat +++ /dev/null @@ -1,17 +0,0 @@ - -@echo off - - -zip -@ -r wxPython\wxPython-src-%1.zip < wxPython\distrib\wxPython.rsp - -mkdir wxPython\docs -copy %WXWIN%\docs\html\wx\*.gif wxPython\docs -copy %WXWIN%\docs\html\wx\*.htm wxPython\docs -copy wxPython\docs\wx.htm wxPython\docs\index.htm - -zip -r wxPython\wxPython-docs-%1.zip wxPython\docs - -del /y wxPython\docs\*.* -rmdir wxPython\docs - -move /R wxPython\*.zip wxPython\distrib diff --git a/utils/wxPython/lib/.cvsignore b/utils/wxPython/lib/.cvsignore deleted file mode 100644 index 0d20b6487c..0000000000 --- a/utils/wxPython/lib/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.pyc diff --git a/utils/wxPython/lib/__init__.py b/utils/wxPython/lib/__init__.py deleted file mode 100644 index b28b04f643..0000000000 --- a/utils/wxPython/lib/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/utils/wxPython/lib/dialogs.py b/utils/wxPython/lib/dialogs.py deleted file mode 100644 index 27584d516d..0000000000 --- a/utils/wxPython/lib/dialogs.py +++ /dev/null @@ -1,107 +0,0 @@ -from wxPython.wx import * -from layoutf import Layoutf -import string - - - -class wxScrolledMessageDialog(wxDialog): - - def __init__(self, parent, msg, caption, pos = None, size = None): - if not pos: - pos = wxDefaultPosition - if not size: - size = wxSize(500,300) - wxDialog.__init__(self, parent, -1, caption, pos, size) - text = wxTextCtrl(self, -1, msg, wxDefaultPosition, - wxDefaultSize, - wxTE_MULTILINE | wxTE_READONLY) - ok = wxButton(self, wxID_OK, "OK") - text.SetConstraints(Layoutf('t=t5#1;b=t5#2;l=l5#1;r=r5#1', (self,ok))) - ok.SetConstraints(Layoutf('b=b5#1;x%w50#1;w!80;h!25', (self,))) - self.SetAutoLayout(TRUE) - self.Layout() - - -class wxMultipleChoiceDialog(wxDialog): - - def __init__(self, parent, msg, title, lst, pos = None, size = None): - if not pos: - pos = wxDefaultPosition - if not size: - size = wxSize(200,200) - wxDialog.__init__(self, parent, -1, title, pos, size) - dc = wxClientDC(self) - height = 0 - for line in string.split(msg,'\n'): - height = height + dc.GetTextExtent(msg)[1] + 4 - stat = wxStaticText(self, -1, msg) - self.lbox = wxListBox(self, 100, wxDefaultPosition, - wxDefaultSize, lst, wxLB_MULTIPLE) - ok = wxButton(self, wxID_OK, "OK") - cancel = wxButton(self, wxID_CANCEL, "Cancel") - stat.SetConstraints(Layoutf('t=t10#1;l=l5#1;r=r5#1;h!%d' % (height,), - (self,))) - self.lbox.SetConstraints(Layoutf('t=b10#2;l=l5#1;r=r5#1;b=t5#3', - (self, stat, ok))) - ok.SetConstraints(Layoutf('b=b5#1;x%w25#1;w!80;h!25', (self,))) - cancel.SetConstraints(Layoutf('b=b5#1;x%w75#1;w!80;h!25', (self,))) - self.SetAutoLayout(TRUE) - self.lst = lst - self.Layout() - - def OnSize(self, event): - self.Layout() - - def GetValue(self): - return self.lbox.GetSelections() - - def GetValueString(self): - sel = self.lbox.GetSelections() - val = [] - for i in sel: - val.append(self.lst[i]) - return tuple(val) - -if __name__ == '__main__': - class MyFrame(wxFrame): - def __init__(self): - wxFrame.__init__(self, NULL, -1, "hello", - wxDefaultPosition, wxSize(200,200)) - wxButton(self, 100, "Multiple Test",wxPoint(0,0)) - wxButton(self, 101, "Message Test", wxPoint(0,100)) - EVT_BUTTON(self, 100, self.OnMultipleTest) - EVT_BUTTON(self, 101, self.OnMessageTest) - - def OnMultipleTest(self, event): - self.lst = [ 'apple', 'pear', 'banana', 'coconut', 'orange', - 'etc', 'etc..', 'etc...' ] - dlg = wxMultipleChoiceDialog(self, - "Pick some from\n this list\nblabla", - "m.s.d.", self.lst) - if (dlg.ShowModal() == wxID_OK): - print "Selection:", dlg.GetValue(), " -> ", 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/sizers/.cvsignore b/utils/wxPython/lib/sizers/.cvsignore deleted file mode 100644 index 2f78cf5b66..0000000000 --- a/utils/wxPython/lib/sizers/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.pyc - diff --git a/utils/wxPython/lib/sizers/__init__.py b/utils/wxPython/lib/sizers/__init__.py deleted file mode 100644 index 5fbcbc4f70..0000000000 --- a/utils/wxPython/lib/sizers/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -#---------------------------------------------------------------------------- -# Name: __init__.py -# Purpose: The presence of this file turns this directory into a -# Python package. -# -# Author: Robin Dunn -# -# Created: 18-May-1999 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -from sizer import * -from box import * -from border import * - -#---------------------------------------------------------------------------- diff --git a/utils/wxPython/lib/sizers/border.py b/utils/wxPython/lib/sizers/border.py deleted file mode 100644 index fd054c632e..0000000000 --- a/utils/wxPython/lib/sizers/border.py +++ /dev/null @@ -1,109 +0,0 @@ -#---------------------------------------------------------------------- -# Name: wxPython.lib.sizers.border -# Purpose: A Sizer that wraps an empty border around its contents -# -# Author: Robin Dunn -# -# Created: 9-June-1999 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------- - -from sizer import wxSizer - -wxNORTH = 1 -wxSOUTH = 2 -wxEAST = 4 -wxWEST = 8 -wxALL = wxNORTH | wxSOUTH | wxEAST | wxWEST - -#---------------------------------------------------------------------- - -class wxBorderSizer(wxSizer): - """ - wxBorderSizer - - This sizer provides an empty buffer on one or more sides of it's - contents. It can only hold a single widget, but that can be a - sizer containing other items if you wish. - - The sizer is constructed with a parameter specifying which sides - should have the border. You can use a logical OR of the following - values to specify the sides: - - wxNORTH -- the top side - wxSOUTH -- the bottom side - wxEAST -- the right side - wxWEST -- the left side - wxALL -- all sides - - The width in pixels of the border is specified when the child - widget is Added to the sizer. - - """ - def __init__(self, sides = wxALL): - wxSizer.__init__(self) - self.sides = sides - - - def Add(self, widget, borderSize): - if self.children: - raise ValueError("wxBorderSizer can only contain one child.") - - wxSizer.Add(self, widget, borderSize) - - - def CalcMin(self): - isSizer, widget, width, height, borderSize = self.children[0] - - if isSizer: - width, height = widget.CalcMin() - - if self.sides & wxEAST: - width = width + borderSize - - if self.sides & wxWEST: - width = width + borderSize - - if self.sides & wxNORTH: - height = height + borderSize - - if self.sides & wxSOUTH: - height = height + borderSize - - return width, height - - - def RecalcSizes(self): - isSizer, widget, width, height, borderSize = self.children[0] - width = self.size.width - height = self.size.height - px = self.origin.x - py = self.origin.y - - if self.sides & wxWEST: - width = width - borderSize - px = px + borderSize - if self.sides & wxEAST: - width = width - borderSize - - if self.sides & wxNORTH: - height = height - borderSize - py = py + borderSize - if self.sides & wxSOUTH: - height = height - borderSize - - widget.SetDimensions(px, py, width, height) - - -#---------------------------------------------------------------------- -# -# TODO... Make an abstract class wxBorder whose decendants can be added to -# a wxBorderSizer to provide drawing for the buffer area. Ideas are -# to provide a color border, beveled borders, rounded borders, etc. - - - - - diff --git a/utils/wxPython/lib/sizers/box.py b/utils/wxPython/lib/sizers/box.py deleted file mode 100644 index 64c9378565..0000000000 --- a/utils/wxPython/lib/sizers/box.py +++ /dev/null @@ -1,137 +0,0 @@ -#---------------------------------------------------------------------- -# Name: wxPython.lib.sizers.box -# Purpose: A sizer/layout managers for wxPython that places items in -# a stretchable box -# -# Author: Robin Dunn and Dirk Holtwick -# -# Created: 17-May-1999 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------- - -from sizer import wxSizer -from wxPython.wx import wxVERTICAL, wxHORIZONTAL - -#---------------------------------------------------------------------- - - -class wxBoxSizer(wxSizer): - """ - wxBoxSizer - - A Sizer that lays components out in a box, in the order they are - added to the layout manager, with a given orientation. The - orientation is specified in the constructor with either wxVERTICAL - or wxHORIZONTAL. - - The optional parameter to the Add method (for this sizer it's - called the stretch flag) can be used to flag one or more components - as stretchable, meaning that they will expand to fill available - space in the given orientation. The default is zero, or not - stretchable. - - If the stretch flag is non-zero then the widget will stretch. If - the sizer holds more than one item that is stretchable then they - share the available space. - - If the strech flag is greater than 1 then it serves as a weighting - factor. Widgets with a flag of 2 will get twice as much space as - widgets with 1, etc. - """ - def __init__(self, orientation, size = None): - wxSizer.__init__(self, size) - self.orientation = orientation - - - def CalcMin(self): - self.stretchable = 0 # number of stretchable items - self.minWidth = 0 # minimal size - self.minHeight = 0 - self.fixedWidth = 0 # size without stretched widgets - self.fixedHeight = 0 - - # iterate through children - for (isSizer, widget, width, height, stretch) in self.children: - weight = 1 - if stretch: - weight = stretch - - if isSizer: - # let sub-sizers recalc their required space - width, height = widget.CalcMin() - - # minimal size - if self.orientation == wxVERTICAL: - self.minHeight = self.minHeight + (height * weight) - self.minWidth = max(self.minWidth, width) - else: - self.minWidth = self.minWidth + (width * weight) - self.minHeight = max(self.minHeight, height) - - # stretchable items - if stretch: - self.stretchable = self.stretchable + weight - else: - if self.orientation == wxVERTICAL: - self.fixedHeight = self.fixedHeight + height - self.fixedWidth = max(self.fixedWidth, width) - else: - self.fixedWidth = self.fixedWidth + width - self.fixedHeight = max(self.fixedHeight, height) - - return self.minWidth, self.minHeight - - - - def RecalcSizes(self): - # get current dimensions, save for performance - myWidth = self.size.width - myHeight = self.size.height - - # relative recent positions & sizes - px = self.origin.x - py = self.origin.y - newWidth = 0 - newHeight = 0 - - # calculate space for one stretched item - if self.stretchable: - if self.orientation == wxHORIZONTAL: - delta = (myWidth - self.fixedWidth) / self.stretchable - extra = (myWidth - self.fixedWidth) % self.stretchable - else: - delta = (myHeight - self.fixedHeight) / self.stretchable - extra = (myHeight - self.fixedHeight) % self.stretchable - - # iterate children ... - for (isSizer, widget, width, height, stretch) in self.children: - weight = 1 - if stretch: - weight = stretch - - if isSizer: - width, height = widget.CalcMin() - - # ... vertical - if self.orientation == wxVERTICAL: - newHeight = height - if stretch: - newHeight = (delta * weight) + extra # first stretchable gets extra pixels - extra = 0 - widget.SetDimensions(px, py, myWidth, newHeight) - - # ... horizontal - elif self.orientation == wxHORIZONTAL: - newWidth = width - if stretch: - newWidth = (delta * weight) + extra # first stretchable gets extra pixels - extra = 0 - widget.SetDimensions(px, py, newWidth, myHeight) - - px = px + newWidth - py = py + newHeight - - -#---------------------------------------------------------------------- diff --git a/utils/wxPython/lib/sizers/sizer.py b/utils/wxPython/lib/sizers/sizer.py deleted file mode 100644 index 5cca29cbfe..0000000000 --- a/utils/wxPython/lib/sizers/sizer.py +++ /dev/null @@ -1,112 +0,0 @@ -#---------------------------------------------------------------------- -# Name: wxPython.lib.sizers.sizer -# Purpose: General purpose sizer/layout managers for wxPython -# -# Author: Robin Dunn and Dirk Holtwick -# -# Created: 17-May-1999 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------- - -from wxPython.wx import wxPoint, wxSize - -#---------------------------------------------------------------------- - -class wxSizer: - """ - wxSizer - - An abstract base sizer class. A sizer is able to manage the size and - layout of windows and/or child sizers. - - Derived classes should implement CalcMin, and RecalcSizes. - - A window or sizer is added to this sizer with the Add method: - - def Add(self, widget, opt=0) - - The meaning of the opt parameter is different for each type of - sizer. It may be a single value or a collection of values. - """ - def __init__(self, size = None): - self.children = [] - self.origin = wxPoint(0, 0) - if not size: - size = wxSize(0,0) - self.size = size - - def Add(self, widget, opt=0): - """ - Add a window or a sizer to this sizer. The meaning of the opt - parameter is different for each type of sizer. It may be a single - value or a collection of values. - """ - size = widget.GetSize() - isSizer = isinstance(widget, wxSizer) - self.children.append( (isSizer, widget, size.width, size.height, opt) ) - - - def AddMany(self, widgets): - """ - Add a sequence (list, tuple, etc.) of widgets to this sizer. The - items in the sequence should be tuples containing valid args for - the Add method. - """ - for childinfo in widgets: - if type(childinfo) != type(()): - childinfo = (childinfo, ) - apply(self.Add, childinfo) - - - def SetDimensions(self, x, y, width, height): - self.origin = wxPoint(x, y) - self.size = wxSize(width, height) - self.RecalcSizes() - - def GetSize(self): - return self.size - - def GetPosition(self): - return self.origin - - def CalcMin(self): - raise NotImplementedError("Derived class should implement CalcMin") - - def RecalcSizes(self): - raise NotImplementedError("Derived class should implement RecalcSizes") - - - - def __getMinWindowSize(self, win): - """ - Calculate the best size window to hold this sizer, taking into - account the difference between client size and window size. - """ - min = self.GetMinSize() - a1,a2 = win.GetSizeTuple() - b1,b2 = win.GetClientSizeTuple() - w = min.width + (a1 - b1) - h = min.height + (a2 - b2) - return (w, h) - - - def GetMinSize(self): - minWidth, minHeight = self.CalcMin() - return wxSize(minWidth, minHeight) - - def SetWindowSizeHints(self, win): - w, h = self.__getMinWindowSize(win) - win.SetSizeHints(w,h) - - def FitWindow(self, win): - w, h = self.__getMinWindowSize(win) - win.SetSize(wxSize(w,h)) - - def Layout(self, size): - self.CalcMin() - self.SetDimensions(self.origin.x, self.origin.y, - size.width, size.height) - -#---------------------------------------------------------------------- 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/modules/Makefile b/utils/wxPython/modules/Makefile deleted file mode 100644 index 6399e2c5b5..0000000000 --- a/utils/wxPython/modules/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -SUBDIRS = html lseditor glcanvas - -all: - -for i in $(SUBDIRS); do \ - if test ! -r $$i/Makefile ; then \ - make -C $$i -f Makefile.pre.in boot ; \ - fi ; \ - make -C $$i; \ - done - -# Generic target for i.e. install, clean, distclean... -%: - -for i in $(SUBDIRS); do \ - if test ! -r $$i/Makefile ; then \ - make -C $$i -f Makefile.pre.in boot ; \ - fi ; \ - make -C $$i $@; \ - done - - - - diff --git a/utils/wxPython/modules/README b/utils/wxPython/modules/README deleted file mode 100644 index 152f6fcc62..0000000000 --- a/utils/wxPython/modules/README +++ /dev/null @@ -1,14 +0,0 @@ -Modules subdir, more info later... - -stubs contains a template for new modules. - -html, lseditor are more or less usuable. - -glcanvas is moved from the main src directory. - -Note, there are no SWIG generated files in CVS yet. I don't expect them to -be useful at this stage, since you can't hack this stuff without a working & -patched up SWIG anyway. Besides, those big files really bog down my phone -line. - -Harm van der Heijden, Aug 11, 1999. diff --git a/utils/wxPython/modules/glcanvas/glcanvas.i b/utils/wxPython/modules/glcanvas/glcanvas.i deleted file mode 100644 index 6f9f6446d5..0000000000 --- a/utils/wxPython/modules/glcanvas/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 - - -%{ -#if defined(SEPARATE) && defined(__WXMSW__) - 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 wxGLCanvas; - -//--------------------------------------------------------------------------- - -class wxGLContext { -public: - wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette = wxNullPalette); - ~wxGLContext(); - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - -#ifdef __WXGTK__ - void SetupPixelFormat(); - void SetupPalette(const wxPalette& palette); - wxPalette CreateDefaultPalette(); - wxPalette* GetPalette(); -#endif - - 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); - -//--------------------------------------------------------------------------- - -%init %{ - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -%} - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- diff --git a/utils/wxPython/modules/glcanvas/glcanvasc.def b/utils/wxPython/modules/glcanvas/glcanvasc.def deleted file mode 100644 index 8be1ced94e..0000000000 --- a/utils/wxPython/modules/glcanvas/glcanvasc.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS - initglcanvasc diff --git a/utils/wxPython/modules/html/BUGS b/utils/wxPython/modules/html/BUGS deleted file mode 100644 index bc434f15ff..0000000000 --- a/utils/wxPython/modules/html/BUGS +++ /dev/null @@ -1,23 +0,0 @@ -Known bugs - -html, all: - - keys can move the vertical scrollbar, but the window moveth not. - problem in wxHTML. - - - widgets are not removed when the HTML contents is changed - (this can be fixed by adding ~HtmlWidgetCell { wnd->Destroy(); } ) - - - potential problem with the use of ThreadState in html.i - (mainly because I don't really know what I'm doing there) - -html, msw: - - vertical scrollbar behaves erratically when content smaller than - window - - - page with widgets takes forever to draw when constructed - in frame constructor - - - sometimes the python scripts with html crash on startup, before - the window is displayed (illegal operation). this seems mainly to - happen when the various libs are not yet in the disk cache. race - condition? diff --git a/utils/wxPython/modules/html/README b/utils/wxPython/modules/html/README deleted file mode 100644 index 0e3d872102..0000000000 --- a/utils/wxPython/modules/html/README +++ /dev/null @@ -1,11 +0,0 @@ -Aug. 2 1999 Harm van der Heijden - -What's in here: - -html - -- minimal wrap of Vaclaf Slavik's wxHTML (now part of - wxWindows); only parts of the wxHtmlWindow class are used. - Testsample htmlview.py. - There's also a python tag handler, see htmlwidget.py for - a demonstration. - diff --git a/utils/wxPython/modules/html/html.i b/utils/wxPython/modules/html/html.i deleted file mode 100644 index 05eea37be2..0000000000 --- a/utils/wxPython/modules/html/html.i +++ /dev/null @@ -1,259 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: html.i -// Purpose: SWIG definitions of html classes -// -// Author: Robin Dunn -// -// Created: 25-nov-1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module html - -%{ -#include "helpers.h" -#include -#include -#include -#include -%} - -//--------------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -%extern wx.i -%extern windows.i -%extern _defs.i -%extern events.i -//%extern windows2.i -//%extern windows3.i -//%extern frames.i -//%extern misc.i -//%extern gdi.i -//%extern controls.i - - -%{ -#ifdef __WXMSW__ -static wxString wxPyEmptyStr(""); -static wxPoint wxPyDefaultPosition(wxDefaultPosition); -static wxSize wxPyDefaultSize(wxDefaultSize); -#endif -static PyThreadState* wxPyThreadState; -%} - -%pragma(python) code = "import wx,htmlhelper" -%pragma(python) code = "widget = htmlc" - -%{ - -static PyObject* mod_dict = NULL; // will be set by init - -#include - -TAG_HANDLER_BEGIN(PYTHONTAG, "PYTHON") - TAG_HANDLER_PROC(tag) - { - wxWindow *wnd; - wxString errmsg; - char pbuf[256]; - - int fl = 0; - - while (1) { - #ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyThreadState); - #endif - if (tag.HasParam("FLOAT")) - tag.ScanParam("FLOAT", "%i", &fl); - PyObject* pyfunc = PyDict_GetItemString(mod_dict, "WidgetStarter"); - if (pyfunc == NULL) { - errmsg = "Could not find object WidgetStarter"; - break; - } - if (! PyCallable_Check(pyfunc)) { - errmsg = "WidgetStarter does not appear to be callable"; - break; - } - SWIG_MakePtr(pbuf, m_WParser->GetWindow(), "_wxHtmlWindow_p"); - PyObject* arglist = Py_BuildValue("(s,s)", pbuf, - (const char*)tag.GetAllParams()); - if (! arglist) { - errmsg = "Failed making argument list"; - break; - } - PyObject* ret = PyEval_CallObject(pyfunc, arglist); - Py_DECREF(arglist); - if (ret == NULL) { - errmsg = "An error occured while calling WidgetStarter"; - if (PyErr_Occurred()) - PyErr_Print(); - break; - } - wnd = NULL; - if (PyString_Check(ret)) { - char* thisc = PyString_AsString(ret); - SWIG_GetPtr(thisc, (void**)&wnd, "_wxWindow_p"); - } - Py_DECREF(ret); - if (! wnd) { - errmsg = "Could not make a wxWindow pointer from return ptr"; - break; - } - #ifdef WXP_WITH_THREAD - PyEval_SaveThread(); - #endif - wnd -> Show(TRUE); - m_WParser->OpenContainer()->InsertCell(new wxHtmlWidgetCell(wnd, fl)); - return FALSE; - } - - /* we got out of the loop. Must be an error. Show a box stating it. */ - - #ifdef WXP_WITH_THREAD - PyEval_SaveThread(); - #endif - - wnd = new wxTextCtrl( m_WParser -> GetWindow(), -1, - errmsg, wxPoint(0,0), - wxSize(300, 100), wxTE_MULTILINE ); - wnd -> Show(TRUE); - m_WParser->OpenContainer()->InsertCell(new wxHtmlWidgetCell(wnd, 100)); - return FALSE; - } - -TAG_HANDLER_END(PYTHONTAG) - -TAGS_MODULE_BEGIN(PythonTag) - - TAGS_MODULE_ADD(PYTHONTAG) - -TAGS_MODULE_END(PythonTag) - -// Note: see also the init function where we add the module! - -%} - -//--------------------------------------------------------------------------- - -// item of history list -class HtmlHistoryItem -{ - public: - HtmlHistoryItem(const char* p, const char* a); - int GetPos() const {return m_Pos;} - void SetPos(int p) {m_Pos = p;} - const wxString& GetPage() const ; - const wxString& GetAnchor() const ; -}; - -class wxHtmlWindow : public wxScrolledWindow -{ - public: - wxHtmlWindow(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - int flags=wxHW_SCROLLBAR_AUTO, - const char* name = "htmlWindow"); - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - %pragma(python) addtomethod = "__init__:wx._StdOnScrollCallbacks(self)" - - bool SetPage(const char* source); - // Set HTML page and display it. !! source is HTML document itself, - // it is NOT address/filename of HTML document. If you want to - // specify document location, use LoadPage() istead - // Return value : FALSE if an error occured, TRUE otherwise - - bool LoadPage(const char* location); - // Load HTML page from given location. Location can be either - // a) /usr/wxGTK2/docs/html/wx.htm - // b) http://www.somewhere.uk/document.htm - // c) ftp://ftp.somesite.cz/pub/something.htm - // In case there is no prefix (http:,ftp:), the method - // will try to find it itself (1. local file, then http or ftp) - // After the page is loaded, the method calls SetPage() to display it. - // Note : you can also use path relative to previously loaded page - // Return value : same as SetPage - - wxString GetOpenedPage() const {return m_OpenedPage;} - // Returns full location of opened page - - void SetRelatedFrame(wxFrame* frame, const char* format); - // sets frame in which page title will be displayed. Format is format of - // frame title, e.g. "HtmlHelp : %s". It must contain exactly one %s - wxFrame* GetRelatedFrame() const; - - void SetRelatedStatusBar(int bar); - // after(!) calling SetRelatedFrame, this sets statusbar slot where messages - // will be displayed. Default is -1 = no messages. - - void SetFonts(wxString normal_face, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, int *sizes); - // sets fonts to be used when displaying HTML page. - // *_italic_mode can be either wxSLANT or wxITALIC - - void SetTitle(const char* title); - // Sets the title of the window - // (depending on the information passed to SetRelatedFrame() method) - - void SetBorders(int b); - // Sets space between text and window borders. - - //virtual void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - // saves custom settings into cfg config. it will use the path 'path' - // if given, otherwise it will save info into currently selected path. - // saved values : things set by SetFonts, SetBorders. - //virtual void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - // ... - - bool HistoryBack(); - bool HistoryForward(); - // Goes to previous/next page (in browsing history) - // Returns TRUE if successful, FALSE otherwise - void HistoryClear(); - // Resets history - - //wxHtmlContainerCell* GetInternalRepresentation() const; - // Returns pointer to conteiners/cells structure. - // It should be used ONLY when printing - - //static void AddFilter(wxHtmlFilter *filter); - // Adds input filter - - /* This function needs to be eventified! */ - //virtual void OnLinkClicked(const char* link); - // called when users clicked on hypertext link. Default behavior is to - // call LoadPage(loc) - - //static void CleanUpStatics(); - // cleans static variables - -}; - - -//--------------------------------------------------------------------------- - -%init %{ - - /* This is a bit cheesy. SWIG happens to call the dictionary d... - * I save it here, 'cause I don't know how to get it back later! */ - mod_dict = d; - wxPyThreadState = PyThreadState_Get(); - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - - /* specifically add our python tag handler; it doesn't seem to - * happen by itself... */ - wxHtmlWinParser::AddModule(new HTML_ModulePythonTag()); - - // Until wxFileSystem is wrapped... - #if wxUSE_FS_ZIP - wxFileSystem::AddHandler(new wxZipFSHandler); - #endif -%} - -//--------------------------------------------------------------------------- diff --git a/utils/wxPython/modules/html/htmlc.def b/utils/wxPython/modules/html/htmlc.def deleted file mode 100644 index 859311294b..0000000000 --- a/utils/wxPython/modules/html/htmlc.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS - inithtmlc diff --git a/utils/wxPython/modules/html/htmlhelper.py b/utils/wxPython/modules/html/htmlhelper.py deleted file mode 100644 index d8fe3c3ef5..0000000000 --- a/utils/wxPython/modules/html/htmlhelper.py +++ /dev/null @@ -1,59 +0,0 @@ -# -# htmlhelper.py -# -# A few helper functions for putting wxPython widgets in html pages -# -# Harm van der Heijden, 11 aug 1999. - -import wx -import string -import htmlc - -# Function to parse a param string (of the form 'item=value item2="value etc"' -# and creates a dictionary -def _param2dict(param): - i = 0; j = 0; s = len(param); d = {} - d['param_str'] = param - while 1: - while i=s: break - j = i - while j=s: - break - word = param[i:j] - i=j+1 - if (param[i] == '"'): - j=i+1 - while j tag handler. -# Arguments are the parent (wxHtmlWindow) SWIG pointer (in python, a string) -# and a string containing the parameters. -# The return value must be the SWIG pointer of the created widget (the 'this' -# attribute in python). The widget must be derived from a wxWindow or one -# of its descendants. -def _WidgetStarter(parentptr, param): - # create a python instance of the parent - parent = wx.wxWindowPtr(parentptr) - # try to find the widget class in the htmlwinc (=htmlwidget) module - dict = _param2dict(param) - classname = dict['class'] - obj = htmlc.__dict__[classname] - # now create the class with arguments parent, dictionary - cls = apply(obj, (parent, dict)) - # return the class instance's pointer - return cls.this - -htmlc.WidgetStarter = _WidgetStarter diff --git a/utils/wxPython/modules/html/test/htmlview.py b/utils/wxPython/modules/html/test/htmlview.py deleted file mode 100644 index 906f3221c1..0000000000 --- a/utils/wxPython/modules/html/test/htmlview.py +++ /dev/null @@ -1,77 +0,0 @@ -from wxPython.wx import * -from wxPython.html import * -import sys - -default_page = """ -

    HTML Viewer

    Please select File->Open -to open a HTML file, or edit this page in the -text control below and select File->Update -

    -The python source can be seen -here. -""" % (sys.argv[0], ) - -class HtmlViewer(wxFrame): - def __init__(self, parent, id, title, pos = wxDefaultPosition, size = wxSize(400,400)): - wxFrame.__init__(self, parent, id, title, pos, size) - self.CreateStatusBar(1) - split = wxSplitterWindow(self, -1) - self.html = wxHtmlWindow(split) - self.html.SetRelatedFrame(self, "HTML Viewer: \%s") - self.html.SetRelatedStatusBar(0) - self.txt = wxTextCtrl(split, -1, default_page, - wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE) - split.SplitHorizontally(self.html, self.txt, size.y/2) - mbar = wxMenuBar() - menu = wxMenu() - menu.Append(1500, "Open") - menu.Append(1501, "Reset") - menu.Append(1502, "Update HTML") - menu.AppendSeparator() - menu.Append(1503, "Exit") - mbar.Append(menu, "File") - menu = wxMenu() - menu.Append(1510, "Back") - menu.Append(1511, "Forward") - mbar.Append(menu, "Go") - self.SetMenuBar(mbar) - self.filename = "" - EVT_MENU(self, 1500, self.OnFileOpen) - EVT_MENU(self, 1501, self.OnFileReset) - EVT_MENU(self, 1502, self.OnFileUpdate) - EVT_MENU(self, 1503, self.OnClose) - EVT_MENU(self, 1510, self.OnGoBack) - EVT_MENU(self, 1511, self.OnGoForward) - # A default opening text - self.html.SetPage( default_page ) - def OnFileOpen(self, event): - dlg = wxFileDialog(NULL, "Open file") - if dlg.ShowModal() == wxID_OK: - self.filename = dlg.GetPath() - self.html.LoadPage(self.filename) - def OnFileReset(self, event): - self.html.SetPage( default_page ) - self.txt.SetValue( default_page ) - def OnFileUpdate(self, event): - self.html.SetPage( self.txt.GetValue() ) - def OnGoBack(self, event): - self.html.HistoryBack() - def OnGoForward(self, event): - self.html.HistoryForward() - def OnClose(self,event): - self.Destroy() - -class MyApp(wxApp): - def OnInit(self): - frame = HtmlViewer(NULL, -1, "HTML Viewer") - frame.Show(TRUE) - self.SetTopWindow(frame) - return TRUE - -wxImage_AddHandler(wxPNGHandler()) -wxImage_AddHandler(wxGIFHandler()) -wxImage_AddHandler(wxJPEGHandler()) - -theApp = MyApp(0) -theApp.MainLoop() diff --git a/utils/wxPython/modules/html/test/htmlwidget.py b/utils/wxPython/modules/html/test/htmlwidget.py deleted file mode 100644 index ffa0fcb356..0000000000 --- a/utils/wxPython/modules/html/test/htmlwidget.py +++ /dev/null @@ -1,97 +0,0 @@ -from wxPython.wx import * -from wxPython.html import * -import sys,string - -# A bunch of simple widgets, all somehow derived from wxWindow -class Widget1(wxWindow): - def __init__(self, parent, param): - wxWindow.__init__(self, parent, -1) - self.text = wxTextCtrl(self, -1, param['param_str'], wxPoint(5,5), - wxSize(200,150), wxTE_MULTILINE) - but = wxButton(self, 1001, "Click me", wxPoint(50,160), wxSize(100,30)) - EVT_BUTTON(self, 1001, self.OnButton) - self.SetSize(wxSize(210,200)) - def OnButton(self, event): - self.text.AppendText( "Click!\n" ) - -class Widget2(wxButton): - def __init__(self, parent, param): - wxButton.__init__(self, parent, int(param['id']), param['title']) - -class Widget3(wxTextCtrl): - def __init__(self, parent, param): - wxTextCtrl.__init__(self, parent, -1, "No clicks") - self.clicked = 0; - EVT_BUTTON(parent, int(param['button_id']), self.OnButton) - def OnButton(self, event): - self.clicked = self.clicked + 1 - self.SetValue("%d clicks" % (self.clicked,)) - -# make the widgets known in the widget module (aka htmlc) -widget.Widget1 = Widget1 -widget.Widget2 = Widget2 -widget.Widget3 = Widget3 - -# our default page -default_page = """ -

    wxPython widgets go HTML

    -A bunch of wxPython widgets are scattered on this HTML page. -Here's one: -
    -
    -Here's another: -
    -It should always take up 70% of the page width. -

    And then there's this, listening to button A: -

    -""" - -# our explanation -apology = """ -For some bizarre reason, it takes forever and a day to display the -widgets if they are constructed in the frame's constructor. This -only happens in MSW, wxGTK works fine. -

    Select File->Show it to draw the widgets.""" - -default_page = default_page + "The HTML code for this page is\n

    " + default_page + "
    " - - -class HtmlViewer(wxFrame): - def __init__(self, parent, id, title, pos = wxDefaultPosition, size = wxSize(400,400)): - wxFrame.__init__(self, parent, id, title, pos, size) - self.CreateStatusBar(1) - self.html = wxHtmlWindow(self) - self.html.SetRelatedFrame(self, "HTML Viewer: \%s") - self.html.SetRelatedStatusBar(0) - mbar = wxMenuBar() - menu = wxMenu() - menu.Append(1500, "Show it") - menu.Append(1503, "Exit") - mbar.Append(menu, "File") - EVT_MENU(self, 1500, self.OnShowIt) - EVT_MENU(self, 1503, self.OnClose) - self.SetMenuBar(mbar) - # change apology below to default_page, if you dare! - self.html.SetPage( default_page ) - def OnClose(self,event): - self.Destroy() - def OnShowIt(self,event): - self.html.SetPage( default_page ) - # now quickly remove the menu option, to hide that - # other bug; namely that widgets aren't removed when the - # HTML page is. - self.GetMenuBar().Enable(1500, FALSE) - -class MyApp(wxApp): - def OnInit(self): - frame = HtmlViewer(NULL, -1, "HTML Viewer") - frame.Show(TRUE) - self.SetTopWindow(frame) - return TRUE - -wxImage_AddHandler(wxPNGHandler()) -wxImage_AddHandler(wxGIFHandler()) -wxImage_AddHandler(wxJPEGHandler()) - -theApp = MyApp(0) -theApp.MainLoop() diff --git a/utils/wxPython/modules/lseditor/BUGS b/utils/wxPython/modules/lseditor/BUGS deleted file mode 100644 index d47d9ac0f6..0000000000 --- a/utils/wxPython/modules/lseditor/BUGS +++ /dev/null @@ -1,6 +0,0 @@ -Known bugs/features - -editor, all: - - (missing feature, really) syntax highlighting data is - compile time. - diff --git a/utils/wxPython/modules/lseditor/COPYING b/utils/wxPython/modules/lseditor/COPYING deleted file mode 100644 index eeb586b392..0000000000 --- a/utils/wxPython/modules/lseditor/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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/utils/wxPython/modules/lseditor/README b/utils/wxPython/modules/lseditor/README deleted file mode 100644 index 8ac706c9f5..0000000000 --- a/utils/wxPython/modules/lseditor/README +++ /dev/null @@ -1,13 +0,0 @@ -Aug. 2 1999 Harm van der Heijden - -What's in here: - -lseditorplugin - -- minimal wrap of Alexanders Gluchovas' editor plugin. The code was - ransacked from the wxStudio (http://wxstudio.linuxbox.com) project. - Since the editor is released under the Gnu Public License, this - module, as a derivative work, is also released under this licence - and NOT THE WXWINDOWS LICENSE. See the file COPYING for details. - the file 'editor.py' contains a sample implementation using the - editorplugin object. - diff --git a/utils/wxPython/modules/lseditor/config.h b/utils/wxPython/modules/lseditor/config.h deleted file mode 100644 index b22aa25ec9..0000000000 --- a/utils/wxPython/modules/lseditor/config.h +++ /dev/null @@ -1,82 +0,0 @@ -/* config.h. Generated automatically by configure. */ -/* config.h.in. Generated automatically from configure.in by autoheader. */ - -/* Define if using alloca.c. */ -/* #undef C_ALLOCA */ - -/* 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 if you have alloca, as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define if you have and it should be used (not on Ultrix). */ -#define HAVE_ALLOCA_H 1 - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define as the return type of signal handlers (int or void). */ -#define RETSIGTYPE void - -/* 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 you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if your declares struct tm. */ -/* #undef TM_IN_SYS_TIME */ - -/* Define to use template STL (vs. wxSTL) */ -#define wxUSE_TEMPLATE_STL 1 - -/* Define to use framelayout library */ -/* #undef wxsUSE_FRAME_LAYOUT */ - -/* Define to use class-info plugin */ -#define wxsUSE_CLASS_INFO 1 - -/* Define to use window manager plugin */ -#define wxsUSE_WINDOWMANAGER 1 - -/* Define if you have the strdup function. */ -#define HAVE_STRDUP 1 - -/* Define if you have the header file. */ -#define HAVE_FCNTL_H 1 - -/* Define if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define if you have the header file. */ -#define HAVE_MALLOC_H 1 - -/* Define if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define if you have the header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Name of package */ -#define PACKAGE "wxStudio" - -/* Version number of package */ -#define VERSION "0.0.2" - diff --git a/utils/wxPython/modules/lseditor/controlarea.h b/utils/wxPython/modules/lseditor/controlarea.h deleted file mode 100644 index 15cb9386af..0000000000 --- a/utils/wxPython/modules/lseditor/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/wxPython/modules/lseditor/editorpl.h b/utils/wxPython/modules/lseditor/editorpl.h deleted file mode 100644 index 05563eb259..0000000000 --- a/utils/wxPython/modules/lseditor/editorpl.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: editorbase.h -// Purpose: General interfaces for editor plug-ins. -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 11/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: GNU General Public License wxWindows licence v2.0 -///////////////////////////////////////////////////////////////////////////// - -#ifndef __EDITORBASE_G__ -#define __EDITORBASE_G__ - -#include "plugin.h" -#include "wx/window.h" - -class wxsSourceEditorPlugin : public wxsComponent -{ -protected: - string mFileName; - -public: - /*** overridables (with default implementations) ***/ - - // user-level commands - - virtual void OnOpen( const string& fname ) = 0; - virtual void OnSave( const string& fname ) = 0; - - virtual void OnCopy() {} - virtual void OnCut() {} - virtual void OnPaste() {} - virtual void OnDelete() {} - - virtual void OnUndo() {} - virtual void OnRedo() {} - - virtual void SelectAll() {} - - // NOTE:: column -1 should result cursor to appear - // at the start of the first word in the line (if any) - - virtual void OnGotoLine( int lineNo, int column = -1 ) {} - - // should invoke editor's own "goto-line" dialog - virtual void OnGotoLine() {} - - virtual void OnProperties() {} - - virtual void OnFind() {} - virtual void OnFindNext() {} - virtual void OnFindPrevious() {} - virtual void OnReplace() {} - - virtual void OnToggleBookmark() {} - virtual void OnNextBookmark() {} - virtual void OnPreviousBookmark() {} - virtual void OnShowBookmarks() {} - - virtual void SetCheckpoint() {} - virtual bool CheckpointModified() { return TRUE; } - - // UI-updates - - virtual bool CanCopy() { return FALSE; } - virtual bool CanCut() { return FALSE; } - virtual bool CanPaste() { return FALSE; } - virtual bool CanUndo() { return FALSE; } - virtual bool CanRedo() { return FALSE; } - - // accesed by framework - - virtual bool IsModified() { return TRUE; } - - // returned buffer is NULL, if operation is not supported - // by this concrete editor - - virtual void GetAllText( char** ppBuf, size_t* length ) - - { *ppBuf = NULL; *length = 0; } - - virtual string FindWordAtCursor() = 0; - - // returned line and column are -1s, if operation - // is not supported this concrete editor - - virtual void GetCursorPos( int* line, int* column ) - - { *line = -1; *column = -1; } - - virtual void GetPagePos( int* line, int* column ) - - { *line = -1; *column = -1; } - - virtual void SetCursorPos( int line, int column ) {} - - // returned buffer is NULL, if operation is not supported - // by this concrete editor, - // (NOTE: range is given from "fromLine", but not - // including tillLine, [fomrLine,tillLine) ) - - virtual void GetText( int fromLine, int fromColumn, - int tillLine, int tillColumn, - char** ppBuf, size_t* length ) - { ppBuf = NULL; } - - virtual void InsertText( int line, int column, - char* text, size_t lenght ) - {} - - virtual void DeleteText( int fromLine, int fromColumn, - int tillLine, int tillColumn ) - {} - - virtual void PositionToXY( int line, int column, int* x, int* y ) - - { *x = -1; *y = -1; } - - virtual void GetSelectionRange( int* fromLine, int* fromColumn, - int* tillLine, int* tillColumn ) - - { *fromLine = -1; // not supported by default - } - - virtual wxSize GetCharacterSize() { return wxSize(-1,-1); } - - virtual bool IsUnixText() - -// default impl., actual implementation should use auto-detection - -#ifdef __WINDOWS__ - { return FALSE; } -#else - { return TRUE; } -#endif - - // requests editor to keep cursor blinking, even when - // the window has lost it's focus - - virtual void HoldCursor( bool hold ) - {} - - virtual string GetFileName() { return mFileName; } - virtual void SetFileName( const string& fname ) { mFileName = fname; } - - // overriden methods of wxStudioPluginBase - virtual WXS_PLUGIN_TYPE GetType() {return WXS_EDITOR_PLUGIN;} - virtual string GetCategory() { return "Editor";} -}; - -#endif - // __EDITORBASE_G__ diff --git a/utils/wxPython/modules/lseditor/finddlg.cpp b/utils/wxPython/modules/lseditor/finddlg.cpp deleted file mode 100644 index 0270cac0ba..0000000000 --- a/utils/wxPython/modules/lseditor/finddlg.cpp +++ /dev/null @@ -1,146 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 08/05/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandars Gluchovas -// Licence: GNU General Public 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 "finddlg.h" - -/***** Implementation for class wxFindTextDialog *****/ - -//#define wxID_OK 3453453 - -BEGIN_EVENT_TABLE( wxFindTextDialog, wxDialog ) - - // FIXME:: why OnOk() is not called?? - //EVT_BUTTON( wxID_OK, wxFindTextDialog::OnOK ) - - EVT_CHAR_HOOK(wxFindTextDialog::OnKeyHook) - -END_EVENT_TABLE() - -wxString wxFindTextDialog::mLastExpr; -bool wxFindTextDialog::mMatchCase = TRUE; -bool wxFindTextDialog::mMatchWord = FALSE; -StrListT wxFindTextDialog::mExprList; - -// FIXME:: workaround for mystic. crashes wiht MSDev4.0 - -static wxComboBox* __gpCombo = NULL; - -wxFindTextDialog::wxFindTextDialog( wxWindow* parent, const string& expr ) - - : wxDialog( parent, -1, "Find", - wxDefaultPosition, wxSize( 335, 130 ), - wxDIALOG_MODAL | wxCAPTION | wxTAB_TRAVERSAL | - wxDEFAULT_DIALOG_STYLE - ) -{ - mLastExpr = expr; - - int leftMargin = 20; - int inputY = 20; - int inputWidth = 200; - - wxStaticText* pStatic = - new wxStaticText( this, -1, "Fi&nd what:", - wxPoint( leftMargin, inputY ) ); - - int checkY = inputY + 25; - - mpWordCheck = new wxCheckBox( this, -1, "Match &whole word only", - wxPoint( leftMargin, checkY ) ); - - mpCaseCheck = new wxCheckBox( this, -1, "Match &case", - wxPoint( leftMargin, checkY + 20 ) ); - - mpCaseCheck->SetValue( mMatchCase ); - mpWordCheck->SetValue( mMatchWord ); - - int btnX = inputWidth + leftMargin + 23; - int btnY = inputY - 4; - - wxSize btnSize( 70, 25 ); - - wxButton* pOkBtn = new wxButton( this, wxID_OK, "&Find", - wxPoint( btnX, btnY ), btnSize ); - - wxButton* pCancelBtn = new wxButton( this, wxID_CANCEL, "&Cancel", - wxPoint( btnX, btnY + 10 + btnSize.y ), btnSize ); - - __gpCombo = new wxComboBox( this, -1, mLastExpr, - wxPoint( leftMargin + 60, inputY - 2 ), - wxSize( inputWidth - 50, 20 ) ); - - for( size_t i = 0; i != mExprList.size(); ++i ) - - __gpCombo->Append( mExprList[i] ); - - pOkBtn->SetDefault(); - __gpCombo->SetFocus(); - - Center( wxBOTH ); -} - -void wxFindTextDialog::SetExpr( const wxString& expr ) -{ - mLastExpr = expr; - __gpCombo->SetValue( mLastExpr ); - -} - -wxComboBox* wxFindTextDialog::GetCombo() -{ - return __gpCombo; -} - -bool wxFindTextDialog::TransferDataFromWindow() -{ - mLastExpr = GetCombo()->GetValue(); - mMatchCase = mpCaseCheck->GetValue(); - mMatchWord = mpWordCheck->GetValue(); - - if ( mLastExpr != "" ) - { - for( size_t i = 0; i != mExprList.size(); ++i ) - - if ( mExprList[i] == mLastExpr ) - - return TRUE; - } - - if ( mExprList.size() > 20 ) - - mExprList.pop_back(); - - mExprList.push_back( mLastExpr ); - - return TRUE; -} - -void wxFindTextDialog::OnKeyHook( wxKeyEvent& event ) -{ - if ( event.m_keyCode == WXK_RETURN ) - { - TransferDataFromWindow(); - EndModal( wxID_OK ); - } - else - event.Skip(); -} diff --git a/utils/wxPython/modules/lseditor/finddlg.h b/utils/wxPython/modules/lseditor/finddlg.h deleted file mode 100644 index dbceaa2b16..0000000000 --- a/utils/wxPython/modules/lseditor/finddlg.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __FINDDLG_G__ -#define __FINDDLG_G__ - -#include "wx/dialog.h" -#include "wx/checkbox.h" -#include "wx/combobox.h" - -#include "wxstldefs.h" - -class wxFindTextDialog : public wxDialog -{ -public: - static wxString mLastExpr; - static bool mMatchCase; - static bool mMatchWord; - static StrListT mExprList; - - wxCheckBox* mpCaseCheck; - wxCheckBox* mpWordCheck; - -public: - wxFindTextDialog( wxWindow* parent, const string& expr = "" ); - - bool MatchWordOn() { return mMatchWord; } - bool MatchCaseOn() { return mMatchCase; } - wxString GetExpr() { return mLastExpr; } - void SetExpr( const wxString& expr ); - - wxComboBox* GetCombo(); - - virtual bool TransferDataFromWindow(); - - void OnKeyHook( wxKeyEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/utils/wxPython/modules/lseditor/lseditor.i b/utils/wxPython/modules/lseditor/lseditor.i deleted file mode 100644 index 19d3641f84..0000000000 --- a/utils/wxPython/modules/lseditor/lseditor.i +++ /dev/null @@ -1,150 +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 lseditor - -%{ -#include "helpers.h" -#include "lseditorpl.h" -%} - -//--------------------------------------------------------------------------- - -%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 - wxString wxPyEmptyStr(""); -#endif -%} - -%pragma(python) code = "import wx" - -//--------------------------------------------------------------------------- - -class wxsLSEditorPlugin -{ -public: - wxsLSEditorPlugin(); - ~wxsLSEditorPlugin(); - - void Create( wxWindow* parent, wxWindowID id ); - - virtual void OnOpen( const char* fname ); - virtual void OnSave( const char* fname ); - - virtual void OnCopy(); - virtual void OnCut(); - virtual void OnPaste(); - virtual void OnDelete(); - - void OnUndo(); - void OnRedo(); - - void SelectAll(); - void OnGotoLine( int lineNo, int column = 0 ); - void OnGotoLine(); - void OnProperties(); - - void OnFind(); - void OnFindNext(); - void OnFindPrevious(); - void OnReplace(); - - virtual void OnToggleBookmark(); - virtual void OnNextBookmark(); - virtual void OnPreviousBookmark(); - virtual void OnShowBookmarks(); - - virtual void SetCheckpoint(); - virtual bool CheckpointModified(); - - // UI-updates - - bool CanCopy(); - bool CanCut(); - bool CanPaste(); - bool CanUndo(); - bool CanRedo(); - - // accesed by framework - - virtual string GetName(){ return "Alex's Language Sensitive Editor"; } - - virtual bool IsModified(); - - virtual wxWindow* GetWindow(); - - //virtual void GetAllText( char** ppBuf, size_t* length ); - - virtual void SetFileName( const char* fname ); - - virtual void HoldCursor( bool hold ); - - //virtual wxsPluginBase* Clone() { return new wxsLSEditorPlugin(); }; - - virtual string FindWordAtCursor(); - - virtual void GetCursorPos( int* line, int* column ); - virtual void SetCursorPos( int line, int column ); - - virtual void GetPagePos( int* line, int* column ); - - virtual void GetText( int fromLine, int fromColumn, - int tillLine, int tillColumn, - char** ppBuf, size_t* length ); - - virtual void InsertText( int line, int column, - char* text, size_t lenght ); - - virtual void DeleteText( int fromLine, int fromColumn, - int tillLine, int tillColumn ); - - virtual void PositionToXY( int line, int column, int* x, int* y ); - - virtual void GetSelectionRange( int* fromLine, int* fromColumn, - int* tillLine, int* tillColumn ); - - virtual wxSize GetCharacterSize(); - - virtual bool IsUnixText(); - - // some extras (just in case..) - - //wxTextEditorModel& GetModel(); - //wxTextEditorView& GetView(); -}; - -//--------------------------------------------------------------------------- - -%init %{ - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -%} - -//--------------------------------------------------------------------------- diff --git a/utils/wxPython/modules/lseditor/lseditorc.def b/utils/wxPython/modules/lseditor/lseditorc.def deleted file mode 100644 index b404f4197d..0000000000 --- a/utils/wxPython/modules/lseditor/lseditorc.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS - initlseditorc diff --git a/utils/wxPython/modules/lseditor/lseditorpl.cpp b/utils/wxPython/modules/lseditor/lseditorpl.cpp deleted file mode 100644 index e9fab6a5fb..0000000000 --- a/utils/wxPython/modules/lseditor/lseditorpl.cpp +++ /dev/null @@ -1,344 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: lseditorpl.cpp -// Purpose: Language-sensative editor plugin for wxStudio -// Copyright: (c) Aleksandars Gluchovas -// Modified by: -// Created: 11/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: GNU General Public License -///////////////////////////////////////////////////////////////////////////// -// -// 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 -///////////////////////////////////////////////////////////////////////////// - - -// 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 "lseditorpl.h" -#include "tdefs.h" - -/***** Impelmentation for class wxsLSEditorPlugin *****/ - -wxsLSEditorPlugin::wxsLSEditorPlugin() - - : mpModel( NULL ), - mpView( NULL ) -{} - -wxsLSEditorPlugin::~wxsLSEditorPlugin() -{ - // view is destroyed by wxWindows along - // with it's owned model -} - -void wxsLSEditorPlugin::Create( wxWindow* parent, wxWindowID id ) -{ - mpModel = new wxTextEditorModel(); - - mpView = new wxTextEditorView( parent, id, mpModel ); - - mpModel->AddView( mpView ); - mpView->Activate(); - - mpView->AddPinPainter( new TBreakpointPainter() ); - - mpView->SyncScrollbars(); -} - -void wxsLSEditorPlugin::OnOpen( const string& fname ) -{ - mpModel->LoadTextFromFile( fname ); - - SetFileName( fname ); -} - -void wxsLSEditorPlugin::OnSave( const string& fname ) -{ - mpModel->SaveTextToFile( fname ); -} - -void wxsLSEditorPlugin::OnCopy() -{ - mpModel->OnCopy(); -} - -void wxsLSEditorPlugin::OnCut() -{ - mpModel->OnCut(); -} - -void wxsLSEditorPlugin::OnPaste() -{ - mpModel->OnPaste(); -} - -void wxsLSEditorPlugin::OnDelete() -{ - mpModel->OnDelete(); -} - -void wxsLSEditorPlugin::OnUndo() -{ - mpModel->OnUndo(); -} - -void wxsLSEditorPlugin::OnRedo() -{ - mpModel->OnRedo(); -} - -void wxsLSEditorPlugin::SelectAll() -{ - mpModel->OnSelectAll(); -} - -void wxsLSEditorPlugin::OnGotoLine() -{ - mpModel->OnGotoLine(); -} - -void wxsLSEditorPlugin::OnGotoLine( int lineNo, int column ) -{ - mpModel->ResetSelection(); - mpModel->OnGotoLine( lineNo, column ); -} - -void wxsLSEditorPlugin::OnProperties() -{ - // not impl. -} - -void wxsLSEditorPlugin::OnFind() -{ - mpModel->OnFind(); -} - -void wxsLSEditorPlugin::OnFindNext() -{ - mpModel->OnFindNext(); -} - -void wxsLSEditorPlugin::OnFindPrevious() -{ - mpModel->OnFindPrevious(); -} - -void wxsLSEditorPlugin::OnReplace() -{ - // not impl. -} - -void wxsLSEditorPlugin::OnToggleBookmark() -{ - mpModel->OnToggleBookmark(); -} - -void wxsLSEditorPlugin::OnNextBookmark() -{ - mpModel->OnNextBookmark(); -} - -void wxsLSEditorPlugin::OnPreviousBookmark() -{ - mpModel->OnPreviousBookmark(); -} - -void wxsLSEditorPlugin::OnShowBookmarks() -{ - // not impl. -} - -void wxsLSEditorPlugin::SetCheckpoint() -{ - mpModel->SetCheckpoint(); -} - -bool wxsLSEditorPlugin::CheckpointModified() -{ - return mpModel->CheckpointModified(); -} - -// UI-updates - -bool wxsLSEditorPlugin::CanCopy() -{ - return mpModel->CanCopy(); -} - -bool wxsLSEditorPlugin::CanCut() -{ - return mpModel->CanCopy(); -} - -bool wxsLSEditorPlugin::CanPaste() -{ - return mpModel->CanPaste(); -} - -bool wxsLSEditorPlugin::CanUndo() -{ - return mpModel->CanUndo(); -} - -bool wxsLSEditorPlugin::CanRedo() -{ - return mpModel->CanRedo(); -} - -// accesed by framework - -bool wxsLSEditorPlugin::IsModified() -{ - return mpModel->IsModified(); -} - -wxWindow* wxsLSEditorPlugin::GetWindow() -{ - return mpView; -} - -void wxsLSEditorPlugin::GetAllText( char** ppBuf, size_t* length ) -{ - mpModel->GetAllText( ppBuf, *length ); -} - -void wxsLSEditorPlugin::SetFileName( const string& fname ) -{ - mFileName = fname; - - if ( mpView ) - - mpView->SetName( fname ); -} - -void wxsLSEditorPlugin::HoldCursor( bool hold ) -{ - mpView->HoldCursor( hold ); -} - -string wxsLSEditorPlugin::FindWordAtCursor() -{ - mpModel->OnSelectWord(); - - char* buf = NULL; size_t len = 0; - - mpModel->GetSelection( &buf, len ); - - if ( buf ) - { - string word = string( buf, 0, len ); - delete [] buf; - return word; - } - else - return ""; -} - -void wxsLSEditorPlugin::GetCursorPos( int* line, int* column ) -{ - TPosition pos = mpModel->GetCursor(); - - *line = (int)pos.mRow; - *column = (int)pos.mCol; -} - -void wxsLSEditorPlugin::SetCursorPos( int line, int column ) -{ - mpModel->OnGotoLine( line, column ); -} - -void wxsLSEditorPlugin::GetPagePos( int* line, int* column ) -{ - TPosition pos = mpView->GetPagePos(); - - *line = pos.mRow; - *column = pos.mCol; -} - -void wxsLSEditorPlugin::GetText( int fromLine, int fromColumn, - int tillLine, int tillColumn, - char** ppBuf, size_t* length ) -{ - mpModel->GetTextFromRange( TPosition( fromLine, fromColumn ), - TPosition( tillLine, tillColumn ), - ppBuf, *length ); -} - -void wxsLSEditorPlugin::InsertText( int line, int column, - char* text, size_t lenght ) -{ - mpModel->InsertText( TPosition( line, column ), - text, lenght ); -} - -void wxsLSEditorPlugin::DeleteText( int fromLine, int fromColumn, - int tillLine, int tillColumn ) -{ - mpModel->DeleteRange( TPosition( fromLine, fromColumn ), - TPosition( tillLine, tillColumn ) ); -} - -void wxsLSEditorPlugin::PositionToXY( int line, int column, int* x, int* y ) -{ - TPosition scrPos; - - mpView->TextPosToScreenPos( TPosition( line, column ), scrPos ); - mpView->ScreenPosToPixels( scrPos, *x, *y ); - - *y += mpView->mCharDim.y; // lower-right corner -} - -void wxsLSEditorPlugin::GetSelectionRange( int* fromLine, int* fromColumn, - int* tillLine, int* tillColumn ) -{ - TPosition start = mpModel->GetStartOfSelection(); - TPosition end = mpModel->GetEndOfSelection(); - - *fromLine = (int)start.mRow; - *fromColumn = (int)start.mCol; - *tillLine = (int)end.mRow; - *tillColumn = (int)end.mCol; -} - -wxSize wxsLSEditorPlugin::GetCharacterSize() -{ - return mpView->GetCharacterSize(); -} - -bool wxsLSEditorPlugin::IsUnixText() -{ - return mpModel->IsUnixText(); -} - -wxTextEditorModel& wxsLSEditorPlugin::GetModel() -{ - return *mpModel; -} - -wxTextEditorView& wxsLSEditorPlugin::GetView() -{ - return *mpView; -} diff --git a/utils/wxPython/modules/lseditor/lseditorpl.h b/utils/wxPython/modules/lseditor/lseditorpl.h deleted file mode 100644 index 6866d0d06d..0000000000 --- a/utils/wxPython/modules/lseditor/lseditorpl.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: nativeeditorpl.h -// Purpose: Language-sensative editor plugin for wxStudio -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 11/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: GNU General Public License -///////////////////////////////////////////////////////////////////////////// -// -// 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 -///////////////////////////////////////////////////////////////////////////// - -#ifndef __LSEDITORPL_G__ -#define __LSEDITORPL_G__ - -#include "editorpl.h" - -class wxTextEditorModel; -class wxTextEditorView; - -class wxsLSEditorPlugin : public wxsSourceEditorPlugin -{ -protected: - wxTextEditorModel* mpModel; - wxTextEditorView* mpView; - -public: - wxsLSEditorPlugin(); - ~wxsLSEditorPlugin(); - - void Create( wxWindow* parent, wxWindowID id ); - - virtual void OnOpen( const string& fname ); - virtual void OnSave( const string& fname ); - - virtual void OnCopy(); - virtual void OnCut(); - virtual void OnPaste(); - virtual void OnDelete(); - - void OnUndo(); - void OnRedo(); - - void SelectAll(); - void OnGotoLine( int lineNo, int column = 0 ); - void OnGotoLine(); - void OnProperties(); - - void OnFind(); - void OnFindNext(); - void OnFindPrevious(); - void OnReplace(); - - virtual void OnToggleBookmark(); - virtual void OnNextBookmark(); - virtual void OnPreviousBookmark(); - virtual void OnShowBookmarks(); - - virtual void SetCheckpoint(); - virtual bool CheckpointModified(); - - // UI-updates - - bool CanCopy(); - bool CanCut(); - bool CanPaste(); - bool CanUndo(); - bool CanRedo(); - - // accesed by framework - - virtual string GetName(){ return "Alex's Language Sensitive Editor"; } - - virtual bool IsModified(); - - virtual wxWindow* GetWindow(); - - virtual void GetAllText( char** ppBuf, size_t* length ); - - virtual void SetFileName( const string& fname ); - - virtual void HoldCursor( bool hold ); - - virtual wxsPluginBase* Clone() { return new wxsLSEditorPlugin(); }; - - virtual string FindWordAtCursor(); - - virtual void GetCursorPos( int* line, int* column ); - virtual void SetCursorPos( int line, int column ); - - virtual void GetPagePos( int* line, int* column ); - - virtual void GetText( int fromLine, int fromColumn, - int tillLine, int tillColumn, - char** ppBuf, size_t* length ); - - virtual void InsertText( int line, int column, - char* text, size_t lenght ); - - virtual void DeleteText( int fromLine, int fromColumn, - int tillLine, int tillColumn ); - - virtual void PositionToXY( int line, int column, int* x, int* y ); - - virtual void GetSelectionRange( int* fromLine, int* fromColumn, - int* tillLine, int* tillColumn ); - - virtual wxSize GetCharacterSize(); - - virtual bool IsUnixText(); - - // some extras (just in case..) - - wxTextEditorModel& GetModel(); - wxTextEditorView& GetView(); -}; - -#endif - // __LSEDITORPL_G__ diff --git a/utils/wxPython/modules/lseditor/markup.cpp b/utils/wxPython/modules/lseditor/markup.cpp deleted file mode 100644 index 82306b263b..0000000000 --- a/utils/wxPython/modules/lseditor/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: GNU General Public 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 "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; -} diff --git a/utils/wxPython/modules/lseditor/markup.h b/utils/wxPython/modules/lseditor/markup.h deleted file mode 100644 index a9011353ce..0000000000 --- a/utils/wxPython/modules/lseditor/markup.h +++ /dev/null @@ -1,51 +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: GNU General Public License -///////////////////////////////////////////////////////////////////////////// - -#ifndef __MARKUP_G__ -#define __MARKUP_G__ - -// indicies for the MarkupTagsT array - -#define TAG_BOLD 0 -#define TAG_ITALIC 1 - -#define TAG_FIXED_FONT 2 -#define TAG_BLACK_FONT 3 -#define TAG_RED_FONT 4 -#define TAG_GREEN_FONT 5 -#define TAG_BLUE_FONT 6 - -#define TAG_PARAGRAPH 7 -#define TAG_NEW_LINE 8 -#define TAG_HEADING_1 9 -#define TAG_HEADING_2 10 -#define TAG_HEADING_3 11 - -#define TAG_ITEM_LIST 12 -#define TAG_LIST_ITEM 13 - -struct TagStructT -{ - char* start; // tag that starts style - char* end; // tag that finishes style -}; - -// tag array -typedef TagStructT* MarkupTagsT; - -// returns array of TagStructT with tag strings for HTML - -MarkupTagsT get_HTML_markup_tags(); - -// MarkupTagsT get_PostScript_markup_tags(); -// MarkupTagsT get_Latex_markup_tags(); - -#endif diff --git a/utils/wxPython/modules/lseditor/plugin.cpp b/utils/wxPython/modules/lseditor/plugin.cpp deleted file mode 100644 index a6f29627f1..0000000000 --- a/utils/wxPython/modules/lseditor/plugin.cpp +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxsplbase.cpp -// Purpose: General interfaces for all plug-ins in wxStudio -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 11/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandars Gluchovas -// Licence: GNU General Public License wxWindows licence v2.0 -///////////////////////////////////////////////////////////////////////////// - -// 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 "plugin.h" - -/***** Implementation for class wxStudioPluginManager *****/ - -void wxsPluginManager::RegisterMenuCommand( const wxString& itemName, - const wxString& menuName, - int id, - wxsPluginBase* forPlugin ) -{ - // TBD:: -} - -void wxsPluginManager::UnregisterPlugin( wxsPluginBase* plugin ) -{ - // TBD:: -} - -/***** Implementation for class wxStudioPluginBase *****/ - -wxsPluginBase::wxsPluginBase() -{} - -wxsPluginBase::~wxsPluginBase() -{} - - -wxsPluginManager& wxsPluginBase::GetPluginManager() -{ - wxASSERT( mpPluginMgr ); - return *mpPluginMgr; -} - -void wxsPluginBase::SetPluginManager( wxsPluginManager* pMgr ) -{ - mpPluginMgr = pMgr; -} diff --git a/utils/wxPython/modules/lseditor/plugin.h b/utils/wxPython/modules/lseditor/plugin.h deleted file mode 100644 index 98781e4690..0000000000 --- a/utils/wxPython/modules/lseditor/plugin.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxsplbase.h -// Purpose: General interfaces for all plug-ins in wxStudio -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 11/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: GNU General Public License wxWindows licence v2.0 -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PLUGIN_G__ -#define __PLUGIN_G__ - -#include "wxstldefs.h" -#include "wxsdefs.h" - -class wxsPluginBase; -typedef wxsPluginBase* wxsPluginBasePtrT; -#ifdef wxUSE_TEMPLATE_STL -typedef vector wxsPluginListT; -#else -typedef WXSTL_VECTOR_SHALLOW_COPY(wxsPluginBasePtrT) wxsPluginListT; -#endif - - -class wxsPluginManager : public wxObject -{ -public: - - wxsPluginListT& GetPlugins(); - - // allows to present plugin-specific features - // as items in the menu-bar - - void RegisterMenuCommand( const string& itemName, - const string& menuName, - int id, - wxsPluginBase* forPlugin ); - - // should be called by plugin, when it's being destroyed - - void UnregisterPlugin( wxsPluginBase* plugin ); -}; - - - -// Used by create settings panel: -enum { - WXS_SETTINGS_GLOBAL, - WXS_SETTINGS_PROJECT -}; - - -class wxsPluginBase : public wxObject -{ -protected: - wxsPluginManager* mpPluginMgr; - -public: - - wxsPluginBase(); - virtual ~wxsPluginBase(); - - virtual void InitPlugin() {} - - // utilities - - wxsPluginManager& GetPluginManager(); - void SetPluginManager( wxsPluginManager* mgr ); - - // overridables - - // Current Types = UNKNOWN,EDITOR,CLASSBROWSER,FILEBROWSER,CLASSINFO,TOOL - virtual WXS_PLUGIN_TYPE GetType() = 0; - virtual string GetCategory() = 0; - - virtual string GetName() = 0; - // will return a help panel - virtual wxWindow* CreateSettingsPanel(wxWindow *parent, int type) {return NULL;} - virtual wxsPluginBase* Clone() = 0; - - virtual string Command( const string& name, const string& args ) - - { return "NO_SUPPORTED"; } -}; - -// base clas for all plugins which are presented as windows - -class wxsComponent : public wxsPluginBase -{ -public: - virtual void Create( wxWindow* parent, wxWindowID id ) = 0; - virtual wxWindow* GetWindow() = 0; -}; - -#endif - // __PLUGIN_G__ diff --git a/utils/wxPython/modules/lseditor/sourcepainter.cpp b/utils/wxPython/modules/lseditor/sourcepainter.cpp deleted file mode 100644 index bd54eef49d..0000000000 --- a/utils/wxPython/modules/lseditor/sourcepainter.cpp +++ /dev/null @@ -1,696 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandars Gluchovas -// Licence: GNU General Public License -///////////////////////////////////////////////////////////////////////////// -// -// 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 -///////////////////////////////////////////////////////////////////////////// - - -// 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 "config.h" - -#if defined( wxUSE_TEMPLATE_STL ) - - #include - using namespace std; -#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 }, - { "extends", 2 }, - - { "public", 2 }, - { "private", 2 }, - { "protected", 2 }, - - { "this", 1 }, - { "This", 1 }, - { "THIS", 1 }, - - { "new", 1 }, - { "New", 1 }, - { "NEW", 1 }, - - { "delete", 2 }, - { "inline", 2 }, - - { "operator", 1 }, - - { "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( IntListT& 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, - IntListT& 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; - } -} - -IntListT& 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/wxPython/modules/lseditor/sourcepainter.h b/utils/wxPython/modules/lseditor/sourcepainter.h deleted file mode 100644 index ac177a9800..0000000000 --- a/utils/wxPython/modules/lseditor/sourcepainter.h +++ /dev/null @@ -1,109 +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: GNU General Public License -///////////////////////////////////////////////////////////////////////////// -// -// 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 -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef __SOURCEPAINTER_G__ -#define __SOURCEPAINTER_G__ - -#ifndef ASSERT -#define ASSERT(x) if (!(x)) throw -#endif - -#include "wxstldefs.h" - -#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 ) ) - -inline int get_src_block_rank( int block ) -{ - return (block >> 16) & 0xFFFF; -} - -inline int get_src_block_len( int block ) -{ - return block & 0xFFFF; -} - -// FOR NOW:: no lagnguage-map selection - -// source code syntax heighlighter (CPP+JAVA+VB+PASCAL) - -class SourcePainter -{ -protected: - string mResultStr; - IntListT 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) - virtual void ProcessSource( char* src, int srcLen ); - - // method, for manually adjusting state of source painter - virtual void SetState( bool isInComment, - bool commentIsMultiline ); - - // reinitializes object - clears results of previouse processing - virtual 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 IntListT definition - // (block descriptors can be used for fast custom hightlighted text generation) - - virtual IntListT& 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/wxPython/modules/lseditor/tdefs.cpp b/utils/wxPython/modules/lseditor/tdefs.cpp deleted file mode 100644 index e65b2fe114..0000000000 --- a/utils/wxPython/modules/lseditor/tdefs.cpp +++ /dev/null @@ -1,4233 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 03/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandars Gluchovas -// Licence: GNU General Public License -///////////////////////////////////////////////////////////////////////////// -// -// 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 -///////////////////////////////////////////////////////////////////////////// - - -// 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/file.h" -#include "wx/textdlg.h" -#include "wx/clipbrd.h" -#include "wx/dataobj.h" - -#include - -#include "tdefs.h" -#include "finddlg.h" - -#include - -/***** Implementation for class TBlock *****/ - -void TBlock::RecalcBlockProperties() -{ - char* cur = mBuf; - char* end = mBuf + mTextLen; - mRowCount = 0; - - while( cur < end ) - { - if ( is_eol_char( *cur ) ) ++mRowCount; - - ++cur; - } -} - -/***** Implementation for class TTextIterator *****/ - -string TTextIterator::mSeparators = ",.()[]\t\\+-*/|=<>:;\t\n~?!%"; - -bool TTextIterator::IsSeparator( char ch ) -{ - size_t sz = mSeparators.size(); - - for( size_t i = 0; i != sz; ++i ) - - if ( mSeparators[i] == ch ) return TRUE; - - return FALSE; -} - -char* TTextIterator::GetClosestPos() -{ - char* end = GetBlockEnd(); - char* cur = mpCurRowStart; - size_t col = 0; - - while( cur < end && col < mPos.mCol && !is_eol_char(*cur) ) - { - if ( !is_DOS_eol_char( *cur ) ) ++col; - ++cur; - } - - if ( is_DOS_eol_char( *cur ) ) ++cur; - - return cur; -} - -char* TTextIterator::GotoClosestPos() -{ - char* end = GetBlockEnd(); - char* cur = mpCurRowStart; - size_t col = 0; - - while( cur < end && col < mPos.mCol && !is_eol_char(*cur) ) - { - if ( !is_DOS_eol_char( *cur ) ) ++col; - ++cur; - } - - mPos.mCol = col; - - if ( is_DOS_eol_char( *cur ) ) ++cur; - - return cur; -} - -TTextIterator::TTextIterator() - - : mIsEof( FALSE ) -{} - -bool TTextIterator::IsLastLine() -{ - TBlockIteratorT nextBlk = mBlockIter; - ++nextBlk; - - if ( nextBlk != mEndOfListIter ) return FALSE; - - char* cur = mpCurRowStart; - char* end = GetBlockEnd(); - - while( cur < end && !is_eol_char( *cur ) ) ++cur; - - if ( cur == end ) return TRUE; - - ++cur; - - return ( cur == end ); -} - -char TTextIterator::GetChar() -{ - char* cur = GetClosestPos(); - - if ( is_DOS_eol_char( *cur ) ) - - return *(cur+1); - else - return *cur; -} - -bool TTextIterator::IsEol() -{ - return is_eol_char( GetChar() ) || mIsEof; -} - -bool TTextIterator::IsEof() -{ - return mIsEof; -} - -int TTextIterator::GetDistFromEol() -{ - return 0; // TBD:: -} - -void TTextIterator::NextChar() -{ - char* cur = GotoClosestPos(); - - if ( cur + 1 >= GetBlockEnd() ) - { - TBlockIteratorT nextBlk = mBlockIter; - ++nextBlk; - - if ( nextBlk == mEndOfListIter ) - { - if ( cur != GetBlockEnd() ) - ++mPos.mCol; - - mIsEof = TRUE; - return; - } - - ++mPos.mRow ; - mPos.mCol = 0; - - mBlockIter = nextBlk; - - mFirstRowInBlock = mPos.mRow; - mActualRow = mPos.mRow; - mpCurRowStart = (*mBlockIter).mBuf; - - mIsEof = ( (*mBlockIter).mTextLen == 0 ); - } - else - { - if ( is_eol_char( *cur ) ) - { - ++mPos.mRow; - mPos.mCol = 0; - - mActualRow = mPos.mRow; - mpCurRowStart = cur + 1; - } - else - ++mPos.mCol; - } - - mIsEof = (mpCurRowStart + mPos.mCol) == GetBlockEnd(); -} - -void TTextIterator::PreviousChar() -{ - char* cur = GotoClosestPos(); - - if ( cur == (*mBlockIter).mBuf ) - { - TBlockIteratorT prevBlk = mBlockIter; - --prevBlk; - - if ( prevBlk == mEndOfListIter ) - { - mIsEof = TRUE; - return; - } - - --mPos.mRow; - - mBlockIter = prevBlk; - - cur = GetBlockEnd() - 1; - - char* eolPos = cur; - --cur; // skip EOL - char* start = (*mBlockIter).mBuf; - - while( cur != start && !is_eol_char( *cur ) ) --cur; // goto start of line - - if ( is_eol_char( *cur ) ) ++cur; - - mPos.mCol = (size_t)(eolPos - cur); - mpCurRowStart = cur; - - mFirstRowInBlock = mPos.mRow; - mActualRow = mPos.mRow; - } - else - { - do - { - // FIXME FIXME:: this is more then messy .... ! - - if ( is_eol_char( *(cur-1) ) ) - { - --cur; // goto EOL - - --mPos.mRow; - - char* eolPos = cur; - --cur; // skip EOL - char* start = (*mBlockIter).mBuf; - - while( cur != start && !is_eol_char( *cur ) ) --cur; // goto start of line - - if ( is_eol_char( *cur ) ) ++cur; - - mPos.mCol = (size_t)(eolPos - cur); - mpCurRowStart = cur; - - if ( eolPos != cur && is_DOS_eol_char( *(eolPos-1) ) ) --mPos.mCol; - - mActualRow = mPos.mRow; - - break; - } - else - if ( is_DOS_eol_char( *(cur-1) ) ) - { - --cur; - - if ( cur != (*mBlockIter).mBuf && is_eol_char( *(cur-1) ) ) - - continue; - else - { - --mPos.mCol; - --cur; - } - } - else - { - --mPos.mCol; - break; - } - - } while( 1 ); - } - - mIsEof = (mpCurRowStart + mPos.mCol) == GetBlockEnd(); -} - -void TTextIterator::NextWord() -{ - GotoClosestPos(); - - // skip non-white space ahead - - bool wasSeparator = IsSeparator( GetChar() ); - - while( !IsEof() ) - { - char ch = GetChar(); - - if ( ch == ' ' || - ch == '\t' || - is_eol_char(ch) || - wasSeparator != IsSeparator(ch) ) - - break; - - NextChar(); - } - - // skip all white stpace if any - while( !IsEof() ) - { - char ch = GetChar(); - - if ( ch != ' ' && ch != '\t' && !is_eol_char(ch) ) - - break; - - NextChar(); - } -} - -void TTextIterator::PreviousWord() -{ - GotoClosestPos(); - - PreviousChar(); - - // skip all white stpace if any - while( !IsEof() ) - { - char ch = GetChar(); - - if ( ch != ' ' && ch != '\t' && !is_eol_char(ch) ) - - break; - - PreviousChar(); - } - - bool wasSeparator = IsSeparator( GetChar() ); - - // skip word; - while( !IsEof() ) - { - char ch = GetChar(); - - if ( ch == ' ' || - ch == '\t' || - is_eol_char(ch) || - wasSeparator != IsSeparator(ch) - ) - { - NextChar(); - break; - } - - PreviousChar(); - } -} - -void TTextIterator::ToEndOfLine() -{ - GotoClosestPos(); - - while( !IsEof() ) - { - char ch = GetChar(); - - if ( is_eol_char( ch ) ) break; - - NextChar(); - } -} - -void TTextIterator::ToStartOfLine() -{ - GotoClosestPos(); - - mPos.mCol = 0; - mPos.mRow = mActualRow; -} - -size_t TTextIterator::GetLineLen() -{ - char* cur = mpCurRowStart; - char* end = GetBlockEnd(); - - size_t len = 0; - - while( cur < end && !is_eol_char( *cur ) ) - { - if ( !is_DOS_eol_char( *cur ) ) ++len; - ++cur; - } - - return len; -} - -TPosition TTextIterator::GetPosition() -{ - return mPos; -} - -bool TTextIterator::IsInLastBlock() -{ - TBlockIteratorT next = mBlockIter; - ++next; - - return next == mEndOfListIter; -} - -bool TTextIterator::DetectUnixText() -{ - char* cur = GetBlockStart(); - char* end = GetBlockEnd(); - - bool isUnixText = IS_UNIX_TEXT_BY_DEFAULT; - - while( cur < end ) - { - if ( is_DOS_eol_char( *cur ) ) return FALSE; - - if ( is_eol_char( *cur ) ) return TRUE; - - ++cur; - } - - return isUnixText; -} - -/***** Implementation for class TCppJavaHighlightListener *****/ - -void TCppJavaHighlightListener::OnTextChanged( wxTextEditorModel* pModel, - size_t atRow, size_t nRows, - TEXT_CHANGE_TYPE ct ) -{ - mpModel = pModel; - - /* - - int state = GetStateAtRow( atRow ); - - if ( ct == CT_INSERTED ) - { - RemoveCommentTags( atRow, atRow + nRows + 1 ); - GenerateTagsForRange( atRows, atRows + nRows + 1 ); - } - else - if ( ct == CT_DELETED ) - { - RemoveCommentTags( atRow, atRow + 1 ); - GenerateTagsForRange( atRows, atRows + 1 ); - } - */ -} - -/***** Implementation for class wxTextEditorModel *****/ - -/*** protected methods ***/ - -size_t wxTextEditorModel::GetLineCountInRange( char* from, char* till ) -{ - size_t nLines = 0; - - while( from != till ) - { - if ( is_eol_char( *from ) ) ++nLines; - - ++from; - } - - return nLines; -} - -void wxTextEditorModel::DoInsertText( const TPosition& pos, - char* text, size_t len, - TRange& actualRange ) -{ - // FOR NOW:: very dummy imp. - - char* end = text + len; - - TTextIterator iter = CreateIterator( pos ); - - TBlock& blk = (*iter.mBlockIter); - - char* cur = text; - - char* insertPos = iter.GotoClosestPos(); - actualRange.mFrom = iter.GetPosition(); - - if ( is_eol_char( *insertPos ) && - insertPos != iter.GetBlockStart() && - is_DOS_eol_char( *(insertPos-1) ) - ) - --insertPos; - - size_t sizeAfter = (size_t)(iter.GetBlockEnd() - insertPos); - - size_t nLines = GetLineCountInRange( text, text + len ); - - if ( blk.mTextLen + len < FILLED_BLOCK_LEN ) - { - memmove( insertPos + len, insertPos, sizeAfter ); - - memcpy( insertPos, text, len ); - - blk.mTextLen += len; - - - blk.RecalcBlockProperties(); - - if ( iter.IsInLastBlock() ) - - ++blk.mRowCount; // last block have always the-last-row-to-spare - - // the "nature" of most text editors - - char* endPos = insertPos + len; - - bool found = FALSE; - - /* - // OLD STUFF:: slow & buggy - - while( !iter.IsEof() ) - { - if ( iter.GetClosestPos() == endPos ) - { - actualRange.mTill = iter.GetPosition(); - found = TRUE; - break; - } - - iter.NextChar(); - } - - if ( !found ) - { - actualRange.mTill = iter.GetPosition(); - ++actualRange.mTill.mCol; - - //T_ASSERT( found ); // DBG:: - } - */ - - actualRange.mTill = actualRange.mFrom; - actualRange.mTill.mRow += nLines; - - if ( nLines == 0 ) - - actualRange.mTill.mCol = actualRange.mFrom.mCol + (len); - else - { - cur = end; - - while( cur != insertPos && !is_eol_char( *cur ) ) - - --cur; - - if ( is_eol_char( *cur ) ) ++cur; - - actualRange.mTill.mCol = (int)(end - cur); - } - - NotifyTextChanged( pos.mRow, nLines, CT_INSERTED ); - } - else - { - // TBD::: - - char buf[16]; - sprintf( buf, "%d", FILLED_BLOCK_LEN ); - string msg = "Sorry!!! Currently editor is limited to files less then "; - msg += buf; - msg += " bytes\n(the requested text length is " + - sprintf( buf, "%d", blk.mTextLen + len ); - msg += buf; - msg += " bytes)\n Please, close this file without making any changes."; - - wxMessageBox( msg ); - - GetActiveView()->SetFocus(); - - //T_ASSERT(0); // DBG:: for now - } -} - -void wxTextEditorModel::DoDeleteRange( const TPosition& from, const TPosition& till, - TRange& actualRange - ) -{ - // FOR NOW:: very dummy imp. - - TTextIterator iterFrom = CreateIterator( from ); - TTextIterator iterTill = CreateIterator( till ); - - if ( iterFrom.mBlockIter == iterTill.mBlockIter ) - { - char* fromPos = iterFrom.GotoClosestPos(); - char* tillPos = iterTill.GotoClosestPos(); - char* blockStart = (*iterFrom.mBlockIter).mBuf; - - if ( is_eol_char( *fromPos ) && - fromPos != blockStart && - is_DOS_eol_char( *(fromPos-1) ) - ) - --fromPos; - - if ( is_eol_char( *tillPos ) && - tillPos != blockStart && - is_DOS_eol_char( *(tillPos-1) ) - ) - --tillPos; - - size_t len = (size_t)( tillPos -fromPos ); - - size_t nLines = GetLineCountInRange( fromPos, fromPos + len ); - - size_t sizeAfter = (size_t)(iterFrom.GetBlockEnd() - tillPos); - - memmove( fromPos, tillPos, sizeAfter ); - - (*iterFrom.mBlockIter).mTextLen -= len; - - (*iterFrom.mBlockIter).RecalcBlockProperties(); - - if ( iterFrom.IsInLastBlock() ) - - ++(*iterFrom.mBlockIter).mRowCount; // last block have always the-last-row-to-spare - - // the "nature" of most text editors - - actualRange.mFrom = iterFrom.GetPosition(); - actualRange.mTill = iterTill.GetPosition(); - - NotifyTextChanged( from.mRow, nLines, CT_DELETED ); - } - else - T_ASSERT(0); // DBG:: for now -} - -void wxTextEditorModel::GetTextFromRange( const TPosition& from, const TPosition& till, - char** text, size_t& textLen - ) -{ - TTextIterator iterFrom = CreateIterator( from ); - TTextIterator iterTill = CreateIterator( till ); - - if ( iterFrom.mBlockIter == iterTill.mBlockIter ) - { - char* blockStart = (*iterFrom.mBlockIter).mBuf; - - char* fromPos = iterFrom.GetClosestPos(); - char* tillPos = iterTill.GetClosestPos(); - - if ( is_eol_char( *fromPos ) && - fromPos != blockStart && - is_DOS_eol_char( *(fromPos-1) ) - ) - --fromPos; - - if ( is_eol_char( *tillPos ) && - tillPos != blockStart && - is_DOS_eol_char( *(tillPos-1) ) - ) - --tillPos; - - textLen = (size_t)( tillPos -fromPos ); - - *text = AllocCharacters( textLen ); - - memcpy( *text, fromPos, textLen ); - } - else - T_ASSERT(0); // DBG:: for now -} - -void wxTextEditorModel::LoadTextFromFile( const wxString& fname ) -{ - T_ASSERT( wxFile::Exists( fname ) ); - - DeleteAllText(); - - wxFile fl( fname ); - - char* buf = AllocCharacters( fl.Length() ); - - fl.Read( buf, fl.Length() ); - - TRange result; - DoInsertText( TPosition( 0,0 ), buf, fl.Length(), result ); - - FreeCharacters( buf ); - - TTextIterator iter = CreateIterator( TPosition( 0,0 ) ); - - mIsUnixText = iter.DetectUnixText(); - - ClearUndoBuffer(); - - NotifyAllViews(); -} - -void wxTextEditorModel::SaveTextToFile( const wxString& fname ) -{ - wxFile fl( fname, wxFile::write ); - - char* text = 0; - size_t len = 0; - - GetTextFromRange( TPosition(0,0), TPosition( GetTotalRowCount()+1,0 ), &text, len ); - - fl.Write( text, len ); - fl.Close(); - - FreeCharacters( text ); -} - -void wxTextEditorModel::NotifyTextChanged( size_t atRow, size_t nRows, TEXT_CHANGE_TYPE ct ) -{ - if ( nRows > 0 ) - - MergeChange( atRow, mRowsPerPage ); - else - MergeChange( atRow, 1 ); - - // reposition bookmarsk - - if ( nRows > 0 ) - { - if ( ct == CT_INSERTED ) - { - size_t curPin = FindNextPinFrom( atRow + 1 ); - - while( curPin != NPOS ) - { - mPins[curPin]->mRow += nRows; - - ++curPin; - - if ( curPin == mPins.size() ) break; - } - } - else - if ( ct == CT_DELETED ) - { - size_t curPin = FindNextPinFrom( atRow + 1 ); - size_t fromPin = curPin; - size_t tillRow = atRow + nRows; - - while( curPin != NPOS && mPins[curPin]->mRow < tillRow ) - { - ++curPin; - - if ( curPin == mPins.size() ) break; - } - - if ( fromPin != NPOS && nRows != 0 ) - { - mPins.erase( &mPins[fromPin], &mPins[curPin] ); - - while( curPin < mPins.size() ) - { - mPins[curPin]->mRow -= nRows; - ++curPin; - } - } - } - } - - - // send notificaitons - - for( size_t i = 0; i != mChangeListeners.size(); ++i ) - - mChangeListeners[i]->OnTextChanged( this, atRow, nRows, ct ); -} - -void wxTextEditorModel::NotifyTextChanged( TPosition from, TPosition till, TEXT_CHANGE_TYPE ct ) -{ - ArrangePositions( from, till ); - - NotifyTextChanged( from.mRow, till.mRow - from.mRow + 1, ct ); -} - -void wxTextEditorModel::DoExecuteNewCommand( TCommand& cmd ) -{ - if ( cmd.mType == TCMD_INSERT ) - { - cmd.mPrePos = mCursorPos; - DoInsertText( cmd.mRange.mFrom, cmd.mData, cmd.mDataLen, cmd.mRange ); - } - else - if ( cmd.mType == TCMD_DELETE ) - { - cmd.mPrePos = mCursorPos; - DoDeleteRange( cmd.mRange.mFrom, cmd.mRange.mTill, cmd.mRange ); - } -} - -void wxTextEditorModel::DoReexecuteCommand( TCommand& cmd ) -{ - NotifyTextChanged( mCursorPos.mRow, 1, CT_MODIFIED ); // indicate update of current cursor position - - if ( cmd.mType == TCMD_INSERT ) - { - DoInsertText( cmd.mRange.mFrom, cmd.mData, cmd.mDataLen, cmd.mRange ); - mCursorPos = cmd.mPostPos; - } - else - if ( cmd.mType == TCMD_DELETE ) - { - DoDeleteRange( cmd.mRange.mFrom, cmd.mRange.mTill, cmd.mRange ); - mCursorPos = cmd.mPostPos; - } - - NotifyTextChanged( mCursorPos.mRow, 1, CT_MODIFIED ); // indicate update of current cursor position -} - -void wxTextEditorModel::DoUnexecuteCommand( TCommand& cmd ) -{ - NotifyTextChanged( mCursorPos.mRow, 1, CT_MODIFIED ); // indicate update of current cursor position - - if ( cmd.mType == TCMD_INSERT ) - { - DoDeleteRange( cmd.mRange.mFrom, cmd.mRange.mTill, cmd.mRange ); - mCursorPos = cmd.mPrePos; - } - else - if ( cmd.mType == TCMD_DELETE ) - { - DoInsertText( cmd.mRange.mFrom, cmd.mData, cmd.mDataLen, cmd.mRange ); - mCursorPos = cmd.mPrePos; - } - - NotifyTextChanged( mCursorPos.mRow, 1, CT_MODIFIED ); // indicate update of current cursor position -} - -void wxTextEditorModel::UndoImpl() -{ - --mCurCommand; - - DoUnexecuteCommand( *mCommands[mCurCommand] ); -} - -void wxTextEditorModel::RedoImpl() -{ - DoReexecuteCommand( *mCommands[mCurCommand] ); - - ++mCurCommand; -} - -void wxTextEditorModel::ExecuteCommand( TCommand* pCmd ) -{ - if ( mCurCommand < mCheckPointCmdNo ) - - // new command is executed before the checkpoint, - // and every thing is sliced - invalidate it - - mCheckPointDestroyed = TRUE; - - // slice undo-able commands ahead in the queue, - // they wont ever be reexecuted - - while( mCommands.size() > mCurCommand ) - { - delete mCommands.back(); - - mCommands.pop_back(); - } - - mCommands.push_back( pCmd ); - - DoExecuteNewCommand( *pCmd ); - ++mCurCommand; -} - -bool wxTextEditorModel::CanPrependCommand( TCommand* pCmd ) -{ - if ( mCommands.size() != mCurCommand || - mCommands.size() == 0 ) - - return FALSE; - - TCommand& prevCmd = *mCommands.back(); - - if ( !(prevCmd.mRange.mTill == pCmd->mRange.mFrom) ) - - return FALSE; - - char prevCh = prevCmd.mData[ prevCmd.mDataLen - 1]; - char curCh = pCmd->mData[0]; - - if ( prevCh == curCh ) return TRUE; - - if ( prevCh == ' ' || curCh == ' ') return FALSE; - - if ( TTextIterator::IsSeparator(prevCh) != - TTextIterator::IsSeparator(curCh) ) - - return FALSE; - - return TRUE; -} - -void wxTextEditorModel::PrependCommand( TCommand* pCmd ) -{ - if ( mCheckPointCmdNo == mCurCommand ) - - mCheckPointDestroyed = TRUE; - - TCommand& prevCmd = *mCommands.back(); - - DoExecuteNewCommand( *pCmd ); - - TCommand* pComb = new TCommand(); - - pComb->mType = TCMD_INSERT; - pComb->mDataLen = prevCmd.mDataLen + pCmd->mDataLen; - - pComb->mData = AllocCharacters( pComb->mDataLen ); - pComb->mRange.mFrom = prevCmd.mRange.mFrom; - pComb->mRange.mTill = pCmd->mRange.mTill; - pComb->mPrePos = prevCmd.mPrePos; - pComb->mPostPos = pCmd->mPostPos; - - memcpy( pComb->mData, prevCmd.mData, prevCmd.mDataLen ); - memcpy( pComb->mData + prevCmd.mDataLen, pCmd->mData, pCmd->mDataLen ); - - FreeCharacters( prevCmd.mData ); - FreeCharacters( pCmd->mData ); - - delete &prevCmd; - delete pCmd; - - mCommands[ mCommands.size() - 1 ] = pComb; -} - -void wxTextEditorModel::SetPostPos( const TPosition& pos ) -{ - mCommands[mCurCommand-1]->mPostPos = pos; -} - -bool wxTextEditorModel::SelectionIsEmpty() -{ - return mSelectionStart == mSelectionEnd; -} - -void wxTextEditorModel::StartBatch() -{ - // TBD:: -} - -void wxTextEditorModel::FinishBatch() -{ - // TBD:: -} - -void wxTextEditorModel::DeleteRange( const TPosition& from, const TPosition& till ) -{ - TCommand* pCmd = new TCommand(); - - pCmd->mType = TCMD_DELETE; - - pCmd->mRange.mFrom = from; - pCmd->mRange.mTill = till; - pCmd->mPrePos = mCursorPos; - - GetTextFromRange( from, till, &pCmd->mData, pCmd->mDataLen ); - - ExecuteCommand( pCmd ); -} - -void wxTextEditorModel::InsertText( const TPosition& pos, const char* text, size_t len ) -{ - TCommand* pCmd = new TCommand(); - - pCmd->mType = TCMD_INSERT; - - pCmd->mRange.mFrom = pos; - - pCmd->mData = AllocCharacters( len, text ), - pCmd->mDataLen = len; - pCmd->mPrePos = mCursorPos; - - ExecuteCommand( pCmd ); -} - -void wxTextEditorModel::DeleteSelection() -{ - DeleteRange( mSelectionStart, mSelectionEnd ); - - ResetSelection(); -} - -bool wxTextEditorModel::IsLastLine( const TPosition& pos ) -{ - return FALSE; -} - -TTextIterator wxTextEditorModel::CreateIterator( const TPosition& pos ) -{ - size_t curRow = 0; - - TBlockIteratorT bIter = mBlocks.begin(); - - TTextIterator tIter; - - while( bIter != mBlocks.end() ) - { - TBlockIteratorT nextBlk = bIter; - ++nextBlk; - - if ( nextBlk == mBlocks.end() || - ( pos.mRow >= curRow && - pos.mRow <= curRow + (*bIter).mRowCount ) - ) - { - tIter.mFirstRowInBlock = curRow; - - char* cur = (*bIter).mBuf; - char* end = cur + (*bIter).mTextLen; - - // slightly optimized - - if ( curRow < pos.mRow ) - { - while( cur < end ) - { - if ( is_eol_char( *cur ) ) - { - ++curRow; - - if ( !(curRow < pos.mRow) ) - { - ++cur; - break; - } - } - - ++cur; - } - } - - tIter.mActualRow = curRow; - tIter.mpCurRowStart = cur; - tIter.mPos = pos; - - // FOR NOW:: positioning past the end of file is not supported - tIter.mPos.mRow = curRow; - - tIter.mBlockIter = bIter; - tIter.mEndOfListIter = mBlocks.end(); - - break; - } - else - { - curRow += (*bIter).mRowCount; - ++bIter; - } - } - - return tIter; -} - -void wxTextEditorModel::ArrangePositions( TPosition& upper, TPosition& lower ) -{ - if ( upper > lower ) - { - TPosition tmp( lower ); - lower = upper; - upper = tmp; - } -} - -void wxTextEditorModel::ArrangePositions( size_t& upper, size_t& lower ) -{ - if ( upper > lower ) - { - size_t tmp = lower; - lower = upper; - upper = tmp; - } -} - -void wxTextEditorModel::MergeChange( size_t fromRow, size_t nRows ) -{ - if ( mTextChanged == FALSE ) - { - mChangedFromRow = fromRow; - mChangedTillRow = fromRow + nRows; - mTextChanged = TRUE; - } - else - { - if ( mChangedFromRow > fromRow ) - - mChangedFromRow = fromRow; - - if ( mChangedTillRow < fromRow + nRows ) - - mChangedTillRow = fromRow + nRows; - } -} - -void wxTextEditorModel::TrackSelection() -{ - if ( !mIsSelectionEditMode ) return; - - if ( mPrevCursorPos == mSelectionStart ) - - mSelectionStart = mCursorPos; - else - mSelectionEnd = mCursorPos; - - ArrangePositions( mSelectionStart, mSelectionEnd ); - - NotifyTextChanged( mSelectionStart, mPrevSelectionStart, CT_MODIFIED ); - NotifyTextChanged( mSelectionEnd, mPrevSelectionEnd, CT_MODIFIED ); -} - -void wxTextEditorModel::CheckSelection() -{ - ArrangePositions( mSelectionStart, mSelectionEnd ); - - if ( mIsSelectionEditMode && SelectionIsEmpty() ) - { - mSelectionStart = mCursorPos; - mSelectionEnd = mCursorPos; - } - - if ( !mIsSelectionEditMode && !SelectionIsEmpty() ) - { - ResetSelection(); - } - - mPrevSelectionStart = mSelectionStart; - mPrevSelectionEnd = mSelectionEnd; - mPrevCursorPos = mCursorPos; -} - -void wxTextEditorModel::ResetSelection() -{ - if ( SelectionIsEmpty() ) return; - - MergeChange( mSelectionStart.mRow, - mSelectionEnd.mRow - mSelectionStart.mRow + 1 ); - - NotifyTextChanged( mSelectionStart, mSelectionEnd, CT_MODIFIED ); - - mSelectionStart = TPosition(0,0); - mSelectionEnd = TPosition(0,0); - -} - -void wxTextEditorModel::ClearUndoBuffer() -{ - for( size_t i = 0; i != mCommands.size(); ++i ) - { - TCommand& cmd = *mCommands[i]; - - if ( cmd.mData ) delete [] cmd.mData; - - delete &cmd; - } - - mCommands.erase( mCommands.begin(), mCommands.end() ); - - mCurCommand = 0; -} - -void wxTextEditorModel::GetAllText( char** text, size_t& textLen ) -{ - GetTextFromRange( TPosition(0,0), TPosition( GetTotalRowCount()+1, 0 ), - text, textLen - ); -} - -void wxTextEditorModel::DeleteAllText() -{ - ResetSelection(); - - DeleteRange( TPosition(0,0), TPosition( GetTotalRowCount()+1, 0 ) ); -} - -void wxTextEditorModel::SetSelectionEditMode( bool editIsOn ) -{ - mIsSelectionEditMode = editIsOn; -} - -size_t wxTextEditorModel::GetTotalRowCount() -{ - size_t nRows = 0; - - for( TBlockIteratorT i = mBlocks.begin(); i != mBlocks.end(); ++i ) - - nRows += (*i).mRowCount; - - return nRows; -} - -void wxTextEditorModel::GetSelection( char** text, size_t& textLen ) -{ - GetTextFromRange( GetStartOfSelection(), GetEndOfSelection(), text, textLen ); -} - -void wxTextEditorModel::NotifyView() -{ - mpActiveView->OnModelChanged(); -} - -void wxTextEditorModel::NotifyAllViews() -{ - for( size_t i = 0; i != mViews.size(); ++i ) - - mViews[i]->OnModelChanged(); -} - -void wxTextEditorModel::PrepreForCommand() -{ - mTextChanged = 0; - mChangedFromRow = 0; - mChangedTillRow = 0; -} - -size_t wxTextEditorModel::TextToScrColumn( const TPosition& pos ) -{ - TPosition spos; - - mpActiveView->TextPosToScreenPos( pos, spos ); - - return spos.mCol + mpActiveView->GetPagePos().mCol; -} - -size_t wxTextEditorModel::ScrToTextColumn( TPosition pos ) -{ - TPosition tpos; - - pos.mCol -= mpActiveView->GetPagePos().mCol; - pos.mRow -= mpActiveView->GetPagePos().mRow; - - mpActiveView->ScreenPosToTextPos( pos, tpos ); - - return tpos.mCol; -} - -void wxTextEditorModel::DoMoveCursor( int rows, int cols ) -{ - mCursorPos.mCol = TextToScrColumn( mCursorPos ); - - mCursorPos.mRow += rows; - mCursorPos.mCol += cols; - - mCursorPos.mCol = ScrToTextColumn( mCursorPos ); -} - -/*** public interface ***/ - -wxTextEditorModel::wxTextEditorModel() - - : - mpActiveView( NULL ), - mTabSize( 4 ), - mIsSelectionEditMode( FALSE ), - mRowsPerPage( 0 ), - mTextChanged( FALSE ), - mCurCommand( 0 ), - - mInsertMode ( TRUE ), - mAutoIndentMode ( TRUE ), - mSmartIndentMode( TRUE ), - mWasChanged ( FALSE ), - mIsReadOnly ( FALSE ), - mIsUnixText ( IS_UNIX_TEXT_BY_DEFAULT ) -{ - // at least one block should be present - // (otherwise text-iterators wont work) - - mBlocks.push_back( TBlock() ); -} - -wxTextEditorModel::~wxTextEditorModel() -{ - ClearUndoBuffer(); -} - -char* wxTextEditorModel::AllocCharacters( size_t n ) -{ - return new char[n]; -} - -char* wxTextEditorModel::AllocCharacters( size_t n, const char* srcBuf ) -{ - char* destBuf = AllocCharacters( n ); - - memcpy( destBuf, srcBuf, n ); - - return destBuf; -} - -void wxTextEditorModel::FreeCharacters( char* buf ) -{ - delete [] buf; -} - -void wxTextEditorModel::OnInsertChar( char ch ) -{ - if ( ch == 27 ) return; // hack - - if ( is_DOS_eol_char( ch ) ) ch = '\n'; - - PrepreForCommand(); - StartBatch(); - - TCommand* pCmd = new TCommand(); - - pCmd->mType = TCMD_INSERT; - - if ( ch == '\n' && !mIsUnixText ) - { - // DOS text with CR-LF pair - pCmd->mData = AllocCharacters( 2 ); - pCmd->mDataLen = 2; - pCmd->mData[0] = (char)13; - pCmd->mData[1] = (char)10; - } - else - { - pCmd->mData = AllocCharacters( 1 ); - pCmd->mDataLen = 1; - pCmd->mData[0] = ch; - } - - - if ( !SelectionIsEmpty() ) - { - mCursorPos = mSelectionStart; - DeleteSelection(); - } - - pCmd->mRange.mFrom = mCursorPos; - - if ( mInsertMode == FALSE ) - { - TPosition nextPos( mCursorPos.mRow, mCursorPos.mCol + 1 ); - DeleteRange( mCursorPos, nextPos ); - - SetPostPos( mCursorPos ); - } - - TTextIterator iter = CreateIterator( mCursorPos ); - - size_t lineLen = iter.GetLineLen(); - - bool indentAdded = FALSE; - - if ( mCursorPos.mCol > lineLen ) - { - - wxString s( ' ', mCursorPos.mCol - lineLen ); - InsertText( TPosition( mCursorPos.mRow, lineLen ), s.c_str(), s.length() ); - - SetPostPos( mCursorPos ); - - indentAdded = TRUE; - } - - if ( CanPrependCommand( pCmd ) || indentAdded ) - - PrependCommand( pCmd ); - else - ExecuteCommand( pCmd ); - - ++mCursorPos.mCol; - - if ( is_eol_char( ch ) ) - { - mCursorPos.mCol = 0; - ++mCursorPos.mRow; - - SetPostPos( mCursorPos ); - - if ( mAutoIndentMode ) - { - iter.ToStartOfLine(); - wxString indent; - - while( !iter.IsEol() ) - { - char ch = iter.GetChar(); - - if ( ch == '\t' || ch == ' ' ) - - indent += ch; - else - break; - - iter.NextChar(); - } - - if ( indent.length() ) - { - // auto-indent is always prepended to the command which - // caused it - - mCursorPos = TPosition( mCursorPos.mRow, 0 ); - - - TCommand* pICmd = new TCommand(); - pICmd->mType = TCMD_INSERT; - pICmd->mData = AllocCharacters( indent.length() ); - pICmd->mDataLen = indent.length(); - memcpy( pICmd->mData, indent, indent.length() ); - - pICmd->mRange.mFrom = TPosition( mCursorPos.mRow, 0 ); - - PrependCommand( pICmd ); - - SetPostPos( mCursorPos ); - - mCursorPos.mCol = indent.length(); - } - } - } - else - SetPostPos( mCursorPos ); - - FinishBatch(); - - NotifyAllViews(); -} - -void wxTextEditorModel::OnDelete() -{ - PrepreForCommand(); - StartBatch(); - - if ( !SelectionIsEmpty() ) - { - TPosition startPos = mSelectionStart; - DeleteSelection(); - mCursorPos = startPos; - } - else - { - TTextIterator iter = CreateIterator( mCursorPos ); - - if ( iter.GetLineLen() == mCursorPos.mCol && !iter.IsLastLine() ) - { - TPosition nextPos( mCursorPos.mRow+1, 0 ); - DeleteRange( mCursorPos, nextPos ); - NotifyTextChanged( mCursorPos.mRow, 2, CT_DELETED ); - } - else - { - TPosition nextPos( mCursorPos.mRow, mCursorPos.mCol + 1 ); - DeleteRange( mCursorPos, nextPos ); - } - } - - SetPostPos( mCursorPos ); - - FinishBatch(); - - NotifyAllViews(); -} - -void wxTextEditorModel::OnDeleteBack() -{ - PrepreForCommand(); - StartBatch(); - - if ( !SelectionIsEmpty() ) - { - mCursorPos = mSelectionStart; - DeleteSelection(); - } - else - if ( !(mCursorPos == TPosition(0,0)) ) - { - TPosition prevPos; - - if ( mCursorPos.mCol == 0 ) - { - TTextIterator iter = CreateIterator( mCursorPos ); - iter.PreviousChar(); - - prevPos = iter.GetPosition(); - } - else - prevPos = TPosition( mCursorPos.mRow, mCursorPos.mCol - 1 ); - - DeleteRange( prevPos, mCursorPos ); - - mCursorPos = prevPos; - } - - SetPostPos( mCursorPos ); - - FinishBatch(); - - NotifyAllViews(); - -} - -void wxTextEditorModel::OnDeleteLine() -{ - PrepreForCommand(); - StartBatch(); - - DeleteSelection(); - - TTextIterator iter = CreateIterator( mCursorPos ); - - iter.ToStartOfLine(); - - TPosition from = iter.GetPosition(); - - iter.ToEndOfLine(); - - if ( iter.IsLastLine() == FALSE ) - - iter.NextChar(); // delete eol-char also, if it's not the last line - - TPosition till = iter.GetPosition(); - - DeleteRange( from, till ); - SetPostPos( mCursorPos ); - - FinishBatch(); - - NotifyAllViews(); -} - -void wxTextEditorModel::OnShiftSelectionIndent( bool left ) -{ - if ( SelectionIsEmpty() ) return; - - PrepreForCommand(); - StartBatch(); - - for( size_t row = mSelectionStart.mRow; row != mSelectionEnd.mRow; ++row ) - { - TTextIterator iter = CreateIterator( TPosition( row, 0 ) ); - - if ( left ) - { - int n = 0, pos = 0; - - while( !iter.IsEol() && !iter.IsEof() ) - { - char ch = iter.GetChar(); - - if ( pos == mTabSize ) break; - - if ( ch != ' ' && ch != '\t' ) break; - - ++n; - - if ( ch == '\t' ) break; - - ++pos; - - iter.NextChar(); - } - - if ( n ) DeleteRange( TPosition( row,0 ), TPosition( row, n ) ); - } - else - { - char txt = '\t'; - - InsertText( TPosition( row, 0 ), &txt, sizeof(char) ); - } - } - - FinishBatch(); - NotifyAllViews(); -} - -void wxTextEditorModel::OnPaste() -{ - // FIXME:: "wxLogQueryInterface(..)" linking problems with MSDev4.0 - -#ifdef __HACK_MY_MSDEV40__ - - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - } - - char* data = (char*)::wxGetClipboardData( wxDF_TEXT ); - - wxCloseClipboard(); - - if ( data == NULL ) return; - - PrepreForCommand(); - StartBatch(); - - if ( !SelectionIsEmpty() ) - { - mCursorPos = GetStartOfSelection(); - DeleteSelection(); - } - - InsertText( mCursorPos, data, strlen( data ) ); - - delete [] data; -#else - - if ( !wxTheClipboard->Open() ) return; - - wxTextDataObject data; - if ( !wxTheClipboard->IsSupported(wxDF_TEXT) ) - { - wxTheClipboard->Close(); - return; - } - - wxTheClipboard->GetData(&data); - - string txt = data.GetText(); - - wxTheClipboard->Close(); - - PrepreForCommand(); - StartBatch(); - - DeleteSelection(); - - InsertText( mCursorPos, txt.c_str(), txt.length() ); -#endif - - - mCursorPos = mCommands.back()->mRange.mTill; - SetPostPos( mCursorPos ); - - FinishBatch(); - NotifyAllViews(); -} - -void wxTextEditorModel::OnCut() -{ - OnCopy(); - - PrepreForCommand(); - StartBatch(); - - DeleteSelection(); - SetPostPos( mCursorPos ); - - - FinishBatch(); - NotifyAllViews(); -} - -void wxTextEditorModel::OnCopy() -{ - if ( !SelectionIsEmpty() ) - { - size_t len = 0; - char* text = NULL; - -#ifndef __HACK_MY_MSDEV40__ - - if ( !wxTheClipboard->Open() ) return; - - GetTextFromRange( mSelectionStart, mSelectionEnd, &text, len ); - - wxString s( text, len ); - - wxTheClipboard->AddData( new wxTextDataObject(s) ); - wxTheClipboard->Close(); - - FreeCharacters( text ); -#else - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - if (!wxEmptyClipboard()) - { - wxCloseClipboard(); - return; - } - } - - GetTextFromRange( mSelectionStart, mSelectionEnd, &text, len ); - - wxString s( text, len ); - - bool success = ::wxEmptyClipboard(); - - success = wxSetClipboardData( wxDF_TEXT, (wxObject*)s.c_str(), 0,0 ); - - FreeCharacters( text ); - - wxCloseClipboard(); - -#endif - } -} - -bool wxTextEditorModel::CanCopy() -{ - return !SelectionIsEmpty(); -} - -bool wxTextEditorModel::CanPaste() -{ - if ( mIsReadOnly ) return FALSE; - -#ifndef __HACK_MY_MSDEV40__ - - if ( !wxTheClipboard->Open() ) return FALSE; - - if ( !wxTheClipboard->IsSupported(wxDF_TEXT) ) - return FALSE; - - wxTheClipboard->Close(); - - return TRUE; - -#else - - bool success = ::wxClipboardOpen(); - - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - } - - char* data = (char*)::wxGetClipboardData( wxDF_TEXT ); - - wxCloseClipboard(); - - if ( data != NULL && strlen(data) != 0 ) - { - delete [] data; - return TRUE; - } - else - { - delete [] data; - return FALSE; - } - -#endif - -} - -bool wxTextEditorModel::CanUndo() -{ - return !( mCommands.size() == 0 || - mCurCommand == 0 ); -} - -bool wxTextEditorModel::CanRedo() -{ - return mCurCommand != mCommands.size(); -} - -void wxTextEditorModel::OnUndo() -{ - if ( !CanUndo() ) return; - - PrepreForCommand(); - StartBatch(); - - ResetSelection(); - - UndoImpl(); - - FinishBatch(); - NotifyAllViews(); -} - -void wxTextEditorModel::OnRedo() -{ - if ( !CanRedo() ) return; - - PrepreForCommand(); - StartBatch(); - - ResetSelection(); - - RedoImpl(); - - FinishBatch(); - NotifyAllViews(); -} - -void wxTextEditorModel::OnMoveLeft() -{ - PrepreForCommand(); - CheckSelection(); - - if ( mCursorPos.mCol == 0 ) - { - if ( mCursorPos.mRow != 0 ) - { - --mCursorPos.mRow; - - TTextIterator iter = CreateIterator( mCursorPos ); - - iter.ToEndOfLine(); - - mCursorPos.mCol = iter.GetPosition().mCol; - } - } - else - --mCursorPos.mCol; - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnMoveRight() -{ - PrepreForCommand(); - CheckSelection(); - - ++mCursorPos.mCol; - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnMoveUp() -{ - PrepreForCommand(); - CheckSelection(); - - if ( mCursorPos.mRow != 0 ) - - DoMoveCursor( -1,0 ); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnMoveDown() -{ - PrepreForCommand(); - CheckSelection(); - - if ( mCursorPos.mRow + 1 < GetTotalRowCount() ) - - DoMoveCursor( 1,0 ); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnWordRight() -{ - PrepreForCommand(); - CheckSelection(); - - TTextIterator iter = CreateIterator( mCursorPos ); - - iter.NextWord(); - - mCursorPos = iter.GetPosition(); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnWordLeft() -{ - PrepreForCommand(); - CheckSelection(); - - TTextIterator iter = CreateIterator( mCursorPos ); - - iter.PreviousWord(); - - mCursorPos = iter.GetPosition(); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnMoveToPosition( const TPosition& pos ) -{ - PrepreForCommand(); - CheckSelection(); - - mCursorPos = pos; - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnEndOfLine() -{ - PrepreForCommand(); - CheckSelection(); - - TTextIterator iter = CreateIterator( mCursorPos ); - iter.ToEndOfLine(); - - mCursorPos = iter.GetPosition(); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnStartOfLine() -{ - PrepreForCommand(); - CheckSelection(); - - int prevCol = mCursorPos.mCol; - - TTextIterator iter = CreateIterator( mCursorPos ); - iter.ToStartOfLine(); - - // bypass leading white-space at the begining of the line - - while( !iter.IsEol() ) - { - char ch = iter.GetChar(); - - if ( ch != ' ' && ch != '\t' ) break; - - ++mCursorPos.mCol; - - iter.NextChar(); - } - - mCursorPos = iter.GetPosition(); - - if ( mCursorPos.mCol == prevCol ) - - mCursorPos.mCol = 0; - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnPageUp() -{ - PrepreForCommand(); - CheckSelection(); - - if ( mCursorPos.mRow < mRowsPerPage ) - - mCursorPos.mRow = 0; - else - DoMoveCursor( -mRowsPerPage,0 ); - - mpActiveView->ScrollView( -(int)mRowsPerPage, 0 ); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnPageDown() -{ - PrepreForCommand(); - CheckSelection(); - - if ( mCursorPos.mRow + mRowsPerPage >= GetTotalRowCount() ) - { - if ( GetTotalRowCount() != 0 ) - - mCursorPos.mRow = GetTotalRowCount() - 1; - else - mCursorPos.mRow = 0; - } - else - DoMoveCursor( mRowsPerPage,0 ); - - mpActiveView->ScrollView( mRowsPerPage, 0 ); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnSlideUp() -{ - PrepreForCommand(); - - if ( mpActiveView->GetPagePos().mRow + mRowsPerPage - 1 == mCursorPos.mRow ) - { - if ( mCursorPos.mRow == 0 ) - - return; - - DoMoveCursor( -1,0 ); - } - - mpActiveView->ScrollView( -1, 0 ); - - NotifyView(); -} - -void wxTextEditorModel::OnSlideDown() -{ - PrepreForCommand(); - - if ( mCursorPos.mRow == mpActiveView->GetPagePos().mRow ) - { - if ( mCursorPos.mRow + 1 >= GetTotalRowCount() ) - - return; - - DoMoveCursor( 1,0 ); - } - - mpActiveView->ScrollView( 1, 0 ); - - NotifyView(); -} - -void wxTextEditorModel::OnStartOfText() -{ - PrepreForCommand(); - CheckSelection(); - - mCursorPos.mRow = mCursorPos.mCol = 0; - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnEndOfText() -{ - PrepreForCommand(); - CheckSelection(); - - mCursorPos.mRow = GetTotalRowCount() - 1; - - TTextIterator iter = CreateIterator( mCursorPos ); - - iter.ToEndOfLine(); - - mCursorPos = iter.GetPosition(); - - TrackSelection(); - NotifyView(); -} - -void wxTextEditorModel::OnSelectWord() -{ - PrepreForCommand(); - - TTextIterator iter1 = CreateIterator( mCursorPos ); - iter1.GotoClosestPos(); - - if ( mCursorPos == iter1.GetPosition() ) - { - TTextIterator iter2 = iter1; - - // find the left-edge of the word - - bool wasSeparator = TTextIterator::IsSeparator( iter1.GetChar() ); - - while( !iter1.IsEol() ) - { - char ch = iter1.GetChar(); - - if ( ch == '\t' || - ch == ' ' || - wasSeparator != TTextIterator::IsSeparator( iter1.GetChar() ) - ) - { - iter1.NextChar(); - break; - } - - iter1.PreviousChar(); - } - - // find the left-edge of the word - - while( !iter2.IsEol() ) - { - char ch = iter2.GetChar(); - - if ( ch == '\t' || - ch == ' ' || - wasSeparator != TTextIterator::IsSeparator( iter2.GetChar() ) - ) - break; - - iter2.NextChar(); - } - - if ( !(iter1.GetPosition() == iter2.GetPosition()) ) - { - mSelectionStart = iter1.GetPosition(); - mSelectionEnd = iter2.GetPosition(); - mCursorPos = iter2.GetPosition(); - - NotifyTextChanged( mSelectionStart.mRow, 1, CT_MODIFIED ); - } - } - - NotifyView(); -} - -void wxTextEditorModel::OnSelectAll() -{ - PrepreForCommand(); - - ResetSelection(); - - mSelectionStart = TPosition(0,0); - mSelectionEnd = TPosition( GetTotalRowCount(), 1024 ); // FOR NOW:: hack - - mCursorPos = mSelectionStart; - - NotifyTextChanged( mSelectionStart.mRow, mSelectionEnd.mRow, CT_MODIFIED ); - - NotifyView(); -} - -void wxTextEditorModel::OnToggleBookmark() -{ - size_t curRow = GetCursor().mRow; - - if ( GetPinAt( curRow, TBookmarkPin::GetPinTypeCode() ) != NULL ) - - RemovePinAt( curRow, TBookmarkPin::GetPinTypeCode() ); - else - AddPin( new TBookmarkPin( curRow ) ); - - MergeChange( curRow, 1 ); - - NotifyAllViews(); -} - -void wxTextEditorModel::OnNextBookmark() -{ - size_t pinNo = FindNextPinFrom( mCursorPos.mRow + 1 ); - - while( pinNo != NPOS ) - { - TPinBase& pin = *mPins[pinNo]; - - if ( pin.mTypeCode == BOOKMARK_PIN_TC ) - { - OnGotoLine( pin.mRow, 0 ); - break; - } - - if ( pinNo == mPins.size() ) break; - - ++pinNo; - } -} - -void wxTextEditorModel::OnPreviousBookmark() -{ - if ( mCursorPos.mRow == 0 ) return; - - size_t pinNo = FindPreviousPinFrom( mCursorPos.mRow - 1 ); - - while( pinNo != NPOS ) - { - TPinBase& pin = *mPins[pinNo]; - - if ( pin.mTypeCode == BOOKMARK_PIN_TC ) - { - OnGotoLine( pin.mRow, 0 ); - break; - } - - if ( pinNo == 0 ) break; - - --pinNo; - } -} - -bool wxTextEditorModel::OnFind() -{ - if ( !SelectionIsEmpty() ) - { - if ( GetStartOfSelection().mRow == GetEndOfSelection().mRow ) - { - char* buf = NULL; size_t len = 0; - - GetSelection( &buf, len ); - - mLastFindExpr = string( buf, 0, len ); - - delete [] buf; - } - } - - wxFindTextDialog dlg( GetActiveView(), mLastFindExpr ); - //dlg.SetExpr( mLastFindExpr ); - - if( dlg.ShowModal() == wxID_OK ) - { - mLastFindExpr = dlg.GetExpr(); - - GetActiveView()->SetFocus(); - - return OnFindNext(); - } - - GetActiveView()->SetFocus(); - - return FALSE; -} - -bool wxTextEditorModel::OnFindNext() -{ - PrepreForCommand(); - - string& val = mLastFindExpr; - size_t len = val.length(); - - if ( len == 0 ) - { - NotifyView(); - wxMessageBox( "Secarch string not found!" ); - - GetActiveView()->SetFocus(); - - return FALSE; - } - - char ch1 = val[0]; - - TTextIterator iter = CreateIterator( mCursorPos ); - - while( !iter.IsEof() ) - { - char ch = iter.GetChar(); - - if ( ch == ch1 ) - { - size_t startCol = iter.mPos.mCol; - iter.NextChar(); - ch = iter.GetChar(); - - size_t i = 1; - while( i < len && !iter.IsEof() && ch == val[i] ) - { - ++i; - iter.NextChar(); - ch = iter.GetChar(); - } - - if ( i == len ) - { - if ( !SelectionIsEmpty() ) - - ResetSelection(); - - SetStartOfSelection( TPosition( iter.mPos.mRow, startCol ) ); - SetEndOfSelection( iter.mPos ); - - MergeChange( iter.mPos.mRow, 1 ); - - mCursorPos = iter.mPos; - - OnGotoLine( iter.mPos.mRow, iter.mPos.mCol ); - return TRUE; - } - } - else - iter.NextChar(); - } - - NotifyView(); - MergeChange( mCursorPos.mRow, 2 ); - wxMessageBox( "Secarch string not found!" ); - - GetActiveView()->SetFocus(); - - return FALSE; -} - -bool wxTextEditorModel::OnFindPrevious() -{ - // TBD:: - return FALSE; -} - -void wxTextEditorModel::OnGotoLine( int line, int col ) -{ - if ( mpActiveView == NULL ) return; - - TPosition pagePos = mpActiveView->GetPagePos(); - - if ( line >= pagePos.mRow && - line < pagePos.mRow + mRowsPerPage ) - { - mCursorPos.mRow = (size_t)line; - mCursorPos.mCol = (size_t)col; - - if ( col == - 1) - { - mCursorPos.mCol = 0; - OnStartOfLine(); - } - else - NotifyView(); - - return; - } - - size_t third = mRowsPerPage / 3; - size_t newTop = 0; - - if ( line < third ) - - newTop = 0; - else - newTop = line - third; - - - mpActiveView->ScrollView( (int)newTop - (int)pagePos.mRow, -(int)pagePos.mCol ); - - mCursorPos.mRow = line; - mCursorPos.mCol = col; - - if ( col == - 1) - { - mCursorPos.mCol = 0; - OnStartOfLine(); - } - else - NotifyView(); -} - -void wxTextEditorModel::OnGotoLine() -{ - wxTextEntryDialog* dlg = - new wxTextEntryDialog( mpActiveView, "Line number:", "Goto line", "" ); - - int nTries = 3; - - while( dlg->ShowModal() == wxID_OK && nTries ) - { - ResetSelection(); - - int i = -1; - sscanf( dlg->GetValue(), "%d", &i ); - - if ( i == -1 ) - { - wxMessageBox( "Please enter a number" ); - continue; - } - - - if ( i == 0 ) ++i; - - OnGotoLine( (size_t)(i-1), 0 ); - break; - - --nTries; - } - - GetActiveView()->SetFocus(); -} - - -bool wxTextEditorModel::IsReadOnly() -{ - return mIsReadOnly; -} - -bool wxTextEditorModel::IsModified() -{ - return mCurCommand != 0; -} - -bool wxTextEditorModel::IsInsertMode() -{ - return mInsertMode; -} - -void wxTextEditorModel::SetCheckpoint() -{ - mCheckPointDestroyed = FALSE; - mCheckPointCmdNo = mCurCommand; -} - -bool wxTextEditorModel::CheckpointModified() -{ - if ( mCheckPointDestroyed ) return TRUE; - - return mCheckPointCmdNo != mCurCommand; -} - -TPosition wxTextEditorModel::GetStartOfSelection() -{ - ArrangePositions( mSelectionStart, mSelectionEnd ); - - return mSelectionStart; -} - -TPosition wxTextEditorModel::GetEndOfSelection() -{ - ArrangePositions( mSelectionStart, mSelectionEnd ); - - return mSelectionEnd; -} - -TPosition wxTextEditorModel::GetCursor() -{ - return mCursorPos; -} - -void wxTextEditorModel::SetStartOfSelection( const TPosition& pos ) -{ - mSelectionStart = pos; -} - -void wxTextEditorModel::SetEndOfSelection( const TPosition& pos ) -{ - mSelectionEnd = pos; -} - -void wxTextEditorModel::SetCursor( const TPosition& pos ) -{ - mCursorPos = pos; -} - -void wxTextEditorModel::AddView( wxTextEditorView* pView ) -{ - mViews.push_back( pView ); - pView->SetModel( this ); -} - -void wxTextEditorModel::RemoveView( wxTextEditorView* pView ) -{ - for( size_t i = 0; i != mViews.size(); ++i ) - - if ( mViews[i] == pView ) - { - mViews.erase( & mViews[i] ); - return; - } -} - -void wxTextEditorModel::SetActiveView( wxTextEditorView* pView ) -{ - mpActiveView = pView; -} - -wxTextEditorView* wxTextEditorModel::GetActiveView() -{ - return mpActiveView; -} - -void wxTextEditorModel::SetRowsPerPage( size_t n ) -{ - mRowsPerPage = n; -} - -void wxTextEditorModel::AddPin( TPinBase* pPin ) -{ - // FIXME:: binary search should be used - - size_t beforePin = FindNextPinFrom( pPin->mRow ); - - if ( beforePin != NPOS ) - { - // pins in the same row are ordered in the - // descending order of their type-codes - - while( beforePin < mPins.size() && - mPins[beforePin]->mRow == pPin->mRow && - mPins[beforePin]->mTypeCode < pPin->mTypeCode ) - - ++beforePin; - - if ( beforePin < mPins.size() ) - - mPins.insert( &mPins[beforePin], pPin ); - else - mPins.push_back( pPin ); - } - else - mPins.push_back( pPin ); -} - -PinListT& wxTextEditorModel::GetPins() -{ - return mPins; -} - -size_t wxTextEditorModel::FindFirstPinInRange( size_t fromRow, size_t tillRow ) -{ - // FIXME:: pefrom binary search instead - - for( size_t i = 0; i != mPins.size(); ++i ) - { - TPinBase& pin = *mPins[i]; - - if ( pin.mRow >= tillRow ) return NPOS; - - if ( pin.mRow >= fromRow ) - - return i; - } - - return NPOS; -} - -size_t wxTextEditorModel::FindNextPinFrom( size_t fromRow ) -{ - // FIXME:: pefrom binary search instead - - for( size_t i = 0; i != mPins.size(); ++i ) - { - TPinBase& pin = *mPins[i]; - - if ( pin.mRow >= fromRow ) - - return i; - } - - return NPOS; - -} - -size_t wxTextEditorModel::FindPreviousPinFrom( size_t fromRow ) -{ - // FIXME:: pefrom binary search instead - - if ( mPins.size() == 0 ) return NPOS; - - size_t i = mPins.size() - 1; - - for(;;) - { - TPinBase& pin = *mPins[i]; - - if ( pin.mRow <= fromRow ) - - return i; - - if ( i == 0 ) break; - - --i; - } - - return NPOS; -} - -size_t wxTextEditorModel::GetPinNoAt( size_t row, int pinTypeCode ) -{ - size_t curPin = FindNextPinFrom( row ); - - while( curPin != NPOS ) - { - TPinBase& pin = *mPins[curPin]; - - if ( pin.mRow > row ) return NPOS; - - if ( pin.mTypeCode == pinTypeCode ) return curPin; - - ++curPin; - - if ( curPin == mPins.size() ) return NPOS; - } - - return NPOS; -} - -TPinBase* wxTextEditorModel::GetPinAt( size_t row, int pinTypeCode ) -{ - size_t pinNo = GetPinNoAt( row, pinTypeCode ); - - return ( pinNo == NPOS ) ? NULL : mPins[pinNo]; -} - -void wxTextEditorModel::RemovePinAt( size_t row, int pinTypeCode ) -{ - size_t pinNo = GetPinNoAt( row, pinTypeCode ); - - if ( pinNo != NPOS ) - - mPins.erase( &mPins[pinNo] ); -} - -void wxTextEditorModel::AddChangeListener( TTextChangeListenerBase* pListener ) -{ - mChangeListeners.push_back( pListener ); -} - -/***** Implementation for class wxTextEditorView *****/ - -BEGIN_EVENT_TABLE( wxTextEditorView, wxScrolledWindow ) - - EVT_SIZE ( wxTextEditorView::OnSize ) -#if (( wxVERSION_NUMBER < 2100 ) || (( wxVERSION_NUMBER == 2100 ) && (wxBETA_NUMBER <= 4))) - EVT_SCROLL( wxTextEditorView::OnScroll ) -#else - EVT_SCROLLWIN( wxTextEditorView::OnScroll ) -#endif - EVT_PAINT ( wxTextEditorView::OnPaint ) - - EVT_LEFT_DOWN ( wxTextEditorView::OnLButtonDown ) - EVT_LEFT_UP ( wxTextEditorView::OnLButtonUp ) - EVT_MOTION ( wxTextEditorView::OnMotion ) - EVT_LEFT_DCLICK( wxTextEditorView::OnDblClick ) - - EVT_SET_FOCUS ( wxTextEditorView::OnSetFocus ) - EVT_KILL_FOCUS ( wxTextEditorView::OnKillFocus ) - - EVT_CHAR( wxTextEditorView::OnChar ) - EVT_KEY_DOWN( wxTextEditorView::OnKeyDown ) - - EVT_ERASE_BACKGROUND( wxTextEditorView::OnEraseBackground ) - - -END_EVENT_TABLE() - -TCursorTimer* wxTextEditorView::mpTimer = new TCursorTimer(); - -wxTextEditorView::wxTextEditorView( wxWindow* parent, - wxWindowID id, - wxTextEditorModel* pModel, - int wndStyle, - bool ownsModel ) - - : wxScrolledWindow( parent, id, wxPoint(32768,32768), wxSize(0,0), - wxHSCROLL | wxVSCROLL | wndStyle - ), - mPagePos( 0,0 ), - mDragStarted( FALSE ), - mpDraggedText( NULL ), - mAdjustScrollPending( FALSE ), - mLTMode( FALSE ), - mMaxColumns( 500 ), - - mScrollingOn( TRUE ), - mCursorOn ( TRUE ), - mOwnsModel ( ownsModel ), - - mLastRowsTotal( (size_t)(-1) ) -{ - SetModel( pModel ); - - SetTextDefaults(); - - SetSourcePainter( new SourcePainter() ); - - mCashedIter.mPos = TPosition( (size_t)(-1), 0 ); - - // default - AddPinPainter( new TBookmarkPainter() ); -} - -wxTextEditorView::~wxTextEditorView() -{ - if ( mpTimer->GetView() == this && - mCursorOn && !mLTMode ) - { - mpTimer->SetView( NULL ); - mpTimer->HideCursor( TRUE ); - } - - if ( mOwnsModel && mpModel ) - - delete mpModel; -} - -void wxTextEditorView::SetTextDefaults() -{ - mLeftMargin = 22; - mRightMargin = 0; - mTopMargin = 0; - mBottomMargin = 0; - - mCharDim.x = -1; // not detected yet - mCharDim.y = -1; - - mNormalTextCol = *wxBLACK; - mIndentifierTextCol = *wxBLUE; - mReservedWordTextCol = *wxRED; - mCommentTextCol = wxColour( 0,128,128 ); - - mNormalBkCol = wxColour(255,255,255);//*wxWHITE;//wxColour( 128,220,128 ); - mSelectionFgCol = wxColour(255,255,255);//*wxWHITE; - mSelectionBkCol = wxColour( 0,0,128 ); - - mNormalBkBrush = wxBrush( mNormalBkCol, wxSOLID ); - mSelectedBkBrush = wxBrush( mSelectionBkCol, wxSOLID ); - -#if defined(__WXMSW__) || defined(__WINDOWS__) - mFont.SetFaceName("Fixedsys"); - mFont.SetStyle(40); - mFont.SetWeight(40); - mFont.SetPointSize( 11); -#else - //mFont.SetFamily( wxSWISS ); - mFont = wxSystemSettings::GetSystemFont(wxSYS_OEM_FIXED_FONT); -#endif - - -#if defined(__WXMSW__) || defined(__WINDOWS__) - mFont.RealizeResource(); -#endif - - // reduce flicker un wxGtk - SetBackgroundColour( mNormalBkCol ); -} - -void wxTextEditorView::SetColours( const wxColour& normalBkCol, - const wxColour& selectedBkCol, - const wxColour& selectedTextCol ) -{ - mNormalBkCol = normalBkCol; - mSelectionFgCol = selectedTextCol; - mSelectionBkCol = selectedBkCol; - - mNormalBkBrush = wxBrush( mNormalBkCol, wxSOLID ); - mSelectedBkBrush = wxBrush( mSelectionBkCol, wxSOLID ); -} - -void wxTextEditorView::SetHeighlightingColours( const wxColour& normalTextCol, - const wxColour& identifierTextCol, - const wxColour& reservedWordTextCol, - const wxColour& commentTextCol ) -{ - mNormalTextCol = normalTextCol; - mIndentifierTextCol = identifierTextCol; - mReservedWordTextCol = reservedWordTextCol; - mCommentTextCol = commentTextCol; -} - -void wxTextEditorView::SetMargins( int top, int left, int bottom, int right ) -{ - mLeftMargin = left; - mRightMargin = right; - mTopMargin = top; - mBottomMargin = bottom; -} - -void wxTextEditorView::RecalcPagingInfo() -{ - bool firstRefresh = mCharDim.x == -1; - - if ( firstRefresh ) - - ObtainFontProperties(); - - int w = 0, h = 0; - GetClientSize( &w, &h ); - - w -= mLeftMargin + mRightMargin; - h -= mTopMargin + mBottomMargin; - - mColsPerPage = ( ( w / mCharDim.x ) + - ( ( w % mCharDim.x ) ? 0 : 0 ) ); - - - mRowsPerPage = ( ( h / mCharDim.y ) + - ( ( h % mCharDim.y ) ? 0 : 0 ) ); - - if ( mpModel->GetActiveView() == this ) - - mpModel->SetRowsPerPage( mRowsPerPage ); - - if ( firstRefresh ) - { - // scrolling should not happen at DC-level - EnableScrolling( FALSE, FALSE ); - - if ( mScrollingOn ) - - SetScrollbars( mCharDim.x, mCharDim.y, - mMaxColumns, - mpModel->GetTotalRowCount(), - mPagePos.mCol, - mPagePos.mRow, - TRUE - ); - } - - PositionCursor(); -} - -#if (( wxVERSION_NUMBER < 2100 ) || (( wxVERSION_NUMBER == 2100 ) && (wxBETA_NUMBER <= 4))) - // this changed in ver 2.1 -void wxTextEditorView::OnScroll( wxScrollEvent& event ) -#else -void wxTextEditorView::OnScroll( wxScrollWinEvent& event ) -#endif -{ - if ( !mScrollingOn ) return; - - // overriden implementation of wxScrolledWindow::OnScroll, - // to reduce flicker on wxGtk, by using wxClientDC - // instead of Refresh() - - 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; - } - - int x,y; - ViewStart( &x, &y ); - - mPagePos.mRow = y; - mPagePos.mCol = x; - - PositionCursor(); - - if ( mAdjustScrollPending ) - { - mLastRowsTotal = mpModel->GetTotalRowCount(); - SetScrollbars( mCharDim.x, mCharDim.y, - mMaxColumns, // FOR NOW:: maximal line-length not calculated - mLastRowsTotal, - mPagePos.mCol, - mPagePos.mRow, - TRUE - ); - - mLastViewStart = mPagePos; - - mAdjustScrollPending = FALSE; - - return; - } - - wxClientDC dc( this ); - - mFullRefreshPending = TRUE; - - PaintRows( mPagePos.mRow, mPagePos.mRow + mRowsPerPage, dc ); -} - -void wxTextEditorView::OnPaint( wxPaintEvent& event ) -{ - //wxScrolledWindow::OnPaint( event ); - if ( mCharDim.x == -1 ) ObtainFontProperties(); - - wxPaintDC dc( this ); - - mFullRefreshPending = TRUE; - - PaintRows( mPagePos.mRow, mPagePos.mRow + mRowsPerPage, dc ); -} - -void wxTextEditorView::OnSize( wxSizeEvent& event ) -{ - RecalcPagingInfo(); - - SyncScrollbars(); - - event.Skip(); -} - -void wxTextEditorView::OnEraseBackground( wxEraseEvent& event ) -{ -#if 0 - int w = 0, h = 0; - - GetClientSize( &w, &h ); - - wxPaintDC dc( this ); - - dc.SetPen( *wxTRANSPARENT_PEN ); - dc.SetBrush( *wxWHITE_BRUSH ); - dc.DrawRectangle( 0,0, w,h ); -#endif -} - -void wxTextEditorView::OnLButtonDown( wxMouseEvent& event ) -{ - if ( mDragStarted ) return; - - mDragStarted = TRUE; - - TPosition textPos; - PixelsToTextPos( event.m_x, event.m_y, textPos ); - - mpModel->SetSelectionEditMode( FALSE ); - - mpModel->OnMoveToPosition( textPos ); - - mpModel->SetSelectionEditMode( TRUE ); - - SetFocus(); - - CaptureMouse(); -} - -void wxTextEditorView::OnLButtonUp( wxMouseEvent& event ) -{ - if ( mDragStarted ) - { - OnMotion( event ); // simulate last motion event - - mpModel->SetSelectionEditMode( FALSE ); - - ReleaseMouse(); - mDragStarted = FALSE; - } -} - -void wxTextEditorView::OnMotion( wxMouseEvent& event ) -{ - if ( mDragStarted ) - { - TPosition textPos; - - if ( event.m_y < 0 && mpModel->GetCursor().mRow == 0 ) - - event.m_y = 0; - - PixelsToTextPos( event.m_x, event.m_y, textPos ); - - mpModel->OnMoveToPosition( textPos ); - } -} - -void wxTextEditorView::OnDblClick( wxMouseEvent& event ) -{ - event.Skip(); - mpModel->OnSelectWord(); -} - -void wxTextEditorView::OnSetFocus( wxFocusEvent& event ) -{ - if ( !mLTMode && mCursorOn ) - { - mpTimer->SetView( this ); - mpTimer->ShowCursor( TRUE ); - } -} - -void wxTextEditorView::OnKillFocus( wxFocusEvent& event ) -{ - if ( !mLTMode && mCursorOn ) - { - mpTimer->HideCursor( TRUE ); - mpTimer->SetView( NULL ); - } -} - -void wxTextEditorView::HoldCursor( bool hold ) -{ - if ( mLTMode || !mCursorOn ) return; - - if ( !hold ) - { - if ( wxWindow::FindFocus() != this ) - { - mpTimer->HideCursor(); - mpTimer->SetView( NULL ); - } - } - else - { - mpTimer->SetView( this ); - mpTimer->ShowCursor(); - } -} - -void wxTextEditorView::OnKeyDown( wxKeyEvent& event ) -{ - // FOR NOW:: hard-coded key-bindings - - mpModel->SetSelectionEditMode( event.ShiftDown() ); - - if ( event.ControlDown() ) - { - if ( event.m_keyCode == WXK_LEFT ) - - mpModel->OnWordLeft(); - else - if ( event.m_keyCode == WXK_RIGHT ) - - mpModel->OnWordRight(); - else - if ( event.m_keyCode == WXK_UP ) - - mpModel->OnSlideUp(); - else - if ( event.m_keyCode == WXK_DOWN ) - - mpModel->OnSlideDown(); - else - if ( event.m_keyCode == WXK_HOME ) - - mpModel->OnStartOfText(); - else - if ( event.m_keyCode == WXK_END ) - - mpModel->OnEndOfText(); - else - if ( event.m_keyCode == WXK_INSERT ) - - mpModel->OnCopy(); - else - event.Skip(); - - /* - else - if ( event.m_keyCode == WXK_NEXT ) - - mpModel->(); - else - if ( event.m_keyCode == WXK_PRIOR ) - - mpModel->(); - */ - } - else - { - if ( event.m_keyCode == WXK_LEFT ) - - mpModel->OnMoveLeft(); - else - if ( event.m_keyCode == WXK_RIGHT ) - - mpModel->OnMoveRight(); - else - if ( event.m_keyCode == WXK_UP ) - - mpModel->OnMoveUp(); - else - if ( event.m_keyCode == WXK_DOWN ) - - mpModel->OnMoveDown(); - else - if ( event.m_keyCode == WXK_HOME ) - - mpModel->OnStartOfLine(); - else - if ( event.m_keyCode == WXK_END ) - - mpModel->OnEndOfLine(); - else - if ( event.m_keyCode == WXK_NEXT ) - - mpModel->OnPageDown(); - else - if ( event.m_keyCode == WXK_PRIOR ) - - mpModel->OnPageUp(); - else - if ( event.m_keyCode == WXK_DELETE ) - - mpModel->OnDelete(); - else - if ( event.m_keyCode == WXK_INSERT && event.ShiftDown() ) - - mpModel->OnPaste(); - else - event.Skip(); - } -} - -void wxTextEditorView::OnChar( wxKeyEvent& event ) -{ - if ( event.ControlDown() ) - { - if ( event.m_keyCode == 'y' ) - - mpModel->OnDeleteLine(); - else - if ( event.m_keyCode == 'v' ) - - mpModel->OnPaste(); - else - if ( event.m_keyCode == 'c' ) - - mpModel->OnCopy(); - else - if ( event.m_keyCode == 'z' ) - - mpModel->OnUndo(); - else - if ( event.m_keyCode == 'a' ) - - mpModel->OnRedo(); - else - event.Skip(); - } - else - if ( event.AltDown() ) - { - if ( event.m_keyCode == WXK_BACK ) - - mpModel->OnUndo(); - else - event.Skip(); - } - else - if ( event.m_keyCode == WXK_BACK ) - - mpModel->OnDeleteBack(); - else - if ( event.m_keyCode == WXK_TAB && event.ShiftDown() ) - - mpModel->OnShiftSelectionIndent( TRUE ); - else - { - if ( !mpModel->SelectionIsEmpty() && event.m_keyCode == WXK_TAB ) - - mpModel->OnShiftSelectionIndent( FALSE ); - else - mpModel->OnInsertChar( event.m_keyCode ); - } -} - -void wxTextEditorView::SetModel( wxTextEditorModel* pModel ) -{ - mpModel = pModel; - mSelectionStart = pModel->GetStartOfSelection(); - mSelectionEnd = pModel->GetEndOfSelection(); - mCursorPos = pModel->GetCursor(); -} - -void wxTextEditorView::SetSourcePainter( SourcePainter* pPainter ) -{ - mpPainter = pPainter; -} - -void wxTextEditorView::AddPinPainter( TPinPainterBase* pPainter ) -{ - mPinPainters.push_back( pPainter ); -} - -void wxTextEditorView::SetDefaultFont( const wxFont& font ) -{ - mFont = font; - -#if defined(__WXMSW__) || defined(__WINDOWS__) - mFont.RealizeResource(); -#endif - - mCharDim.x = -1; - mCharDim.y = -1; - - RecalcPagingInfo(); -} - -void wxTextEditorView::SetRowsPerPage( size_t n ) -{ - mpModel->SetRowsPerPage( n ); - - mRowsPerPage = n; - SyncScrollbars(); - PositionCursor(); -} - -void wxTextEditorView::SetMaxColumns( size_t n ) -{ - mMaxColumns = n; - - SyncScrollbars(); - PositionCursor(); -} - -wxFont& wxTextEditorView::GetDefaultFont() -{ - return mFont; -} - -void wxTextEditorView::SetLineTrackingMode( bool on, const wxColour& col ) -{ - mLTColour = col; - mLTMode = on; - - if ( mpTimer->GetView() == this ) - - mpTimer->HideCursor(); -} - -void wxTextEditorView::EnableCursor( bool enable ) -{ - mCursorOn = enable; -} - -void wxTextEditorView::EnableScrollbars( bool enable ) -{ - mScrollingOn = enable; -} - -bool wxTextEditorView::IsActiveView() -{ - return this == mpModel->GetActiveView(); -} - -void wxTextEditorView::PositionCursor() -{ - if ( !IsActiveView() || - mLTMode || !mCursorOn ) return; - - mpTimer->HideCursor(); - - TextPosToScreenPos( mpModel->GetCursor(), mCursorScrPos ); - - mpTimer->ShowCursor(); -} - -void wxTextEditorView::PixelsToScrPos( int x, int y, int& scrRow, int& scrCol ) -{ - x -= mLeftMargin; - y -= mTopMargin; - - //if ( x < 0 ) x = 0; // FOR NOW:: horizontal auto-scroll disabled - - scrCol = x / mCharDim.x; - scrRow = y / mCharDim.y; -} - -void wxTextEditorView::PixelsToTextPos( int x, int y, TPosition& textPos ) -{ - int scrRow = 0, scrCol = 0; - PixelsToScrPos( x, y, scrRow, scrCol ); - - if ( scrRow + (int)mPagePos.mRow < 0 ) - - scrRow = -(int)mPagePos.mRow; - - if ( scrCol + (int)mPagePos.mCol < 0 ) - - scrCol = -(int)mPagePos.mCol; - - ScreenPosToTextPos( TPosition( scrRow, scrCol ), textPos ); -} - -void wxTextEditorView::ScreenPosToPixels( const TPosition& scrPos, int& x, int& y ) -{ - x = mLeftMargin + scrPos.mCol * mCharDim.x; - y = mTopMargin + scrPos.mRow * mCharDim.y; -} - -void wxTextEditorView::TextPosToScreenPos( const TPosition& txtPos, TPosition& scrPos ) -{ - TTextIterator iter; - - if ( txtPos.mRow != mCashedIter.mPos.mRow ) - { - iter = mpModel->CreateIterator( txtPos ); - mCashedIter = iter; - } - else - { - iter = mCashedIter; - iter.mPos.mCol = txtPos.mCol; - } - - iter.ToStartOfLine(); - - size_t scrCol = 0; - size_t txtCol = 0; - - while( !iter.IsEol() && txtCol < txtPos.mCol ) - { - if ( iter.GetChar() == '\t' ) - { - size_t spacing = ( (scrCol / mpModel->mTabSize) + 1 ) * mpModel->mTabSize - scrCol; - - scrCol += spacing; - } - else - ++scrCol; - - ++txtCol; - iter.NextChar(); - } - - TPosition actualPos = iter.GetPosition(); - - scrCol += txtPos.mCol - txtCol; - - scrPos.mRow = actualPos.mRow - mPagePos.mRow; - scrPos.mCol = scrCol - mPagePos.mCol; -} - -void wxTextEditorView::ScreenPosToTextPos( const TPosition& scrPos, TPosition& txtPos ) -{ - TPosition absScrPos( scrPos.mRow + mPagePos.mRow, scrPos.mCol + mPagePos.mCol ); - - TTextIterator iter = mpModel->CreateIterator( TPosition( absScrPos.mRow, 0 ) ); - - size_t scrCol = 0; - size_t txtCol = 0; - - // iterate over all possible on-screen positions, and find one which matches "absScrPos" - - while( !iter.IsEol() && scrCol < absScrPos.mCol ) - { - if ( iter.GetChar() == '\t' ) - { - size_t spacing = ( (scrCol / mpModel->mTabSize) + 1 ) * mpModel->mTabSize - scrCol; - - scrCol += spacing; - } - else - ++scrCol; - - ++txtCol; - iter.NextChar(); - } - - TPosition actualPos = iter.GetPosition(); - - if ( scrCol == absScrPos.mCol ) - { - txtPos = actualPos; - return; - } - else - if ( scrCol < absScrPos.mCol ) - { - // the absScrPos points past the eol - - txtPos = actualPos; - txtPos.mCol += absScrPos.mCol - scrCol; - } - else - if ( scrCol > absScrPos.mCol ) - { - // there should have been a '\t' char, which made us jump too far forward - - txtPos = actualPos; - --txtPos.mCol; - } -} - -bool wxTextEditorView::IsClipboardCmd( wxKeyEvent& key ) -{ - if ( key.ControlDown() && key.m_keyCode == WXK_CONTROL ) - - return TRUE; - - if ( key.ShiftDown() && key.m_keyCode == WXK_SHIFT ) - - return TRUE; - - if ( key.ControlDown() ) - { - return ( key.m_keyCode == 'C' || - key.m_keyCode == 'c' || - key.m_keyCode == WXK_INSERT ); - } - - return FALSE; -} - -void wxTextEditorView::ObtainFontProperties() -{ - wxClientDC dc(this); - dc.SetFont( mFont ); - - long w,h; - - dc.GetTextExtent( "X", &w, &h ); - - mCharDim.x = w; - mCharDim.y = h; -} - -void wxTextEditorView::SyncViewPortPosition() -{ - - TPosition pos = mpModel->GetCursor(); - - TextPosToScreenPos( pos, pos ); - pos.mRow += mPagePos.mRow; - pos.mCol += mPagePos.mCol; - - if ( pos.mRow < mPagePos.mRow ) - { - mPagePos.mRow = pos.mRow; - mFullRefreshPending = TRUE; - } - else - if ( pos.mRow >= mPagePos.mRow + mRowsPerPage && mRowsPerPage != 0 ) - { - mPagePos.mRow = pos.mRow - mRowsPerPage + 1; - mFullRefreshPending = TRUE; - } - - if ( pos.mCol < mPagePos.mCol ) - { - mPagePos.mCol = pos.mCol; - mFullRefreshPending = TRUE; - } - else - if ( pos.mCol >= mPagePos.mCol + mColsPerPage ) - { - mPagePos.mCol = pos.mCol - mColsPerPage + 1; - mFullRefreshPending = TRUE; - } -} - -void wxTextEditorView::SyncScrollbars() -{ - if ( !mScrollingOn ) return; - - size_t nRows = mpModel->GetTotalRowCount(); - -#if !defined(__WINDOWS__) - - if ( mLastViewStart == mPagePos ) - { - if ( mLastRowsTotal != nRows ) - - mAdjustScrollPending = TRUE; - - return; - } -#else - if ( mLastViewStart == mPagePos && - mLastRowsTotal == nRows ) - - return; -#endif - SetScrollbars( mCharDim.x, mCharDim.y, - mMaxColumns, - nRows, - mPagePos.mCol, - mPagePos.mRow, - TRUE - ); - - mLastViewStart = mPagePos; - mLastRowsTotal = nRows; -} - -void wxTextEditorView::ScrollView( int rows, int cols ) -{ - int pageRow = (int)mPagePos.mRow; - int pageCol = (int)mPagePos.mCol; - - if ( pageRow + rows < 0 ) - pageRow = 0; - else - if ( pageRow + rows > (int)mpModel->GetTotalRowCount() ) - - pageRow = mpModel->GetTotalRowCount(); - else - pageRow = pageRow + rows; - - mPagePos.mRow = (size_t)pageRow; - - if ( pageCol + cols < 0 ) - - pageCol = 0; - else - pageCol = pageCol + cols; - - mPagePos.mCol = pageCol; - - mFullRefreshPending = TRUE; -} - -void wxTextEditorView::OnModelChanged() -{ - // invalidate pre-cached iterator - mCashedIter.mPos = TPosition( (size_t)(-1), 0 ); - - SyncViewPortPosition(); - - if ( mLTMode ) mFullRefreshPending = TRUE; - - if ( mpModel->mTextChanged && !mFullRefreshPending ) - { - wxClientDC dc( this ); - PaintRows( mpModel->mChangedFromRow, mpModel->mChangedTillRow, dc ); - } - else - if ( mFullRefreshPending ) - { - wxClientDC dc( this ); - PaintRows( mPagePos.mRow, mPagePos.mRow + mRowsPerPage, dc ); - } - - if ( IsActiveView() ) - { - PositionCursor(); - SyncScrollbars(); - } -} - -void wxTextEditorView::Activate() -{ - mpModel->SetStartOfSelection( mSelectionStart ); - mpModel->SetEndOfSelection( mSelectionEnd ); - mpModel->SetCursor( mCursorPos ); - - mpModel->SetRowsPerPage( mRowsPerPage ); - - if ( !mLTMode && mCursorOn ) - { - mpTimer->SetView( this ); - mpTimer->ShowCursor(); - } - - mpModel->SetActiveView( this ); -} - -void wxTextEditorView::Deactivate() -{ - mSelectionStart = mpModel->GetStartOfSelection(); - mSelectionEnd = mpModel->GetEndOfSelection(); - mCursorPos = mpModel->GetCursor(); - - if ( mpTimer->GetView() == this && - !mLTMode && mCursorOn ) - - mpTimer->HideCursor( TRUE ); -} - -/*** protected methods ***/ - -char* wxTextEditorView::mpLineBuffer = NULL; -size_t wxTextEditorView::mpLineBufferLen = 0; - -char* wxTextEditorView::GetLineBuffer( size_t len ) -{ - if ( mpLineBuffer == NULL || mpLineBufferLen < len ) - { - if ( !mpLineBuffer ) mpModel->FreeCharacters( mpLineBuffer ); - - mpLineBuffer = mpModel->AllocCharacters( len ); - - mpLineBufferLen = len; - } - - return mpLineBuffer; -} - -TPinPainterBase* wxTextEditorView::FindPainterForPin( TPinBase& pin ) -{ - int pinTc = pin.mTypeCode; - - for( size_t i = 0; i != mPinPainters.size(); ++i ) - - if ( mPinPainters[i]->mPinTypeCode == pinTc ) - - return mPinPainters[i]; - - return NULL; -} - -void wxTextEditorView::PaintDecorations( size_t fromRow, - size_t tillRow, - wxDC& dc, TTextIterator& iter ) -{ - int dcY = ( fromRow - mPagePos.mRow ) * mCharDim.y + mTopMargin; - - size_t curPin = mpModel->FindFirstPinInRange( fromRow, tillRow ); - - PinListT& pins = mpModel->GetPins(); - TPinPainterBase* pPainter = NULL; - - size_t prevRow = fromRow; - int prevY = dcY; - - wxPoint pos; - wxSize dim( mLeftMargin, mCharDim.y ); - - while( curPin != NPOS ) - { - TPinBase& pin = *pins[curPin]; - - if ( pPainter == NULL || - pPainter->mPinTypeCode != pin.mTypeCode ) - - pPainter = FindPainterForPin( pin ); - - - // only pins which have their painters can be "visualized" - - if ( pPainter ) - { - pos.x = 0; - pos.y = ( pin.mRow - mPagePos.mRow )* mCharDim.y + mTopMargin; - - if ( prevRow < pin.mRow ) - { - // fill upper gap - - dc.SetBrush( mNormalBkBrush ); - dc.SetPen( *wxTRANSPARENT_PEN ); - dc.DrawRectangle( 0, prevY, - mLeftMargin + 1, - mCharDim.y * ( pin.mRow - prevRow ) + 1 ); - } - - pPainter->DrawPin( &pin, *this, dc, pos, dim ); - - prevRow = pin.mRow + 1; - prevY = pos.y + mCharDim.y; - } - - ++curPin; - - if ( curPin >= pins.size() || - pins[curPin]->mRow >= tillRow ) - - break; - } - - // fill the reminder - - if ( prevRow < tillRow ) - { - dc.SetBrush( mNormalBkBrush ); - dc.SetPen( *wxTRANSPARENT_PEN ); - dc.DrawRectangle( 0, prevY, - mLeftMargin + 1, - mCharDim.y * ( tillRow - prevRow ) + 1 ); - } - - dc.SetPen( *wxTRANSPARENT_PEN ); -} - -void wxTextEditorView::PaintRows( size_t fromRow, size_t tillRow, wxDC& dc ) -{ - // NOTE:: raws are painted from "fromRow" but not including "tillRow" - [fromRow,tillRow) - - dc.SetPen( *wxTRANSPARENT_PEN ); - - // how much on-screen columns are visable? - - size_t fromScrCol = mPagePos.mCol; - size_t tillScrCol = fromScrCol + mColsPerPage; - - TPosition selStart = mpModel->GetStartOfSelection(); - TPosition selEnd = mpModel->GetEndOfSelection(); - - bool selectionIsEmpty = ( selStart == selEnd ); - - wxColour curFgCol; - wxColour curBkCol; - - wxBrush mLTBrush( mLTColour, wxSOLID ); - - // clip given row-region to the current page - - if ( ( fromRow >= mPagePos.mRow + mRowsPerPage) || - ( tillRow <= mPagePos.mRow ) - ) - - return; - - if ( fromRow < mPagePos.mRow ) fromRow = mPagePos.mRow; - if ( tillRow > mPagePos.mRow + mRowsPerPage ) tillRow = mPagePos.mRow + mRowsPerPage; - - if ( fromRow >= tillRow ) return; - - // now start the renderng - - if ( mpTimer->GetView() == this && mCursorOn && !mLTMode ) - { - mpTimer->Lock(); - mpTimer->SetIsShown( FALSE ); - } - - dc.SetFont( mFont ); - dc.SetBackgroundMode( wxSOLID ); - - TTextIterator iter = mpModel->CreateIterator( TPosition( fromRow, 0 ) ); - - PaintDecorations( fromRow, tillRow, dc, iter ); - - size_t cursorRow = mpModel->GetCursor().mRow; - - size_t curRow = fromRow; - for( ; curRow != tillRow; ++curRow ) - { - // place text into line-buffer - - iter.ToStartOfLine(); - size_t lineLen = iter.GetLineLen(); - - char* lineBuf = GetLineBuffer( lineLen + 1 ); - - size_t i = 0; - - while( !iter.IsEof() && !iter.IsEol() ) - { - lineBuf[i++] = iter.GetChar(); - iter.NextChar(); - } - - iter.NextChar(); // skip eol - - // obtain "highlights" - - mpPainter->SetState( FALSE, FALSE ); - mpPainter->Init( FALSE ); - mpPainter->ProcessSource( lineBuf, lineLen ); - IntListT& blocks = mpPainter->GetBlocks(); - - // setup state vars - - int dcY = ( curRow - mPagePos.mRow ) * mCharDim.y + mTopMargin; - - size_t scrCol = 0; - size_t txtCol = 0; - - size_t curBlk = 0; - size_t curBlkCol = 0; - - int chunkLen = -1; - size_t chunkTxtStart = 0; - size_t chunkScrStart = 0; - - // pre-detect occurance of selection - - bool lineHasSelection = ( selStart.mRow == curRow ) || - ( selEnd.mRow == curRow ); - - bool isInSelection = ( selStart.mRow <= curRow ) && - ( selEnd.mRow >= curRow ); - - if ( isInSelection && selStart.mRow == curRow && - selStart.mCol != 0 ) - - isInSelection = FALSE; - - if ( selStart == selEnd ) - { - lineHasSelection = FALSE; - isInSelection = FALSE; - } - - char ch = '\0'; - - // loop though the text in this row - - do - { - TPosition curPos( curRow, txtCol ); - - // first check if we can finish the current chunk - - bool finishChunk = FALSE; - - if ( curBlk < blocks.size() && - curBlkCol + get_src_block_len( blocks[curBlk] ) == txtCol ) - { - curBlkCol += get_src_block_len( blocks[curBlk] ); - ++curBlk; - finishChunk = TRUE; - } - else - if ( ( !selectionIsEmpty && ( curPos == selStart || curPos == selEnd ) ) - || lineBuf[txtCol] == '\t' - || txtCol == lineLen ) - - finishChunk = TRUE; - - if ( finishChunk && chunkLen != -1 ) - { - // is any part of the chunk visable? - - size_t chunkScrEnd = chunkScrStart + chunkLen; - - if ( ( // if hits from one side or is inside - ( chunkScrStart >= fromScrCol && - chunkScrStart < tillScrCol ) || - ( chunkScrEnd >= fromScrCol && - chunkScrEnd < tillScrCol ) ) || - - // if overlaps the whole range - ( chunkScrStart < fromScrCol && - chunkScrEnd >= tillScrCol ) - - ) - { - // render chunk data to the given DC - - dc.SetTextForeground( curFgCol ); - dc.SetTextBackground( curBkCol ); - - // clip left edge - - if ( chunkScrStart < fromScrCol ) - { - size_t diff = fromScrCol - chunkScrStart; - chunkLen -= diff; - chunkTxtStart += diff; - chunkScrStart += diff; - } - - // clip right edge - - if ( chunkScrEnd > tillScrCol ) - { - size_t diff = chunkScrEnd - tillScrCol; - chunkLen -= diff; - chunkScrEnd -= diff; - } - - // create string - - char tmp = lineBuf[chunkTxtStart + chunkLen]; - - lineBuf[chunkTxtStart + chunkLen] = '\0'; - - // use member-variable, reuse heap-buffer between outputs - mFragment = lineBuf + chunkTxtStart; - - lineBuf[chunkTxtStart + chunkLen] = tmp; - - // draw it - - int dcX = (chunkScrStart - fromScrCol) * mCharDim.x + mLeftMargin; - - dc.DrawText( mFragment, dcX, dcY ); - } - - chunkLen = -1; - - } // end of "if ( finishChunk )" - - if ( txtCol == lineLen ) - break; - - if ( chunkLen == -1 ) - { - // prepare the new chunk - - if ( curBlk < blocks.size() ) - { - switch( get_src_block_rank( blocks[curBlk] ) ) - { - case RANK_BLACK : curFgCol = mNormalTextCol; break; - case RANK_BLUE : curFgCol = mIndentifierTextCol; break; - case RANK_RED : curFgCol = mReservedWordTextCol; break; - case RANK_GREEN : curFgCol = mCommentTextCol; break; - default : break; - } - } - - // track occurence of selection - - if ( lineHasSelection ) - { - isInSelection = TRUE; - - if ( selEnd.mRow == curRow && - selEnd.mCol <= txtCol ) - - isInSelection = FALSE; - - if ( selStart.mRow == curRow && - selStart.mCol > txtCol ) - - isInSelection = FALSE; - } - - if ( isInSelection ) - { - curFgCol = mSelectionFgCol; - curBkCol = mSelectionBkCol; - } - else - { - if ( mLTMode && curRow == cursorRow ) - - curBkCol = mLTColour; - else - curBkCol = mNormalBkCol ; - } - - chunkScrStart = scrCol; - chunkTxtStart = txtCol; - chunkLen = 0; - } - - - ch = lineBuf[txtCol]; - - if ( ch == '\t' ) - { - // tab's are treated specially (for simplicity and speed) - - int dcX = (chunkScrStart - fromScrCol) * mCharDim.x + mLeftMargin; - - if ( !isInSelection ) - { - if ( mLTMode && curRow == cursorRow ) - - dc.SetBrush( mLTBrush ); - else - dc.SetBrush( mNormalBkBrush ); - } - else dc.SetBrush( mSelectedBkBrush ); - - // *** "the rule of TAB..." *** - - size_t spacing = ( (scrCol / mpModel->mTabSize) + 1 ) * mpModel->mTabSize - scrCol; - - int width = spacing * mCharDim.x + 1; - - if ( dcX < mLeftMargin ) - { - width -= mLeftMargin - dcX; - - dcX = mLeftMargin; - } - - if ( width > 0 ) - - dc.DrawRectangle( dcX, dcY, width, mCharDim.y + 1 ); - - scrCol += spacing; - txtCol += 1; - - // move chunk-start forward, after the occurance of '\t' - - chunkLen = -1; - } - else - { - // increase on-screen/in-text positions - - ++scrCol; - ++txtCol; - ++chunkLen; - } - - } while( TRUE ); - - // fill the reminding white-space after eol - - if ( scrCol < tillScrCol && - ( !isInSelection || - ( isInSelection && curRow == selEnd.mRow ) ) - ) - { - if ( scrCol < fromScrCol ) scrCol = fromScrCol; - - int dcX = ( scrCol - fromScrCol ) * mCharDim.x + mLeftMargin; - - if ( mLTMode && curRow == cursorRow ) - - dc.SetBrush ( mLTBrush ); - else - dc.SetBrush( mNormalBkBrush ); - - dc.DrawRectangle( dcX, dcY, - mCharDim.x * ( tillScrCol - scrCol ) + 1, - mCharDim.y + 1 ); - } - - // render selection which is located past the eol - - if ( ( lineHasSelection || isInSelection ) && - !( selEnd.mRow == curRow && selEnd.mCol <= txtCol ) - ) - { - // determine start of selection on-screen - - size_t scrSelStart = scrCol + ( selStart.mCol - txtCol ); - - if ( isInSelection ) - - scrSelStart = scrCol; - - size_t scrSelEnd = tillScrCol; - - if ( selEnd.mRow == curRow ) - - scrSelEnd = scrCol + ( selEnd.mCol - txtCol ); - - // clipping - - if ( scrSelStart < fromScrCol ) scrSelStart = fromScrCol; - if ( scrSelEnd > tillScrCol ) scrSelEnd = tillScrCol; - - // drawing - - if ( scrSelEnd > scrSelStart ) - { - int dcX = ( scrSelStart - fromScrCol ) * mCharDim.x + mLeftMargin; - - dc.SetBrush( mSelectedBkBrush ); - dc.DrawRectangle( dcX, dcY, - mCharDim.x * ( scrSelEnd - scrSelStart ) + 1, - mCharDim.y + 1 ); - } - } - - if ( iter.IsEof() ) - { - ++curRow; - break; - } - - } // end of "for(...)" - - if ( curRow < tillRow ) - { - dc.SetBrush( mNormalBkBrush ); - - int dcY = mTopMargin + (curRow - mPagePos.mRow)*mCharDim.y; - int dcX = mLeftMargin; - - dc.DrawRectangle( dcX, dcY, mColsPerPage*mCharDim.x + 1, - ( tillRow - curRow ) * mCharDim.y + 1 - ); - } - - if ( mFullRefreshPending ) - { - dc.SetBrush( mNormalBkBrush ); - - // fill in "corners" which are never reached by characters - - int w,h; - GetClientSize( &w, &h ); - - dc.SetBrush( mNormalBkBrush ); - - int dcX = tillScrCol*mCharDim.x + mLeftMargin; - - dc.DrawRectangle( dcX, mTopMargin, w - dcX + 1, h ); - - int dcY = mTopMargin + mRowsPerPage*mCharDim.y; - - dc.DrawRectangle( 0, dcY, w, h - dcY + 2 ); - - ++curRow; - - // any past-the-eof lines left at the bottom? - } - - mFullRefreshPending = FALSE; - - if ( mpTimer->GetView() == this && mCursorOn && !mLTMode ) - - mpTimer->Unlock(); - -} // end of PaintRows(..) - -/***** Implementation for class TBookmarkPainter *****/ - -TBookmarkPainter::TBookmarkPainter() - - : TPinPainterBase( BOOKMARK_PIN_TC ), - mBkBrush( wxColour( 0,255,255 ), wxSOLID ) -{ -} - -void TBookmarkPainter::DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, - const wxPoint& pos, const wxSize& dim ) -{ - dc.SetPen( *wxBLACK_PEN ); - dc.SetBrush( mBkBrush ); - dc.DrawRoundedRectangle( pos.x+2, pos.y, dim.x-4, dim.y, 4 ); -} - -/***** Implementation for class TBreakpointPainter *****/ - -TBreakpointPainter::TBreakpointPainter() - - : TPinPainterBase( BRKPOINT_PIN_TC ), - mBkBrush( wxColour( 196,0,0 ), wxSOLID ) -{ -} - -void TBreakpointPainter::DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, - const wxPoint& pos, const wxSize& dim ) -{ - dc.SetPen( *wxBLACK_PEN ); - dc.SetBrush( mBkBrush ); - dc.DrawRoundedRectangle( pos.x+6, pos.y+2, dim.x-12, dim.y-4, 30 ); -} - -/***** Implementation for class TCursorTimer *****/ - -TCursorTimer::TCursorTimer() - - : mIsLocked( FALSE ), - mIsShown ( FALSE ), - mBlinkInterval( 500 ), - mBrush( wxColour(0,0,0), wxSOLID ), - mMissOneTick( FALSE ) -{ -} - -void TCursorTimer::Notify() -{ - if ( mIsLocked ) return; - - if ( mMissOneTick ) - { - // this trick is used because it's not - // possible to restart the timer under wxGtk - - mMissOneTick = FALSE; - return; - } - - - mIsLocked = TRUE; - - DrawCursor(); - - mIsShown = !mIsShown; - - mIsLocked = FALSE; -} - -void TCursorTimer::SetView( wxTextEditorView* pView ) -{ - mpView = pView; -} - -wxTextEditorView* TCursorTimer::GetView() -{ - return mpView; - -} - -void TCursorTimer::HideCursor( bool forceHide ) -{ - Lock(); - - if ( mIsShown ) - { - DrawCursor(); - mIsShown = FALSE; - } - - Unlock(); -} - -void TCursorTimer::ShowCursor( bool forceShow ) -{ - Lock(); - - if ( !forceShow ) - { - DrawCursor(); - mIsShown = TRUE; - - if ( mStarted ) - mMissOneTick = TRUE; - } - - Unlock(); - - if ( !mStarted ) - { - Start( mBlinkInterval ); - mStarted = TRUE; - } -} - -void TCursorTimer::Lock() -{ -// while( mIsLocked ); - - mIsLocked = TRUE; -} - -void TCursorTimer::Unlock() -{ - mIsLocked = FALSE; -} - -void TCursorTimer::SetIsShown( bool isShown ) -{ - mIsShown = isShown; -} - -/*** protected methods ***/ - -void TCursorTimer::DrawCursor() -{ - if ( mpView == NULL ) return; - - wxClientDC dc( mpView ); - - int x = 0, y = 0; - - mpView->ScreenPosToPixels( mpView->mCursorScrPos, x, y ); - - dc.SetLogicalFunction( wxINVERT ); - dc.SetBrush( mBrush ); - - dc.SetPen( *wxTRANSPARENT_PEN ); - dc.DrawRectangle( x,y, 3, mpView->mCharDim.y + 1 ); - dc.SetBackgroundMode( wxSOLID ); -} diff --git a/utils/wxPython/modules/lseditor/tdefs.h b/utils/wxPython/modules/lseditor/tdefs.h deleted file mode 100644 index 7538980d1e..0000000000 --- a/utils/wxPython/modules/lseditor/tdefs.h +++ /dev/null @@ -1,903 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 03/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: GNU General Public License -///////////////////////////////////////////////////////////////////////////// -// -// 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 -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef __TDEFS_G__ -#define __TDEFS_G__ - -// should be compiled with wxSTL-v.1.2 (or higher) - -#include "wxstldefs.h" - -#if defined( wxUSE_TEMPLATE_STL ) - #include - #include -#else - #include "wxstlvec.h" - #include "wxstllst.h" -#endif - -#include "wx/window.h" -#include "wx/scrolbar.h" - -#include "sourcepainter.h" - -#define NPOS ((size_t)(-1)) - -class wxTextEditorModel; -class wxTextEditorView; - -/* - * class represents column-row position in the source text, - * may refere to the column past the end-of-line, - * but should not point past the last-line in the text - */ - -class TPosition -{ -public: - size_t mRow; - size_t mCol; - - inline TPosition() : mRow(0), mCol(0) {} - - inline TPosition( size_t row, size_t col ) - - : mRow( row ), mCol( col ) {} - - inline bool operator>( const TPosition& rhs ) const - { - if ( mRow == rhs.mRow ) return mCol > rhs.mCol; - else - return mRow > rhs.mRow; - } - - inline bool operator<( const TPosition& rhs ) const - { - if ( mRow == rhs.mRow ) return mCol < rhs.mCol; - else - return mRow < rhs.mRow; - } -}; - -class TRange -{ -public: - TPosition mFrom; - TPosition mTill; - - TRange() {} - TRange( const TPosition& from, const TPosition& till ) - : mFrom( from ), mTill( till ) - {} -}; - -inline bool operator==( const TPosition& lhs, const TPosition& rhs ) -{ - return lhs.mRow == rhs.mRow && lhs.mCol == rhs.mCol; -} - -// FOR NOW:: bigger ones... - -#define MAX_BLOCK_LEN (1024*164) -#define BALANCED_BLOCK_LEN (1024*152) -#define FILLED_BLOCK_LEN (1024*148) - -// FOR NOW:: -#define T_ASSERT( x ) if ( !(x) ) throw; - -// to speed up debug v. : - -#define is_eol_char( ch ) ( ch == (char)10 ) -#define is_DOS_eol_char( ch ) ( ch == (char)13 ) - -// the target-platfrom eol-marking is selected when -// new text document is created or auto-detection -// failed to determine the text-format (e.g. no EOLs found at all) - -#if defined(__WINDOWS__) || defined(__WXMSW__) - - #define IS_UNIX_TEXT_BY_DEFAULT FALSE -#else - #define IS_UNIX_TEXT_BY_DEFAULT TRUE -#endif - -//inline bool is_eol_char( char ch ) { return ch == 10 && ch == 13 ; } - -/* - * Class contains single fragment of the source text, which - * may grow or shrink in the process of editing. Blocks always - * start at the begining of the line and end at eol, i.e. lines - * are not broken among blocks - */ - -class TBlock -{ -public: - char mBuf[MAX_BLOCK_LEN]; - size_t mTextLen; - size_t mRowCount; - - TBlock() : mTextLen(0), mRowCount(0) { mBuf[0] = '\0'; } - - void RecalcBlockProperties(); - - bool operator==( const TBlock& blk ) const { return this == &blk; } - - bool operator!=( const TBlock& blk ) const { return this != &blk; } - - bool operator<( const TBlock& blk ) const { return TRUE; } - - bool operator>( const TBlock& blk ) const { return FALSE; } -}; - -/* - * captures info about mutable command - */ - -class TCommand -{ -public: - - TCommand() : mType(-1) {} - TCommand( int type ) : mType( type ) {} - ~TCommand() {} - - int mType; - char* mData; - size_t mDataLen; - - TRange mRange; - - // positions of cursor before and after executions of this command - TPosition mPrePos; - TPosition mPostPos; - -}; - -enum TEXT_EDITOR_COMMAND -{ - TCMD_INSERT, - TCMD_DELETE -}; - -enum TEXT_CHANGE_TYPE -{ - CT_MODIFIED, - CT_DELETED, - CT_INSERTED -}; - -class wxTextEditorView; - -// STL-list is used for managing blocks, since it's alg. collects -// removed elements into a free-list, from which they -// can be reclaimed later, that way heap-fragmentation may be reduced - -#if defined( wxUSE_TEMPLATE_STL ) - typedef list TBlockListT; - typedef vector TCommandListT; - typedef vector TextViewListT; -#else - typedef WXSTL_LIST( TBlock ) TBlockListT; - - typedef TCommand* TCommandPtrT; - typedef WXSTL_VECTOR_SHALLOW_COPY( TCommandPtrT ) TCommandListT; - - typedef wxTextEditorView* TextViewPtrT; - typedef WXSTL_VECTOR_SHALLOW_COPY( TextViewPtrT ) TextViewListT; -#endif - -typedef TBlockListT::iterator TBlockIteratorT; - - -/* - * class shields the higher-level operations from direct access - * to blocks of fragmented in-memory buffers - */ - -class TTextIterator -{ -public: - TBlockIteratorT mBlockIter; - TBlockIteratorT mEndOfListIter; - TPosition mPos; - - size_t mActualRow; - size_t mFirstRowInBlock; - - char* mpCurRowStart; - bool mIsEof; - -public: - TTextIterator(); - - char GetChar(); - bool IsEol(); - bool IsEof(); - bool IsLastLine(); - int GetDistFromEol(); - - void NextChar(); - void PreviousChar(); - void NextWord(); - void PreviousWord(); - void ToEndOfLine(); - void ToStartOfLine(); - - bool IsInLastBlock(); - - // accesors - - size_t GetLineLen(); - TPosition GetPosition(); - - char* GetClosestPos(); - char* GotoClosestPos(); - - inline char* GetBlockStart() { return (*mBlockIter).mBuf; } - inline char* GetBlockEnd() { return (*mBlockIter).mBuf + (*mBlockIter).mTextLen; } - - bool DetectUnixText(); - - // adjust this member to add specific separators, - // the default value is : ",.()[]\t\\+-*/|=<>:;\t\n~?!%" - - static string mSeparators; - - static bool IsSeparator( char ch ); -}; - -class wxTextEditorModel; - -class TTextChangeListenerBase -{ -public: - virtual void OnTextChanged( wxTextEditorModel* pModel, size_t atRow, size_t nRows, TEXT_CHANGE_TYPE ct ) = 0; -}; - -class TCppJavaHighlightListener : public TTextChangeListenerBase -{ -protected: - wxTextEditorModel* mpModel; // is set up temporarely - - enum { IN_COMMENT_STATE, OUT_OF_COMMENT_STATE }; - -public: - virtual void OnTextChanged( wxTextEditorModel* pModel, size_t atRow, size_t nRows, TEXT_CHANGE_TYPE ct ); -}; - - -/* - * Base class for user-defined "bookmarks" within the source-text, bookmarks - * are automatically repositioned or deleted as the text is edited. Class - * can be subclassed to add pin-specific data (e.g. breakpoint information) - */ - -class TPinBase -{ -public: - int mTypeCode; - size_t mRow; - -public: - TPinBase() - : mTypeCode(-1), mRow(NPOS) {} - - TPinBase( int typeCode, size_t row ) - : mTypeCode( typeCode ), mRow( row ) {} - - size_t GetRow() { return mRow; } - int GetTypeCode() { return mTypeCode; } - - virtual ~TPinBase() {} -}; - -// "recommened" type-code ranges for custom pins - -#define HIHGLIGHTING_PINS_TC_STARRT 50 -#define OTHER_PINS_TC_START 100 - -inline bool operator<( const TPinBase& lhs, TPinBase& rhs ) - - { return lhs.mRow < rhs.mRow; } - -#if defined( wxUSE_TEMPLATE_STL ) - - typedef vector PinListT; - typedef vector ChangeListenerListT; -#else - typedef TPinBase* TPinBasePtrT; - typedef WXSTL_VECTOR_SHALLOW_COPY( TPinBasePtrT ) PinListT; - - typedef TTextChangeListenerBase* TTextChangeListenerBasePtrT; - typedef WXSTL_VECTOR_SHALLOW_COPY( TTextChangeListenerBasePtrT ) ChangeListenerListT; -#endif - -/* OLD STUFF:: - -struct TPinBaseCompareFunctor -{ - inline int operator()(const TPinBasePtrT* x, const TPinBasePtrT*& y ) const - { - return x->mLine < y->mLine; - } -}; - -typedef WXSTL_MULTIMAP( TPinBasePtrT, TPinBasePtrT, TPinBaseCompareFunctor ) PinMapT; -typedef PinMapT::iterator PinIteratorT; -*/ - -/* - * Class manages access and manpulation of in-memory text. Can - * be accessed by multiple views, only one of which can be active - * at a time. - */ - -class wxTextEditorModel -{ -protected: - TBlockListT mBlocks; - - TCommandListT mCommands; - size_t mCurCommand; - - TextViewListT mViews; - wxTextEditorView* mpActiveView; - - PinListT mPins; - bool mIsUnixText; - - ChangeListenerListT mChangeListeners; - -public: - /*** public properties ***/ - - bool mTextChanged; - size_t mChangedFromRow; - size_t mChangedTillRow; - - bool mWasChanged; // TRUE, if any content has been changed - - TPosition mCursorPos; - - TPosition mPrevSelectionStart; - TPosition mPrevSelectionEnd; - TPosition mPrevCursorPos; - - TPosition mSelectionStart; - TPosition mSelectionEnd; - size_t mRowsPerPage; - - bool mIsReadOnly; // default: FALSE - bool mIsModified; - bool mInsertMode; // default: TRUE - bool mAutoIndentMode; // default: TRUE - bool mSmartIndentMode; // default: TRUE - - bool mIsSelectionEditMode; // default: TRUE - size_t mTabSize; // default: 4 - - StrListT mSearchExprList; - string mLastFindExpr; - - bool mCheckPointDestroyed; - size_t mCheckPointCmdNo; - -protected: - - size_t GetLineCountInRange( char* from, char* till ); - - // two lowest-level operations - void DoInsertText ( const TPosition& pos, char* text, size_t len, TRange& actualRange ); - void DoDeleteRange( const TPosition& from, const TPosition& till, TRange& actualRange ); - - void DoExecuteNewCommand( TCommand& cmd ); - - void DoReexecuteCommand( TCommand& cmd ); - void DoUnexecuteCommand( TCommand& cmd ); - - - void ExecuteCommand( TCommand* pCmd ); - - // to methods enabling grouping of undo-able commands - bool CanPrependCommand( TCommand* pCmd ); - void PrependCommand( TCommand* pCmd ); - - void SetPostPos( const TPosition& pos ); - - void UndoImpl(); - void RedoImpl(); - - void StartBatch(); - void FinishBatch(); - - void CheckSelection(); - void TrackSelection(); - - void NotifyView(); - void NotifyAllViews(); - - void NotifyTextChanged( size_t atRow, size_t nRows, TEXT_CHANGE_TYPE ct ); - void NotifyTextChanged( TPosition from, TPosition till, TEXT_CHANGE_TYPE ct ); - - void ArrangePositions( TPosition& upper, TPosition& lower ); - void ArrangePositions( size_t& upper, size_t& lower ); - - void MergeChange( size_t fromRow, size_t nRows ); - - void PrepreForCommand(); - - size_t TextToScrColumn( const TPosition& pos ); - size_t ScrToTextColumn( TPosition pos ); - - void DoMoveCursor( int rows, int cols ); - -public: - wxTextEditorModel(); - virtual ~wxTextEditorModel(); - - // utilities - - char* AllocCharacters( size_t n ); - char* AllocCharacters( size_t n, const char* srcBuf ); - void FreeCharacters( char* buf ); - - void DeleteSelection(); - TTextIterator CreateIterator( const TPosition& pos ); - - void DeleteRange( const TPosition& from, const TPosition& till ); - void InsertText( const TPosition& pos, const char* text, size_t len ); - void GetTextFromRange( const TPosition& from, const TPosition& till, char** text, size_t& textLen ); - void LoadTextFromFile( const wxString& fname ); - void SaveTextToFile( const wxString& fname ); - void ResetSelection(); - void ClearUndoBuffer(); - - - void DeleteAllText(); - void GetAllText( char** text, size_t& textLen ); - - void SetSelectionEditMode( bool editIsOn ); - - /*** user-level commands ***/ - - // mutable (undoable) commands - - void OnInsertChar( char ch ); - void OnDelete(); - void OnDeleteBack(); - void OnDeleteLine(); - - void OnShiftSelectionIndent( bool left ); - - // clipboard functions - - void OnCopy(); - void OnPaste(); - void OnCut(); - bool CanCopy(); - bool CanPaste(); - - // undo-redo - - bool CanUndo(); - bool CanRedo(); - void OnUndo(); - void OnRedo(); - - // imutable commands - - void OnMoveLeft(); - void OnMoveRight(); - void OnMoveUp(); - void OnMoveDown(); - - void OnWordLeft(); - void OnWordRight(); - - void OnMoveToPosition( const TPosition& pos ); - - void OnEndOfLine(); - void OnStartOfLine(); - void OnPageUp(); - void OnPageDown(); - void OnSlideUp(); - void OnSlideDown(); - void OnStartOfText(); - void OnEndOfText(); - - void OnSelectWord(); - void OnSelectAll(); - - // bookmarks - - void OnToggleBookmark(); - void OnNextBookmark(); - void OnPreviousBookmark(); - - // search - - bool OnFind(); - bool OnFindNext(); - bool OnFindPrevious(); - void OnGotoLine( int line, int col ); - void OnGotoLine(); - - // status - - bool IsReadOnly(); - bool IsModified(); - bool IsInsertMode(); - - // check-pointin - - void SetCheckpoint(); - bool CheckpointModified(); - - // accessors - - TPosition GetStartOfSelection(); - TPosition GetEndOfSelection(); - TPosition GetCursor(); - - size_t GetTotalRowCount(); - bool SelectionIsEmpty(); - bool IsLastLine( const TPosition& pos ); - - bool IsUnixText() { return mIsUnixText; } - - void GetSelection( char** text, size_t& textLen ); - - void SetStartOfSelection( const TPosition& pos ); - void SetEndOfSelection( const TPosition& pos ); - void SetCursor( const TPosition& pos ); - - void AddView( wxTextEditorView* pView ); - void RemoveView( wxTextEditorView* pView ); - void SetActiveView( wxTextEditorView* pView ); - wxTextEditorView* GetActiveView(); - - void SetRowsPerPage( size_t n ); - - void AddPin( TPinBase* pPin ); - PinListT& GetPins(); - - // returns NPOS, if non - size_t FindFirstPinInRange( size_t fromRow, size_t tillRow ); - size_t FindNextPinFrom( size_t fromRow ); - size_t FindPreviousPinFrom( size_t fromRow ); - - size_t GetPinNoAt( size_t row, int pinTypeCode ); - TPinBase* GetPinAt( size_t row, int pinTypeCode ); - void RemovePinAt( size_t row, int pinTypeCode ); - - void AddChangeListener( TTextChangeListenerBase* pListener ); -}; - -class TCursorTimer; -class wxTextEditorView; - -class TPinPainterBase : public wxObject -{ -public: - int mPinTypeCode; - -public: - TPinPainterBase( int pinTc ) : mPinTypeCode( pinTc ) {} - TPinPainterBase() : mPinTypeCode( -1 ) {} - - inline int GetPinTypeCode() { return mPinTypeCode; } - - virtual void DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, - const wxPoint& pos, const wxSize& dim ) = 0; -}; - -/* - * a couple very common ping objects/painters - */ - -#define BOOKMARK_PIN_TC (OTHER_PINS_TC_START) -#define BRKPOINT_PIN_TC (BOOKMARK_PIN_TC + 1) - -class TBookmarkPainter : public TPinPainterBase -{ -protected: - wxBrush mBkBrush; - -public: - TBookmarkPainter(); - - virtual void DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, - const wxPoint& pos, const wxSize& dim ); -}; - -class TBookmarkPin : public TPinBase -{ -public: - TBookmarkPin( size_t row ) - : TPinBase( BOOKMARK_PIN_TC, row ) - {} - - static int GetPinTypeCode() { return BOOKMARK_PIN_TC; } -}; - -class TBreakpointPainter : public TPinPainterBase -{ -protected: - wxBrush mBkBrush; - -public: - TBreakpointPainter(); - - virtual void DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, - const wxPoint& pos, const wxSize& dim ); -}; - -class TBreakpointPin : public TPinBase -{ -public: - TBreakpointPin( size_t row ) - : TPinBase( BRKPOINT_PIN_TC, row ) - {} - - static int GetPinTypeCode() { return BRKPOINT_PIN_TC; } -}; - - -#if defined( wxUSE_TEMPLATE_STL ) - typedef vector PinPainterListT; -#else - typedef TPinPainterBase* TPinPainterBasePtrT; - typedef WXSTL_VECTOR_SHALLOW_COPY( TPinPainterBasePtrT ) PinPainterListT; -#endif - -/* - * Class displays graphical view of data contained in wxTextModel - */ - -class wxTextEditorView : public wxScrolledWindow -{ -protected: - - wxTextEditorModel* mpModel; - TPosition mSelectionStart; - TPosition mSelectionEnd; - TPosition mCursorPos; - - TPosition mLastViewStart; - size_t mLastRowsTotal; - - size_t mRowsPerPage; - size_t mColsPerPage; - - static char* mpLineBuffer; - static size_t mpLineBufferLen; - - bool mFullRefreshPending; - bool mAdjustScrollPending; - - wxFont mFont; - - bool mScrollingOn; // default: TRUE - bool mCursorOn; // default: TRUE; - - bool mLTMode; // line-tracking mode - // (when the whole line is coloured, - // instead of showing blinking cursor position) - - wxColour mLTColour; // fill-colour for LT-mode - - bool mDragStarted; - char* mpDraggedText; - - bool mOwnsModel; - - wxString mFragment; // reused heap-buffer - // for coloured fragments - SourcePainter* mpPainter; - PinPainterListT mPinPainters; - TTextIterator mCashedIter; - - static TCursorTimer* mpTimer; - -public: /*** public properties ***/ - - int mLeftMargin; // default: 20 - int mRightMargin; // default: 0 - int mTopMargin; // default: 0 - int mBottomMargin; // default: 0 - int mMaxColumns; // default: 500 - - TPosition mPagePos; - - // color-scheme properties - - wxColour mNormalTextCol; - wxColour mIndentifierTextCol; - wxColour mReservedWordTextCol; - wxColour mCommentTextCol; - - wxColour mNormalBkCol; - wxColour mSelectionFgCol; - wxColour mSelectionBkCol; - - wxBrush mNormalBkBrush; - wxBrush mSelectedBkBrush; - - // accessed by timer - - TPosition mCursorScrPos; - wxSize mCharDim; - -protected: - - char* GetLineBuffer( size_t len ); - - virtual void PaintDecorations( size_t fromRow, size_t tillRow, wxDC& dc, TTextIterator& iter ); - virtual void PaintRows( size_t fromRow, size_t tillRow, wxDC& dc ); - - void ObtainFontProperties(); - - bool IsActiveView(); - void SetTextDefaults(); - void RecalcPagingInfo(); - - TPinPainterBase* FindPainterForPin( TPinBase& pin ); - -public: - wxTextEditorView( wxWindow* parent, wxWindowID id = -1, - wxTextEditorModel* pModel = NULL, - int wndStyle = wxSUNKEN_BORDER, - bool ownsModel = TRUE ); - ~wxTextEditorView(); - - /*** setup methods ***/ - - void SetModel( wxTextEditorModel* pModel ); - - // sets custom syntax-higlighting implementation - void SetSourcePainter( SourcePainter* pPainter ); - void AddPinPainter( TPinPainterBase* pPainter ); - - void SetDefaultFont( const wxFont& font ); - wxFont& GetDefaultFont(); - - wxSize GetCharacterSize() { return mCharDim; } - - size_t GetRowsPerPage() { return mRowsPerPage; } - void SetRowsPerPage( size_t n ); - void SetMaxColumns( size_t n ); - - void SetLineTrackingMode( bool on, const wxColour& col = wxColour(255,255,0) ); - - void EnableCursor( bool enable ); - void EnableScrollbars( bool enable ); - - void SetColours( const wxColour& normalBkCol, - const wxColour& selectedBkCol, - const wxColour& selectedTextCol ); - - void SetHeighlightingColours( const wxColour& normalTextCol, - const wxColour& identifierTextCol, - const wxColour& reservedWordTextCol, - const wxColour& commentTextCol ); - - void SetMargins( int top, int left, int bottom, int right ); - - // notifications from editor-model: - - void OnModelChanged(); - void ScrollView( int rows, int cols ); - - // accessors - - void Activate(); - void Deactivate(); - - // event handlers - -#if (( wxVERSION_NUMBER < 2100 ) || (( wxVERSION_NUMBER == 2100 ) && (wxBETA_NUMBER <= 4))) - void OnScroll( wxScrollEvent& event ); -#else - void OnScroll( wxScrollWinEvent& event ); -#endif - void OnPaint ( wxPaintEvent& event ); - void OnSize ( wxSizeEvent& event ); - void OnEraseBackground( wxEraseEvent& event ); - - void OnLButtonDown( wxMouseEvent& event ); - void OnLButtonUp ( wxMouseEvent& event ); - void OnMotion ( wxMouseEvent& event ); - void OnDblClick ( wxMouseEvent& event ); - - void OnSetFocus( wxFocusEvent& event ); - void OnKillFocus( wxFocusEvent& event ); - - // requests editor to keep cursor blinking, even when - // the window has lost it's focus - - void HoldCursor( bool hold ); - - // FOR NOW:: hard-coded key-bindings - - void OnChar( wxKeyEvent& event ); - void OnKeyDown( wxKeyEvent& event ); - - // utilities - - virtual void SyncViewPortPosition(); - virtual void SyncScrollbars(); - virtual void PositionCursor(); - - void TextPosToScreenPos( const TPosition& txtPos, TPosition& scrPos ); - void ScreenPosToTextPos( const TPosition& scrPos, TPosition& txtPos ); - void ScreenPosToPixels ( const TPosition& scrPos, int& x, int& y ); - void PixelsToScrPos ( int x, int y, int& scrRow, int& scrCol ); - void PixelsToTextPos ( int x, int y, TPosition& textPos ); - - bool IsClipboardCmd( wxKeyEvent& key ); - - TPosition GetPagePos() { return mPagePos; } - - DECLARE_EVENT_TABLE() -}; - -// TODO:: mutex class should be used to avoid race on updates - -class TCursorTimer : public wxTimer -{ -protected: - wxTextEditorView* mpView; - volatile bool mIsLocked; - volatile bool mIsShown; - volatile bool mStarted; - wxBrush mBrush; - bool mMissOneTick; - - int mBlinkInterval; // default: 500mills -protected: - - void DrawCursor(); - -public: - - TCursorTimer(); - - virtual void Notify(); - - void SetView( wxTextEditorView* pView ); - wxTextEditorView* GetView(); - void HideCursor( bool forceHide = FALSE ); - void ShowCursor( bool forceShow = FALSE ); - - void SetIsShown( bool isShown ); - void Lock(); - void Unlock(); -}; - -#endif // __TDEFS_G__ diff --git a/utils/wxPython/modules/lseditor/test/editor.py b/utils/wxPython/modules/lseditor/test/editor.py deleted file mode 100644 index 715b1e53fa..0000000000 --- a/utils/wxPython/modules/lseditor/test/editor.py +++ /dev/null @@ -1,118 +0,0 @@ -from wxPython.wx import * -from wxPython.lseditor import * - -class LSEditorFrame(wxFrame): - def __init__(self, parent, id, title, pos = wxDefaultPosition, size = wxSize(400,400)): - wxFrame.__init__(self, parent, id, title, pos, size) - self.editor = wxsLSEditorPlugin() - self.editor.Create(self, -1) - self.SetMenuBar(self.GetDefaultMenuBar()) - self.CreateStatusBar() - self.SetDefaultEvents() - self.filename = "" - def GetDefaultMenuBar(self): - mbar = wxMenuBar() - menu = wxMenu() - menu.Append(1500, "Open") - menu.Append(1501, "Save") - menu.Append(1502, "SaveAs") - menu.AppendSeparator() - menu.Append(1503, "Exit") - mbar.Append(menu, "File") - menu = wxMenu() - menu.Append(1510, "Copy") - menu.Append(1511, "Cut") - menu.Append(1512, "Paste") - menu.AppendSeparator() - menu.Append(1513, "Delete") - menu.AppendSeparator() - menu.Append(1514, "Undo") - menu.Append(1515, "Redo") - menu.AppendSeparator() - menu.Append(1516, "Find...") - menu.Append(1517, "Find Next") - menu.Append(1518, "Find Previous") - menu.Append(1519, "Replace...") - mbar.Append(menu, "Edit") - menu = wxMenu() - menu.Append(1520, "Toggle") - menu.Append(1521, "Next") - menu.Append(1522, "Prev") - mbar.Append(menu, "Bookmarks") - return mbar - def SetDefaultEvents(self): - EVT_MENU(self, 1500, self.evt_OnOpen) - EVT_MENU(self, 1501, self.evt_OnSave) - EVT_MENU(self, 1502, self.evt_OnSaveAs) - EVT_MENU(self, 1503, self.OnClose) - EVT_MENU(self, 1510, self.evt_OnCopy) - EVT_MENU(self, 1511, self.evt_OnCut) - EVT_MENU(self, 1512, self.evt_OnPaste) - EVT_MENU(self, 1513, self.evt_OnDelete) - EVT_MENU(self, 1514, self.evt_OnUndo) - EVT_MENU(self, 1515, self.evt_OnRedo) - EVT_MENU(self, 1516, self.evt_OnFind) - EVT_MENU(self, 1517, self.evt_OnFindNext) - EVT_MENU(self, 1518, self.evt_OnFindPrevious) - EVT_MENU(self, 1519, self.evt_OnReplace) - EVT_MENU(self, 1520, self.evt_OnToggle) - EVT_MENU(self, 1521, self.evt_OnNext) - EVT_MENU(self, 1522, self.evt_OnPrev) - #EVT_MENU(self, 15, self.evt_) - #EVT_MENU(self, 15, self.evt_) - def evt_OnOpen(self, event): - dlg = wxFileDialog(NULL, "Open file") - if dlg.ShowModal() == wxID_OK: - self.filename = dlg.GetPath() - self.editor.OnOpen(self.filename) - def evt_OnSaveAs(self, event): - dlg = wxFileDialog(NULL, "Save As", self.filename) - if dlg.ShowModal() == wxID_OK: - self.filename = dlg.GetPath() - self.editor.OnSave(self.filename) - def evt_OnSave(self, event): - if self.filename: - self.editor.OnSave(self.filename) - else: - self.evt_OnSaveAs(None) - def OnClose(self,event): - self.Destroy() - def evt_OnCopy(self,event): - self.editor.OnCopy() - def evt_OnCut(self,event): - self.editor.OnCut() - def evt_OnPaste(self,event): - self.editor.OnPaste() - def evt_OnDelete(self,event): - self.editor.OnDelete() - def evt_OnUndo(self,event): - self.editor.OnUndo() - def evt_OnRedo(self,event): - self.editor.OnRedo() - def evt_OnToggle(self,event): - self.editor.OnToggleBookmark() - def evt_OnNext(self,event): - self.editor.OnNextBookmark() - def evt_OnPrev(self,event): - self.editor.OnPreviousBookmark() - def evt_OnFind(self,event): - self.editor.OnFind() - def evt_OnFind(self,event): - self.editor.OnFind() - def evt_OnFindNext(self,event): - self.editor.OnFindNext() - def evt_OnFindPrevious(self,event): - self.editor.OnFindPrevious() - self.SetStatusText("OnFindPrevious: Not implemented") - def evt_OnReplace(self,event): - self.editor.OnReplace() - self.SetStatusText("OnReplace: Not implemented") - -class MyApp(wxApp): - def OnInit(self): - frame = LSEditorFrame(NULL, -1, "Editor") - frame.Show(TRUE) - return TRUE - -App = MyApp(0) -App.MainLoop() diff --git a/utils/wxPython/modules/lseditor/wxsdefs.h b/utils/wxPython/modules/lseditor/wxsdefs.h deleted file mode 100644 index 0014d7f6f4..0000000000 --- a/utils/wxPython/modules/lseditor/wxsdefs.h +++ /dev/null @@ -1,374 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 24/04/1999 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: GNU General Public License -///////////////////////////////////////////////////////////////////////////// -#ifndef __WXSDEFS_G__ -#define __WXSDEFS_G__ - -#include - - -#include "controlarea.h" - -#ifdef wxUSE_TEMPLATE_STL -#include -#include -//using std::map; -//using std::vector; -using namespace std; -#else -#include "wxstldefs.h" // imports predefine StrListT, IntListT containers -#include "wxstlac.h" -#endif -class wxsProject; -class wxsComponent; -class wxsWorkplace; -class wxsOpenedFileInfo; -class wxsWorkplaceListener; -class wxsSourceEditorPlugin; -class wxsSourceInfoPlugin; -class wxsAppListener; -class wxsAppInterface; - -class wxFrame; - -typedef wxsWorkplaceListener* wxsWorkplaceListenerPtrT; - -#ifdef wxUSE_TEMPLATE_STL -typedef vector wxsWorkplaceListenerListT; -#else -typedef WXSTL_VECTOR_SHALLOW_COPY( wxsWorkplaceListenerPtrT ) wxsWorkplaceListenerListT; -#endif - -// IDs for the controls and the menu commands -enum -{ - // menu items - WXS_Quit = 3300, // FIXEM:: ids.. - WXS_About, - WXS_Open, - WXS_Close, - WXS_OpenWorkplace, - WXS_Save, - WXS_SaveAs, - WXS_SaveAll, - WXS_CloseWorkplace, - WXS_SaveWorkplace, - WXS_NewProject, - - WXS_ShowTips, - - WXS_Undo = 9000, - WXS_NextWindow, - WXS_PreviousWindow, - WXS_CloseWindow, - WXS_ListWindows, - WXS_UpdateBrowser, - WXS_ToggleWorkplaceWindow, - - WXS_InsertFiles, - WXS_Test, - WXS_Settings, - - WXS_ClassView, - WXS_FileView, - WXS_GotoEditor, - - WXS_Test1, - WXS_Test2, - - // controls start here (the numbers are, of course, arbitrary) - WXS_Text = 1000, - - ID_EDIT_UNDO, - ID_EDIT_REDO, - ID_EDIT_CUT, - ID_EDIT_COPY, - ID_EDIT_PASTE, - ID_EDIT_DELETE, - ID_EDIT_SELECT_ALL, - ID_EDIT_FIND, - ID_EDIT_FIND_NEXT, - ID_EDIT_REPLACE, - ID_EDIT_GOTO, - ID_EDIT_TOGGLE_BM, - ID_EDIT_NEXT_BM, - ID_EDIT_PREV_BM, - ID_EDIT_TOGGLE_BRKPNT, - ID_EDIT_BOOKMARKS, - ID_EDIT_SETFONT, - ID_LEFT_SASH, - ID_BOTTOM_SASH -}; - -// bitmaps/icons -enum WXS_ICON_ENUM{ - WXS_ICON_class = 1, - WXS_ICON_priv_mtd, - WXS_ICON_prot_mtd, - WXS_ICON_pub_mtd, - WXS_ICON_priv_mtd_def, - WXS_ICON_prot_mtd_def, - WXS_ICON_pub_mtd_def, - WXS_ICON_priv_var, - WXS_ICON_prot_var, - WXS_ICON_pub_var, - WXS_ICON_pub_pure_mtd, - WXS_ICON_file, - WXS_ICON_folder, - WXS_ICON_mru_folder, - WXS_ICON_class_gray, - WXS_ICON_file_gray, -}; - - -typedef char* CharPtrT; - -struct UU_cmp -{ - inline int operator()(const CharPtrT x, const CharPtrT y ) const { return 0; } -}; - -typedef wxBitmap* wxBitmapPtrT; -#ifdef wxUSE_TEMPLATE_STL -typedef map WXS_BitmapsMapT; -#else -typedef WXSTL_MAP( WXS_ICON_ENUM, wxBitmapPtrT, - LESS_THEN_FUNCTOR(WXS_ICON_ENUM) ) WXS_BitmapsMapT; -#endif - -extern WXS_BitmapsMapT WXS_Bitmaps; -#define WXS_ICON(name) (*WXS_Bitmaps[WXS_ICON_##name]) - - -// very general file categories - -enum WXS_FILE_CATEGORY -{ - WXS_UNKNOWN_FILE, - WXS_SOURCE_FILE, - WXS_RESOURCE_FILE, - WXS_DOCUMENTATION_FILE, - WXS_CONFIGURAITON_FILE -}; - -enum WXS_PLUGIN_TYPE -{ - WXS_UNKNOWN_PLUGIN, - WXS_EDITOR_PLUGIN, - WXS_CLASSINFO_PLUGIN, - WXS_CLASSBROWSER_PLUGIN, - WXS_FILEBROWSER_PLUGIN, - WXS_TOOL_PLUGIN, - WXS_OUTPUTTOOL_PLUGIN -}; - - - -class wxsAppListener -{ -public: - virtual void OnWindowSwitched( wxWindow* fromWnd, wxWindow* toWnd ) {}; - virtual bool OnCloseWindow( wxWindow* wnd ) { return TRUE; } - virtual void OnTabSwitched() {}; - virtual void OnPageSwitched() {}; -}; - -class wxsAppInterface -{ -public: - virtual void SetAppListener(wxsAppListener* pLsn) = 0; - - virtual void AddEditor(wxsSourceEditorPlugin* editor,wxString title,wxBitmap* pImage = NULL) = 0; - virtual void ActivateEditor( wxsSourceEditorPlugin* editor ) = 0; - virtual void CloseEditor( wxsSourceEditorPlugin* editor ) = 0; - - virtual void ShowNextWindow() = 0; - virtual void ShowPreviousWindow() = 0; - virtual void CloseActiveWindow() = 0; - virtual void CloseWindow( wxWindow* wnd ) = 0; - virtual void ShowWindowList() = 0; - virtual wxWindow* GetActiveWindow() = 0; - virtual wxTabbedWindow* GetTabbedWindow() = 0; - virtual void AddTab(wxsComponent* pContent, wxString tabText, wxBitmap* pImage = NULL) = 0; - virtual void ShowNextTab() = 0; - virtual wxPaggedWindow* GetPaggedWindow() = 0; - virtual void AddPage(wxsComponent* pContent, wxString tabText, wxBitmap* pImage = NULL) = 0; - virtual void ShowNextPage() = 0; - virtual wxFrame* GetMainFrame() = 0; - virtual void SetStatusText( const string& text ) = 0; - - static wxsAppInterface& GetInstance(); - -protected: - static wxsAppInterface* mpInstance; - friend wxsAppInterface& wxsGetApp(); -}; - -// short-cut for wxsAppInterface::GetInstance() - -wxsAppInterface& wxsGetApp(); - -class wxsWorkplaceListener : public wxObject -{ -public: - virtual void OnSubprojectAdded( wxsProject& subPrj, wxsProject& toPrj ) {} - virtual void OnSubprojectRemoved( wxsProject& subPrj, wxsProject& fromPrj ) {} - virtual void OnProjectCreated( wxsProject& prj ) {} - virtual void OnRootProjectLoaded() {} - virtual void OnRootProjectClosed() {} - virtual void OnFilesAddedToProject( wxsProject& prj, StrListT& files, WXS_FILE_CATEGORY cat ) {} - virtual void OnFilesRemovedFromProject( wxsProject& prj, StrListT& files, WXS_FILE_CATEGORY cat ) {} - - virtual void OnFileContentChanged( wxsProject& prj, const string& file, WXS_FILE_CATEGORY cat, - char* newContent, size_t len ) {} - - virtual void OnFileOpened( wxsOpenedFileInfo& file ) {} -}; - -typedef wxsProject* wxsProjectPtrT; -#ifdef wxUSE_TEMPLATE_STL -typedef vector wxsProjectListT; -#else -typedef WXSTL_VECTOR_SHALLOW_COPY( wxsProjectPtrT ) wxsProjectListT; -#endif - -class wxsProject : public wxObject -{ -public: - // Basic project info - virtual void SetName(const string& name) = 0; - virtual void SetFileName(const string& fname) = 0; - virtual void SetDescription(const string& desc) = 0; - virtual void SetLanguage(const string& lang) = 0; - virtual string GetName() = 0; - virtual string GetFileName() = 0; - virtual string GetDescription() = 0; - virtual string GetLanguage() = 0; - // File manipulation - virtual bool AddFile( const string& file) = 0; - virtual bool RemoveFile ( const string& file ) = 0; - virtual StrListT GetFiles() = 0; - // Sub-Project manipulation - virtual void AddSubproject( wxsProject* subPrj) = 0; - virtual void RemoveSubproject( wxsProject* subPrj) = 0; - virtual wxsProjectListT& GetSubprojects() = 0; - // Transient information (parent only exists when loaded - virtual void SetParent( wxsProject* parentPrj) = 0; - virtual wxsProject* GetParent() = 0; - // configuration info storage - virtual string CreateConfig ( const string& file = "" ) = 0; - virtual bool SetCurrentConfig ( const string& configkey ) = 0; - virtual bool AddConfigValue( const string& key, string& value) = 0; - virtual bool SetConfigValue( const string& key, string& value) = 0; - virtual bool RemoveConfigValue( const string& key ) = 0; - virtual string GetConfigValue ( const string& key ) = 0; - - -}; - -class wxsOpenedFileInfo : public wxObject -{ -public: - string mFullName; - wxsProject* mpProject; // NULL, if file does not belong to any project - wxsSourceEditorPlugin* mpEditor; - WXS_FILE_CATEGORY mCategory; - bool mIsSaved; - -public: - wxsOpenedFileInfo() : mIsSaved( TRUE ), mpProject( NULL ) {} - - wxsProject* GetProject() { return mpProject; } - const string& GetFullName() { return mFullName; } - wxsSourceEditorPlugin& GetEditor() { return *mpEditor; } - WXS_FILE_CATEGORY GetCategory() { return mCategory; } -}; - -typedef wxsOpenedFileInfo* wxsOpenedFileInfoPtrT; -#ifdef wxUSE_TEMPLATE_STL -typedef vector wxsOpenedFileInfoListT; -#else -typedef WXSTL_VECTOR_SHALLOW_COPY( wxsOpenedFileInfoPtrT ) wxsOpenedFileInfoListT; -#endif - -// abstract interface - -class wxsWorkplace : public wxObject -{ -public: - virtual void CreateProject( const string& name, const string& projectFile, const wxsProject* parent=NULL) = 0; - - virtual void LoadRootProject( const string& projectFile ) = 0; - virtual void SaveProject( wxsProject& prj ) = 0; - virtual void CloseRootProject() = 0; - - virtual wxsProject& GetRootProject() = 0; - virtual wxsProject* FindProjectByName( const string& name ) = 0; - virtual wxsOpenedFileInfo* FindFileByEditor( wxsSourceEditorPlugin& editor ) = 0; - - virtual void AddWorkpalceListener( wxsWorkplaceListener* pListener ) = 0; - - virtual void AddSubproject( wxsProject& intoPrj,const string& projectFile ) = 0; - virtual void RemoveSubproject( wxsProject& prj ) = 0; - - virtual void AddFilesToProject( wxsProject& prj, StrListT& files ) = 0; - virtual void RemoveFilesFromProject( wxsProject& prj, StrListT& files ) = 0; - - virtual void NotifyFileContentChanged( wxsProject& prj, const string& file, - char* newContent, size_t len ) = 0; - - virtual void NotifyFileContentChanged( wxsOpenedFileInfo& info ) = 0; - virtual void NotifyEditorDeactivated( wxsSourceEditorPlugin& editor ) = 0; - - // if pPrj is NULL, the specified file does not belong to any projects, - // i.e. it blongs to the workplace - - virtual wxsOpenedFileInfo* - OpenFileInEditor( const string& file, wxsProject* pPrj = NULL, - int line = -1, int column = -1) = 0; - - virtual void GetCurrentFileContent( wxsProject& prj, const string& file, - char** buf, size_t& len - ) = 0; - - // returns FALSE, if source was already up-to-date - virtual bool SyncSourceInfo() = 0; - - virtual wxsProject* FindSubproject( wxsProject& parentPrj, const string& prjName ) = 0; - virtual wxsOpenedFileInfo* FindOpenedFile( const string& name ) = 0; - virtual bool FileIsOpened( wxsProject& prj, const string& file ) = 0; - virtual wxsSourceEditorPlugin* GetSourceEditor( wxsProject& prj, const string& file ) = 0; - virtual wxsSourceInfoPlugin* GetSourceInfoPlugin() = 0; - - static wxsWorkplace& GetInstance() { return *wxsWorkplace::mpInstance; } - - virtual wxsOpenedFileInfoListT& GetOpenedFiles() = 0; - virtual wxsOpenedFileInfo* GetActiveFile() = 0; - - virtual void SaveFile( wxsOpenedFileInfo& info ) = 0; - virtual void SaveAllFiles() = 0; - - virtual bool CloseFile( wxsOpenedFileInfo& info, bool closeWindow = TRUE ) = 0; - virtual bool CloseAllFiles() = 0; - - virtual bool CloseInProgress() = 0; - - virtual WXS_FILE_CATEGORY GetFileCategory( const string& file ) = 0; - -protected: - static wxsWorkplace* mpInstance; - friend wxsWorkplace& wxsGetWorkplace(); -}; - -// short-cut for wxsWorkplace::GetInstance() - -wxsWorkplace& wxsGetWorkplace(); - -#endif diff --git a/utils/wxPython/modules/lseditor/wxstlac.h b/utils/wxPython/modules/lseditor/wxstlac.h deleted file mode 100644 index 447bc1b01c..0000000000 --- a/utils/wxPython/modules/lseditor/wxstlac.h +++ /dev/null @@ -1,659 +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__ - -#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 ) const\ - {\ - mCmpFunctorObj(x,y);\ - return ( !mCmpFunctorObj(x,y) && !mCmpFunctorObj(y,x) );\ - }\ -\ - inline int is_less( const key_type& x, const key_type& y ) const\ - {\ - 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, key(pCurrent) ) )\ - {\ - RecycleNode(pNewNode);\ - return 0;\ - }\ -\ - pParent = pCurrent;\ -\ - pCurrent = is_less( _X_KEY_NAME, key(pCurrent) ) \ - ? pCurrent->mpLeft \ - : pCurrent->mpRight;\ - }\ - \ - pNewNode->mpParent = pParent;\ -\ - if(pParent)\ -\ - if( is_less(_X_KEY_NAME, key(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 iterator find( const key_type& x ) const\ - {\ - 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 iterator(0);\ - }\ -\ - inline actual_value_type& operator[]( const key_type x ) const\ -\ - { return find(x).mpNode->_VALUE_NAME; }\ -\ - 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;\ - \ -\ - 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/wxPython/modules/lseditor/wxstldefs.h b/utils/wxPython/modules/lseditor/wxstldefs.h deleted file mode 100644 index 51e680f0d0..0000000000 --- a/utils/wxPython/modules/lseditor/wxstldefs.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef __WXSTLDEFS_G__ -#define __WXSTLDEFS_G__ - - -#include "config.h" - -// defines some very commonly used container types -// for both template and macro-based configurations - -#if defined( wxUSE_TEMPLATE_STL ) - - #include - using namespace std; - #ifdef WIN32xxx - #include - #else - - //#include - //#include - // For now - #include "wx/string.h" - #define string wxString - - #endif - -#else - - #include "wx/string.h" - #include "wxstlvec.h" - - // FOR NOW:: quick n' dirty: - - #define string wxString - -#endif - -#if defined( wxUSE_TEMPLATE_STL ) - - typedef vector StrListT; - typedef vector IntListT; - -#else - - typedef WXSTL_VECTOR(string) StrListT; - typedef WXSTL_VECTOR_SHALLOW_COPY(int) IntListT; - -#endif - -#endif diff --git a/utils/wxPython/modules/lseditor/wxstllst.h b/utils/wxPython/modules/lseditor/wxstllst.h deleted file mode 100644 index 9bcf331f44..0000000000 --- a/utils/wxPython/modules/lseditor/wxstllst.h +++ /dev/null @@ -1,555 +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__ - -#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/wxPython/modules/lseditor/wxstlvec.h b/utils/wxPython/modules/lseditor/wxstlvec.h deleted file mode 100644 index bc6fe504e0..0000000000 --- a/utils/wxPython/modules/lseditor/wxstlvec.h +++ /dev/null @@ -1,857 +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__ - -#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) \ - {\ - int pivot_index;\ - int left, right;\ -\ - pivot_index = ( !(mpStart[low] < mpStart[low+1])) ? low : (low+1);\ - value_type pivot_value = mpStart[pivot_index];\ -\ - left = low; right = hi;\ - do \ - {\ - while ((left <= hi) && (mpStart[left] < pivot_value)) left++;\ -\ - while ((right >= low) && (pivot_value < mpStart[right])) right--;\ -\ - if (left <= right) \ - {\ - value_type tmp = mpStart[left];\ - mpStart[left] = mpStart[right];\ - mpStart[right] = tmp;\ -\ - left++;\ - right--;\ - }\ - \ - } while (left <= right);\ - if (low < right) quick_sort(low, right);\ - if (left < hi) quick_sort(left, 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 int operator==( const vectorClass& other )\ - {\ - size_type sz = size();\ -\ - if ( sz != other.size() ) return 0;\ -\ - for( size_type i = 0; i != sz; ++i )\ -\ - if ( !( (*this)[i] == other[i] ) ) return 0;\ -\ - return 1;\ -\ - }\ -\ - 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) \ - {\ - int pivot_index;\ - int left, right;\ -\ - pivot_index = ( !(mpStart[low] < mpStart[low+1])) ? low : (low+1);\ - value_type pivot_value = mpStart[pivot_index];\ -\ - left = low; right = hi;\ - do \ - {\ - while ((left <= hi) && (mpStart[left] < pivot_value)) left++;\ -\ - while ((right >= low) && (pivot_value < mpStart[right])) right--;\ -\ - if (left <= right) \ - {\ - value_type tmp = mpStart[left];\ - mpStart[left] = mpStart[right];\ - mpStart[right] = tmp;\ -\ - left++;\ - right--;\ - }\ - \ - } while (left <= right);\ - if (low < right) quick_sort(low, right);\ - if (left < hi) quick_sort(left, 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 int operator==( const vectorClass& other )\ - {\ - size_type sz = size();\ -\ - if ( sz != other.size() ) return 0;\ -\ - for( size_type i = 0; i != sz; ++i )\ -\ - if ( !( (*this)[i] == other[i] ) ) return 0;\ -\ - return 1;\ -\ - }\ -\ - 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/wxPython/modules/makeinc.vc b/utils/wxPython/modules/makeinc.vc deleted file mode 100644 index d6136fc7ca..0000000000 --- a/utils/wxPython/modules/makeinc.vc +++ /dev/null @@ -1,152 +0,0 @@ -# -*- makefile -*- -#---------------------------------------------------------------------------- -# 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.1b2 - -# Set WXDIR to the root wxWindows directory for your system -WXDIR = $(WXWIN) - -# Set this to the root of the Python installation -PYTHONDIR=\progra~1\Python - -# Set this to 1 for a non-debug, optimised compile -FINAL=1 - -# 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=$(PYTHONDIR)\wxPython - -# 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 - - -#---------------------------------------------------------------------- - -!if "$(WXP_USE_THREAD)" == "1" -THREAD=-DWXP_USE_THREAD=1 -!endif - -#---------------------------------------------------------------------- - -NOPCH=1 -THISDIR=$(WXDIR)\utils\wxPython\modules -WXPSRCDIR=$(WXDIR)\utils\wxPython\src - -EXTRALIBS=$(PYTHONDIR)\libs\python15.lib $(WXPSRCDIR)\wxc.lib -#EXTRALIBS=$(PYTHONDIR)\PCbuild\python15_d.lib -D_DEBUG -EXTRAINC=-I$(PYTHONDIR)\include -I$(WXPSRCDIR) -I. -EXTRAFLAGS=/Fpwxp.pch /YXhelpers.h -DSWIG_GLOBAL -DHAVE_CONFIG_H $(THREAD) -OVERRIDEFLAGS=/GX- $(OTHERCFLAGS) - - -SWIGFLAGS=-c++ -shadow -python -dnone -D__WXMSW__ -I$(WXPSRCDIR) -GENCODEDIR=msw - - -!include $(WXDIR)\src\makevc.env - -#---------------------------------------------------------------------- - -!if "$(FINAL)" == "1" -DEBUGLFLAGS = /DEBUG /INCREMENTAL:YES -!else -DEBUGLFLAGS = /INCREMENTAL:NO -!endif - -LFLAGS= $(DEBUGLFLAGS) /DLL /subsystem:windows,3.50 /machine:I386 /nologo - -#---------------------------------------------------------------------- - -def: default - - -showflags: - @echo $(CPPFLAGS) - -# implicit rule for compiling .cpp and .c files -{}.cpp{}.obj: - $(cc) @<< -$(CPPFLAGS) /c /Tp $< -<< - -{$(GENCODEDIR)}.cpp{}.obj: - $(cc) @<< -$(CPPFLAGS) /c /Tp $< -<< - -{}.c{}.obj: - $(cc) @<< -$(CPPFLAGS) /c $< -<< - - -#------------------------------------------------------------------------ - -.SUFFIXES : .i .py - -# Implicit rules to run SWIG -{}.i{$(GENCODEDIR)}.cpp: - swig $(SWIGFLAGS) -c -o $@ $< - -{}.i{$(GENCODEDIR)}.py: - swig $(SWIGFLAGS) -c -o $(GENCODEDIR)\tmp_wrap.cpp $< - -erase $(GENCODEDIR)\tmp_wrap.cpp - - -{$(GENCODEDIR)}.py{$(TARGETDIR)}.py: - copy $< $@ - -{}.py{$(TARGETDIR)}.py: - copy $< $@ - -#{}.py{$(TARGETDIR)}.$(PYEXT): -# $(PYTHON) -c "import py_compile; py_compile.compile('$<', '$@')" - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb - -erase *.pch - -erase $(TARGET).exp - -erase $(TARGET).lib -# -erase $(TARGETDIR)\$(TARGET).* - -dist: - cd ..\.. - wxPython\distrib\zipit.bat $(VERSION) - -pycfiles : $(PYMODULES) -!if "$(COMPILEPY)" == "1" - $(PYTHONDIR)\python $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR) - $(PYTHONDIR)\python -O $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR) -!endif - -$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(TARGET).rc - -sources : $(SOURCES) - -#---------------------------------------------------------------------- diff --git a/utils/wxPython/modules/stubs/README b/utils/wxPython/modules/stubs/README deleted file mode 100644 index f9448c9a03..0000000000 --- a/utils/wxPython/modules/stubs/README +++ /dev/null @@ -1,21 +0,0 @@ -Aug. 2 1999 Harm van der Heijden - -What's in here: - -Makefile.pre.in - A custom Makefile.pre.in, originally by Robin Dunn as part of the - wxPython source distribution. Intented for separate wxPython - modules, it should require little or no modification for other - module projects. In these modules they are all identical, except - the one for glcanvas (copies gtk/glcanvas from elsewhere) - -Setup.in - A custom Setup.in for building the modules below. It expects to find - the wxPython source dir in the directory specified by WXP_SRCDIR. - All modules are linked agains libwx_pymodule.so, which should - contain the SWIG runtime code and wxPython's helpers.cpp code. - -makefile.vc - Very small makefile (list of variable's really). It has a big - brother, makeinc.vc, in the modules dir which is shared by all - modules and does the real work. diff --git a/utils/wxPython/src/.cvsignore b/utils/wxPython/src/.cvsignore deleted file mode 100644 index 702e2f8e0d..0000000000 --- a/utils/wxPython/src/.cvsignore +++ /dev/null @@ -1,33 +0,0 @@ -.emacs.desktop -Makefile -Makefile.pre -Setup -Setup.in.new -Setup.save -Setup.save -Setup.test -compile.py -config.c -glcanvas.h -glcanvasc.exp -make.bat -makefile.test -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/__init__.py b/utils/wxPython/src/__init__.py deleted file mode 100644 index a1361d24c6..0000000000 --- a/utils/wxPython/src/__init__.py +++ /dev/null @@ -1,19 +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 -#---------------------------------------------------------------------------- - -# ensure the main extension module is loaded, in case the embedded modules -# (such as utils,) are used standalone. This hack should go away soon. -import wxc - -#---------------------------------------------------------------------------- - diff --git a/utils/wxPython/src/_defs.i b/utils/wxPython/src/_defs.i deleted file mode 100644 index 8473d0cc79..0000000000 --- a/utils/wxPython/src/_defs.i +++ /dev/null @@ -1,878 +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 -typedef int wxPrintQuality; - -//--------------------------------------------------------------------------- - -// 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, - wxFRAME_FLOAT_ON_PARENT, - - 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_RICH, - 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, - wxGA_SMOOTH, - 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, - wxTR_MULTIPLE, - wxTR_HAS_VARIABLE_ROW_HEIGHT, - 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, - wxPRINT_QUALITY_HIGH, - wxPRINT_QUALITY_MEDIUM, - wxPRINT_QUALITY_LOW, - wxPRINT_QUALITY_DRAFT, - 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, - - wxPD_AUTO_HIDE, - wxPD_APP_MODAL, - wxPD_CAN_ABORT, - wxPD_ELAPSED_TIME, - wxPD_ESTIMATED_TIME, - wxPD_REMAINING_TIME, - - wxNO_DEFAULT, - wxMENU_TEAROFF, - wxNO_FULL_REPAINT_ON_RESIZE, - -}; - - -// // 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 ; - -typedef enum { - wxDUPLEX_SIMPLEX, // Non-duplex - wxDUPLEX_HORIZONTAL, - wxDUPLEX_VERTICAL -} wxDuplexMode; - - - -#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, - wxEVT_KEY_DOWN, - wxEVT_KEY_UP, - wxEVT_CHAR_HOOK, - - /* - * Scrollbar event identifiers - */ - wxEVT_SCROLL_TOP, - wxEVT_SCROLL_BOTTOM, - wxEVT_SCROLL_LINEUP, - wxEVT_SCROLL_LINEDOWN, - wxEVT_SCROLL_PAGEUP, - wxEVT_SCROLL_PAGEDOWN, - wxEVT_SCROLL_THUMBTRACK, - - /* - * Scrolled Window - */ - wxEVT_SCROLLWIN_TOP, - wxEVT_SCROLLWIN_BOTTOM, - wxEVT_SCROLLWIN_LINEUP, - wxEVT_SCROLLWIN_LINEDOWN, - wxEVT_SCROLLWIN_PAGEUP, - wxEVT_SCROLLWIN_PAGEDOWN, - wxEVT_SCROLLWIN_THUMBTRACK, - - wxEVT_SIZE = wxEVT_FIRST + 200, - wxEVT_MOVE, - wxEVT_CLOSE_WINDOW, - wxEVT_END_SESSION, - wxEVT_QUERY_END_SESSION, - wxEVT_ACTIVATE_APP, - wxEVT_POWER, - 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, - wxEVT_COMMAND_LIST_ITEM_ACTIVATED, - - /* 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, - - /* splitter window */ - wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, - wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, - wxEVT_COMMAND_SPLITTER_UNSPLIT, - wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, - -}; - - - - -//---------------------------------------------------------------------- diff --git a/utils/wxPython/src/_extras.py b/utils/wxPython/src/_extras.py deleted file mode 100644 index 11d9bf2d49..0000000000 --- a/utils/wxPython/src/_extras.py +++ /dev/null @@ -1,701 +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 _checkClassCallback(obj, name): -## try: cb = getattr(obj, name) -## except: pass -## else: obj._addCallback(name, 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_KEY_DOWN(win, func): - win.Connect(-1, -1, wxEVT_KEY_DOWN, func) - -def EVT_KEY_UP(win, func): - win.Connect(-1, -1, wxEVT_KEY_UP, 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) - -def EVT_UPDATE_UI(win, id, func): - win.Connect(id, -1, wxEVT_UPDATE_UI, 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_ACTIVATED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_ACTIVATED, 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) - -#wxSplitterWindow -def EVT_SPLITTER_SASH_POS_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, func) - -def EVT_SPLITTER_SASH_POS_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, func) - -def EVT_SPLITTER_UNSPLIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_UNSPLIT, func) - -def EVT_SPLITTER_DOUBLECLICKED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 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 - -#---------------------------------------------------------------------- -# This helper function will take a wxPython object and convert it to -# another wxPython object type. This will not be able to create objects -# that are derived from wxPython classes by the user, only those that are -# actually part of wxPython and directly corespond to C++ objects. -# -# This is useful in situations where some method returns a generic -# type such as wxWindow, but you know that it is actually some -# derived type such as a wxTextCtrl. You can't call wxTextCtrl specific -# methods on a wxWindow object, but you can use this function to -# create a wxTextCtrl object that will pass the same pointer to -# the C++ code. You use it like this: -# -# textCtrl = wxPyTypeCast(window, "wxTextCtrl") -# -# -# WARNING: Using this function to type cast objects into types that -# they are not is not recommended and is likely to cause your -# program to crash... Hard. -# - -def wxPyTypeCast(obj, typeStr): - if hasattr(obj, "this"): - newPtr = ptrcast(obj.this, typeStr+"_p") - else: - newPtr = ptrcast(obj, typeStr+"_p") - theClass = globals()[typeStr+"Ptr"] - theObj = theClass(newPtr) - theObj.thisown = obj.thisown - return theObj - - -#---------------------------------------------------------------------- - -## 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() - - -#---------------------------------------------------------------------------- -# DO NOT hold any other references to this object. This is how we know when -# to cleanup system resources that wxWin is holding... -__cleanMeUp = __wxPyCleanup() -#---------------------------------------------------------------------------- - - - diff --git a/utils/wxPython/src/cmndlgs.i b/utils/wxPython/src/cmndlgs.i deleted file mode 100644 index 5b51790333..0000000000 --- a/utils/wxPython/src/cmndlgs.i +++ /dev/null @@ -1,230 +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 -%import frames.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 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(); -}; - -//---------------------------------------------------------------------- - -class wxProgressDialog : public wxFrame { -public: - wxProgressDialog(const wxString& title, - const wxString& message, - int maximum = 100, - wxWindow* parent = NULL, - int style = wxPD_AUTO_HIDE | wxPD_APP_MODAL ); - - - bool Update(int value = -1, const char* newmsg = NULL); - void Resume(); -} - -//---------------------------------------------------------------------- diff --git a/utils/wxPython/src/controls.i b/utils/wxPython/src/controls.i deleted file mode 100644 index 86727f10e2..0000000000 --- a/utils/wxPython/src/controls.i +++ /dev/null @@ -1,666 +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 -#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: -#ifdef __WXMSW__ - void Command(wxCommandEvent& event); -#endif - 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 wxChoice { -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); - %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 wxStaticLine : public wxControl { -public: - wxStaticLine( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxPyDefaultPosition, - const wxSize &size = wxPyDefaultSize, - long style = wxLI_HORIZONTAL, - const char* name = "staticLine" ); -}; - - -//---------------------------------------------------------------------- - -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_MASK_STATE, - 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(); -#else - void EditLabel(long item); -#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(); - -}; - - - -%{ -class wxPyTreeItemData : public wxTreeItemData { -public: - wxPyTreeItemData(PyObject* obj = NULL) { - if (obj == NULL) - obj = Py_None; - Py_INCREF(obj); - m_obj = obj; - } - - ~wxPyTreeItemData() { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); -#endif - Py_DECREF(m_obj); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif - } - - 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 wxNotifyEvent { -public: - wxTreeItemId GetItem(); - wxTreeItemId GetOldItem(); - wxPoint GetPoint(); - int GetCode(); - const wxString& GetLabel(); -}; - - -// 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); - - size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE); - - 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 UnselectAll(); - void SelectItem(const wxTreeItemId& item); - void EnsureVisible(const wxTreeItemId& item); - void ScrollTo(const wxTreeItemId& item); -#ifdef __WXMSW__ - wxTextCtrl* EditLabel(const wxTreeItemId& item); - wxTextCtrl* GetEditControl(); - void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); -#else - void EditLabel(const wxTreeItemId& item); -#endif - -// 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_GetNextChild(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 - -//---------------------------------------------------------------------- - - diff --git a/utils/wxPython/src/events.i b/utils/wxPython/src/events.i deleted file mode 100644 index 254b42e63c..0000000000 --- a/utils/wxPython/src/events.i +++ /dev/null @@ -1,314 +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 ba3a8aa788..0000000000 --- a/utils/wxPython/src/gdi.i +++ /dev/null @@ -1,564 +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); - -#ifdef __WXMSW__ -%new wxBitmap* wxBitmapFromData(char* data, long type, - int width, int height, int depth = 1); -#endif - -%{ // 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); - } - -#ifdef __WXMSW__ - wxBitmap* wxBitmapFromData(char* data, long type, - int width, int height, int depth = 1) { - return new wxBitmap((void*)data, type, width, height, depth); - } -#endif -%} - -//--------------------------------------------------------------------------- - -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: - wxIcon(const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); - ~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 DrawCircle(long x, long y, long radius); - 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; - } - } - %name(GetSizeTuple)void GetSize(int* OUTPUT, int* OUTPUT); - wxSize GetSize(); - 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); -#ifdef __WXMSW__ - if (swapPalette) - self->SetPalette(*bitmap.GetPalette()); -#endif - 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 6f9f6446d5..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 - - -%{ -#if defined(SEPARATE) && defined(__WXMSW__) - 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 wxGLCanvas; - -//--------------------------------------------------------------------------- - -class wxGLContext { -public: - wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette = wxNullPalette); - ~wxGLContext(); - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - -#ifdef __WXGTK__ - void SetupPixelFormat(); - void SetupPalette(const wxPalette& palette); - wxPalette CreateDefaultPalette(); - wxPalette* GetPalette(); -#endif - - 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); - -//--------------------------------------------------------------------------- - -%init %{ - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -%} - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- 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 d0c91b877d..0000000000 --- a/utils/wxPython/src/gtk/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -_glcanvas.cpp -helpers.cpp -libpy.c - diff --git a/utils/wxPython/src/gtk/cmndlgs.cpp b/utils/wxPython/src/gtk/cmndlgs.cpp deleted file mode 100644 index 27b7ce125a..0000000000 --- a/utils/wxPython/src/gtk/cmndlgs.cpp +++ /dev/null @@ -1,3019 +0,0 @@ -/* - * FILE : gtk/cmndlgs.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -#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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxColourData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxColourData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourData_GetChooseFull",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourData_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxColourData_GetCustomColour",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxColourData_SetChooseFull",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxColourData_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxColourData_SetCustomColour",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetCustomColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxColourData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxColourDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxColourDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxColourDialog_GetColourData(_swigobj) (_swigobj->GetColourData()) -static PyObject *_wrap_wxColourDialog_GetColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _result; - wxColourDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourDialog_GetColourData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxColourDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxColourDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxColourDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) "Choose a directory"; - char * _arg2 = (char *) ""; - long _arg3 = (long ) 0; - wxPoint * _arg4 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|sslO:new_wxDirDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxDirDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDirDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDirDialog_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxDirDialog_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDirDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_GetPath",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_GetMessage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDirDialog_SetMessage",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDirDialog_SetPath",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) "Choose a file"; - char * _arg2 = (char *) ""; - char * _arg3 = (char *) ""; - char * _arg4 = (char *) "*.*"; - long _arg5 = (long ) 0; - wxPoint * _arg6 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|sssslO:new_wxFileDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFileDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFileDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFileDialog_GetDirectory(_swigobj) (_swigobj->GetDirectory()) -static PyObject *_wrap_wxFileDialog_GetDirectory(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetDirectory",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetFilename",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetFilterIndex",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetMessage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetPath",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetWildcard",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetDirectory",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetFilename",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFileDialog_SetFilterIndex",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetMessage",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetPath",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxFileDialog_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetWildcard",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) wxOK|wxCANCEL|wxCENTRE; - wxPoint * _arg6 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOOO|lO:new_wxSingleChoiceDialog",&_argo0,&_obj1,&_obj2,&_obj4,&_arg5,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSingleChoiceDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSingleChoiceDialog_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSingleChoiceDialog_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSingleChoiceDialog_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSingleChoiceDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) "Input Text"; - char * _arg3 = (char *) ""; - long _arg4 = (long ) wxOK|wxCANCEL|wxCENTRE; - wxPoint * _arg5 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Os|sslO:new_wxTextEntryDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextEntryDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextEntryDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTextEntryDialog_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxTextEntryDialog_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextEntryDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextEntryDialog_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextEntryDialog_SetValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextEntryDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxFontData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxFontData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFontData_EnableEffects",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetAllowSymbols",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFontData_GetChosenFont(_swigobj) (_swigobj->GetChosenFont()) -static PyObject *_wrap_wxFontData_GetChosenFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxFontData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetChosenFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetEnableEffects",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetInitialFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetShowHelp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFontData_SetAllowSymbols",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFontData_SetChosenFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetChosenFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFontData_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetColour. Expected _wxFontData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFontData_SetInitialFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetInitialFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxFontData_SetRange",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFontData_SetShowHelp",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxFontData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxFontDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFontDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFontDialog_GetFontData(_swigobj) (_swigobj->GetFontData()) -static PyObject *_wrap_wxFontDialog_GetFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _result; - wxFontDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontDialog_GetFontData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFontDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxFontDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFontDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -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 = (char *) "Message box"; - long _arg3 = (long ) wxOK|wxCANCEL|wxCENTRE; - wxPoint * _arg4 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Os|slO:new_wxMessageDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMessageDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMessageDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMessageDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxMessageDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMessageDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMessageDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 void *SwigwxProgressDialogTowxFrame(void *ptr) { - wxProgressDialog *src; - wxFrame *dest; - src = (wxProgressDialog *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxProgressDialogTowxWindow(void *ptr) { - wxProgressDialog *src; - wxWindow *dest; - src = (wxProgressDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxProgressDialogTowxEvtHandler(void *ptr) { - wxProgressDialog *src; - wxEvtHandler *dest; - src = (wxProgressDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxProgressDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxProgressDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxProgressDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxProgressDialog * _result; - wxString * _arg0; - wxString * _arg1; - int _arg2 = (int ) 100; - wxWindow * _arg3 = (wxWindow *) NULL; - int _arg4 = (int ) wxPD_AUTO_HIDE|wxPD_APP_MODAL; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO|iOi:new_wxProgressDialog",&_obj0,&_obj1,&_arg2,&_argo3,&_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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxProgressDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxProgressDialog *)new_wxProgressDialog(*_arg0,*_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxProgressDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxProgressDialog_Update(_swigobj,_swigarg0,_swigarg1) (_swigobj->Update(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxProgressDialog_Update(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxProgressDialog * _arg0; - int _arg1 = (int ) -1; - char * _arg2 = (char *) NULL; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|is:wxProgressDialog_Update",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxProgressDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxProgressDialog_Update. Expected _wxProgressDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxProgressDialog_Update(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxProgressDialog_Resume(_swigobj) (_swigobj->Resume()) -static PyObject *_wrap_wxProgressDialog_Resume(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxProgressDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxProgressDialog_Resume",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxProgressDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxProgressDialog_Resume. Expected _wxProgressDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxProgressDialog_Resume(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef cmndlgscMethods[] = { - { "wxProgressDialog_Resume", _wrap_wxProgressDialog_Resume, METH_VARARGS }, - { "wxProgressDialog_Update", _wrap_wxProgressDialog_Update, METH_VARARGS }, - { "new_wxProgressDialog", _wrap_new_wxProgressDialog, METH_VARARGS }, - { "wxMessageDialog_ShowModal", _wrap_wxMessageDialog_ShowModal, METH_VARARGS }, - { "new_wxMessageDialog", _wrap_new_wxMessageDialog, METH_VARARGS }, - { "wxFontDialog_ShowModal", _wrap_wxFontDialog_ShowModal, METH_VARARGS }, - { "wxFontDialog_GetFontData", _wrap_wxFontDialog_GetFontData, METH_VARARGS }, - { "new_wxFontDialog", _wrap_new_wxFontDialog, METH_VARARGS }, - { "wxFontData_SetShowHelp", _wrap_wxFontData_SetShowHelp, METH_VARARGS }, - { "wxFontData_SetRange", _wrap_wxFontData_SetRange, METH_VARARGS }, - { "wxFontData_SetInitialFont", _wrap_wxFontData_SetInitialFont, METH_VARARGS }, - { "wxFontData_SetColour", _wrap_wxFontData_SetColour, METH_VARARGS }, - { "wxFontData_SetChosenFont", _wrap_wxFontData_SetChosenFont, METH_VARARGS }, - { "wxFontData_SetAllowSymbols", _wrap_wxFontData_SetAllowSymbols, METH_VARARGS }, - { "wxFontData_GetShowHelp", _wrap_wxFontData_GetShowHelp, METH_VARARGS }, - { "wxFontData_GetInitialFont", _wrap_wxFontData_GetInitialFont, METH_VARARGS }, - { "wxFontData_GetEnableEffects", _wrap_wxFontData_GetEnableEffects, METH_VARARGS }, - { "wxFontData_GetChosenFont", _wrap_wxFontData_GetChosenFont, METH_VARARGS }, - { "wxFontData_GetColour", _wrap_wxFontData_GetColour, METH_VARARGS }, - { "wxFontData_GetAllowSymbols", _wrap_wxFontData_GetAllowSymbols, METH_VARARGS }, - { "wxFontData_EnableEffects", _wrap_wxFontData_EnableEffects, METH_VARARGS }, - { "delete_wxFontData", _wrap_delete_wxFontData, METH_VARARGS }, - { "new_wxFontData", _wrap_new_wxFontData, METH_VARARGS }, - { "wxTextEntryDialog_ShowModal", _wrap_wxTextEntryDialog_ShowModal, METH_VARARGS }, - { "wxTextEntryDialog_SetValue", _wrap_wxTextEntryDialog_SetValue, METH_VARARGS }, - { "wxTextEntryDialog_GetValue", _wrap_wxTextEntryDialog_GetValue, METH_VARARGS }, - { "new_wxTextEntryDialog", _wrap_new_wxTextEntryDialog, METH_VARARGS }, - { "wxSingleChoiceDialog_ShowModal", _wrap_wxSingleChoiceDialog_ShowModal, METH_VARARGS }, - { "wxSingleChoiceDialog_SetSelection", _wrap_wxSingleChoiceDialog_SetSelection, METH_VARARGS }, - { "wxSingleChoiceDialog_GetStringSelection", _wrap_wxSingleChoiceDialog_GetStringSelection, METH_VARARGS }, - { "wxSingleChoiceDialog_GetSelection", _wrap_wxSingleChoiceDialog_GetSelection, METH_VARARGS }, - { "new_wxSingleChoiceDialog", _wrap_new_wxSingleChoiceDialog, METH_VARARGS }, - { "wxFileDialog_ShowModal", _wrap_wxFileDialog_ShowModal, METH_VARARGS }, - { "wxFileDialog_SetWildcard", _wrap_wxFileDialog_SetWildcard, METH_VARARGS }, - { "wxFileDialog_SetStyle", _wrap_wxFileDialog_SetStyle, METH_VARARGS }, - { "wxFileDialog_SetPath", _wrap_wxFileDialog_SetPath, METH_VARARGS }, - { "wxFileDialog_SetMessage", _wrap_wxFileDialog_SetMessage, METH_VARARGS }, - { "wxFileDialog_SetFilterIndex", _wrap_wxFileDialog_SetFilterIndex, METH_VARARGS }, - { "wxFileDialog_SetFilename", _wrap_wxFileDialog_SetFilename, METH_VARARGS }, - { "wxFileDialog_SetDirectory", _wrap_wxFileDialog_SetDirectory, METH_VARARGS }, - { "wxFileDialog_GetWildcard", _wrap_wxFileDialog_GetWildcard, METH_VARARGS }, - { "wxFileDialog_GetStyle", _wrap_wxFileDialog_GetStyle, METH_VARARGS }, - { "wxFileDialog_GetPath", _wrap_wxFileDialog_GetPath, METH_VARARGS }, - { "wxFileDialog_GetMessage", _wrap_wxFileDialog_GetMessage, METH_VARARGS }, - { "wxFileDialog_GetFilterIndex", _wrap_wxFileDialog_GetFilterIndex, METH_VARARGS }, - { "wxFileDialog_GetFilename", _wrap_wxFileDialog_GetFilename, METH_VARARGS }, - { "wxFileDialog_GetDirectory", _wrap_wxFileDialog_GetDirectory, METH_VARARGS }, - { "new_wxFileDialog", _wrap_new_wxFileDialog, METH_VARARGS }, - { "wxDirDialog_ShowModal", _wrap_wxDirDialog_ShowModal, METH_VARARGS }, - { "wxDirDialog_SetPath", _wrap_wxDirDialog_SetPath, METH_VARARGS }, - { "wxDirDialog_SetMessage", _wrap_wxDirDialog_SetMessage, METH_VARARGS }, - { "wxDirDialog_GetStyle", _wrap_wxDirDialog_GetStyle, METH_VARARGS }, - { "wxDirDialog_GetMessage", _wrap_wxDirDialog_GetMessage, METH_VARARGS }, - { "wxDirDialog_GetPath", _wrap_wxDirDialog_GetPath, METH_VARARGS }, - { "new_wxDirDialog", _wrap_new_wxDirDialog, METH_VARARGS }, - { "wxColourDialog_ShowModal", _wrap_wxColourDialog_ShowModal, METH_VARARGS }, - { "wxColourDialog_GetColourData", _wrap_wxColourDialog_GetColourData, METH_VARARGS }, - { "new_wxColourDialog", _wrap_new_wxColourDialog, METH_VARARGS }, - { "wxColourData_SetCustomColour", _wrap_wxColourData_SetCustomColour, METH_VARARGS }, - { "wxColourData_SetColour", _wrap_wxColourData_SetColour, METH_VARARGS }, - { "wxColourData_SetChooseFull", _wrap_wxColourData_SetChooseFull, METH_VARARGS }, - { "wxColourData_GetCustomColour", _wrap_wxColourData_GetCustomColour, METH_VARARGS }, - { "wxColourData_GetColour", _wrap_wxColourData_GetColour, METH_VARARGS }, - { "wxColourData_GetChooseFull", _wrap_wxColourData_GetChooseFull, METH_VARARGS }, - { "delete_wxColourData", _wrap_delete_wxColourData, METH_VARARGS }, - { "new_wxColourData", _wrap_new_wxColourData, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_class_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_class_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_class_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_class_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_class_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_class_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_class_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_class_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_class_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_class_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_class_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_class_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_class_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_class_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_class_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_class_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_class_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_class_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_class_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_class_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_class_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_class_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_class_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_class_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_class_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_class_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_class_wxWindow","_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_class_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_class_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_class_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_class_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_class_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_class_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_class_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_class_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_class_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_class_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_class_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_class_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_class_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_class_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_wxFrame","_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_wxWindow","_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_class_wxFrame","_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/cmndlgs.py b/utils/wxPython/src/gtk/cmndlgs.py deleted file mode 100644 index 52e107501a..0000000000 --- a/utils/wxPython/src/gtk/cmndlgs.py +++ /dev/null @@ -1,347 +0,0 @@ -# This file was created automatically by SWIG. -import cmndlgsc - -from misc import * - -from gdi import * - -from windows import * - -from frames import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxColourDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,cmndlgsc=cmndlgsc): - if self.thisown == 1 : - cmndlgsc.delete_wxColourData(self) - def GetChooseFull(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_GetChooseFull,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetCustomColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_GetCustomColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def SetChooseFull(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_SetChooseFull,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_SetColour,(self,) + _args, _kwargs) - return val - def SetCustomColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_SetCustomColour,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxColourData(wxColourDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxColourData,_args,_kwargs) - self.thisown = 1 - - - - -class wxColourDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColourData(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourDialog_GetColourData,(self,) + _args, _kwargs) - if val: val = wxColourDataPtr(val) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxColourDialog(wxColourDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxColourDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxDirDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_GetPath,(self,) + _args, _kwargs) - return val - def GetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_GetMessage,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_GetStyle,(self,) + _args, _kwargs) - return val - def SetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_SetMessage,(self,) + _args, _kwargs) - return val - def SetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_SetPath,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxDirDialog(wxDirDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxDirDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFileDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetDirectory(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetDirectory,(self,) + _args, _kwargs) - return val - def GetFilename(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetFilename,(self,) + _args, _kwargs) - return val - def GetFilterIndex(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetFilterIndex,(self,) + _args, _kwargs) - return val - def GetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetMessage,(self,) + _args, _kwargs) - return val - def GetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetPath,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetStyle,(self,) + _args, _kwargs) - return val - def GetWildcard(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetWildcard,(self,) + _args, _kwargs) - return val - def SetDirectory(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetDirectory,(self,) + _args, _kwargs) - return val - def SetFilename(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetFilename,(self,) + _args, _kwargs) - return val - def SetFilterIndex(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetFilterIndex,(self,) + _args, _kwargs) - return val - def SetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetMessage,(self,) + _args, _kwargs) - return val - def SetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetPath,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetStyle,(self,) + _args, _kwargs) - return val - def SetWildcard(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetWildcard,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFileDialog(wxFileDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxFileDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxSingleChoiceDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_GetSelection,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_GetStringSelection,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_SetSelection,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSingleChoiceDialog(wxSingleChoiceDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxSingleChoiceDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxTextEntryDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxTextEntryDialog_GetValue,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxTextEntryDialog_SetValue,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxTextEntryDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTextEntryDialog(wxTextEntryDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxTextEntryDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFontDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,cmndlgsc=cmndlgsc): - if self.thisown == 1 : - cmndlgsc.delete_wxFontData(self) - def EnableEffects(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_EnableEffects,(self,) + _args, _kwargs) - return val - def GetAllowSymbols(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetAllowSymbols,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetChosenFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetChosenFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) ; val.thisown = 1 - return val - def GetEnableEffects(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetEnableEffects,(self,) + _args, _kwargs) - return val - def GetInitialFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetInitialFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) ; val.thisown = 1 - return val - def GetShowHelp(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetShowHelp,(self,) + _args, _kwargs) - return val - def SetAllowSymbols(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetAllowSymbols,(self,) + _args, _kwargs) - return val - def SetChosenFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetChosenFont,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetColour,(self,) + _args, _kwargs) - return val - def SetInitialFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetInitialFont,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetRange,(self,) + _args, _kwargs) - return val - def SetShowHelp(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetShowHelp,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFontData(wxFontDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxFontData,_args,_kwargs) - self.thisown = 1 - - - - -class wxFontDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFontData(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontDialog_GetFontData,(self,) + _args, _kwargs) - if val: val = wxFontDataPtr(val) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFontDialog(wxFontDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxFontDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxMessageDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxMessageDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMessageDialog(wxMessageDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxMessageDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxProgressDialogPtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Update(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxProgressDialog_Update,(self,) + _args, _kwargs) - return val - def Resume(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxProgressDialog_Resume,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxProgressDialog(wxProgressDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxProgressDialog,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- 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 d9e3b29060..0000000000 --- a/utils/wxPython/src/gtk/controls.cpp +++ /dev/null @@ -1,7253 +0,0 @@ -/* - * FILE : gtk/controls.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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 -#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 -#ifdef __cplusplus -extern "C" { -#endif -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_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxControl_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxControl * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxControl_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxControl_SetLabel",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "button"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxButton",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxButton_SetDefault",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxBU_AUTODRAW; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "button"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxBitmapButton",&_argo0,&_arg1,&_argo2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxBitmapButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxBitmapButton. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxBitmapButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxBitmapButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmapButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapLabel(_swigobj) (_swigobj->GetBitmapLabel()) -static PyObject *_wrap_wxBitmapButton_GetBitmapLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapDisabled(_swigobj) (_swigobj->GetBitmapDisabled()) -static PyObject *_wrap_wxBitmapButton_GetBitmapDisabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapDisabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapFocus(_swigobj) (_swigobj->GetBitmapFocus()) -static PyObject *_wrap_wxBitmapButton_GetBitmapFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapFocus",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapSelected(_swigobj) (_swigobj->GetBitmapSelected()) -static PyObject *_wrap_wxBitmapButton_GetBitmapSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapSelected",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapDisabled",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapDisabled. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapFocus",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapFocus. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapSelected",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapSelected. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapLabel",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapLabel. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "checkBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxCheckBox",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxCheckBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxCheckBox. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCheckBox_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCheckBox_SetValue",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - int _arg4 = (int ) 0; - wxString * _arg5 = (wxString *) NULL; - long _arg6 = (long ) 0; - wxValidator * _arg7 = (wxValidator *) &wxPyDefaultValidator; - char * _arg8 = (char *) "choice"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj5 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOOlOs:new_wxChoice",&_argo0,&_arg1,&_argo2,&_argo3,&_obj5,&_arg6,&_argo7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxChoice. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxChoice. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxChoice_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxChoice_Append",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxChoice_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_GetColumns",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxChoice_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxChoice_SetColumns",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxChoice_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxChoice_SetStringSelection",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 *SwigwxComboBoxTowxChoice(void *ptr) { - wxComboBox *src; - wxChoice *dest; - src = (wxComboBox *) ptr; - dest = (wxChoice *) src; - return (void *) dest; -} - -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 = (char *) ""; - wxPoint * _arg3 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - int _arg5 = (int ) 0; - wxString * _arg6 = (wxString *) NULL; - long _arg7 = (long ) 0; - wxValidator * _arg8 = (wxValidator *) &wxPyDefaultValidator; - char * _arg9 = (char *) "comboBox"; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _obj6 = 0; - PyObject * _argo8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|sOOOlOs:new_wxComboBox",&_argo0,&_arg1,&_arg2,&_argo3,&_argo4,&_obj6,&_arg7,&_argo8,&_arg9)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxComboBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxComboBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxComboBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxComboBox_Append",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Copy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Cut",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxComboBox_Delete",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxComboBox_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetInsertionPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetLastPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxComboBox_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Paste",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllO:wxComboBox_Replace",&_argo0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxComboBox_Remove",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxComboBox_SetInsertionPoint",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_SetInsertionPointEnd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxComboBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxComboBox_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetSelection. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetSelection(_arg0,_arg1); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxComboBox_SetMark",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxComboBox_SetValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxGA_HORIZONTAL; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "gauge"; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|OOlOs:new_wxGauge",&_argo0,&_arg1,&_arg2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGauge. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGauge. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxGauge. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGauge_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGauge_GetBezelFace(_swigobj) (_swigobj->GetBezelFace()) -static PyObject *_wrap_wxGauge_GetBezelFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetBezelFace",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetRange",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetShadowWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetBezelFace",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetRange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetShadowWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetValue",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - char * _arg6 = (char *) "staticBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxStaticBox",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static void *SwigwxStaticLineTowxControl(void *ptr) { - wxStaticLine *src; - wxControl *dest; - src = (wxStaticLine *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticLineTowxWindow(void *ptr) { - wxStaticLine *src; - wxWindow *dest; - src = (wxStaticLine *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticLineTowxEvtHandler(void *ptr) { - wxStaticLine *src; - wxEvtHandler *dest; - src = (wxStaticLine *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxStaticLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxStaticLine(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticLine * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxLI_HORIZONTAL; - char * _arg5 = (char *) "staticLine"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxStaticLine",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticLine. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStaticLine. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticLine. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticLine *)new_wxStaticLine(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticLine_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - char * _arg6 = (char *) "staticText"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxStaticText",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticText. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticText_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStaticText_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStaticText_SetLabel",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - int _arg4; - wxString * _arg5 = (wxString *) NULL; - long _arg6 = (long ) 0; - wxValidator * _arg7 = (wxValidator *) &wxPyDefaultValidator; - char * _arg8 = (char *) "listBox"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj5 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOOlOs:new_wxListBox",&_argo0,&_arg1,&_argo2,&_argo3,&_obj5,&_arg6,&_argo7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_Append",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_Delete",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_Deselect",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_Selected",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_Set",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_SetFirstItem",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_SetFirstItemStr",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|i:wxListBox_SetSelection",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxListBox_SetString",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxListBox_SetStringSelection",&_argo0,&_obj1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - int _arg4 = (int ) 0; - wxString * _arg5 = (wxString *) NULL; - long _arg6 = (long ) 0; - wxValidator * _arg7 = (wxValidator *) &wxPyDefaultValidator; - char * _arg8 = (char *) "listBox"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj5 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOOlOs:new_wxCheckListBox",&_argo0,&_arg1,&_argo2,&_argo3,&_obj5,&_arg6,&_argo7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxCheckListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxCheckListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCheckListBox_IsChecked",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|i:wxCheckListBox_Check",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCheckListBox_GetItemHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) ""; - wxPoint * _arg3 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "text"; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|sOOlOs:new_wxTextCtrl",&_argo0,&_arg1,&_arg2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTextCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxTextCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTextCtrl_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxTextCtrl_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Copy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Cut",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_DiscardEdits",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetInsertionPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetLastPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_GetLineLength",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_GetLineText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetNumberOfLines",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_IsModified",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_LoadFile",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Paste",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_PositionToXY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxTextCtrl_Remove",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllO:wxTextCtrl_Replace",&_argo0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_SaveFile",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxTextCtrl_SetEditable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_SetInsertionPoint",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_SetInsertionPointEnd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxTextCtrl_SetSelection",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_SetValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_ShowPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_WriteText",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_AppendText",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxTextCtrl_XYToPosition",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanCopy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanCut",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanPaste",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanRedo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanUndo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_IsEditable",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxSB_HORIZONTAL; - wxValidator * _arg5 = (wxValidator *) &wxPyDefaultValidator; - char * _arg6 = (char *) "scrollBar"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOlOs:new_wxScrollBar",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_argo5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrollBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrollBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxScrollBar. Expected _wxSize_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxScrollBar_GetRange(_swigobj) (_swigobj->GetRange()) -static PyObject *_wrap_wxScrollBar_GetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetRange",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetPageSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetThumbPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetThumbSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxScrollBar_SetThumbPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool5 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|i:wxScrollBar_SetScrollbar",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxSP_HORIZONTAL; - char * _arg5 = (char *) "spinButton"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOls:new_wxSpinButton",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSpinButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSpinButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSpinButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSpinButton_GetMax(_swigobj) (_swigobj->GetMax()) -static PyObject *_wrap_wxSpinButton_GetMax(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSpinButton_GetMax",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSpinButton_GetMin",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSpinButton_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSpinButton_SetRange",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSpinButton_SetValue",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - char * _arg6 = (char *) "staticBitmap"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxStaticBitmap",&_argo0,&_arg1,&_argo2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticBitmap. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStaticBitmap. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBitmap. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxStaticBitmap_GetBitmap(_swigobj) (_swigobj->GetBitmap()) -static PyObject *_wrap_wxStaticBitmap_GetBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxStaticBitmap * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStaticBitmap_GetBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStaticBitmap_SetBitmap",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_SetBitmap. Expected _wxStaticBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} - -#define wxStaticBitmap_SetIcon(_swigobj,_swigarg0) (_swigobj->SetIcon(_swigarg0)) -static PyObject *_wrap_wxStaticBitmap_SetIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBitmap * _arg0; - wxIcon * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStaticBitmap_SetIcon",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_SetIcon. Expected _wxStaticBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStaticBitmap_SetIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStaticBitmap_SetIcon(_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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - int _arg5 = (int ) 0; - wxString * _arg6 = (wxString *) NULL; - int _arg7 = (int ) 0; - long _arg8 = (long ) wxRA_HORIZONTAL; - wxValidator * _arg9 = (wxValidator *) &wxPyDefaultValidator; - char * _arg10 = (char *) "radioBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _obj6 = 0; - PyObject * _argo9 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOOilOs:new_wxRadioBox",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_obj6,&_arg7,&_arg8,&_argo9,&_arg10)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 (_argo9) { - if (_argo9 == Py_None) { _arg9 = NULL; } - else if (SWIG_GetPtrObj(_argo9,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxRadioBox_EnableItem",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRadioBox_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_GetItemLabel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioBox_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioBox_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioBox_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxRadioBox_SetItemLabel",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRadioBox_SetStringSelection",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_Show",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxRadioBox_ShowItem",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "radioButton"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxRadioButton",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxRadioButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioButton_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioButton_SetValue",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg6 = (wxSize *) &wxPyDefaultSize; - long _arg7 = (long ) wxSL_HORIZONTAL; - wxValidator * _arg8 = (wxValidator *) &wxPyDefaultValidator; - char * _arg9 = (char *) "slider"; - PyObject * _argo0 = 0; - PyObject * _argo5 = 0; - PyObject * _argo6 = 0; - PyObject * _argo8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|OOlOs:new_wxSlider",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5,&_argo6,&_arg7,&_argo8,&_arg9)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSlider. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxSlider. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxSlider. Expected _wxSize_p."); - return NULL; - } - } - if (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSlider_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSlider_ClearSel(_swigobj) (_swigobj->ClearSel()) -static PyObject *_wrap_wxSlider_ClearSel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_ClearSel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_ClearTicks",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetLineSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetMax",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetMin",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetPageSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetSelEnd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetSelStart",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetThumbLength",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetTickFreq",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSlider_SetRange",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSlider_SetTickFreq",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetLineSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetPageSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSlider_SetSelection",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetThumbLength",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetTick",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetValue",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxSlider_SetTick", _wrap_wxSlider_SetTick, METH_VARARGS }, - { "wxSlider_SetThumbLength", _wrap_wxSlider_SetThumbLength, METH_VARARGS }, - { "wxSlider_SetSelection", _wrap_wxSlider_SetSelection, METH_VARARGS }, - { "wxSlider_SetPageSize", _wrap_wxSlider_SetPageSize, METH_VARARGS }, - { "wxSlider_SetLineSize", _wrap_wxSlider_SetLineSize, METH_VARARGS }, - { "wxSlider_SetTickFreq", _wrap_wxSlider_SetTickFreq, METH_VARARGS }, - { "wxSlider_SetRange", _wrap_wxSlider_SetRange, METH_VARARGS }, - { "wxSlider_GetValue", _wrap_wxSlider_GetValue, METH_VARARGS }, - { "wxSlider_GetTickFreq", _wrap_wxSlider_GetTickFreq, METH_VARARGS }, - { "wxSlider_GetThumbLength", _wrap_wxSlider_GetThumbLength, METH_VARARGS }, - { "wxSlider_GetSelStart", _wrap_wxSlider_GetSelStart, METH_VARARGS }, - { "wxSlider_GetSelEnd", _wrap_wxSlider_GetSelEnd, METH_VARARGS }, - { "wxSlider_GetPageSize", _wrap_wxSlider_GetPageSize, METH_VARARGS }, - { "wxSlider_GetMin", _wrap_wxSlider_GetMin, METH_VARARGS }, - { "wxSlider_GetMax", _wrap_wxSlider_GetMax, METH_VARARGS }, - { "wxSlider_GetLineSize", _wrap_wxSlider_GetLineSize, METH_VARARGS }, - { "wxSlider_ClearTicks", _wrap_wxSlider_ClearTicks, METH_VARARGS }, - { "wxSlider_ClearSel", _wrap_wxSlider_ClearSel, METH_VARARGS }, - { "new_wxSlider", _wrap_new_wxSlider, METH_VARARGS }, - { "wxRadioButton_SetValue", _wrap_wxRadioButton_SetValue, METH_VARARGS }, - { "wxRadioButton_GetValue", _wrap_wxRadioButton_GetValue, METH_VARARGS }, - { "new_wxRadioButton", _wrap_new_wxRadioButton, METH_VARARGS }, - { "wxRadioBox_ShowItem", _wrap_wxRadioBox_ShowItem, METH_VARARGS }, - { "wxRadioBox_Show", _wrap_wxRadioBox_Show, METH_VARARGS }, - { "wxRadioBox_SetStringSelection", _wrap_wxRadioBox_SetStringSelection, METH_VARARGS }, - { "wxRadioBox_SetSelection", _wrap_wxRadioBox_SetSelection, METH_VARARGS }, - { "wxRadioBox_SetItemLabel", _wrap_wxRadioBox_SetItemLabel, METH_VARARGS }, - { "wxRadioBox_Number", _wrap_wxRadioBox_Number, METH_VARARGS }, - { "wxRadioBox_GetStringSelection", _wrap_wxRadioBox_GetStringSelection, METH_VARARGS }, - { "wxRadioBox_GetString", _wrap_wxRadioBox_GetString, METH_VARARGS }, - { "wxRadioBox_GetSelection", _wrap_wxRadioBox_GetSelection, METH_VARARGS }, - { "wxRadioBox_GetItemLabel", _wrap_wxRadioBox_GetItemLabel, METH_VARARGS }, - { "wxRadioBox_FindString", _wrap_wxRadioBox_FindString, METH_VARARGS }, - { "wxRadioBox_EnableItem", _wrap_wxRadioBox_EnableItem, METH_VARARGS }, - { "wxRadioBox_Enable", _wrap_wxRadioBox_Enable, METH_VARARGS }, - { "new_wxRadioBox", _wrap_new_wxRadioBox, METH_VARARGS }, - { "wxStaticBitmap_SetIcon", _wrap_wxStaticBitmap_SetIcon, METH_VARARGS }, - { "wxStaticBitmap_SetBitmap", _wrap_wxStaticBitmap_SetBitmap, METH_VARARGS }, - { "wxStaticBitmap_GetBitmap", _wrap_wxStaticBitmap_GetBitmap, METH_VARARGS }, - { "new_wxStaticBitmap", _wrap_new_wxStaticBitmap, METH_VARARGS }, - { "wxSpinButton_SetValue", _wrap_wxSpinButton_SetValue, METH_VARARGS }, - { "wxSpinButton_SetRange", _wrap_wxSpinButton_SetRange, METH_VARARGS }, - { "wxSpinButton_GetValue", _wrap_wxSpinButton_GetValue, METH_VARARGS }, - { "wxSpinButton_GetMin", _wrap_wxSpinButton_GetMin, METH_VARARGS }, - { "wxSpinButton_GetMax", _wrap_wxSpinButton_GetMax, METH_VARARGS }, - { "new_wxSpinButton", _wrap_new_wxSpinButton, METH_VARARGS }, - { "wxScrollBar_SetScrollbar", _wrap_wxScrollBar_SetScrollbar, METH_VARARGS }, - { "wxScrollBar_SetThumbPosition", _wrap_wxScrollBar_SetThumbPosition, METH_VARARGS }, - { "wxScrollBar_GetThumbSize", _wrap_wxScrollBar_GetThumbSize, METH_VARARGS }, - { "wxScrollBar_GetThumbPosition", _wrap_wxScrollBar_GetThumbPosition, METH_VARARGS }, - { "wxScrollBar_GetPageSize", _wrap_wxScrollBar_GetPageSize, METH_VARARGS }, - { "wxScrollBar_GetRange", _wrap_wxScrollBar_GetRange, METH_VARARGS }, - { "new_wxScrollBar", _wrap_new_wxScrollBar, METH_VARARGS }, - { "wxTextCtrl_IsEditable", _wrap_wxTextCtrl_IsEditable, METH_VARARGS }, - { "wxTextCtrl_GetSelection", _wrap_wxTextCtrl_GetSelection, METH_VARARGS }, - { "wxTextCtrl_CanUndo", _wrap_wxTextCtrl_CanUndo, METH_VARARGS }, - { "wxTextCtrl_CanRedo", _wrap_wxTextCtrl_CanRedo, METH_VARARGS }, - { "wxTextCtrl_CanPaste", _wrap_wxTextCtrl_CanPaste, METH_VARARGS }, - { "wxTextCtrl_CanCut", _wrap_wxTextCtrl_CanCut, METH_VARARGS }, - { "wxTextCtrl_CanCopy", _wrap_wxTextCtrl_CanCopy, METH_VARARGS }, - { "wxTextCtrl_XYToPosition", _wrap_wxTextCtrl_XYToPosition, METH_VARARGS }, - { "wxTextCtrl_AppendText", _wrap_wxTextCtrl_AppendText, METH_VARARGS }, - { "wxTextCtrl_WriteText", _wrap_wxTextCtrl_WriteText, METH_VARARGS }, - { "wxTextCtrl_ShowPosition", _wrap_wxTextCtrl_ShowPosition, METH_VARARGS }, - { "wxTextCtrl_SetValue", _wrap_wxTextCtrl_SetValue, METH_VARARGS }, - { "wxTextCtrl_SetSelection", _wrap_wxTextCtrl_SetSelection, METH_VARARGS }, - { "wxTextCtrl_SetInsertionPointEnd", _wrap_wxTextCtrl_SetInsertionPointEnd, METH_VARARGS }, - { "wxTextCtrl_SetInsertionPoint", _wrap_wxTextCtrl_SetInsertionPoint, METH_VARARGS }, - { "wxTextCtrl_SetEditable", _wrap_wxTextCtrl_SetEditable, METH_VARARGS }, - { "wxTextCtrl_SaveFile", _wrap_wxTextCtrl_SaveFile, METH_VARARGS }, - { "wxTextCtrl_Replace", _wrap_wxTextCtrl_Replace, METH_VARARGS }, - { "wxTextCtrl_Remove", _wrap_wxTextCtrl_Remove, METH_VARARGS }, - { "wxTextCtrl_PositionToXY", _wrap_wxTextCtrl_PositionToXY, METH_VARARGS }, - { "wxTextCtrl_Paste", _wrap_wxTextCtrl_Paste, METH_VARARGS }, - { "wxTextCtrl_LoadFile", _wrap_wxTextCtrl_LoadFile, METH_VARARGS }, - { "wxTextCtrl_IsModified", _wrap_wxTextCtrl_IsModified, METH_VARARGS }, - { "wxTextCtrl_GetValue", _wrap_wxTextCtrl_GetValue, METH_VARARGS }, - { "wxTextCtrl_GetNumberOfLines", _wrap_wxTextCtrl_GetNumberOfLines, METH_VARARGS }, - { "wxTextCtrl_GetLineText", _wrap_wxTextCtrl_GetLineText, METH_VARARGS }, - { "wxTextCtrl_GetLineLength", _wrap_wxTextCtrl_GetLineLength, METH_VARARGS }, - { "wxTextCtrl_GetLastPosition", _wrap_wxTextCtrl_GetLastPosition, METH_VARARGS }, - { "wxTextCtrl_GetInsertionPoint", _wrap_wxTextCtrl_GetInsertionPoint, METH_VARARGS }, - { "wxTextCtrl_DiscardEdits", _wrap_wxTextCtrl_DiscardEdits, METH_VARARGS }, - { "wxTextCtrl_Cut", _wrap_wxTextCtrl_Cut, METH_VARARGS }, - { "wxTextCtrl_Copy", _wrap_wxTextCtrl_Copy, METH_VARARGS }, - { "wxTextCtrl_Clear", _wrap_wxTextCtrl_Clear, METH_VARARGS }, - { "new_wxTextCtrl", _wrap_new_wxTextCtrl, METH_VARARGS }, - { "wxCheckListBox_GetItemHeight", _wrap_wxCheckListBox_GetItemHeight, METH_VARARGS }, - { "wxCheckListBox_Check", _wrap_wxCheckListBox_Check, METH_VARARGS }, - { "wxCheckListBox_IsChecked", _wrap_wxCheckListBox_IsChecked, METH_VARARGS }, - { "new_wxCheckListBox", _wrap_new_wxCheckListBox, METH_VARARGS }, - { "wxListBox_SetStringSelection", _wrap_wxListBox_SetStringSelection, METH_VARARGS }, - { "wxListBox_SetString", _wrap_wxListBox_SetString, METH_VARARGS }, - { "wxListBox_SetSelection", _wrap_wxListBox_SetSelection, METH_VARARGS }, - { "wxListBox_SetFirstItemStr", _wrap_wxListBox_SetFirstItemStr, METH_VARARGS }, - { "wxListBox_SetFirstItem", _wrap_wxListBox_SetFirstItem, METH_VARARGS }, - { "wxListBox_Set", _wrap_wxListBox_Set, METH_VARARGS }, - { "wxListBox_Selected", _wrap_wxListBox_Selected, METH_VARARGS }, - { "wxListBox_Number", _wrap_wxListBox_Number, METH_VARARGS }, - { "wxListBox_GetStringSelection", _wrap_wxListBox_GetStringSelection, METH_VARARGS }, - { "wxListBox_GetString", _wrap_wxListBox_GetString, METH_VARARGS }, - { "wxListBox_GetSelections", _wrap_wxListBox_GetSelections, METH_VARARGS }, - { "wxListBox_GetSelection", _wrap_wxListBox_GetSelection, METH_VARARGS }, - { "wxListBox_FindString", _wrap_wxListBox_FindString, METH_VARARGS }, - { "wxListBox_Deselect", _wrap_wxListBox_Deselect, METH_VARARGS }, - { "wxListBox_Delete", _wrap_wxListBox_Delete, METH_VARARGS }, - { "wxListBox_Clear", _wrap_wxListBox_Clear, METH_VARARGS }, - { "wxListBox_Append", _wrap_wxListBox_Append, METH_VARARGS }, - { "new_wxListBox", _wrap_new_wxListBox, METH_VARARGS }, - { "wxStaticText_SetLabel", _wrap_wxStaticText_SetLabel, METH_VARARGS }, - { "wxStaticText_GetLabel", _wrap_wxStaticText_GetLabel, METH_VARARGS }, - { "new_wxStaticText", _wrap_new_wxStaticText, METH_VARARGS }, - { "new_wxStaticLine", _wrap_new_wxStaticLine, METH_VARARGS }, - { "new_wxStaticBox", _wrap_new_wxStaticBox, METH_VARARGS }, - { "wxGauge_SetValue", _wrap_wxGauge_SetValue, METH_VARARGS }, - { "wxGauge_SetShadowWidth", _wrap_wxGauge_SetShadowWidth, METH_VARARGS }, - { "wxGauge_SetRange", _wrap_wxGauge_SetRange, METH_VARARGS }, - { "wxGauge_SetBezelFace", _wrap_wxGauge_SetBezelFace, METH_VARARGS }, - { "wxGauge_GetValue", _wrap_wxGauge_GetValue, METH_VARARGS }, - { "wxGauge_GetShadowWidth", _wrap_wxGauge_GetShadowWidth, METH_VARARGS }, - { "wxGauge_GetRange", _wrap_wxGauge_GetRange, METH_VARARGS }, - { "wxGauge_GetBezelFace", _wrap_wxGauge_GetBezelFace, METH_VARARGS }, - { "new_wxGauge", _wrap_new_wxGauge, METH_VARARGS }, - { "wxComboBox_SetValue", _wrap_wxComboBox_SetValue, METH_VARARGS }, - { "wxComboBox_SetMark", _wrap_wxComboBox_SetMark, METH_VARARGS }, - { "wxComboBox_SetSelection", _wrap_wxComboBox_SetSelection, METH_VARARGS }, - { "wxComboBox_SetInsertionPointEnd", _wrap_wxComboBox_SetInsertionPointEnd, METH_VARARGS }, - { "wxComboBox_SetInsertionPoint", _wrap_wxComboBox_SetInsertionPoint, METH_VARARGS }, - { "wxComboBox_Remove", _wrap_wxComboBox_Remove, METH_VARARGS }, - { "wxComboBox_Replace", _wrap_wxComboBox_Replace, METH_VARARGS }, - { "wxComboBox_Paste", _wrap_wxComboBox_Paste, METH_VARARGS }, - { "wxComboBox_Number", _wrap_wxComboBox_Number, METH_VARARGS }, - { "wxComboBox_GetValue", _wrap_wxComboBox_GetValue, METH_VARARGS }, - { "wxComboBox_GetStringSelection", _wrap_wxComboBox_GetStringSelection, METH_VARARGS }, - { "wxComboBox_GetString", _wrap_wxComboBox_GetString, METH_VARARGS }, - { "wxComboBox_GetSelection", _wrap_wxComboBox_GetSelection, METH_VARARGS }, - { "wxComboBox_GetLastPosition", _wrap_wxComboBox_GetLastPosition, METH_VARARGS }, - { "wxComboBox_GetInsertionPoint", _wrap_wxComboBox_GetInsertionPoint, METH_VARARGS }, - { "wxComboBox_FindString", _wrap_wxComboBox_FindString, METH_VARARGS }, - { "wxComboBox_Delete", _wrap_wxComboBox_Delete, METH_VARARGS }, - { "wxComboBox_Cut", _wrap_wxComboBox_Cut, METH_VARARGS }, - { "wxComboBox_Copy", _wrap_wxComboBox_Copy, METH_VARARGS }, - { "wxComboBox_Clear", _wrap_wxComboBox_Clear, METH_VARARGS }, - { "wxComboBox_Append", _wrap_wxComboBox_Append, METH_VARARGS }, - { "new_wxComboBox", _wrap_new_wxComboBox, METH_VARARGS }, - { "wxChoice_SetStringSelection", _wrap_wxChoice_SetStringSelection, METH_VARARGS }, - { "wxChoice_SetSelection", _wrap_wxChoice_SetSelection, METH_VARARGS }, - { "wxChoice_SetColumns", _wrap_wxChoice_SetColumns, METH_VARARGS }, - { "wxChoice_Number", _wrap_wxChoice_Number, METH_VARARGS }, - { "wxChoice_GetStringSelection", _wrap_wxChoice_GetStringSelection, METH_VARARGS }, - { "wxChoice_GetString", _wrap_wxChoice_GetString, METH_VARARGS }, - { "wxChoice_GetSelection", _wrap_wxChoice_GetSelection, METH_VARARGS }, - { "wxChoice_GetColumns", _wrap_wxChoice_GetColumns, METH_VARARGS }, - { "wxChoice_FindString", _wrap_wxChoice_FindString, METH_VARARGS }, - { "wxChoice_Clear", _wrap_wxChoice_Clear, METH_VARARGS }, - { "wxChoice_Append", _wrap_wxChoice_Append, METH_VARARGS }, - { "new_wxChoice", _wrap_new_wxChoice, METH_VARARGS }, - { "wxCheckBox_SetValue", _wrap_wxCheckBox_SetValue, METH_VARARGS }, - { "wxCheckBox_GetValue", _wrap_wxCheckBox_GetValue, METH_VARARGS }, - { "new_wxCheckBox", _wrap_new_wxCheckBox, METH_VARARGS }, - { "wxBitmapButton_SetBitmapLabel", _wrap_wxBitmapButton_SetBitmapLabel, METH_VARARGS }, - { "wxBitmapButton_SetBitmapSelected", _wrap_wxBitmapButton_SetBitmapSelected, METH_VARARGS }, - { "wxBitmapButton_SetBitmapFocus", _wrap_wxBitmapButton_SetBitmapFocus, METH_VARARGS }, - { "wxBitmapButton_SetBitmapDisabled", _wrap_wxBitmapButton_SetBitmapDisabled, METH_VARARGS }, - { "wxBitmapButton_GetBitmapSelected", _wrap_wxBitmapButton_GetBitmapSelected, METH_VARARGS }, - { "wxBitmapButton_GetBitmapFocus", _wrap_wxBitmapButton_GetBitmapFocus, METH_VARARGS }, - { "wxBitmapButton_GetBitmapDisabled", _wrap_wxBitmapButton_GetBitmapDisabled, METH_VARARGS }, - { "wxBitmapButton_GetBitmapLabel", _wrap_wxBitmapButton_GetBitmapLabel, METH_VARARGS }, - { "new_wxBitmapButton", _wrap_new_wxBitmapButton, METH_VARARGS }, - { "wxButton_SetDefault", _wrap_wxButton_SetDefault, METH_VARARGS }, - { "new_wxButton", _wrap_new_wxButton, METH_VARARGS }, - { "wxControl_SetLabel", _wrap_wxControl_SetLabel, METH_VARARGS }, - { "wxControl_GetLabel", _wrap_wxControl_GetLabel, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_class_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_class_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_wxChoice","_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_class_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow}, - { "_class_wxWindow","_wxSlider",SwigwxSliderTowxWindow}, - { "_class_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_class_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_class_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_class_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_class_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_class_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_class_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_class_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_class_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_class_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_class_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_class_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_class_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_class_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_class_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow}, - { "_class_wxWindow","_wxListBox",SwigwxListBoxTowxWindow}, - { "_class_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_class_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_class_wxWindow","_class_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_class_wxWindow","_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_class_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_class_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_class_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow}, - { "_class_wxWindow","_wxGauge",SwigwxGaugeTowxWindow}, - { "_class_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_class_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_class_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow}, - { "_class_wxWindow","_wxChoice",SwigwxChoiceTowxWindow}, - { "_class_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_class_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_class_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_class_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_class_wxWindow","_class_wxButton",SwigwxButtonTowxWindow}, - { "_class_wxWindow","_wxButton",SwigwxButtonTowxWindow}, - { "_class_wxWindow","_class_wxControl",SwigwxControlTowxWindow}, - { "_class_wxWindow","_wxControl",SwigwxControlTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxSlider",SwigwxSliderTowxControl}, - { "_wxControl","_wxSlider",SwigwxSliderTowxControl}, - { "_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_wxControl","_class_wxListBox",SwigwxListBoxTowxControl}, - { "_wxControl","_wxListBox",SwigwxListBoxTowxControl}, - { "_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl}, - { "_wxControl","_wxStaticText",SwigwxStaticTextTowxControl}, - { "_wxControl","_class_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_wxControl","_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_wxControl","_class_wxGauge",SwigwxGaugeTowxControl}, - { "_wxControl","_wxGauge",SwigwxGaugeTowxControl}, - { "_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl}, - { "_wxControl","_wxComboBox",SwigwxComboBoxTowxControl}, - { "_wxControl","_class_wxChoice",SwigwxChoiceTowxControl}, - { "_wxControl","_wxChoice",SwigwxChoiceTowxControl}, - { "_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_wxControl","_class_wxButton",SwigwxButtonTowxControl}, - { "_wxControl","_wxButton",SwigwxButtonTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_class_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_class_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_class_wxChoice","_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxSlider",SwigwxSliderTowxControl}, - { "_class_wxControl","_wxSlider",SwigwxSliderTowxControl}, - { "_class_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_class_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_class_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_class_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_class_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_class_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_class_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_class_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_class_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_class_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_class_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_class_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_class_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_class_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_class_wxControl","_class_wxListBox",SwigwxListBoxTowxControl}, - { "_class_wxControl","_wxListBox",SwigwxListBoxTowxControl}, - { "_class_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl}, - { "_class_wxControl","_wxStaticText",SwigwxStaticTextTowxControl}, - { "_class_wxControl","_class_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_class_wxControl","_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_class_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_class_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_class_wxControl","_class_wxGauge",SwigwxGaugeTowxControl}, - { "_class_wxControl","_wxGauge",SwigwxGaugeTowxControl}, - { "_class_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl}, - { "_class_wxControl","_wxComboBox",SwigwxComboBoxTowxControl}, - { "_class_wxControl","_class_wxChoice",SwigwxChoiceTowxControl}, - { "_class_wxControl","_wxChoice",SwigwxChoiceTowxControl}, - { "_class_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_class_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_class_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_class_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_class_wxControl","_class_wxButton",SwigwxButtonTowxControl}, - { "_class_wxControl","_wxButton",SwigwxButtonTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler}, - { "_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow}, - { "_wxWindow","_wxSlider",SwigwxSliderTowxWindow}, - { "_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow}, - { "_wxWindow","_wxListBox",SwigwxListBoxTowxWindow}, - { "_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_wxWindow","_class_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_wxWindow","_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow}, - { "_wxWindow","_wxGauge",SwigwxGaugeTowxWindow}, - { "_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow}, - { "_wxWindow","_wxChoice",SwigwxChoiceTowxWindow}, - { "_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_wxWindow","_class_wxButton",SwigwxButtonTowxWindow}, - { "_wxWindow","_wxButton",SwigwxButtonTowxWindow}, - { "_wxWindow","_class_wxControl",SwigwxControlTowxWindow}, - { "_wxWindow","_wxControl",SwigwxControlTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/controls.py b/utils/wxPython/src/gtk/controls.py deleted file mode 100644 index ab4b2c42c9..0000000000 --- a/utils/wxPython/src/gtk/controls.py +++ /dev/null @@ -1,772 +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 GetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxControl_GetLabel,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxControl_SetLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(controlsc.wxButton_SetDefault,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxButton(wxButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxButton,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxBitmapButtonPtr(wxButtonPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmapLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapLabel,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetBitmapDisabled(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapDisabled,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetBitmapFocus(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapFocus,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetBitmapSelected(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapSelected,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def SetBitmapDisabled(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapDisabled,(self,) + _args, _kwargs) - return val - def SetBitmapFocus(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapFocus,(self,) + _args, _kwargs) - return val - def SetBitmapSelected(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapSelected,(self,) + _args, _kwargs) - return val - def SetBitmapLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxBitmapButton(wxBitmapButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxBitmapButton,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckBox_GetValue,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckBox_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxCheckBox(wxCheckBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxCheckBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxChoicePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_Append,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_Clear,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_FindString,(self,) + _args, _kwargs) - return val - def GetColumns(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetColumns,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetStringSelection,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_Number,(self,) + _args, _kwargs) - return val - def SetColumns(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_SetColumns,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_SetSelection,(self,) + _args, _kwargs) - return val - def SetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_SetStringSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxChoice(wxChoicePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxChoice,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxComboBoxPtr(wxChoicePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Append,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Clear,(self,) + _args, _kwargs) - return val - def Copy(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Copy,(self,) + _args, _kwargs) - return val - def Cut(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Cut,(self,) + _args, _kwargs) - return val - def Delete(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Delete,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_FindString,(self,) + _args, _kwargs) - return val - def GetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetInsertionPoint,(self,) + _args, _kwargs) - return val - def GetLastPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetLastPosition,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetStringSelection,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetValue,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Number,(self,) + _args, _kwargs) - return val - def Paste(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Paste,(self,) + _args, _kwargs) - return val - def Replace(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Replace,(self,) + _args, _kwargs) - return val - def Remove(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Remove,(self,) + _args, _kwargs) - return val - def SetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetInsertionPoint,(self,) + _args, _kwargs) - return val - def SetInsertionPointEnd(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetInsertionPointEnd,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetSelection,(self,) + _args, _kwargs) - return val - def SetMark(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetMark,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxComboBox(wxComboBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxComboBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxGaugePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBezelFace(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetBezelFace,(self,) + _args, _kwargs) - return val - def GetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetRange,(self,) + _args, _kwargs) - return val - def GetShadowWidth(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetShadowWidth,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetValue,(self,) + _args, _kwargs) - return val - def SetBezelFace(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetBezelFace,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetRange,(self,) + _args, _kwargs) - return val - def SetShadowWidth(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetShadowWidth,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxGauge(wxGaugePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxGauge,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxStaticBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxStaticBox(wxStaticBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticBox,_args,_kwargs) - self.thisown = 1 - - - - -class wxStaticLinePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxStaticLine(wxStaticLinePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticLine,_args,_kwargs) - self.thisown = 1 - - - - -class wxStaticTextPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticText_GetLabel,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticText_SetLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxStaticText(wxStaticTextPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticText,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxListBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Append,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Clear,(self,) + _args, _kwargs) - return val - def Delete(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Delete,(self,) + _args, _kwargs) - return val - def Deselect(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Deselect,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_FindString,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetSelection,(self,) + _args, _kwargs) - return val - def GetSelections(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetSelections,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetStringSelection,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Number,(self,) + _args, _kwargs) - return val - def Selected(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Selected,(self,) + _args, _kwargs) - return val - def Set(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Set,(self,) + _args, _kwargs) - return val - def SetFirstItem(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetFirstItem,(self,) + _args, _kwargs) - return val - def SetFirstItemStr(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetFirstItemStr,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetSelection,(self,) + _args, _kwargs) - return val - def SetString(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetString,(self,) + _args, _kwargs) - return val - def SetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetStringSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxListBox(wxListBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxListBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckListBoxPtr(wxListBoxPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsChecked(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckListBox_IsChecked,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckListBox_Check,(self,) + _args, _kwargs) - return val - def GetItemHeight(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckListBox_GetItemHeight,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxCheckListBox(wxCheckListBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxCheckListBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTextCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Clear,(self,) + _args, _kwargs) - return val - def Copy(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Copy,(self,) + _args, _kwargs) - return val - def Cut(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Cut,(self,) + _args, _kwargs) - return val - def DiscardEdits(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_DiscardEdits,(self,) + _args, _kwargs) - return val - def GetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetInsertionPoint,(self,) + _args, _kwargs) - return val - def GetLastPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetLastPosition,(self,) + _args, _kwargs) - return val - def GetLineLength(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetLineLength,(self,) + _args, _kwargs) - return val - def GetLineText(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetLineText,(self,) + _args, _kwargs) - return val - def GetNumberOfLines(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetNumberOfLines,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetValue,(self,) + _args, _kwargs) - return val - def IsModified(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_IsModified,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_LoadFile,(self,) + _args, _kwargs) - return val - def Paste(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Paste,(self,) + _args, _kwargs) - return val - def PositionToXY(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_PositionToXY,(self,) + _args, _kwargs) - return val - def Remove(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Remove,(self,) + _args, _kwargs) - return val - def Replace(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Replace,(self,) + _args, _kwargs) - return val - def SaveFile(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SaveFile,(self,) + _args, _kwargs) - return val - def SetEditable(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetEditable,(self,) + _args, _kwargs) - return val - def SetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetInsertionPoint,(self,) + _args, _kwargs) - return val - def SetInsertionPointEnd(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetInsertionPointEnd,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetSelection,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetValue,(self,) + _args, _kwargs) - return val - def ShowPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_ShowPosition,(self,) + _args, _kwargs) - return val - def WriteText(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_WriteText,(self,) + _args, _kwargs) - return val - def AppendText(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_AppendText,(self,) + _args, _kwargs) - return val - def XYToPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_XYToPosition,(self,) + _args, _kwargs) - return val - def CanCopy(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanCopy,(self,) + _args, _kwargs) - return val - def CanCut(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanCut,(self,) + _args, _kwargs) - return val - def CanPaste(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanPaste,(self,) + _args, _kwargs) - return val - def CanRedo(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanRedo,(self,) + _args, _kwargs) - return val - def CanUndo(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanUndo,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetSelection,(self,) + _args, _kwargs) - return val - def IsEditable(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_IsEditable,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTextCtrl(wxTextCtrlPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxTextCtrl,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxScrollBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetRange,(self,) + _args, _kwargs) - return val - def GetPageSize(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetPageSize,(self,) + _args, _kwargs) - return val - def GetThumbPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetThumbPosition,(self,) + _args, _kwargs) - return val - def GetThumbSize(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetThumbSize,(self,) + _args, _kwargs) - return val - def SetThumbPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_SetThumbPosition,(self,) + _args, _kwargs) - return val - def SetScrollbar(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_SetScrollbar,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxScrollBar(wxScrollBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxScrollBar,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSpinButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetMax(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_GetMax,(self,) + _args, _kwargs) - return val - def GetMin(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_GetMin,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_GetValue,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_SetRange,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSpinButton(wxSpinButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxSpinButton,_args,_kwargs) - self.thisown = 1 - - - - -class wxStaticBitmapPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmap(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticBitmap_GetBitmap,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def SetBitmap(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticBitmap_SetBitmap,(self,) + _args, _kwargs) - return val - def SetIcon(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticBitmap_SetIcon,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxStaticBitmap(wxStaticBitmapPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticBitmap,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Enable(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_Enable,(self,) + _args, _kwargs) - return val - def EnableItem(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_EnableItem,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_FindString,(self,) + _args, _kwargs) - return val - def GetItemLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetItemLabel,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetStringSelection,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_Number,(self,) + _args, _kwargs) - return val - def SetItemLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_SetItemLabel,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_SetSelection,(self,) + _args, _kwargs) - return val - def SetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_SetStringSelection,(self,) + _args, _kwargs) - return val - def Show(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_Show,(self,) + _args, _kwargs) - return val - def ShowItem(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_ShowItem,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRadioBox(wxRadioBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxRadioBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioButton_GetValue,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioButton_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRadioButton(wxRadioButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxRadioButton,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSliderPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ClearSel(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_ClearSel,(self,) + _args, _kwargs) - return val - def ClearTicks(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_ClearTicks,(self,) + _args, _kwargs) - return val - def GetLineSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetLineSize,(self,) + _args, _kwargs) - return val - def GetMax(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetMax,(self,) + _args, _kwargs) - return val - def GetMin(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetMin,(self,) + _args, _kwargs) - return val - def GetPageSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetPageSize,(self,) + _args, _kwargs) - return val - def GetSelEnd(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetSelEnd,(self,) + _args, _kwargs) - return val - def GetSelStart(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetSelStart,(self,) + _args, _kwargs) - return val - def GetThumbLength(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetThumbLength,(self,) + _args, _kwargs) - return val - def GetTickFreq(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetTickFreq,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetValue,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetRange,(self,) + _args, _kwargs) - return val - def SetTickFreq(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetTickFreq,(self,) + _args, _kwargs) - return val - def SetLineSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetLineSize,(self,) + _args, _kwargs) - return val - def SetPageSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetPageSize,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetSelection,(self,) + _args, _kwargs) - return val - def SetThumbLength(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetThumbLength,(self,) + _args, _kwargs) - return val - def SetTick(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetTick,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSlider(wxSliderPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxSlider,_args,_kwargs) - 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 f856297dae..0000000000 --- a/utils/wxPython/src/gtk/controls2.cpp +++ /dev/null @@ -1,5764 +0,0 @@ -/* - * FILE : gtk/controls2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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() { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); -#endif - Py_DECREF(m_obj); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif - } - - 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; -}; -#ifdef __cplusplus -extern "C" { -#endif -#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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_mask_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_mask_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_itemId_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_itemId_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_col_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_col_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_state_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_state_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_stateMask_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_stateMask_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListItem_m_text_set",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_text_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_image_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_image_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_data_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_data_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_format_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_format_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_width_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_width_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxListItem(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxListItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxListItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListEvent_m_code_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_code_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListEvent_m_itemIndex_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_itemIndex_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListEvent_m_oldItemIndex_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_oldItemIndex_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListEvent_m_col_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_col_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListEvent_m_cancelled_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_cancelled_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListEvent_m_pointDrag_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_pointDrag_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_pointDrag_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListEvent_m_item_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_item_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_item_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxLC_ICON; - wxValidator * _arg5 = (wxValidator *) &wxPyDefaultValidator; - char * _arg6 = (char *) "listCtrl"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOlOs:new_wxListCtrl",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_argo5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxListCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (int ) (wxLIST_ALIGN_DEFAULT); - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxListCtrl_Arrange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_DeleteItem",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_DeleteAllItems",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_DeleteColumn",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_DeleteAllColumns",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_ClearAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - wxListCtrl * _arg0; - long _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_EditLabel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - wxListCtrl_EditLabel(_arg0,_arg1); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_EnsureVisible",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - int tempbool3 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"OlO|i:wxListCtrl_FindItem",&_argo0,&_arg1,&_obj2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxListCtrl_FindItemData",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlOi:wxListCtrl_FindItemAtPos",&_argo0,&_arg1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItemAtPos. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxListCtrl_GetColumn",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_GetColumnWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetCountPerPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_GetImageList",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItemData",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItem",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItemPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (int ) (wxLIST_RECT_BOUNDS); - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|i:wxListCtrl_GetItemRect",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxListCtrl_GetItemState",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetItemCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_GetItemSpacing",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItemText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) (wxLIST_NEXT_ALL); - int _arg3 = (int ) (wxLIST_STATE_DONTCARE); - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|ii:wxListCtrl_GetNextItem",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetSelectedItemCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetTopItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; -{ - _arg2 = &temp; -} - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_HitTest",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_HitTest. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_InsertColumnWith",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertColumnWith. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (int ) (wxLIST_FORMAT_LEFT); - int _arg4 = (int ) -1; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO|ii:wxListCtrl_InsertColumn",&_argo0,&_arg1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_InsertItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_InsertStringItem",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oli:wxListCtrl_InsertImageItem",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlOi:wxListCtrl_InsertImageStringItem",&_argo0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxListCtrl_ScrollList",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_SetBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetBackgroundColour. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxListCtrl_SetColumn",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxListCtrl_SetColumnWidth",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxListCtrl_SetImageList",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetImageList. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_SetItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) -1; - PyObject * _argo0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OliO|i:wxListCtrl_SetStringItem",&_argo0,&_arg1,&_arg2,&_obj3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxListCtrl_SetItemData",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Olii:wxListCtrl_SetItemImage",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_SetItemPosition",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemPosition. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Olll:wxListCtrl_SetItemState",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_SetItemText",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|i:wxListCtrl_SetSingleStyle",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_SetWindowStyleFlag",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxTreeItemId(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxTreeItemId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxTreeItemId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeItemId_IsOk",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (PyObject *) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTreeItemData_GetData(_swigobj) (_swigobj->GetData()) -static PyObject *_wrap_wxTreeItemData_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPyTreeItemData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeItemData_GetData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeItemData_SetData",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeItemData_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeItemData_SetId",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_SetId. Expected _wxPyTreeItemData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 *SwigwxTreeEventTowxNotifyEvent(void *ptr) { - wxTreeEvent *src; - wxNotifyEvent *dest; - src = (wxTreeEvent *) ptr; - dest = (wxNotifyEvent *) src; - return (void *) dest; -} - -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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetOldItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxTreeEvent_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTreeEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetLabel. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxString & _result_ref = wxTreeEvent_GetLabel(_arg0); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - 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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT; - wxValidator * _arg5 = (wxValidator *) &wxPyDefaultValidator; - char * _arg6 = (char *) "wxTreeCtrl"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOlOs:new_wxTreeCtrl",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_argo5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTreeCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxTreeCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTreeCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTreeCtrl_GetCount(_swigobj) (_swigobj->GetCount()) -static PyObject *_wrap_wxTreeCtrl_GetCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - size_t _result; - wxTreeCtrl * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetIndent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxTreeCtrl_SetIndent",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTreeCtrl_GetStateImageList(_swigobj) (_swigobj->GetStateImageList()) -static PyObject *_wrap_wxTreeCtrl_GetStateImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxTreeCtrl * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetStateImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_SetImageList",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_SetStateImageList",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetStateImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemText",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemImage",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemSelectedImage",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_SetItemText",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxTreeCtrl_SetItemImage",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxTreeCtrl_SetItemSelectedImage",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxTreeCtrl_SetItemHasChildren",&_argo0,&_argo1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_SetItemData",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemData. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetPyData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_SetPyData",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_ItemHasChildren",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsExpanded",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsExpanded. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsSelected",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsSelected. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetRootItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetParent",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetParent. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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_GetChildrenCount(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetChildrenCount(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_GetChildrenCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - size_t _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxTreeCtrl_GetChildrenCount",&_argo0,&_argo1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetChildrenCount. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetChildrenCount. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (size_t )wxTreeCtrl_GetChildrenCount(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_GetFirstChild",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetFirstChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_GetNextChild",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetNextSibling",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetPrevSibling",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetFirstVisibleItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetNextVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetPrevVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) -1; - int _arg3 = (int ) -1; - wxPyTreeItemData * _arg4 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO|iiO:wxTreeCtrl_AddRoot",&_argo0,&_obj1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 = (int ) -1; - int _arg4 = (int ) -1; - wxPyTreeItemData * _arg5 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|iiO:wxTreeCtrl_PrependItem",&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_PrependItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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 = (int ) -1; - int _arg5 = (int ) -1; - wxPyTreeItemData * _arg6 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - PyObject * _obj3 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOOO|iiO:wxTreeCtrl_InsertItem",&_argo0,&_argo1,&_argo2,&_obj3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_InsertItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_InsertItem. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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 = (int ) -1; - int _arg4 = (int ) -1; - wxPyTreeItemData * _arg5 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|iiO:wxTreeCtrl_AppendItem",&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_AppendItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Delete",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Delete. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_DeleteChildren",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_DeleteChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_DeleteAllItems",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Expand",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Expand. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Collapse",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Collapse. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_CollapseAndReset",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_CollapseAndReset. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Toggle",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Toggle. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_Unselect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_UnselectAll(_swigobj) (_swigobj->UnselectAll()) -static PyObject *_wrap_wxTreeCtrl_UnselectAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_UnselectAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_UnselectAll. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_UnselectAll(_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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_SelectItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SelectItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_EnsureVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EnsureVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_ScrollTo",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ScrollTo. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_EditLabel",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EditLabel. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - wxTreeCtrl_EditLabel(_arg0,*_arg1); - - 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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxTreeCtrl_SetItemBold",&_argo0,&_argo1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsBold",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_HitTest",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_HitTest. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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, METH_VARARGS }, - { "wxTreeCtrl_IsBold", _wrap_wxTreeCtrl_IsBold, METH_VARARGS }, - { "wxTreeCtrl_SetItemBold", _wrap_wxTreeCtrl_SetItemBold, METH_VARARGS }, - { "wxTreeCtrl_EditLabel", _wrap_wxTreeCtrl_EditLabel, METH_VARARGS }, - { "wxTreeCtrl_ScrollTo", _wrap_wxTreeCtrl_ScrollTo, METH_VARARGS }, - { "wxTreeCtrl_EnsureVisible", _wrap_wxTreeCtrl_EnsureVisible, METH_VARARGS }, - { "wxTreeCtrl_SelectItem", _wrap_wxTreeCtrl_SelectItem, METH_VARARGS }, - { "wxTreeCtrl_UnselectAll", _wrap_wxTreeCtrl_UnselectAll, METH_VARARGS }, - { "wxTreeCtrl_Unselect", _wrap_wxTreeCtrl_Unselect, METH_VARARGS }, - { "wxTreeCtrl_Toggle", _wrap_wxTreeCtrl_Toggle, METH_VARARGS }, - { "wxTreeCtrl_CollapseAndReset", _wrap_wxTreeCtrl_CollapseAndReset, METH_VARARGS }, - { "wxTreeCtrl_Collapse", _wrap_wxTreeCtrl_Collapse, METH_VARARGS }, - { "wxTreeCtrl_Expand", _wrap_wxTreeCtrl_Expand, METH_VARARGS }, - { "wxTreeCtrl_DeleteAllItems", _wrap_wxTreeCtrl_DeleteAllItems, METH_VARARGS }, - { "wxTreeCtrl_DeleteChildren", _wrap_wxTreeCtrl_DeleteChildren, METH_VARARGS }, - { "wxTreeCtrl_Delete", _wrap_wxTreeCtrl_Delete, METH_VARARGS }, - { "wxTreeCtrl_AppendItem", _wrap_wxTreeCtrl_AppendItem, METH_VARARGS }, - { "wxTreeCtrl_InsertItem", _wrap_wxTreeCtrl_InsertItem, METH_VARARGS }, - { "wxTreeCtrl_PrependItem", _wrap_wxTreeCtrl_PrependItem, METH_VARARGS }, - { "wxTreeCtrl_AddRoot", _wrap_wxTreeCtrl_AddRoot, METH_VARARGS }, - { "wxTreeCtrl_GetPrevVisible", _wrap_wxTreeCtrl_GetPrevVisible, METH_VARARGS }, - { "wxTreeCtrl_GetNextVisible", _wrap_wxTreeCtrl_GetNextVisible, METH_VARARGS }, - { "wxTreeCtrl_GetFirstVisibleItem", _wrap_wxTreeCtrl_GetFirstVisibleItem, METH_VARARGS }, - { "wxTreeCtrl_GetPrevSibling", _wrap_wxTreeCtrl_GetPrevSibling, METH_VARARGS }, - { "wxTreeCtrl_GetNextSibling", _wrap_wxTreeCtrl_GetNextSibling, METH_VARARGS }, - { "wxTreeCtrl_GetNextChild", _wrap_wxTreeCtrl_GetNextChild, METH_VARARGS }, - { "wxTreeCtrl_GetFirstChild", _wrap_wxTreeCtrl_GetFirstChild, METH_VARARGS }, - { "wxTreeCtrl_GetChildrenCount", _wrap_wxTreeCtrl_GetChildrenCount, METH_VARARGS }, - { "wxTreeCtrl_GetParent", _wrap_wxTreeCtrl_GetParent, METH_VARARGS }, - { "wxTreeCtrl_GetSelection", _wrap_wxTreeCtrl_GetSelection, METH_VARARGS }, - { "wxTreeCtrl_GetRootItem", _wrap_wxTreeCtrl_GetRootItem, METH_VARARGS }, - { "wxTreeCtrl_IsSelected", _wrap_wxTreeCtrl_IsSelected, METH_VARARGS }, - { "wxTreeCtrl_IsExpanded", _wrap_wxTreeCtrl_IsExpanded, METH_VARARGS }, - { "wxTreeCtrl_ItemHasChildren", _wrap_wxTreeCtrl_ItemHasChildren, METH_VARARGS }, - { "wxTreeCtrl_IsVisible", _wrap_wxTreeCtrl_IsVisible, METH_VARARGS }, - { "wxTreeCtrl_SetPyData", _wrap_wxTreeCtrl_SetPyData, METH_VARARGS }, - { "wxTreeCtrl_GetPyData", _wrap_wxTreeCtrl_GetPyData, METH_VARARGS }, - { "wxTreeCtrl_SetItemData", _wrap_wxTreeCtrl_SetItemData, METH_VARARGS }, - { "wxTreeCtrl_GetItemData", _wrap_wxTreeCtrl_GetItemData, METH_VARARGS }, - { "wxTreeCtrl_SetItemHasChildren", _wrap_wxTreeCtrl_SetItemHasChildren, METH_VARARGS }, - { "wxTreeCtrl_SetItemSelectedImage", _wrap_wxTreeCtrl_SetItemSelectedImage, METH_VARARGS }, - { "wxTreeCtrl_SetItemImage", _wrap_wxTreeCtrl_SetItemImage, METH_VARARGS }, - { "wxTreeCtrl_SetItemText", _wrap_wxTreeCtrl_SetItemText, METH_VARARGS }, - { "wxTreeCtrl_GetItemSelectedImage", _wrap_wxTreeCtrl_GetItemSelectedImage, METH_VARARGS }, - { "wxTreeCtrl_GetItemImage", _wrap_wxTreeCtrl_GetItemImage, METH_VARARGS }, - { "wxTreeCtrl_GetItemText", _wrap_wxTreeCtrl_GetItemText, METH_VARARGS }, - { "wxTreeCtrl_SetStateImageList", _wrap_wxTreeCtrl_SetStateImageList, METH_VARARGS }, - { "wxTreeCtrl_SetImageList", _wrap_wxTreeCtrl_SetImageList, METH_VARARGS }, - { "wxTreeCtrl_GetStateImageList", _wrap_wxTreeCtrl_GetStateImageList, METH_VARARGS }, - { "wxTreeCtrl_GetImageList", _wrap_wxTreeCtrl_GetImageList, METH_VARARGS }, - { "wxTreeCtrl_SetIndent", _wrap_wxTreeCtrl_SetIndent, METH_VARARGS }, - { "wxTreeCtrl_GetIndent", _wrap_wxTreeCtrl_GetIndent, METH_VARARGS }, - { "wxTreeCtrl_GetCount", _wrap_wxTreeCtrl_GetCount, METH_VARARGS }, - { "new_wxTreeCtrl", _wrap_new_wxTreeCtrl, METH_VARARGS }, - { "wxTreeEvent_GetLabel", _wrap_wxTreeEvent_GetLabel, METH_VARARGS }, - { "wxTreeEvent_GetCode", _wrap_wxTreeEvent_GetCode, METH_VARARGS }, - { "wxTreeEvent_GetPoint", _wrap_wxTreeEvent_GetPoint, METH_VARARGS }, - { "wxTreeEvent_GetOldItem", _wrap_wxTreeEvent_GetOldItem, METH_VARARGS }, - { "wxTreeEvent_GetItem", _wrap_wxTreeEvent_GetItem, METH_VARARGS }, - { "wxTreeItemData_SetId", _wrap_wxTreeItemData_SetId, METH_VARARGS }, - { "wxTreeItemData_GetId", _wrap_wxTreeItemData_GetId, METH_VARARGS }, - { "wxTreeItemData_SetData", _wrap_wxTreeItemData_SetData, METH_VARARGS }, - { "wxTreeItemData_GetData", _wrap_wxTreeItemData_GetData, METH_VARARGS }, - { "new_wxTreeItemData", _wrap_new_wxTreeItemData, METH_VARARGS }, - { "wxTreeItemId_IsOk", _wrap_wxTreeItemId_IsOk, METH_VARARGS }, - { "delete_wxTreeItemId", _wrap_delete_wxTreeItemId, METH_VARARGS }, - { "new_wxTreeItemId", _wrap_new_wxTreeItemId, METH_VARARGS }, - { "wxListCtrl_SetWindowStyleFlag", _wrap_wxListCtrl_SetWindowStyleFlag, METH_VARARGS }, - { "wxListCtrl_SetSingleStyle", _wrap_wxListCtrl_SetSingleStyle, METH_VARARGS }, - { "wxListCtrl_SetItemText", _wrap_wxListCtrl_SetItemText, METH_VARARGS }, - { "wxListCtrl_SetItemState", _wrap_wxListCtrl_SetItemState, METH_VARARGS }, - { "wxListCtrl_SetItemPosition", _wrap_wxListCtrl_SetItemPosition, METH_VARARGS }, - { "wxListCtrl_SetItemImage", _wrap_wxListCtrl_SetItemImage, METH_VARARGS }, - { "wxListCtrl_SetItemData", _wrap_wxListCtrl_SetItemData, METH_VARARGS }, - { "wxListCtrl_SetStringItem", _wrap_wxListCtrl_SetStringItem, METH_VARARGS }, - { "wxListCtrl_SetItem", _wrap_wxListCtrl_SetItem, METH_VARARGS }, - { "wxListCtrl_SetImageList", _wrap_wxListCtrl_SetImageList, METH_VARARGS }, - { "wxListCtrl_SetColumnWidth", _wrap_wxListCtrl_SetColumnWidth, METH_VARARGS }, - { "wxListCtrl_SetColumn", _wrap_wxListCtrl_SetColumn, METH_VARARGS }, - { "wxListCtrl_SetBackgroundColour", _wrap_wxListCtrl_SetBackgroundColour, METH_VARARGS }, - { "wxListCtrl_ScrollList", _wrap_wxListCtrl_ScrollList, METH_VARARGS }, - { "wxListCtrl_InsertImageStringItem", _wrap_wxListCtrl_InsertImageStringItem, METH_VARARGS }, - { "wxListCtrl_InsertImageItem", _wrap_wxListCtrl_InsertImageItem, METH_VARARGS }, - { "wxListCtrl_InsertStringItem", _wrap_wxListCtrl_InsertStringItem, METH_VARARGS }, - { "wxListCtrl_InsertItem", _wrap_wxListCtrl_InsertItem, METH_VARARGS }, - { "wxListCtrl_InsertColumn", _wrap_wxListCtrl_InsertColumn, METH_VARARGS }, - { "wxListCtrl_InsertColumnWith", _wrap_wxListCtrl_InsertColumnWith, METH_VARARGS }, - { "wxListCtrl_HitTest", _wrap_wxListCtrl_HitTest, METH_VARARGS }, - { "wxListCtrl_GetTopItem", _wrap_wxListCtrl_GetTopItem, METH_VARARGS }, - { "wxListCtrl_GetSelectedItemCount", _wrap_wxListCtrl_GetSelectedItemCount, METH_VARARGS }, - { "wxListCtrl_GetNextItem", _wrap_wxListCtrl_GetNextItem, METH_VARARGS }, - { "wxListCtrl_GetItemText", _wrap_wxListCtrl_GetItemText, METH_VARARGS }, - { "wxListCtrl_GetItemSpacing", _wrap_wxListCtrl_GetItemSpacing, METH_VARARGS }, - { "wxListCtrl_GetItemCount", _wrap_wxListCtrl_GetItemCount, METH_VARARGS }, - { "wxListCtrl_GetItemState", _wrap_wxListCtrl_GetItemState, METH_VARARGS }, - { "wxListCtrl_GetItemRect", _wrap_wxListCtrl_GetItemRect, METH_VARARGS }, - { "wxListCtrl_GetItemPosition", _wrap_wxListCtrl_GetItemPosition, METH_VARARGS }, - { "wxListCtrl_GetItem", _wrap_wxListCtrl_GetItem, METH_VARARGS }, - { "wxListCtrl_GetItemData", _wrap_wxListCtrl_GetItemData, METH_VARARGS }, - { "wxListCtrl_GetImageList", _wrap_wxListCtrl_GetImageList, METH_VARARGS }, - { "wxListCtrl_GetCountPerPage", _wrap_wxListCtrl_GetCountPerPage, METH_VARARGS }, - { "wxListCtrl_GetColumnWidth", _wrap_wxListCtrl_GetColumnWidth, METH_VARARGS }, - { "wxListCtrl_GetColumn", _wrap_wxListCtrl_GetColumn, METH_VARARGS }, - { "wxListCtrl_FindItemAtPos", _wrap_wxListCtrl_FindItemAtPos, METH_VARARGS }, - { "wxListCtrl_FindItemData", _wrap_wxListCtrl_FindItemData, METH_VARARGS }, - { "wxListCtrl_FindItem", _wrap_wxListCtrl_FindItem, METH_VARARGS }, - { "wxListCtrl_EnsureVisible", _wrap_wxListCtrl_EnsureVisible, METH_VARARGS }, - { "wxListCtrl_EditLabel", _wrap_wxListCtrl_EditLabel, METH_VARARGS }, - { "wxListCtrl_ClearAll", _wrap_wxListCtrl_ClearAll, METH_VARARGS }, - { "wxListCtrl_DeleteAllColumns", _wrap_wxListCtrl_DeleteAllColumns, METH_VARARGS }, - { "wxListCtrl_DeleteColumn", _wrap_wxListCtrl_DeleteColumn, METH_VARARGS }, - { "wxListCtrl_DeleteAllItems", _wrap_wxListCtrl_DeleteAllItems, METH_VARARGS }, - { "wxListCtrl_DeleteItem", _wrap_wxListCtrl_DeleteItem, METH_VARARGS }, - { "wxListCtrl_Arrange", _wrap_wxListCtrl_Arrange, METH_VARARGS }, - { "new_wxListCtrl", _wrap_new_wxListCtrl, METH_VARARGS }, - { "wxListEvent_m_item_get", _wrap_wxListEvent_m_item_get, METH_VARARGS }, - { "wxListEvent_m_item_set", _wrap_wxListEvent_m_item_set, METH_VARARGS }, - { "wxListEvent_m_pointDrag_get", _wrap_wxListEvent_m_pointDrag_get, METH_VARARGS }, - { "wxListEvent_m_pointDrag_set", _wrap_wxListEvent_m_pointDrag_set, METH_VARARGS }, - { "wxListEvent_m_cancelled_get", _wrap_wxListEvent_m_cancelled_get, METH_VARARGS }, - { "wxListEvent_m_cancelled_set", _wrap_wxListEvent_m_cancelled_set, METH_VARARGS }, - { "wxListEvent_m_col_get", _wrap_wxListEvent_m_col_get, METH_VARARGS }, - { "wxListEvent_m_col_set", _wrap_wxListEvent_m_col_set, METH_VARARGS }, - { "wxListEvent_m_oldItemIndex_get", _wrap_wxListEvent_m_oldItemIndex_get, METH_VARARGS }, - { "wxListEvent_m_oldItemIndex_set", _wrap_wxListEvent_m_oldItemIndex_set, METH_VARARGS }, - { "wxListEvent_m_itemIndex_get", _wrap_wxListEvent_m_itemIndex_get, METH_VARARGS }, - { "wxListEvent_m_itemIndex_set", _wrap_wxListEvent_m_itemIndex_set, METH_VARARGS }, - { "wxListEvent_m_code_get", _wrap_wxListEvent_m_code_get, METH_VARARGS }, - { "wxListEvent_m_code_set", _wrap_wxListEvent_m_code_set, METH_VARARGS }, - { "delete_wxListItem", _wrap_delete_wxListItem, METH_VARARGS }, - { "new_wxListItem", _wrap_new_wxListItem, METH_VARARGS }, - { "wxListItem_m_width_get", _wrap_wxListItem_m_width_get, METH_VARARGS }, - { "wxListItem_m_width_set", _wrap_wxListItem_m_width_set, METH_VARARGS }, - { "wxListItem_m_format_get", _wrap_wxListItem_m_format_get, METH_VARARGS }, - { "wxListItem_m_format_set", _wrap_wxListItem_m_format_set, METH_VARARGS }, - { "wxListItem_m_data_get", _wrap_wxListItem_m_data_get, METH_VARARGS }, - { "wxListItem_m_data_set", _wrap_wxListItem_m_data_set, METH_VARARGS }, - { "wxListItem_m_image_get", _wrap_wxListItem_m_image_get, METH_VARARGS }, - { "wxListItem_m_image_set", _wrap_wxListItem_m_image_set, METH_VARARGS }, - { "wxListItem_m_text_get", _wrap_wxListItem_m_text_get, METH_VARARGS }, - { "wxListItem_m_text_set", _wrap_wxListItem_m_text_set, METH_VARARGS }, - { "wxListItem_m_stateMask_get", _wrap_wxListItem_m_stateMask_get, METH_VARARGS }, - { "wxListItem_m_stateMask_set", _wrap_wxListItem_m_stateMask_set, METH_VARARGS }, - { "wxListItem_m_state_get", _wrap_wxListItem_m_state_get, METH_VARARGS }, - { "wxListItem_m_state_set", _wrap_wxListItem_m_state_set, METH_VARARGS }, - { "wxListItem_m_col_get", _wrap_wxListItem_m_col_get, METH_VARARGS }, - { "wxListItem_m_col_set", _wrap_wxListItem_m_col_set, METH_VARARGS }, - { "wxListItem_m_itemId_get", _wrap_wxListItem_m_itemId_get, METH_VARARGS }, - { "wxListItem_m_itemId_set", _wrap_wxListItem_m_itemId_set, METH_VARARGS }, - { "wxListItem_m_mask_get", _wrap_wxListItem_m_mask_get, METH_VARARGS }, - { "wxListItem_m_mask_set", _wrap_wxListItem_m_mask_set, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent}, - { "_wxEvent","_wxListEvent",SwigwxListEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxPyTreeItemData","_wxPyTreeItemData",0}, - { "_class_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_wxNotifyEvent","_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_class_wxTreeCtrl","_wxTreeCtrl",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxListEvent","_class_wxListEvent",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_class_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_class_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent}, - { "_class_wxEvent","_wxListEvent",SwigwxListEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_class_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxListItem","_class_wxListItem",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxTreeEvent","_wxTreeEvent",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_class_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_class_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_class_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxListCtrl","_class_wxListCtrl",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_wxTreeItemId","_class_wxTreeItemId",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxListItem","_wxListItem",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxListEvent","_wxListEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_wxPyTreeItemData","_class_wxPyTreeItemData",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxTreeItemId","_wxTreeItemId",0}, - { "_wxTreeCtrl","_class_wxTreeCtrl",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_class_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_class_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_class_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxListCtrl","_wxListCtrl",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxTreeEvent","_class_wxTreeEvent",0}, - { "_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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_MASK_STATE", PyInt_FromLong((long) wxLIST_MASK_STATE)); - 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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/controls2.py b/utils/wxPython/src/gtk/controls2.py deleted file mode 100644 index d73387c54b..0000000000 --- a/utils/wxPython/src/gtk/controls2.py +++ /dev/null @@ -1,628 +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,controls2c=controls2c): - if self.thisown == 1 : - controls2c.delete_wxListItem(self) - def __setattr__(self,name,value): - if name == "m_mask" : - controls2c.wxListItem_m_mask_set(self,value) - return - if name == "m_itemId" : - controls2c.wxListItem_m_itemId_set(self,value) - return - if name == "m_col" : - controls2c.wxListItem_m_col_set(self,value) - return - if name == "m_state" : - controls2c.wxListItem_m_state_set(self,value) - return - if name == "m_stateMask" : - controls2c.wxListItem_m_stateMask_set(self,value) - return - if name == "m_text" : - controls2c.wxListItem_m_text_set(self,value) - return - if name == "m_image" : - controls2c.wxListItem_m_image_set(self,value) - return - if name == "m_data" : - controls2c.wxListItem_m_data_set(self,value) - return - if name == "m_format" : - controls2c.wxListItem_m_format_set(self,value) - return - if name == "m_width" : - controls2c.wxListItem_m_width_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_mask" : - return controls2c.wxListItem_m_mask_get(self) - if name == "m_itemId" : - return controls2c.wxListItem_m_itemId_get(self) - if name == "m_col" : - return controls2c.wxListItem_m_col_get(self) - if name == "m_state" : - return controls2c.wxListItem_m_state_get(self) - if name == "m_stateMask" : - return controls2c.wxListItem_m_stateMask_get(self) - if name == "m_text" : - return controls2c.wxListItem_m_text_get(self) - if name == "m_image" : - return controls2c.wxListItem_m_image_get(self) - if name == "m_data" : - return controls2c.wxListItem_m_data_get(self) - if name == "m_format" : - return controls2c.wxListItem_m_format_get(self) - if name == "m_width" : - return controls2c.wxListItem_m_width_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxListItem(wxListItemPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxListItem,_args,_kwargs) - 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,value) - return - if name == "m_itemIndex" : - controls2c.wxListEvent_m_itemIndex_set(self,value) - return - if name == "m_oldItemIndex" : - controls2c.wxListEvent_m_oldItemIndex_set(self,value) - return - if name == "m_col" : - controls2c.wxListEvent_m_col_set(self,value) - return - if name == "m_cancelled" : - controls2c.wxListEvent_m_cancelled_set(self,value) - return - if name == "m_pointDrag" : - controls2c.wxListEvent_m_pointDrag_set(self,value.this) - return - if name == "m_item" : - controls2c.wxListEvent_m_item_set(self,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_code" : - return controls2c.wxListEvent_m_code_get(self) - if name == "m_itemIndex" : - return controls2c.wxListEvent_m_itemIndex_get(self) - if name == "m_oldItemIndex" : - return controls2c.wxListEvent_m_oldItemIndex_get(self) - if name == "m_col" : - return controls2c.wxListEvent_m_col_get(self) - if name == "m_cancelled" : - return controls2c.wxListEvent_m_cancelled_get(self) - if name == "m_pointDrag" : - return wxPointPtr(controls2c.wxListEvent_m_pointDrag_get(self)) - if name == "m_item" : - return wxListItemPtr(controls2c.wxListEvent_m_item_get(self)) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -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, **_kwargs): - val = apply(controls2c.wxListCtrl_Arrange,(self,) + _args, _kwargs) - return val - def DeleteItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteItem,(self,) + _args, _kwargs) - return val - def DeleteAllItems(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteAllItems,(self,) + _args, _kwargs) - return val - def DeleteColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteColumn,(self,) + _args, _kwargs) - return val - def DeleteAllColumns(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteAllColumns,(self,) + _args, _kwargs) - return val - def ClearAll(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_ClearAll,(self,) + _args, _kwargs) - return val - def EditLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_EditLabel,(self,) + _args, _kwargs) - return val - def EnsureVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_EnsureVisible,(self,) + _args, _kwargs) - return val - def FindItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_FindItem,(self,) + _args, _kwargs) - return val - def FindItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_FindItemData,(self,) + _args, _kwargs) - return val - def FindItemAtPos(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_FindItemAtPos,(self,) + _args, _kwargs) - return val - def GetColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetColumn,(self,) + _args, _kwargs) - return val - def GetColumnWidth(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetColumnWidth,(self,) + _args, _kwargs) - return val - def GetCountPerPage(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetCountPerPage,(self,) + _args, _kwargs) - return val - def GetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def GetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemData,(self,) + _args, _kwargs) - return val - def GetItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItem,(self,) + _args, _kwargs) - if val: val = wxListItemPtr(val) ; val.thisown = 1 - return val - def GetItemPosition(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetItemRect(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetItemState(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemState,(self,) + _args, _kwargs) - return val - def GetItemCount(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemCount,(self,) + _args, _kwargs) - return val - def GetItemSpacing(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemSpacing,(self,) + _args, _kwargs) - return val - def GetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemText,(self,) + _args, _kwargs) - return val - def GetNextItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetNextItem,(self,) + _args, _kwargs) - return val - def GetSelectedItemCount(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetSelectedItemCount,(self,) + _args, _kwargs) - return val - def GetTopItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetTopItem,(self,) + _args, _kwargs) - return val - def HitTest(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_HitTest,(self,) + _args, _kwargs) - return val - def InsertColumnWith(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertColumnWith,(self,) + _args, _kwargs) - return val - def InsertColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertColumn,(self,) + _args, _kwargs) - return val - def InsertItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertItem,(self,) + _args, _kwargs) - return val - def InsertStringItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertStringItem,(self,) + _args, _kwargs) - return val - def InsertImageItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertImageItem,(self,) + _args, _kwargs) - return val - def InsertImageStringItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertImageStringItem,(self,) + _args, _kwargs) - return val - def ScrollList(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_ScrollList,(self,) + _args, _kwargs) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def SetColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetColumn,(self,) + _args, _kwargs) - return val - def SetColumnWidth(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetColumnWidth,(self,) + _args, _kwargs) - return val - def SetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetImageList,(self,) + _args, _kwargs) - return val - def SetItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItem,(self,) + _args, _kwargs) - return val - def SetStringItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetStringItem,(self,) + _args, _kwargs) - return val - def SetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemData,(self,) + _args, _kwargs) - return val - def SetItemImage(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemImage,(self,) + _args, _kwargs) - return val - def SetItemPosition(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemPosition,(self,) + _args, _kwargs) - return val - def SetItemState(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemState,(self,) + _args, _kwargs) - return val - def SetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemText,(self,) + _args, _kwargs) - return val - def SetSingleStyle(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetSingleStyle,(self,) + _args, _kwargs) - return val - def SetWindowStyleFlag(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetWindowStyleFlag,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxListCtrl(wxListCtrlPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxListCtrl,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTreeItemIdPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,controls2c=controls2c): - if self.thisown == 1 : - controls2c.delete_wxTreeItemId(self) - def IsOk(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemId_IsOk,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTreeItemId(wxTreeItemIdPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxTreeItemId,_args,_kwargs) - self.thisown = 1 - - - - -class wxTreeItemDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_GetData,(self,) + _args, _kwargs) - return val - def SetData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_SetData,(self,) + _args, _kwargs) - return val - def GetId(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_GetId,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) - return val - def SetId(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_SetId,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTreeItemData(wxTreeItemDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxTreeItemData,_args,_kwargs) - self.thisown = 1 - - - - -class wxTreeEventPtr(wxNotifyEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetOldItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetOldItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetPoint(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetPoint,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetCode(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetCode,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetCount,(self,) + _args, _kwargs) - return val - def GetIndent(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetIndent,(self,) + _args, _kwargs) - return val - def SetIndent(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetIndent,(self,) + _args, _kwargs) - return val - def GetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def GetStateImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetStateImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def SetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetImageList,(self,) + _args, _kwargs) - return val - def SetStateImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetStateImageList,(self,) + _args, _kwargs) - return val - def GetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemText,(self,) + _args, _kwargs) - return val - def GetItemImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemImage,(self,) + _args, _kwargs) - return val - def GetItemSelectedImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemSelectedImage,(self,) + _args, _kwargs) - return val - def SetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemText,(self,) + _args, _kwargs) - return val - def SetItemImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemImage,(self,) + _args, _kwargs) - return val - def SetItemSelectedImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemSelectedImage,(self,) + _args, _kwargs) - return val - def SetItemHasChildren(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemHasChildren,(self,) + _args, _kwargs) - return val - def GetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemData,(self,) + _args, _kwargs) - if val: val = wxTreeItemDataPtr(val) - return val - def SetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemData,(self,) + _args, _kwargs) - return val - def GetPyData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetPyData,(self,) + _args, _kwargs) - return val - def SetPyData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetPyData,(self,) + _args, _kwargs) - return val - def IsVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsVisible,(self,) + _args, _kwargs) - return val - def ItemHasChildren(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_ItemHasChildren,(self,) + _args, _kwargs) - return val - def IsExpanded(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsExpanded,(self,) + _args, _kwargs) - return val - def IsSelected(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsSelected,(self,) + _args, _kwargs) - return val - def GetRootItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetRootItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetSelection,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetParent(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetParent,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetChildrenCount(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetChildrenCount,(self,) + _args, _kwargs) - return val - def GetFirstChild(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetFirstChild,(self,) + _args, _kwargs) - return val - def GetNextChild(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetNextChild,(self,) + _args, _kwargs) - return val - def GetNextSibling(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetNextSibling,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetPrevSibling(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetPrevSibling,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetFirstVisibleItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetFirstVisibleItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetNextVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetNextVisible,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetPrevVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetPrevVisible,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def AddRoot(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_AddRoot,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def PrependItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_PrependItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def InsertItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_InsertItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def AppendItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_AppendItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def Delete(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Delete,(self,) + _args, _kwargs) - return val - def DeleteChildren(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_DeleteChildren,(self,) + _args, _kwargs) - return val - def DeleteAllItems(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_DeleteAllItems,(self,) + _args, _kwargs) - return val - def Expand(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Expand,(self,) + _args, _kwargs) - return val - def Collapse(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Collapse,(self,) + _args, _kwargs) - return val - def CollapseAndReset(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_CollapseAndReset,(self,) + _args, _kwargs) - return val - def Toggle(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Toggle,(self,) + _args, _kwargs) - return val - def Unselect(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Unselect,(self,) + _args, _kwargs) - return val - def UnselectAll(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_UnselectAll,(self,) + _args, _kwargs) - return val - def SelectItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SelectItem,(self,) + _args, _kwargs) - return val - def EnsureVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_EnsureVisible,(self,) + _args, _kwargs) - return val - def ScrollTo(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_ScrollTo,(self,) + _args, _kwargs) - return val - def EditLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_EditLabel,(self,) + _args, _kwargs) - return val - def SetItemBold(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemBold,(self,) + _args, _kwargs) - return val - def IsBold(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsBold,(self,) + _args, _kwargs) - return val - def HitTest(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_HitTest,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) - - # 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_GetNextChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) - -class wxTreeCtrl(wxTreeCtrlPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxTreeCtrl,_args,_kwargs) - 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_MASK_STATE = controls2c.wxLIST_MASK_STATE -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 5945c69997..0000000000 --- a/utils/wxPython/src/gtk/events.cpp +++ /dev/null @@ -1,3571 +0,0 @@ -/* - * FILE : gtk/events.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -#define wxEvent_GetEventObject(_swigobj) (_swigobj->GetEventObject()) -static PyObject *_wrap_wxEvent_GetEventObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetEventObject",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxEvent_GetEventType(_swigobj) (_swigobj->GetEventType()) -static PyObject *_wrap_wxEvent_GetEventType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEventType _result; - wxEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetEventType",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetSkipped",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetTimestamp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxEvent_SetEventObject",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetEventObject. Expected _wxEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxEvent_SetEventType",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxEvent_SetId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxEvent_SetTimestamp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxEvent_Skip",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSizeEvent_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCloseEvent_SetLoggingOff",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCloseEvent_GetLoggingOff",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxCloseEvent_Veto",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCloseEvent_CanVeto",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCloseEvent_GetVeto",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCloseEvent_SetCanVeto",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_Checked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetExtraLong",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetInt",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetString",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_IsSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollEvent_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_IsButton",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMouseEvent_ButtonDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMouseEvent_ButtonDClick",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMouseEvent_ButtonUp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMouseEvent_Button",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMouseEvent_ButtonIsDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_ControlDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MetaDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_AltDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_ShiftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftUp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleUp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightUp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftDClick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleDClick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightDClick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftIsDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleIsDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightIsDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Dragging",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Moving",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Entering",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Leaving",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Position",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMouseEvent_GetLogicalPosition",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetLogicalPosition. Expected _wxMouseEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_ControlDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_MetaDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_AltDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_ShiftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_KeyCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMoveEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEraseEvent_GetDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxActivateEvent_GetActive",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuEvent_GetMenuId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxShowEvent_SetShow",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxShowEvent_GetShow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetZPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetButtonState",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetButtonChange",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetJoystick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetJoystick",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetButtonState",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetButtonChange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxJoystickEvent_SetPosition",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetZPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_IsButton",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_IsMove",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_IsZMove",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxJOY_BUTTON_ANY; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxJoystickEvent_ButtonDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxJOY_BUTTON_ANY; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxJoystickEvent_ButtonUp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxJOY_BUTTON_ANY; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxJoystickEvent_ButtonIsDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDropFilesEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDropFilesEvent_GetNumberOfFiles",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxIdleEvent_RequestMore",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIdleEvent_MoreRequested",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetChecked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetText",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetSetText",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetSetChecked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetSetEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxUpdateUIEvent_Check",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxUpdateUIEvent_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxUpdateUIEvent_SetText",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxEventType ) wxEVT_NULL; - PyObject * _arg1 = (PyObject *) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyEvent_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPyEvent(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPyEvent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyEvent_SetUserData",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyEvent_GetUserData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 void *SwigwxNotifyEventTowxCommandEvent(void *ptr) { - wxNotifyEvent *src; - wxCommandEvent *dest; - src = (wxNotifyEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxNotifyEventTowxEvent(void *ptr) { - wxNotifyEvent *src; - wxEvent *dest; - src = (wxNotifyEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxNotifyEvent_IsAllowed(_swigobj) (_swigobj->IsAllowed()) -static PyObject *_wrap_wxNotifyEvent_IsAllowed(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotifyEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotifyEvent_IsAllowed",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotifyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotifyEvent_IsAllowed. Expected _wxNotifyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotifyEvent_IsAllowed(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotifyEvent_Veto(_swigobj) (_swigobj->Veto()) -static PyObject *_wrap_wxNotifyEvent_Veto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotifyEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotifyEvent_Veto",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotifyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotifyEvent_Veto. Expected _wxNotifyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotifyEvent_Veto(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef eventscMethods[] = { - { "wxNotifyEvent_Veto", _wrap_wxNotifyEvent_Veto, METH_VARARGS }, - { "wxNotifyEvent_IsAllowed", _wrap_wxNotifyEvent_IsAllowed, METH_VARARGS }, - { "wxPyEvent_GetUserData", _wrap_wxPyEvent_GetUserData, METH_VARARGS }, - { "wxPyEvent_SetUserData", _wrap_wxPyEvent_SetUserData, METH_VARARGS }, - { "delete_wxPyEvent", _wrap_delete_wxPyEvent, METH_VARARGS }, - { "new_wxPyEvent", _wrap_new_wxPyEvent, METH_VARARGS }, - { "wxUpdateUIEvent_SetText", _wrap_wxUpdateUIEvent_SetText, METH_VARARGS }, - { "wxUpdateUIEvent_Enable", _wrap_wxUpdateUIEvent_Enable, METH_VARARGS }, - { "wxUpdateUIEvent_Check", _wrap_wxUpdateUIEvent_Check, METH_VARARGS }, - { "wxUpdateUIEvent_GetSetEnabled", _wrap_wxUpdateUIEvent_GetSetEnabled, METH_VARARGS }, - { "wxUpdateUIEvent_GetSetChecked", _wrap_wxUpdateUIEvent_GetSetChecked, METH_VARARGS }, - { "wxUpdateUIEvent_GetSetText", _wrap_wxUpdateUIEvent_GetSetText, METH_VARARGS }, - { "wxUpdateUIEvent_GetText", _wrap_wxUpdateUIEvent_GetText, METH_VARARGS }, - { "wxUpdateUIEvent_GetEnabled", _wrap_wxUpdateUIEvent_GetEnabled, METH_VARARGS }, - { "wxUpdateUIEvent_GetChecked", _wrap_wxUpdateUIEvent_GetChecked, METH_VARARGS }, - { "wxIdleEvent_MoreRequested", _wrap_wxIdleEvent_MoreRequested, METH_VARARGS }, - { "wxIdleEvent_RequestMore", _wrap_wxIdleEvent_RequestMore, METH_VARARGS }, - { "wxDropFilesEvent_GetFiles", _wrap_wxDropFilesEvent_GetFiles, METH_VARARGS }, - { "wxDropFilesEvent_GetNumberOfFiles", _wrap_wxDropFilesEvent_GetNumberOfFiles, METH_VARARGS }, - { "wxDropFilesEvent_GetPosition", _wrap_wxDropFilesEvent_GetPosition, METH_VARARGS }, - { "wxJoystickEvent_ButtonIsDown", _wrap_wxJoystickEvent_ButtonIsDown, METH_VARARGS }, - { "wxJoystickEvent_ButtonUp", _wrap_wxJoystickEvent_ButtonUp, METH_VARARGS }, - { "wxJoystickEvent_ButtonDown", _wrap_wxJoystickEvent_ButtonDown, METH_VARARGS }, - { "wxJoystickEvent_IsZMove", _wrap_wxJoystickEvent_IsZMove, METH_VARARGS }, - { "wxJoystickEvent_IsMove", _wrap_wxJoystickEvent_IsMove, METH_VARARGS }, - { "wxJoystickEvent_IsButton", _wrap_wxJoystickEvent_IsButton, METH_VARARGS }, - { "wxJoystickEvent_SetZPosition", _wrap_wxJoystickEvent_SetZPosition, METH_VARARGS }, - { "wxJoystickEvent_SetPosition", _wrap_wxJoystickEvent_SetPosition, METH_VARARGS }, - { "wxJoystickEvent_SetButtonChange", _wrap_wxJoystickEvent_SetButtonChange, METH_VARARGS }, - { "wxJoystickEvent_SetButtonState", _wrap_wxJoystickEvent_SetButtonState, METH_VARARGS }, - { "wxJoystickEvent_SetJoystick", _wrap_wxJoystickEvent_SetJoystick, METH_VARARGS }, - { "wxJoystickEvent_GetJoystick", _wrap_wxJoystickEvent_GetJoystick, METH_VARARGS }, - { "wxJoystickEvent_GetButtonChange", _wrap_wxJoystickEvent_GetButtonChange, METH_VARARGS }, - { "wxJoystickEvent_GetButtonState", _wrap_wxJoystickEvent_GetButtonState, METH_VARARGS }, - { "wxJoystickEvent_GetZPosition", _wrap_wxJoystickEvent_GetZPosition, METH_VARARGS }, - { "wxJoystickEvent_GetPosition", _wrap_wxJoystickEvent_GetPosition, METH_VARARGS }, - { "wxShowEvent_GetShow", _wrap_wxShowEvent_GetShow, METH_VARARGS }, - { "wxShowEvent_SetShow", _wrap_wxShowEvent_SetShow, METH_VARARGS }, - { "wxMenuEvent_GetMenuId", _wrap_wxMenuEvent_GetMenuId, METH_VARARGS }, - { "wxActivateEvent_GetActive", _wrap_wxActivateEvent_GetActive, METH_VARARGS }, - { "wxEraseEvent_GetDC", _wrap_wxEraseEvent_GetDC, METH_VARARGS }, - { "wxMoveEvent_GetPosition", _wrap_wxMoveEvent_GetPosition, METH_VARARGS }, - { "wxKeyEvent_KeyCode", _wrap_wxKeyEvent_KeyCode, METH_VARARGS }, - { "wxKeyEvent_ShiftDown", _wrap_wxKeyEvent_ShiftDown, METH_VARARGS }, - { "wxKeyEvent_AltDown", _wrap_wxKeyEvent_AltDown, METH_VARARGS }, - { "wxKeyEvent_MetaDown", _wrap_wxKeyEvent_MetaDown, METH_VARARGS }, - { "wxKeyEvent_ControlDown", _wrap_wxKeyEvent_ControlDown, METH_VARARGS }, - { "wxMouseEvent_GetY", _wrap_wxMouseEvent_GetY, METH_VARARGS }, - { "wxMouseEvent_GetX", _wrap_wxMouseEvent_GetX, METH_VARARGS }, - { "wxMouseEvent_GetLogicalPosition", _wrap_wxMouseEvent_GetLogicalPosition, METH_VARARGS }, - { "wxMouseEvent_GetPosition", _wrap_wxMouseEvent_GetPosition, METH_VARARGS }, - { "wxMouseEvent_Position", _wrap_wxMouseEvent_Position, METH_VARARGS }, - { "wxMouseEvent_Leaving", _wrap_wxMouseEvent_Leaving, METH_VARARGS }, - { "wxMouseEvent_Entering", _wrap_wxMouseEvent_Entering, METH_VARARGS }, - { "wxMouseEvent_Moving", _wrap_wxMouseEvent_Moving, METH_VARARGS }, - { "wxMouseEvent_Dragging", _wrap_wxMouseEvent_Dragging, METH_VARARGS }, - { "wxMouseEvent_RightIsDown", _wrap_wxMouseEvent_RightIsDown, METH_VARARGS }, - { "wxMouseEvent_MiddleIsDown", _wrap_wxMouseEvent_MiddleIsDown, METH_VARARGS }, - { "wxMouseEvent_LeftIsDown", _wrap_wxMouseEvent_LeftIsDown, METH_VARARGS }, - { "wxMouseEvent_RightDClick", _wrap_wxMouseEvent_RightDClick, METH_VARARGS }, - { "wxMouseEvent_MiddleDClick", _wrap_wxMouseEvent_MiddleDClick, METH_VARARGS }, - { "wxMouseEvent_LeftDClick", _wrap_wxMouseEvent_LeftDClick, METH_VARARGS }, - { "wxMouseEvent_RightUp", _wrap_wxMouseEvent_RightUp, METH_VARARGS }, - { "wxMouseEvent_MiddleUp", _wrap_wxMouseEvent_MiddleUp, METH_VARARGS }, - { "wxMouseEvent_LeftUp", _wrap_wxMouseEvent_LeftUp, METH_VARARGS }, - { "wxMouseEvent_RightDown", _wrap_wxMouseEvent_RightDown, METH_VARARGS }, - { "wxMouseEvent_MiddleDown", _wrap_wxMouseEvent_MiddleDown, METH_VARARGS }, - { "wxMouseEvent_LeftDown", _wrap_wxMouseEvent_LeftDown, METH_VARARGS }, - { "wxMouseEvent_ShiftDown", _wrap_wxMouseEvent_ShiftDown, METH_VARARGS }, - { "wxMouseEvent_AltDown", _wrap_wxMouseEvent_AltDown, METH_VARARGS }, - { "wxMouseEvent_MetaDown", _wrap_wxMouseEvent_MetaDown, METH_VARARGS }, - { "wxMouseEvent_ControlDown", _wrap_wxMouseEvent_ControlDown, METH_VARARGS }, - { "wxMouseEvent_ButtonIsDown", _wrap_wxMouseEvent_ButtonIsDown, METH_VARARGS }, - { "wxMouseEvent_Button", _wrap_wxMouseEvent_Button, METH_VARARGS }, - { "wxMouseEvent_ButtonUp", _wrap_wxMouseEvent_ButtonUp, METH_VARARGS }, - { "wxMouseEvent_ButtonDClick", _wrap_wxMouseEvent_ButtonDClick, METH_VARARGS }, - { "wxMouseEvent_ButtonDown", _wrap_wxMouseEvent_ButtonDown, METH_VARARGS }, - { "wxMouseEvent_IsButton", _wrap_wxMouseEvent_IsButton, METH_VARARGS }, - { "wxScrollEvent_GetPosition", _wrap_wxScrollEvent_GetPosition, METH_VARARGS }, - { "wxScrollEvent_GetOrientation", _wrap_wxScrollEvent_GetOrientation, METH_VARARGS }, - { "wxCommandEvent_IsSelection", _wrap_wxCommandEvent_IsSelection, METH_VARARGS }, - { "wxCommandEvent_GetString", _wrap_wxCommandEvent_GetString, METH_VARARGS }, - { "wxCommandEvent_GetSelection", _wrap_wxCommandEvent_GetSelection, METH_VARARGS }, - { "wxCommandEvent_GetInt", _wrap_wxCommandEvent_GetInt, METH_VARARGS }, - { "wxCommandEvent_GetExtraLong", _wrap_wxCommandEvent_GetExtraLong, METH_VARARGS }, - { "wxCommandEvent_Checked", _wrap_wxCommandEvent_Checked, METH_VARARGS }, - { "wxCloseEvent_SetCanVeto", _wrap_wxCloseEvent_SetCanVeto, METH_VARARGS }, - { "wxCloseEvent_GetVeto", _wrap_wxCloseEvent_GetVeto, METH_VARARGS }, - { "wxCloseEvent_CanVeto", _wrap_wxCloseEvent_CanVeto, METH_VARARGS }, - { "wxCloseEvent_Veto", _wrap_wxCloseEvent_Veto, METH_VARARGS }, - { "wxCloseEvent_GetLoggingOff", _wrap_wxCloseEvent_GetLoggingOff, METH_VARARGS }, - { "wxCloseEvent_SetLoggingOff", _wrap_wxCloseEvent_SetLoggingOff, METH_VARARGS }, - { "wxSizeEvent_GetSize", _wrap_wxSizeEvent_GetSize, METH_VARARGS }, - { "wxEvent_Skip", _wrap_wxEvent_Skip, METH_VARARGS }, - { "wxEvent_SetTimestamp", _wrap_wxEvent_SetTimestamp, METH_VARARGS }, - { "wxEvent_SetId", _wrap_wxEvent_SetId, METH_VARARGS }, - { "wxEvent_SetEventType", _wrap_wxEvent_SetEventType, METH_VARARGS }, - { "wxEvent_SetEventObject", _wrap_wxEvent_SetEventObject, METH_VARARGS }, - { "wxEvent_GetTimestamp", _wrap_wxEvent_GetTimestamp, METH_VARARGS }, - { "wxEvent_GetSkipped", _wrap_wxEvent_GetSkipped, METH_VARARGS }, - { "wxEvent_GetId", _wrap_wxEvent_GetId, METH_VARARGS }, - { "wxEvent_GetEventType", _wrap_wxEvent_GetEventType, METH_VARARGS }, - { "wxEvent_GetEventObject", _wrap_wxEvent_GetEventObject, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_wxEvent","_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_class_wxEvent","_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_class_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_class_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_class_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_class_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_class_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_class_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_class_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_class_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_class_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_class_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_class_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_class_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_class_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_class_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_class_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_class_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_class_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_class_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_class_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_class_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_class_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_class_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_class_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_class_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_class_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_class_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_class_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_class_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_class_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_class_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_class_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_class_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_class_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_class_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_class_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_class_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_class_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_class_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_class_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_class_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_class_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_class_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_class_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_class_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_class_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_class_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_wxCommandEvent","_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_unsigned_char","_byte",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_class_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_class_wxCommandEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/events.py b/utils/wxPython/src/gtk/events.py deleted file mode 100644 index 39025e5429..0000000000 --- a/utils/wxPython/src/gtk/events.py +++ /dev/null @@ -1,651 +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, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetEventObject,(self,) + _args, _kwargs) - return val - def GetEventType(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetEventType,(self,) + _args, _kwargs) - return val - def GetId(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetId,(self,) + _args, _kwargs) - return val - def GetSkipped(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetSkipped,(self,) + _args, _kwargs) - return val - def GetTimestamp(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetTimestamp,(self,) + _args, _kwargs) - return val - def SetEventObject(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetEventObject,(self,) + _args, _kwargs) - return val - def SetEventType(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetEventType,(self,) + _args, _kwargs) - return val - def SetId(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetId,(self,) + _args, _kwargs) - return val - def SetTimestamp(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetTimestamp,(self,) + _args, _kwargs) - return val - def Skip(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_Skip,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxSizeEvent_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_SetLoggingOff,(self,) + _args, _kwargs) - return val - def GetLoggingOff(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_GetLoggingOff,(self,) + _args, _kwargs) - return val - def Veto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_Veto,(self,) + _args, _kwargs) - return val - def CanVeto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_CanVeto,(self,) + _args, _kwargs) - return val - def GetVeto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_GetVeto,(self,) + _args, _kwargs) - return val - def SetCanVeto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_SetCanVeto,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_Checked,(self,) + _args, _kwargs) - return val - def GetExtraLong(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetExtraLong,(self,) + _args, _kwargs) - return val - def GetInt(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetInt,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetString,(self,) + _args, _kwargs) - return val - def IsSelection(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_IsSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxScrollEvent_GetOrientation,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxScrollEvent_GetPosition,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_IsButton,(self,) + _args, _kwargs) - return val - def ButtonDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonDown,(self,) + _args, _kwargs) - return val - def ButtonDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonDClick,(self,) + _args, _kwargs) - return val - def ButtonUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonUp,(self,) + _args, _kwargs) - return val - def Button(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Button,(self,) + _args, _kwargs) - return val - def ButtonIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonIsDown,(self,) + _args, _kwargs) - return val - def ControlDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ControlDown,(self,) + _args, _kwargs) - return val - def MetaDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MetaDown,(self,) + _args, _kwargs) - return val - def AltDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_AltDown,(self,) + _args, _kwargs) - return val - def ShiftDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ShiftDown,(self,) + _args, _kwargs) - return val - def LeftDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftDown,(self,) + _args, _kwargs) - return val - def MiddleDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleDown,(self,) + _args, _kwargs) - return val - def RightDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightDown,(self,) + _args, _kwargs) - return val - def LeftUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftUp,(self,) + _args, _kwargs) - return val - def MiddleUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleUp,(self,) + _args, _kwargs) - return val - def RightUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightUp,(self,) + _args, _kwargs) - return val - def LeftDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftDClick,(self,) + _args, _kwargs) - return val - def MiddleDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleDClick,(self,) + _args, _kwargs) - return val - def RightDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightDClick,(self,) + _args, _kwargs) - return val - def LeftIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftIsDown,(self,) + _args, _kwargs) - return val - def MiddleIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleIsDown,(self,) + _args, _kwargs) - return val - def RightIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightIsDown,(self,) + _args, _kwargs) - return val - def Dragging(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Dragging,(self,) + _args, _kwargs) - return val - def Moving(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Moving,(self,) + _args, _kwargs) - return val - def Entering(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Entering,(self,) + _args, _kwargs) - return val - def Leaving(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Leaving,(self,) + _args, _kwargs) - return val - def Position(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Position,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetLogicalPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetLogicalPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetX(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetY,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_ControlDown,(self,) + _args, _kwargs) - return val - def MetaDown(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_MetaDown,(self,) + _args, _kwargs) - return val - def AltDown(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_AltDown,(self,) + _args, _kwargs) - return val - def ShiftDown(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_ShiftDown,(self,) + _args, _kwargs) - return val - def KeyCode(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_KeyCode,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxMoveEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxEraseEvent_GetDC,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxActivateEvent_GetActive,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxMenuEvent_GetMenuId,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxShowEvent_SetShow,(self,) + _args, _kwargs) - return val - def GetShow(self, *_args, **_kwargs): - val = apply(eventsc.wxShowEvent_GetShow,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetZPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetZPosition,(self,) + _args, _kwargs) - return val - def GetButtonState(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetButtonState,(self,) + _args, _kwargs) - return val - def GetButtonChange(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetButtonChange,(self,) + _args, _kwargs) - return val - def GetJoystick(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetJoystick,(self,) + _args, _kwargs) - return val - def SetJoystick(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetJoystick,(self,) + _args, _kwargs) - return val - def SetButtonState(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetButtonState,(self,) + _args, _kwargs) - return val - def SetButtonChange(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetButtonChange,(self,) + _args, _kwargs) - return val - def SetPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetPosition,(self,) + _args, _kwargs) - return val - def SetZPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetZPosition,(self,) + _args, _kwargs) - return val - def IsButton(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_IsButton,(self,) + _args, _kwargs) - return val - def IsMove(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_IsMove,(self,) + _args, _kwargs) - return val - def IsZMove(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_IsZMove,(self,) + _args, _kwargs) - return val - def ButtonDown(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_ButtonDown,(self,) + _args, _kwargs) - return val - def ButtonUp(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_ButtonUp,(self,) + _args, _kwargs) - return val - def ButtonIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_ButtonIsDown,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxDropFilesEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetNumberOfFiles(self, *_args, **_kwargs): - val = apply(eventsc.wxDropFilesEvent_GetNumberOfFiles,(self,) + _args, _kwargs) - return val - def GetFiles(self, *_args, **_kwargs): - val = apply(eventsc.wxDropFilesEvent_GetFiles,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, **_kwargs): - val = apply(eventsc.wxIdleEvent_RequestMore,(self,) + _args, _kwargs) - return val - def MoreRequested(self, *_args, **_kwargs): - val = apply(eventsc.wxIdleEvent_MoreRequested,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetChecked,(self,) + _args, _kwargs) - return val - def GetEnabled(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetEnabled,(self,) + _args, _kwargs) - return val - def GetText(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetText,(self,) + _args, _kwargs) - return val - def GetSetText(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetSetText,(self,) + _args, _kwargs) - return val - def GetSetChecked(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetSetChecked,(self,) + _args, _kwargs) - return val - def GetSetEnabled(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetSetEnabled,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_Check,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_Enable,(self,) + _args, _kwargs) - return val - def SetText(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_SetText,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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,eventsc=eventsc): - if self.thisown == 1 : - eventsc.delete_wxPyEvent(self) - def SetUserData(self, *_args, **_kwargs): - val = apply(eventsc.wxPyEvent_SetUserData,(self,) + _args, _kwargs) - return val - def GetUserData(self, *_args, **_kwargs): - val = apply(eventsc.wxPyEvent_GetUserData,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPyEvent(wxPyEventPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(eventsc.new_wxPyEvent,_args,_kwargs) - self.thisown = 1 - - - - -class wxNotifyEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsAllowed(self, *_args, **_kwargs): - val = apply(eventsc.wxNotifyEvent_IsAllowed,(self,) + _args, _kwargs) - return val - def Veto(self, *_args, **_kwargs): - val = apply(eventsc.wxNotifyEvent_Veto,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxNotifyEvent(wxNotifyEventPtr): - def __init__(self,this): - self.this = this - - - - - - -#-------------- 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 c1dcfd2bf4..0000000000 --- a/utils/wxPython/src/gtk/frames.cpp +++ /dev/null @@ -1,1210 +0,0 @@ -/* - * FILE : gtk/frames.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxFrame_Centre",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - long _arg2 = (long ) wxST_SIZEGRIP; - wxWindowID _arg3 = (wxWindowID ) -1; - char * _arg4 = (char *) "statusBar"; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|ilis:wxFrame_CreateStatusBar",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (long ) wxNO_BORDER|wxTB_HORIZONTAL|wxTB_FLAT; - wxWindowID _arg2 = (wxWindowID ) -1; - char * _arg3 = (char *) "toolBar"; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|lis:wxFrame_CreateToolBar",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFrame_GetMenuBar(_swigobj) (_swigobj->GetMenuBar()) -static PyObject *_wrap_wxFrame_GetMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - wxFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetMenuBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFrame_GetStatusBar(_swigobj) (_swigobj->GetStatusBar()) -static PyObject *_wrap_wxFrame_GetStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetStatusBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFrame_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxFrame_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFrame * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetToolBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFrame_Iconize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_IsIconized",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFrame_Maximize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetAcceleratorTable",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetAcceleratorTable. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetIcon",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetIcon. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetMenuBar",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetMenuBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetStatusBar",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxFrame_SetStatusText",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetStatusWidths",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetToolBar",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetToolBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxMiniFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMiniFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMiniFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static PyMethodDef framescMethods[] = { - { "new_wxMiniFrame", _wrap_new_wxMiniFrame, METH_VARARGS }, - { "wxFrame_SetToolBar", _wrap_wxFrame_SetToolBar, METH_VARARGS }, - { "wxFrame_SetTitle", _wrap_wxFrame_SetTitle, METH_VARARGS }, - { "wxFrame_SetStatusWidths", _wrap_wxFrame_SetStatusWidths, METH_VARARGS }, - { "wxFrame_SetStatusText", _wrap_wxFrame_SetStatusText, METH_VARARGS }, - { "wxFrame_SetStatusBar", _wrap_wxFrame_SetStatusBar, METH_VARARGS }, - { "wxFrame_SetMenuBar", _wrap_wxFrame_SetMenuBar, METH_VARARGS }, - { "wxFrame_SetIcon", _wrap_wxFrame_SetIcon, METH_VARARGS }, - { "wxFrame_SetAcceleratorTable", _wrap_wxFrame_SetAcceleratorTable, METH_VARARGS }, - { "wxFrame_Maximize", _wrap_wxFrame_Maximize, METH_VARARGS }, - { "wxFrame_IsIconized", _wrap_wxFrame_IsIconized, METH_VARARGS }, - { "wxFrame_Iconize", _wrap_wxFrame_Iconize, METH_VARARGS }, - { "wxFrame_GetToolBar", _wrap_wxFrame_GetToolBar, METH_VARARGS }, - { "wxFrame_GetTitle", _wrap_wxFrame_GetTitle, METH_VARARGS }, - { "wxFrame_GetStatusBar", _wrap_wxFrame_GetStatusBar, METH_VARARGS }, - { "wxFrame_GetMenuBar", _wrap_wxFrame_GetMenuBar, METH_VARARGS }, - { "wxFrame_CreateToolBar", _wrap_wxFrame_CreateToolBar, METH_VARARGS }, - { "wxFrame_CreateStatusBar", _wrap_wxFrame_CreateStatusBar, METH_VARARGS }, - { "wxFrame_Centre", _wrap_wxFrame_Centre, METH_VARARGS }, - { "new_wxFrame", _wrap_new_wxFrame, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_class_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_class_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow}, - { "_class_wxWindow","_wxFrame",SwigwxFrameTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow}, - { "_wxWindow","_wxFrame",SwigwxFrameTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_class_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/frames.py b/utils/wxPython/src/gtk/frames.py deleted file mode 100644 index 35fde350e1..0000000000 --- a/utils/wxPython/src/gtk/frames.py +++ /dev/null @@ -1,112 +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, **_kwargs): - val = apply(framesc.wxFrame_Centre,(self,) + _args, _kwargs) - return val - def CreateStatusBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_CreateStatusBar,(self,) + _args, _kwargs) - if val: val = wxStatusBarPtr(val) - return val - def CreateToolBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_CreateToolBar,(self,) + _args, _kwargs) - if val: val = wxToolBarPtr(val) - return val - def GetMenuBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetMenuBar,(self,) + _args, _kwargs) - if val: val = wxMenuBarPtr(val) - return val - def GetStatusBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetStatusBar,(self,) + _args, _kwargs) - if val: val = wxStatusBarPtr(val) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetTitle,(self,) + _args, _kwargs) - return val - def GetToolBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetToolBar,(self,) + _args, _kwargs) - if val: val = wxToolBarPtr(val) - return val - def Iconize(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_Iconize,(self,) + _args, _kwargs) - return val - def IsIconized(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_IsIconized,(self,) + _args, _kwargs) - return val - def Maximize(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_Maximize,(self,) + _args, _kwargs) - return val - def SetAcceleratorTable(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetAcceleratorTable,(self,) + _args, _kwargs) - return val - def SetIcon(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetIcon,(self,) + _args, _kwargs) - return val - def SetMenuBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetMenuBar,(self,) + _args, _kwargs) - return val - def SetStatusBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetStatusBar,(self,) + _args, _kwargs) - return val - def SetStatusText(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetStatusText,(self,) + _args, _kwargs) - return val - def SetStatusWidths(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetStatusWidths,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetTitle,(self,) + _args, _kwargs) - return val - def SetToolBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetToolBar,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFrame(wxFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(framesc.new_wxFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMiniFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxMiniFrame(wxMiniFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(framesc.new_wxMiniFrame,_args,_kwargs) - 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 4dade855b2..0000000000 --- a/utils/wxPython/src/gtk/gdi.cpp +++ /dev/null @@ -1,6607 +0,0 @@ -/* - * FILE : gtk/gdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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); - } - -#ifdef __WXMSW__ - wxBitmap* wxBitmapFromData(char* data, long type, - int width, int height, int depth = 1) { - return new wxBitmap((void*)data, type, width, height, depth); - } -#endif - - 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 -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_wxEmptyBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - int _arg0; - int _arg1; - int _arg2 = (int ) -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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_wxMaskColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - wxColour * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMaskColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMaskColour. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxMemoryDCFromDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMemoryDCFromDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetDepth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetPalette",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmap_GetMask(_swigobj) (_swigobj->GetMask()) -static PyObject *_wrap_wxBitmap_GetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmap_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxBitmap_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOl:wxBitmap_LoadFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPalette *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi|O:wxBitmap_SaveFile",&_argo0,&_obj1,&_arg2,&_argo3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBitmap_SetDepth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBitmap_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmap_SetMask",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetMask. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBitmap_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxMask(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - int _arg3 = (int ) -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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxIcon",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_GetDepth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOl:wxIcon_LoadFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIcon_SetDepth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIcon_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIcon_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxCursor",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCursor_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) FALSE; - char * _arg5 = (char *) ""; - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFont_GetFaceName(_swigobj) (_swigobj->GetFaceName()) -static PyObject *_wrap_wxFont_GetFaceName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFont * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetFaceName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetFamily",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetPointSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetUnderlined",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetWeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFont_SetFaceName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetFamily",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetPointSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetUnderlined",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetWeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (unsigned char ) 0; - unsigned char _arg1 = (unsigned char ) 0; - unsigned char _arg2 = (unsigned char ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxColour(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Red",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Green",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Blue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Obbb:wxColour_Set",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - int _arg2 = (int ) wxSOLID; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:new_wxPen",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPen_GetCap(_swigobj) (_swigobj->GetCap()) -static PyObject *_wrap_wxPen_GetCap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetCap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPen_GetJoin(_swigobj) (_swigobj->GetJoin()) -static PyObject *_wrap_wxPen_GetJoin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetJoin",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetCap",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPen_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetColour. Expected _wxPen_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetJoin",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxSOLID; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:new_wxBrush",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBrush_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxBrush_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxBrush * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBrush_GetStipple(_swigobj) (_swigobj->GetStipple()) -static PyObject *_wrap_wxBrush_GetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBrush * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_GetStipple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBrush_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxBrush_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBrush * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBrush_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetColour. Expected _wxBrush_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBrush_SetStipple",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetStipple. Expected _wxBrush_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBrush_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_BeginDrawing",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllllOlll:wxDC_Blit",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5,&_arg6,&_arg7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Blit. Expected _wxDC_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_CrossHair",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_DestroyClippingRegion",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalXRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalYRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollllll:wxDC_DrawArc",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_DrawCircle(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DrawCircle(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_DrawCircle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Olll:wxDC_DrawCircle",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawCircle. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawCircle(_arg0,_arg1,_arg2,_arg3); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_DrawEllipse",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollllll:wxDC_DrawEllipticArc",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOll:wxDC_DrawIcon",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawIcon. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_DrawLine",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg4 = (long ) 0; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|ll:wxDC_DrawLines",&_argo0,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg4 = (long ) 0; - int _arg5 = (int ) wxODDEVEN_RULE; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|lli:wxDC_DrawPolygon",&_argo0,&_obj2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_DrawPoint",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_DrawRectangle",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 20; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll|l:wxDC_DrawRoundedRectangle",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_DrawSpline",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOll:wxDC_DrawText",&_argo0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_EndDoc",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_EndDrawing",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_EndPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxFLOOD_SURFACE; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllO|i:wxDC_FloodFill",&_argo0,&_arg1,&_arg2,&_argo3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_FloodFill. Expected _wxDC_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetBackground",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetBrush(_swigobj) (_swigobj->GetBrush()) -static PyObject *_wrap_wxDC_GetBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetBrush",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetCharHeight(_swigobj) (_swigobj->GetCharHeight()) -static PyObject *_wrap_wxDC_GetCharHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetCharHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetCharWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} -{ - _arg3 = &temp1; -} -{ - _arg4 = &temp2; -} - if(!PyArg_ParseTuple(args,"O:wxDC_GetClippingBox",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetLogicalFunction(_swigobj) (_swigobj->GetLogicalFunction()) -static PyObject *_wrap_wxDC_GetLogicalFunction(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetLogicalFunction",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetMapMode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetOptimization",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetPen",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_GetPixel",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetSizeTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_GetSizeTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxDC_GetSizeTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetSizeTuple. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_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 wxDC_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - _result = new wxSize (wxDC_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetTextBackground(_swigobj) (_swigobj->GetTextBackground()) -static PyObject *_wrap_wxDC_GetTextBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetTextBackground",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"OO:wxDC_GetTextExtent",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxFont *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"OO|O:wxDC_GetFullTextExtent",&_argo0,&_obj1,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetTextForeground",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceXRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceYRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MaxX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MaxY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MinX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MinY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_SetDeviceOrigin",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetBackground",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetBackgroundMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_SetClippingRegion",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetPalette",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPalette. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetBrush",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBrush. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetFont. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetLogicalFunction",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetMapMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetOptimization",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetPen",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPen. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetTextBackground",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetTextForeground",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextForeground. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Odd:wxDC_SetUserScale",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_StartDoc",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_StartPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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); -#ifdef __WXMSW__ - if (swapPalette) - self->SetPalette(*bitmap.GetPalette()); -#endif - 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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool4 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OOll|i:wxDC_DrawBitmap",&_argo0,&_argo1,&_arg2,&_arg3,&tempbool4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawBitmap. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMemoryDC_SelectObject",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMemoryDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMemoryDC_SelectObject. Expected _wxMemoryDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScreenDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxScreenDC_StartDrawingOnTop",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTop. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxRect *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxScreenDC_StartDrawingOnTopRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTopRect. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScreenDC_EndDrawingOnTop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxClientDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxClientDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxPaintDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPaintDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxWindowDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindowDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (bool ) TRUE; - wxWindow * _arg2 = (wxWindow *) NULL; - PyObject * _obj0 = 0; - int tempbool1 = (int) TRUE; - PyObject * _argo2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iO:new_wxPostScriptDC",&_obj0,&tempbool1,&_argo2)) - 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 (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPostScriptDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPalette",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Obbb:wxPalette_GetPixel",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOOO:wxPalette_GetRGB",&_argo0,&_arg1,&_argo2,&_argo3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_GetRGB. Expected _wxPalette_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPalette_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - int _arg3 = (int ) 1; - int tempbool2 = (int) TRUE; - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxImageList(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageList_Add",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Add. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxImageList_Replace",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Replace. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (int ) (wxIMAGELIST_DRAW_NORMAL); - bool _arg6 = (bool ) FALSE; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - int tempbool6 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"OiOii|ii:wxImageList_Draw",&_argo0,&_arg1,&_argo2,&_arg3,&_arg4,&_arg5,&tempbool6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Draw. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageList_GetImageCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxImageList_Remove",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageList_RemoveAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxImageList_Remove", _wrap_wxImageList_Remove, METH_VARARGS }, - { "wxImageList_GetImageCount", _wrap_wxImageList_GetImageCount, METH_VARARGS }, - { "wxImageList_Draw", _wrap_wxImageList_Draw, METH_VARARGS }, - { "wxImageList_Replace", _wrap_wxImageList_Replace, METH_VARARGS }, - { "wxImageList_Add", _wrap_wxImageList_Add, METH_VARARGS }, - { "delete_wxImageList", _wrap_delete_wxImageList, METH_VARARGS }, - { "new_wxImageList", _wrap_new_wxImageList, METH_VARARGS }, - { "wxPalette_Ok", _wrap_wxPalette_Ok, METH_VARARGS }, - { "wxPalette_GetRGB", _wrap_wxPalette_GetRGB, METH_VARARGS }, - { "wxPalette_GetPixel", _wrap_wxPalette_GetPixel, METH_VARARGS }, - { "delete_wxPalette", _wrap_delete_wxPalette, METH_VARARGS }, - { "new_wxPalette", _wrap_new_wxPalette, METH_VARARGS }, - { "new_wxPostScriptDC", _wrap_new_wxPostScriptDC, METH_VARARGS }, - { "new_wxWindowDC", _wrap_new_wxWindowDC, METH_VARARGS }, - { "new_wxPaintDC", _wrap_new_wxPaintDC, METH_VARARGS }, - { "new_wxClientDC", _wrap_new_wxClientDC, METH_VARARGS }, - { "wxScreenDC_EndDrawingOnTop", _wrap_wxScreenDC_EndDrawingOnTop, METH_VARARGS }, - { "wxScreenDC_StartDrawingOnTopRect", _wrap_wxScreenDC_StartDrawingOnTopRect, METH_VARARGS }, - { "wxScreenDC_StartDrawingOnTop", _wrap_wxScreenDC_StartDrawingOnTop, METH_VARARGS }, - { "new_wxScreenDC", _wrap_new_wxScreenDC, METH_VARARGS }, - { "wxMemoryDC_SelectObject", _wrap_wxMemoryDC_SelectObject, METH_VARARGS }, - { "new_wxMemoryDC", _wrap_new_wxMemoryDC, METH_VARARGS }, - { "wxDC_DrawBitmap", _wrap_wxDC_DrawBitmap, METH_VARARGS }, - { "wxDC_StartPage", _wrap_wxDC_StartPage, METH_VARARGS }, - { "wxDC_StartDoc", _wrap_wxDC_StartDoc, METH_VARARGS }, - { "wxDC_SetUserScale", _wrap_wxDC_SetUserScale, METH_VARARGS }, - { "wxDC_SetTextForeground", _wrap_wxDC_SetTextForeground, METH_VARARGS }, - { "wxDC_SetTextBackground", _wrap_wxDC_SetTextBackground, METH_VARARGS }, - { "wxDC_SetPen", _wrap_wxDC_SetPen, METH_VARARGS }, - { "wxDC_SetOptimization", _wrap_wxDC_SetOptimization, METH_VARARGS }, - { "wxDC_SetMapMode", _wrap_wxDC_SetMapMode, METH_VARARGS }, - { "wxDC_SetLogicalFunction", _wrap_wxDC_SetLogicalFunction, METH_VARARGS }, - { "wxDC_SetFont", _wrap_wxDC_SetFont, METH_VARARGS }, - { "wxDC_SetBrush", _wrap_wxDC_SetBrush, METH_VARARGS }, - { "wxDC_SetPalette", _wrap_wxDC_SetPalette, METH_VARARGS }, - { "wxDC_SetClippingRegion", _wrap_wxDC_SetClippingRegion, METH_VARARGS }, - { "wxDC_SetBackgroundMode", _wrap_wxDC_SetBackgroundMode, METH_VARARGS }, - { "wxDC_SetBackground", _wrap_wxDC_SetBackground, METH_VARARGS }, - { "wxDC_SetDeviceOrigin", _wrap_wxDC_SetDeviceOrigin, METH_VARARGS }, - { "wxDC_Ok", _wrap_wxDC_Ok, METH_VARARGS }, - { "wxDC_MinY", _wrap_wxDC_MinY, METH_VARARGS }, - { "wxDC_MinX", _wrap_wxDC_MinX, METH_VARARGS }, - { "wxDC_MaxY", _wrap_wxDC_MaxY, METH_VARARGS }, - { "wxDC_MaxX", _wrap_wxDC_MaxX, METH_VARARGS }, - { "wxDC_LogicalToDeviceYRel", _wrap_wxDC_LogicalToDeviceYRel, METH_VARARGS }, - { "wxDC_LogicalToDeviceY", _wrap_wxDC_LogicalToDeviceY, METH_VARARGS }, - { "wxDC_LogicalToDeviceXRel", _wrap_wxDC_LogicalToDeviceXRel, METH_VARARGS }, - { "wxDC_LogicalToDeviceX", _wrap_wxDC_LogicalToDeviceX, METH_VARARGS }, - { "wxDC_GetTextForeground", _wrap_wxDC_GetTextForeground, METH_VARARGS }, - { "wxDC_GetFullTextExtent", _wrap_wxDC_GetFullTextExtent, METH_VARARGS }, - { "wxDC_GetTextExtent", _wrap_wxDC_GetTextExtent, METH_VARARGS }, - { "wxDC_GetTextBackground", _wrap_wxDC_GetTextBackground, METH_VARARGS }, - { "wxDC_GetSize", _wrap_wxDC_GetSize, METH_VARARGS }, - { "wxDC_GetSizeTuple", _wrap_wxDC_GetSizeTuple, METH_VARARGS }, - { "wxDC_GetPixel", _wrap_wxDC_GetPixel, METH_VARARGS }, - { "wxDC_GetPen", _wrap_wxDC_GetPen, METH_VARARGS }, - { "wxDC_GetOptimization", _wrap_wxDC_GetOptimization, METH_VARARGS }, - { "wxDC_GetMapMode", _wrap_wxDC_GetMapMode, METH_VARARGS }, - { "wxDC_GetLogicalFunction", _wrap_wxDC_GetLogicalFunction, METH_VARARGS }, - { "wxDC_GetFont", _wrap_wxDC_GetFont, METH_VARARGS }, - { "wxDC_GetClippingBox", _wrap_wxDC_GetClippingBox, METH_VARARGS }, - { "wxDC_GetCharWidth", _wrap_wxDC_GetCharWidth, METH_VARARGS }, - { "wxDC_GetCharHeight", _wrap_wxDC_GetCharHeight, METH_VARARGS }, - { "wxDC_GetBrush", _wrap_wxDC_GetBrush, METH_VARARGS }, - { "wxDC_GetBackground", _wrap_wxDC_GetBackground, METH_VARARGS }, - { "wxDC_FloodFill", _wrap_wxDC_FloodFill, METH_VARARGS }, - { "wxDC_EndPage", _wrap_wxDC_EndPage, METH_VARARGS }, - { "wxDC_EndDrawing", _wrap_wxDC_EndDrawing, METH_VARARGS }, - { "wxDC_EndDoc", _wrap_wxDC_EndDoc, METH_VARARGS }, - { "wxDC_DrawText", _wrap_wxDC_DrawText, METH_VARARGS }, - { "wxDC_DrawSpline", _wrap_wxDC_DrawSpline, METH_VARARGS }, - { "wxDC_DrawRoundedRectangle", _wrap_wxDC_DrawRoundedRectangle, METH_VARARGS }, - { "wxDC_DrawRectangle", _wrap_wxDC_DrawRectangle, METH_VARARGS }, - { "wxDC_DrawPoint", _wrap_wxDC_DrawPoint, METH_VARARGS }, - { "wxDC_DrawPolygon", _wrap_wxDC_DrawPolygon, METH_VARARGS }, - { "wxDC_DrawLines", _wrap_wxDC_DrawLines, METH_VARARGS }, - { "wxDC_DrawLine", _wrap_wxDC_DrawLine, METH_VARARGS }, - { "wxDC_DrawIcon", _wrap_wxDC_DrawIcon, METH_VARARGS }, - { "wxDC_DrawEllipticArc", _wrap_wxDC_DrawEllipticArc, METH_VARARGS }, - { "wxDC_DrawEllipse", _wrap_wxDC_DrawEllipse, METH_VARARGS }, - { "wxDC_DrawCircle", _wrap_wxDC_DrawCircle, METH_VARARGS }, - { "wxDC_DrawArc", _wrap_wxDC_DrawArc, METH_VARARGS }, - { "wxDC_DeviceToLogicalYRel", _wrap_wxDC_DeviceToLogicalYRel, METH_VARARGS }, - { "wxDC_DeviceToLogicalY", _wrap_wxDC_DeviceToLogicalY, METH_VARARGS }, - { "wxDC_DeviceToLogicalXRel", _wrap_wxDC_DeviceToLogicalXRel, METH_VARARGS }, - { "wxDC_DeviceToLogicalX", _wrap_wxDC_DeviceToLogicalX, METH_VARARGS }, - { "wxDC_DestroyClippingRegion", _wrap_wxDC_DestroyClippingRegion, METH_VARARGS }, - { "wxDC_CrossHair", _wrap_wxDC_CrossHair, METH_VARARGS }, - { "wxDC_Clear", _wrap_wxDC_Clear, METH_VARARGS }, - { "wxDC_Blit", _wrap_wxDC_Blit, METH_VARARGS }, - { "wxDC_BeginDrawing", _wrap_wxDC_BeginDrawing, METH_VARARGS }, - { "delete_wxDC", _wrap_delete_wxDC, METH_VARARGS }, - { "wxBrush_SetStyle", _wrap_wxBrush_SetStyle, METH_VARARGS }, - { "wxBrush_SetStipple", _wrap_wxBrush_SetStipple, METH_VARARGS }, - { "wxBrush_SetColour", _wrap_wxBrush_SetColour, METH_VARARGS }, - { "wxBrush_Ok", _wrap_wxBrush_Ok, METH_VARARGS }, - { "wxBrush_GetStyle", _wrap_wxBrush_GetStyle, METH_VARARGS }, - { "wxBrush_GetStipple", _wrap_wxBrush_GetStipple, METH_VARARGS }, - { "wxBrush_GetColour", _wrap_wxBrush_GetColour, METH_VARARGS }, - { "new_wxBrush", _wrap_new_wxBrush, METH_VARARGS }, - { "wxPen_SetWidth", _wrap_wxPen_SetWidth, METH_VARARGS }, - { "wxPen_SetStyle", _wrap_wxPen_SetStyle, METH_VARARGS }, - { "wxPen_SetJoin", _wrap_wxPen_SetJoin, METH_VARARGS }, - { "wxPen_SetColour", _wrap_wxPen_SetColour, METH_VARARGS }, - { "wxPen_SetCap", _wrap_wxPen_SetCap, METH_VARARGS }, - { "wxPen_Ok", _wrap_wxPen_Ok, METH_VARARGS }, - { "wxPen_GetWidth", _wrap_wxPen_GetWidth, METH_VARARGS }, - { "wxPen_GetStyle", _wrap_wxPen_GetStyle, METH_VARARGS }, - { "wxPen_GetJoin", _wrap_wxPen_GetJoin, METH_VARARGS }, - { "wxPen_GetColour", _wrap_wxPen_GetColour, METH_VARARGS }, - { "wxPen_GetCap", _wrap_wxPen_GetCap, METH_VARARGS }, - { "new_wxPen", _wrap_new_wxPen, METH_VARARGS }, - { "wxColour_Get", _wrap_wxColour_Get, METH_VARARGS }, - { "wxColour_Set", _wrap_wxColour_Set, METH_VARARGS }, - { "wxColour_Ok", _wrap_wxColour_Ok, METH_VARARGS }, - { "wxColour_Blue", _wrap_wxColour_Blue, METH_VARARGS }, - { "wxColour_Green", _wrap_wxColour_Green, METH_VARARGS }, - { "wxColour_Red", _wrap_wxColour_Red, METH_VARARGS }, - { "delete_wxColour", _wrap_delete_wxColour, METH_VARARGS }, - { "new_wxColour", _wrap_new_wxColour, METH_VARARGS }, - { "wxFont_SetWeight", _wrap_wxFont_SetWeight, METH_VARARGS }, - { "wxFont_SetUnderlined", _wrap_wxFont_SetUnderlined, METH_VARARGS }, - { "wxFont_SetStyle", _wrap_wxFont_SetStyle, METH_VARARGS }, - { "wxFont_SetPointSize", _wrap_wxFont_SetPointSize, METH_VARARGS }, - { "wxFont_SetFamily", _wrap_wxFont_SetFamily, METH_VARARGS }, - { "wxFont_SetFaceName", _wrap_wxFont_SetFaceName, METH_VARARGS }, - { "wxFont_GetWeight", _wrap_wxFont_GetWeight, METH_VARARGS }, - { "wxFont_GetUnderlined", _wrap_wxFont_GetUnderlined, METH_VARARGS }, - { "wxFont_GetStyle", _wrap_wxFont_GetStyle, METH_VARARGS }, - { "wxFont_GetPointSize", _wrap_wxFont_GetPointSize, METH_VARARGS }, - { "wxFont_GetFamily", _wrap_wxFont_GetFamily, METH_VARARGS }, - { "wxFont_GetFaceName", _wrap_wxFont_GetFaceName, METH_VARARGS }, - { "new_wxFont", _wrap_new_wxFont, METH_VARARGS }, - { "wxCursor_Ok", _wrap_wxCursor_Ok, METH_VARARGS }, - { "delete_wxCursor", _wrap_delete_wxCursor, METH_VARARGS }, - { "wxIcon_SetWidth", _wrap_wxIcon_SetWidth, METH_VARARGS }, - { "wxIcon_SetHeight", _wrap_wxIcon_SetHeight, METH_VARARGS }, - { "wxIcon_SetDepth", _wrap_wxIcon_SetDepth, METH_VARARGS }, - { "wxIcon_Ok", _wrap_wxIcon_Ok, METH_VARARGS }, - { "wxIcon_LoadFile", _wrap_wxIcon_LoadFile, METH_VARARGS }, - { "wxIcon_GetWidth", _wrap_wxIcon_GetWidth, METH_VARARGS }, - { "wxIcon_GetHeight", _wrap_wxIcon_GetHeight, METH_VARARGS }, - { "wxIcon_GetDepth", _wrap_wxIcon_GetDepth, METH_VARARGS }, - { "delete_wxIcon", _wrap_delete_wxIcon, METH_VARARGS }, - { "new_wxIcon", _wrap_new_wxIcon, METH_VARARGS }, - { "delete_wxMask", _wrap_delete_wxMask, METH_VARARGS }, - { "new_wxMask", _wrap_new_wxMask, METH_VARARGS }, - { "wxBitmap_SetWidth", _wrap_wxBitmap_SetWidth, METH_VARARGS }, - { "wxBitmap_SetMask", _wrap_wxBitmap_SetMask, METH_VARARGS }, - { "wxBitmap_SetHeight", _wrap_wxBitmap_SetHeight, METH_VARARGS }, - { "wxBitmap_SetDepth", _wrap_wxBitmap_SetDepth, METH_VARARGS }, - { "wxBitmap_SaveFile", _wrap_wxBitmap_SaveFile, METH_VARARGS }, - { "wxBitmap_Ok", _wrap_wxBitmap_Ok, METH_VARARGS }, - { "wxBitmap_LoadFile", _wrap_wxBitmap_LoadFile, METH_VARARGS }, - { "wxBitmap_GetWidth", _wrap_wxBitmap_GetWidth, METH_VARARGS }, - { "wxBitmap_GetMask", _wrap_wxBitmap_GetMask, METH_VARARGS }, - { "wxBitmap_GetPalette", _wrap_wxBitmap_GetPalette, METH_VARARGS }, - { "wxBitmap_GetHeight", _wrap_wxBitmap_GetHeight, METH_VARARGS }, - { "wxBitmap_GetDepth", _wrap_wxBitmap_GetDepth, METH_VARARGS }, - { "delete_wxBitmap", _wrap_delete_wxBitmap, METH_VARARGS }, - { "new_wxBitmap", _wrap_new_wxBitmap, METH_VARARGS }, - { "wxMemoryDCFromDC", _wrap_wxMemoryDCFromDC, METH_VARARGS }, - { "wxNamedColour", _wrap_wxNamedColour, METH_VARARGS }, - { "wxStockCursor", _wrap_wxStockCursor, METH_VARARGS }, - { "wxMaskColour", _wrap_wxMaskColour, METH_VARARGS }, - { "wxNoRefBitmap", _wrap_wxNoRefBitmap, METH_VARARGS }, - { "wxEmptyBitmap", _wrap_wxEmptyBitmap, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxPostScriptDC",SwigwxPostScriptDCTowxDC}, - { "_wxDC","_wxPostScriptDC",SwigwxPostScriptDCTowxDC}, - { "_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC}, - { "_wxDC","_wxClientDC",SwigwxClientDCTowxDC}, - { "_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_wxDC","_class_wxDC",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_class_wxMask","_wxMask",0}, - { "_wxColour","_class_wxColour",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap}, - { "_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap}, - { "_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap}, - { "_wxBitmap","_wxIcon",SwigwxIconTowxBitmap}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_class_wxPostScriptDC",SwigwxPostScriptDCTowxDC}, - { "_class_wxDC","_wxPostScriptDC",SwigwxPostScriptDCTowxDC}, - { "_class_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_class_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_class_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_class_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_class_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC}, - { "_class_wxDC","_wxClientDC",SwigwxClientDCTowxDC}, - { "_class_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_class_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_class_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_class_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_unsigned_char","_byte",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap}, - { "_class_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap}, - { "_class_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap}, - { "_class_wxBitmap","_wxIcon",SwigwxIconTowxBitmap}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxPalette","_wxPalette",0}, -{0,0,0}}; - -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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/gdi.py b/utils/wxPython/src/gtk/gdi.py deleted file mode 100644 index 77abe36ece..0000000000 --- a/utils/wxPython/src/gtk/gdi.py +++ /dev/null @@ -1,782 +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,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxBitmap(self) - def GetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetDepth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetHeight,(self,) + _args, _kwargs) - return val - def GetPalette(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetPalette,(self,) + _args, _kwargs) - if val: val = wxPalettePtr(val) - return val - def GetMask(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetMask,(self,) + _args, _kwargs) - if val: val = wxMaskPtr(val) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetWidth,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_LoadFile,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_Ok,(self,) + _args, _kwargs) - return val - def SaveFile(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SaveFile,(self,) + _args, _kwargs) - return val - def SetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetDepth,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetHeight,(self,) + _args, _kwargs) - return val - def SetMask(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetMask,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetWidth,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxBitmap(wxBitmapPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxBitmap,_args,_kwargs) - self.thisown = 1 - - - - -class wxMaskPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxMask(self) - def __repr__(self): - return "" % (self.this,) -class wxMask(wxMaskPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxMask,_args,_kwargs) - self.thisown = 1 - - - - -class wxIconPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxIcon(self) - def GetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_GetDepth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_GetHeight,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_GetWidth,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_LoadFile,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_Ok,(self,) + _args, _kwargs) - return val - def SetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_SetDepth,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_SetHeight,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_SetWidth,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxIcon(wxIconPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxIcon,_args,_kwargs) - self.thisown = 1 - - - - -class wxCursorPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxCursor(self) - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxCursor_Ok,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(gdic.wxFont_GetFaceName,(self,) + _args, _kwargs) - return val - def GetFamily(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetFamily,(self,) + _args, _kwargs) - return val - def GetPointSize(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetPointSize,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetStyle,(self,) + _args, _kwargs) - return val - def GetUnderlined(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetUnderlined,(self,) + _args, _kwargs) - return val - def GetWeight(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetWeight,(self,) + _args, _kwargs) - return val - def SetFaceName(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetFaceName,(self,) + _args, _kwargs) - return val - def SetFamily(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetFamily,(self,) + _args, _kwargs) - return val - def SetPointSize(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetPointSize,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetStyle,(self,) + _args, _kwargs) - return val - def SetUnderlined(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetUnderlined,(self,) + _args, _kwargs) - return val - def SetWeight(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetWeight,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFont(wxFontPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxFont,_args,_kwargs) - self.thisown = 1 - - - - -class wxColourPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxColour(self) - def Red(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Red,(self,) + _args, _kwargs) - return val - def Green(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Green,(self,) + _args, _kwargs) - return val - def Blue(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Blue,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Ok,(self,) + _args, _kwargs) - return val - def Set(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Set,(self,) + _args, _kwargs) - return val - def Get(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Get,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxColour(wxColourPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxColour,_args,_kwargs) - self.thisown = 1 - - - - -class wxPenPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCap(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetCap,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetJoin(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetJoin,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetStyle,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetWidth,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxPen_Ok,(self,) + _args, _kwargs) - return val - def SetCap(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetCap,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetColour,(self,) + _args, _kwargs) - return val - def SetJoin(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetJoin,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetStyle,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetWidth,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPen(wxPenPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPen,_args,_kwargs) - self.thisown = 1 - - - - -class wxBrushPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColour(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetStipple(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_GetStipple,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_GetStyle,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_Ok,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_SetColour,(self,) + _args, _kwargs) - return val - def SetStipple(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_SetStipple,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_SetStyle,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxBrush(wxBrushPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxBrush,_args,_kwargs) - self.thisown = 1 - - - - -class wxDCPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxDC(self) - def BeginDrawing(self, *_args, **_kwargs): - val = apply(gdic.wxDC_BeginDrawing,(self,) + _args, _kwargs) - return val - def Blit(self, *_args, **_kwargs): - val = apply(gdic.wxDC_Blit,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(gdic.wxDC_Clear,(self,) + _args, _kwargs) - return val - def CrossHair(self, *_args, **_kwargs): - val = apply(gdic.wxDC_CrossHair,(self,) + _args, _kwargs) - return val - def DestroyClippingRegion(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DestroyClippingRegion,(self,) + _args, _kwargs) - return val - def DeviceToLogicalX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalX,(self,) + _args, _kwargs) - return val - def DeviceToLogicalXRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalXRel,(self,) + _args, _kwargs) - return val - def DeviceToLogicalY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalY,(self,) + _args, _kwargs) - return val - def DeviceToLogicalYRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalYRel,(self,) + _args, _kwargs) - return val - def DrawArc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawArc,(self,) + _args, _kwargs) - return val - def DrawCircle(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawCircle,(self,) + _args, _kwargs) - return val - def DrawEllipse(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawEllipse,(self,) + _args, _kwargs) - return val - def DrawEllipticArc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawEllipticArc,(self,) + _args, _kwargs) - return val - def DrawIcon(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawIcon,(self,) + _args, _kwargs) - return val - def DrawLine(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawLine,(self,) + _args, _kwargs) - return val - def DrawLines(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawLines,(self,) + _args, _kwargs) - return val - def DrawPolygon(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawPolygon,(self,) + _args, _kwargs) - return val - def DrawPoint(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawPoint,(self,) + _args, _kwargs) - return val - def DrawRectangle(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawRectangle,(self,) + _args, _kwargs) - return val - def DrawRoundedRectangle(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawRoundedRectangle,(self,) + _args, _kwargs) - return val - def DrawSpline(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawSpline,(self,) + _args, _kwargs) - return val - def DrawText(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawText,(self,) + _args, _kwargs) - return val - def EndDoc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_EndDoc,(self,) + _args, _kwargs) - return val - def EndDrawing(self, *_args, **_kwargs): - val = apply(gdic.wxDC_EndDrawing,(self,) + _args, _kwargs) - return val - def EndPage(self, *_args, **_kwargs): - val = apply(gdic.wxDC_EndPage,(self,) + _args, _kwargs) - return val - def FloodFill(self, *_args, **_kwargs): - val = apply(gdic.wxDC_FloodFill,(self,) + _args, _kwargs) - return val - def GetBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetBackground,(self,) + _args, _kwargs) - if val: val = wxBrushPtr(val) - return val - def GetBrush(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetBrush,(self,) + _args, _kwargs) - if val: val = wxBrushPtr(val) - return val - def GetCharHeight(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetCharHeight,(self,) + _args, _kwargs) - return val - def GetCharWidth(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetCharWidth,(self,) + _args, _kwargs) - return val - def GetClippingBox(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetClippingBox,(self,) + _args, _kwargs) - return val - def GetFont(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetLogicalFunction(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetLogicalFunction,(self,) + _args, _kwargs) - return val - def GetMapMode(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetMapMode,(self,) + _args, _kwargs) - return val - def GetOptimization(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetOptimization,(self,) + _args, _kwargs) - return val - def GetPen(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetPen,(self,) + _args, _kwargs) - if val: val = wxPenPtr(val) - return val - def GetPixel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetPixel,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetSizeTuple(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetSizeTuple,(self,) + _args, _kwargs) - return val - def GetSize(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetTextBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetTextBackground,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetTextExtent(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetTextExtent,(self,) + _args, _kwargs) - return val - def GetFullTextExtent(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetFullTextExtent,(self,) + _args, _kwargs) - return val - def GetTextForeground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetTextForeground,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def LogicalToDeviceX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceX,(self,) + _args, _kwargs) - return val - def LogicalToDeviceXRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceXRel,(self,) + _args, _kwargs) - return val - def LogicalToDeviceY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceY,(self,) + _args, _kwargs) - return val - def LogicalToDeviceYRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceYRel,(self,) + _args, _kwargs) - return val - def MaxX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MaxX,(self,) + _args, _kwargs) - return val - def MaxY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MaxY,(self,) + _args, _kwargs) - return val - def MinX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MinX,(self,) + _args, _kwargs) - return val - def MinY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MinY,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxDC_Ok,(self,) + _args, _kwargs) - return val - def SetDeviceOrigin(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetDeviceOrigin,(self,) + _args, _kwargs) - return val - def SetBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetBackground,(self,) + _args, _kwargs) - return val - def SetBackgroundMode(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetBackgroundMode,(self,) + _args, _kwargs) - return val - def SetClippingRegion(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetClippingRegion,(self,) + _args, _kwargs) - return val - def SetPalette(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetPalette,(self,) + _args, _kwargs) - return val - def SetBrush(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetBrush,(self,) + _args, _kwargs) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetFont,(self,) + _args, _kwargs) - return val - def SetLogicalFunction(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetLogicalFunction,(self,) + _args, _kwargs) - return val - def SetMapMode(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetMapMode,(self,) + _args, _kwargs) - return val - def SetOptimization(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetOptimization,(self,) + _args, _kwargs) - return val - def SetPen(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetPen,(self,) + _args, _kwargs) - return val - def SetTextBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetTextBackground,(self,) + _args, _kwargs) - return val - def SetTextForeground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetTextForeground,(self,) + _args, _kwargs) - return val - def SetUserScale(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetUserScale,(self,) + _args, _kwargs) - return val - def StartDoc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_StartDoc,(self,) + _args, _kwargs) - return val - def StartPage(self, *_args, **_kwargs): - val = apply(gdic.wxDC_StartPage,(self,) + _args, _kwargs) - return val - def DrawBitmap(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawBitmap,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(gdic.wxMemoryDC_SelectObject,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMemoryDC(wxMemoryDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxMemoryDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxScreenDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def StartDrawingOnTop(self, *_args, **_kwargs): - val = apply(gdic.wxScreenDC_StartDrawingOnTop,(self,) + _args, _kwargs) - return val - def StartDrawingOnTopRect(self, *_args, **_kwargs): - val = apply(gdic.wxScreenDC_StartDrawingOnTopRect,(self,) + _args, _kwargs) - return val - def EndDrawingOnTop(self, *_args, **_kwargs): - val = apply(gdic.wxScreenDC_EndDrawingOnTop,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxScreenDC(wxScreenDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxScreenDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxClientDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxClientDC(wxClientDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxClientDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxPaintDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxPaintDC(wxPaintDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPaintDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxWindowDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxWindowDC(wxWindowDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxWindowDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxPostScriptDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxPostScriptDC(wxPostScriptDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPostScriptDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxPalettePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxPalette(self) - def GetPixel(self, *_args, **_kwargs): - val = apply(gdic.wxPalette_GetPixel,(self,) + _args, _kwargs) - return val - def GetRGB(self, *_args, **_kwargs): - val = apply(gdic.wxPalette_GetRGB,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxPalette_Ok,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPalette(wxPalettePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPalette,_args,_kwargs) - self.thisown = 1 - - - - -class wxImageListPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxImageList(self) - def Add(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Add,(self,) + _args, _kwargs) - return val - def Replace(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Replace,(self,) + _args, _kwargs) - return val - def Draw(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Draw,(self,) + _args, _kwargs) - return val - def GetImageCount(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_GetImageCount,(self,) + _args, _kwargs) - return val - def Remove(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Remove,(self,) + _args, _kwargs) - return val - def RemoveAll(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_RemoveAll,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxImageList(wxImageListPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxImageList,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxEmptyBitmap(*_args, **_kwargs): - val = apply(gdic.wxEmptyBitmap,_args,_kwargs) - if val: val = wxBitmapPtr(val); val.thisown = 1 - return val - -def wxNoRefBitmap(*_args, **_kwargs): - val = apply(gdic.wxNoRefBitmap,_args,_kwargs) - if val: val = wxBitmapPtr(val) - return val - -def wxMaskColour(*_args, **_kwargs): - val = apply(gdic.wxMaskColour,_args,_kwargs) - if val: val = wxMaskPtr(val); val.thisown = 1 - return val - -def wxStockCursor(*_args, **_kwargs): - val = apply(gdic.wxStockCursor,_args,_kwargs) - if val: val = wxCursorPtr(val); val.thisown = 1 - return val - -def wxNamedColour(*_args, **_kwargs): - val = apply(gdic.wxNamedColour,_args,_kwargs) - if val: val = wxColourPtr(val); val.thisown = 1 - return val - -def wxMemoryDCFromDC(*_args, **_kwargs): - val = apply(gdic.wxMemoryDCFromDC,_args,_kwargs) - if val: 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 8b9e38a9de..0000000000 --- a/utils/wxPython/src/gtk/glcanvas.cpp +++ /dev/null @@ -1,9823 +0,0 @@ -/* - * FILE : gtk/glcanvas.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; - -#if defined(SEPARATE) && defined(__WXMSW__) - static wxString wxPyEmptyStr(""); - static wxPoint wxPyDefaultPosition(-1, -1); - static wxSize wxPyDefaultSize(-1, -1); -#endif -#ifdef __cplusplus -extern "C" { -#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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glColorPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glEdgeFlagPointerEXT",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPointervEXT",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glIndexPointerEXT",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glNormalPointerEXT",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glTexCoordPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glVertexPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiO:glColorTableEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glGetColorTableEXT",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iOO:glAreTexturesResident",&_arg0,&_argo1,&_argo2)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glAreTexturesResident. Expected _GLuint_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiffffO:glBitmap",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glCallLists",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glClipPlane",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3bv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3ubv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3uiv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3usv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4bv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4ubv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4uiv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4usv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glColorPointer",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glDeleteTextures",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glDrawElements",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glDrawPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glEdgeFlagPointer",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEdgeFlagv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord1dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord1fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glFeedbackBuffer",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glFogfv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glFogiv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGenTextures",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetBooleanv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetClipPlane",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetDoublev",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetFloatv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetIntegerv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetLightfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetLightiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMapdv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMapfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMapiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMaterialfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMaterialiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPixelMapfv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPixelMapuiv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPixelMapusv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPointerv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glGetPolygonStipple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_GLubyte_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_glGetTexEnvfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexEnvfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexEnviv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexGendv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexGenfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexGeniv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glGetTexImage",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glGetTexLevelParameterfv",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glGetTexLevelParameteriv",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexParameterfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexParameteriv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glIndexPointer",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexdv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexfv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexiv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexsv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexubv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glInterleavedArrays",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glLightModelfv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glLightModeliv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glLightfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glLightiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glLoadMatrixd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glLoadMatrixf",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiiO:glMap1d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiiO:glMap1f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiiddiiO:glMap2d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argo9)) - return NULL; - if (_argo9) { - if (_argo9 == Py_None) { _arg9 = NULL; } - else if (SWIG_GetPtrObj(_argo9,(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; - PyObject * _argo9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiiffiiO:glMap2f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argo9)) - return NULL; - if (_argo9) { - if (_argo9 == Py_None) { _arg9 = NULL; } - else if (SWIG_GetPtrObj(_argo9,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glMaterialfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glMaterialiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glMultMatrixd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glMultMatrixf",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3bv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glNormalPointer",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glPixelMapfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glPixelMapuiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glPixelMapusv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glPolygonStipple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iOO:glPrioritizeTextures",&_arg0,&_argo1,&_argo2)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glPrioritizeTextures. Expected _GLuint_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiO:glReadPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectdv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectdv. Expected _GLdouble_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectfv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectfv. Expected _GLfloat_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectiv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectiv. Expected _GLint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectsv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectsv. Expected _GLshort_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glSelectBuffer",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glTexCoordPointer",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexEnvfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexEnviv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexGendv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexGenfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexGeniv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo7 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiO:glTexImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_argo7)) - return NULL; - if (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; - PyObject * _argo8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiiO:glTexImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argo8)) - return NULL; - if (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexParameterfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexParameteriv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiO:glTexSubImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiiO:glTexSubImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argo8)) - return NULL; - if (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glVertexPointer",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - wxGLCanvas * _arg1; - wxPalette * _arg2 = (wxPalette *) &wxNullPalette; - int tempbool0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"iO|O:new_wxGLContext",&tempbool0,&_argo1,&_argo2)) - return NULL; - _arg0 = (bool ) tempbool0; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxGLContext. Expected _wxGLCanvas_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxGLContext(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGLContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxGLContext",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_SetCurrent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Os:wxGLContext_SetColour",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_SwapBuffers",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_SetupPixelFormat",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGLContext_SetupPalette",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetupPalette. Expected _wxGLContext_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_CreateDefaultPalette",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_GetPalette",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGLContext_GetWindow(_swigobj) (_swigobj->GetWindow()) -static PyObject *_wrap_wxGLContext_GetWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxGLContext * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_GetWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static void *SwigwxGLCanvasTowxScrolledWindow(void *ptr) { - wxGLCanvas *src; - wxScrolledWindow *dest; - src = (wxGLCanvas *) ptr; - dest = (wxScrolledWindow *) src; - return (void *) dest; -} - -static void *SwigwxGLCanvasTowxPanel(void *ptr) { - wxGLCanvas *src; - wxPanel *dest; - src = (wxGLCanvas *) ptr; - dest = (wxPanel *) 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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "GLCanvas"; - int * _arg6 = (int *) 0; - wxPalette * _arg7 = (wxPalette *) &wxNullPalette; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo6 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOlsOO:new_wxGLCanvas",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5,&_argo6,&_argo7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGLCanvas. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGLCanvas. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGLCanvas. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_int_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxGLCanvas. Expected _int_p."); - return NULL; - } - } - if (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLCanvas_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGLCanvas_SetCurrent(_swigobj) (_swigobj->SetCurrent()) -static PyObject *_wrap_wxGLCanvas_SetCurrent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLCanvas_SetCurrent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Os:wxGLCanvas_SetColour",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLCanvas_SwapBuffers",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLCanvas_GetContext",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyMethodDef glcanvascMethods[] = { - { "wxGLCanvas_GetContext", _wrap_wxGLCanvas_GetContext, METH_VARARGS }, - { "wxGLCanvas_SwapBuffers", _wrap_wxGLCanvas_SwapBuffers, METH_VARARGS }, - { "wxGLCanvas_SetColour", _wrap_wxGLCanvas_SetColour, METH_VARARGS }, - { "wxGLCanvas_SetCurrent", _wrap_wxGLCanvas_SetCurrent, METH_VARARGS }, - { "new_wxGLCanvas", _wrap_new_wxGLCanvas, METH_VARARGS }, - { "wxGLContext_GetWindow", _wrap_wxGLContext_GetWindow, METH_VARARGS }, - { "wxGLContext_GetPalette", _wrap_wxGLContext_GetPalette, METH_VARARGS }, - { "wxGLContext_CreateDefaultPalette", _wrap_wxGLContext_CreateDefaultPalette, METH_VARARGS }, - { "wxGLContext_SetupPalette", _wrap_wxGLContext_SetupPalette, METH_VARARGS }, - { "wxGLContext_SetupPixelFormat", _wrap_wxGLContext_SetupPixelFormat, METH_VARARGS }, - { "wxGLContext_SwapBuffers", _wrap_wxGLContext_SwapBuffers, METH_VARARGS }, - { "wxGLContext_SetColour", _wrap_wxGLContext_SetColour, METH_VARARGS }, - { "wxGLContext_SetCurrent", _wrap_wxGLContext_SetCurrent, METH_VARARGS }, - { "delete_wxGLContext", _wrap_delete_wxGLContext, METH_VARARGS }, - { "new_wxGLContext", _wrap_new_wxGLContext, METH_VARARGS }, - { "glViewport", _wrap_glViewport, METH_VARARGS }, - { "glVertexPointer", _wrap_glVertexPointer, METH_VARARGS }, - { "glVertex4sv", _wrap_glVertex4sv, METH_VARARGS }, - { "glVertex4s", _wrap_glVertex4s, METH_VARARGS }, - { "glVertex4iv", _wrap_glVertex4iv, METH_VARARGS }, - { "glVertex4i", _wrap_glVertex4i, METH_VARARGS }, - { "glVertex4fv", _wrap_glVertex4fv, METH_VARARGS }, - { "glVertex4f", _wrap_glVertex4f, METH_VARARGS }, - { "glVertex4dv", _wrap_glVertex4dv, METH_VARARGS }, - { "glVertex4d", _wrap_glVertex4d, METH_VARARGS }, - { "glVertex3sv", _wrap_glVertex3sv, METH_VARARGS }, - { "glVertex3s", _wrap_glVertex3s, METH_VARARGS }, - { "glVertex3iv", _wrap_glVertex3iv, METH_VARARGS }, - { "glVertex3i", _wrap_glVertex3i, METH_VARARGS }, - { "glVertex3fv", _wrap_glVertex3fv, METH_VARARGS }, - { "glVertex3f", _wrap_glVertex3f, METH_VARARGS }, - { "glVertex3dv", _wrap_glVertex3dv, METH_VARARGS }, - { "glVertex3d", _wrap_glVertex3d, METH_VARARGS }, - { "glVertex2sv", _wrap_glVertex2sv, METH_VARARGS }, - { "glVertex2s", _wrap_glVertex2s, METH_VARARGS }, - { "glVertex2iv", _wrap_glVertex2iv, METH_VARARGS }, - { "glVertex2i", _wrap_glVertex2i, METH_VARARGS }, - { "glVertex2fv", _wrap_glVertex2fv, METH_VARARGS }, - { "glVertex2f", _wrap_glVertex2f, METH_VARARGS }, - { "glVertex2dv", _wrap_glVertex2dv, METH_VARARGS }, - { "glVertex2d", _wrap_glVertex2d, METH_VARARGS }, - { "glTranslatef", _wrap_glTranslatef, METH_VARARGS }, - { "glTranslated", _wrap_glTranslated, METH_VARARGS }, - { "glTexSubImage2D", _wrap_glTexSubImage2D, METH_VARARGS }, - { "glTexSubImage1D", _wrap_glTexSubImage1D, METH_VARARGS }, - { "glTexParameteriv", _wrap_glTexParameteriv, METH_VARARGS }, - { "glTexParameteri", _wrap_glTexParameteri, METH_VARARGS }, - { "glTexParameterfv", _wrap_glTexParameterfv, METH_VARARGS }, - { "glTexParameterf", _wrap_glTexParameterf, METH_VARARGS }, - { "glTexImage2D", _wrap_glTexImage2D, METH_VARARGS }, - { "glTexImage1D", _wrap_glTexImage1D, METH_VARARGS }, - { "glTexGeniv", _wrap_glTexGeniv, METH_VARARGS }, - { "glTexGeni", _wrap_glTexGeni, METH_VARARGS }, - { "glTexGenfv", _wrap_glTexGenfv, METH_VARARGS }, - { "glTexGenf", _wrap_glTexGenf, METH_VARARGS }, - { "glTexGendv", _wrap_glTexGendv, METH_VARARGS }, - { "glTexGend", _wrap_glTexGend, METH_VARARGS }, - { "glTexEnviv", _wrap_glTexEnviv, METH_VARARGS }, - { "glTexEnvi", _wrap_glTexEnvi, METH_VARARGS }, - { "glTexEnvfv", _wrap_glTexEnvfv, METH_VARARGS }, - { "glTexEnvf", _wrap_glTexEnvf, METH_VARARGS }, - { "glTexCoordPointer", _wrap_glTexCoordPointer, METH_VARARGS }, - { "glTexCoord4sv", _wrap_glTexCoord4sv, METH_VARARGS }, - { "glTexCoord4s", _wrap_glTexCoord4s, METH_VARARGS }, - { "glTexCoord4iv", _wrap_glTexCoord4iv, METH_VARARGS }, - { "glTexCoord4i", _wrap_glTexCoord4i, METH_VARARGS }, - { "glTexCoord4fv", _wrap_glTexCoord4fv, METH_VARARGS }, - { "glTexCoord4f", _wrap_glTexCoord4f, METH_VARARGS }, - { "glTexCoord4dv", _wrap_glTexCoord4dv, METH_VARARGS }, - { "glTexCoord4d", _wrap_glTexCoord4d, METH_VARARGS }, - { "glTexCoord3sv", _wrap_glTexCoord3sv, METH_VARARGS }, - { "glTexCoord3s", _wrap_glTexCoord3s, METH_VARARGS }, - { "glTexCoord3iv", _wrap_glTexCoord3iv, METH_VARARGS }, - { "glTexCoord3i", _wrap_glTexCoord3i, METH_VARARGS }, - { "glTexCoord3fv", _wrap_glTexCoord3fv, METH_VARARGS }, - { "glTexCoord3f", _wrap_glTexCoord3f, METH_VARARGS }, - { "glTexCoord3dv", _wrap_glTexCoord3dv, METH_VARARGS }, - { "glTexCoord3d", _wrap_glTexCoord3d, METH_VARARGS }, - { "glTexCoord2sv", _wrap_glTexCoord2sv, METH_VARARGS }, - { "glTexCoord2s", _wrap_glTexCoord2s, METH_VARARGS }, - { "glTexCoord2iv", _wrap_glTexCoord2iv, METH_VARARGS }, - { "glTexCoord2i", _wrap_glTexCoord2i, METH_VARARGS }, - { "glTexCoord2fv", _wrap_glTexCoord2fv, METH_VARARGS }, - { "glTexCoord2f", _wrap_glTexCoord2f, METH_VARARGS }, - { "glTexCoord2dv", _wrap_glTexCoord2dv, METH_VARARGS }, - { "glTexCoord2d", _wrap_glTexCoord2d, METH_VARARGS }, - { "glTexCoord1sv", _wrap_glTexCoord1sv, METH_VARARGS }, - { "glTexCoord1s", _wrap_glTexCoord1s, METH_VARARGS }, - { "glTexCoord1iv", _wrap_glTexCoord1iv, METH_VARARGS }, - { "glTexCoord1i", _wrap_glTexCoord1i, METH_VARARGS }, - { "glTexCoord1fv", _wrap_glTexCoord1fv, METH_VARARGS }, - { "glTexCoord1f", _wrap_glTexCoord1f, METH_VARARGS }, - { "glTexCoord1dv", _wrap_glTexCoord1dv, METH_VARARGS }, - { "glTexCoord1d", _wrap_glTexCoord1d, METH_VARARGS }, - { "glStencilOp", _wrap_glStencilOp, METH_VARARGS }, - { "glStencilMask", _wrap_glStencilMask, METH_VARARGS }, - { "glStencilFunc", _wrap_glStencilFunc, METH_VARARGS }, - { "glShadeModel", _wrap_glShadeModel, METH_VARARGS }, - { "glSelectBuffer", _wrap_glSelectBuffer, METH_VARARGS }, - { "glScissor", _wrap_glScissor, METH_VARARGS }, - { "glScalef", _wrap_glScalef, METH_VARARGS }, - { "glScaled", _wrap_glScaled, METH_VARARGS }, - { "glRotatef", _wrap_glRotatef, METH_VARARGS }, - { "glRotated", _wrap_glRotated, METH_VARARGS }, - { "glRenderMode", _wrap_glRenderMode, METH_VARARGS }, - { "glRectsv", _wrap_glRectsv, METH_VARARGS }, - { "glRects", _wrap_glRects, METH_VARARGS }, - { "glRectiv", _wrap_glRectiv, METH_VARARGS }, - { "glRecti", _wrap_glRecti, METH_VARARGS }, - { "glRectfv", _wrap_glRectfv, METH_VARARGS }, - { "glRectf", _wrap_glRectf, METH_VARARGS }, - { "glRectdv", _wrap_glRectdv, METH_VARARGS }, - { "glRectd", _wrap_glRectd, METH_VARARGS }, - { "glReadPixels", _wrap_glReadPixels, METH_VARARGS }, - { "glReadBuffer", _wrap_glReadBuffer, METH_VARARGS }, - { "glRasterPos4sv", _wrap_glRasterPos4sv, METH_VARARGS }, - { "glRasterPos4s", _wrap_glRasterPos4s, METH_VARARGS }, - { "glRasterPos4iv", _wrap_glRasterPos4iv, METH_VARARGS }, - { "glRasterPos4i", _wrap_glRasterPos4i, METH_VARARGS }, - { "glRasterPos4fv", _wrap_glRasterPos4fv, METH_VARARGS }, - { "glRasterPos4f", _wrap_glRasterPos4f, METH_VARARGS }, - { "glRasterPos4dv", _wrap_glRasterPos4dv, METH_VARARGS }, - { "glRasterPos4d", _wrap_glRasterPos4d, METH_VARARGS }, - { "glRasterPos3sv", _wrap_glRasterPos3sv, METH_VARARGS }, - { "glRasterPos3s", _wrap_glRasterPos3s, METH_VARARGS }, - { "glRasterPos3iv", _wrap_glRasterPos3iv, METH_VARARGS }, - { "glRasterPos3i", _wrap_glRasterPos3i, METH_VARARGS }, - { "glRasterPos3fv", _wrap_glRasterPos3fv, METH_VARARGS }, - { "glRasterPos3f", _wrap_glRasterPos3f, METH_VARARGS }, - { "glRasterPos3dv", _wrap_glRasterPos3dv, METH_VARARGS }, - { "glRasterPos3d", _wrap_glRasterPos3d, METH_VARARGS }, - { "glRasterPos2sv", _wrap_glRasterPos2sv, METH_VARARGS }, - { "glRasterPos2s", _wrap_glRasterPos2s, METH_VARARGS }, - { "glRasterPos2iv", _wrap_glRasterPos2iv, METH_VARARGS }, - { "glRasterPos2i", _wrap_glRasterPos2i, METH_VARARGS }, - { "glRasterPos2fv", _wrap_glRasterPos2fv, METH_VARARGS }, - { "glRasterPos2f", _wrap_glRasterPos2f, METH_VARARGS }, - { "glRasterPos2dv", _wrap_glRasterPos2dv, METH_VARARGS }, - { "glRasterPos2d", _wrap_glRasterPos2d, METH_VARARGS }, - { "glPushName", _wrap_glPushName, METH_VARARGS }, - { "glPushMatrix", _wrap_glPushMatrix, METH_VARARGS }, - { "glPushClientAttrib", _wrap_glPushClientAttrib, METH_VARARGS }, - { "glPushAttrib", _wrap_glPushAttrib, METH_VARARGS }, - { "glPrioritizeTextures", _wrap_glPrioritizeTextures, METH_VARARGS }, - { "glPopName", _wrap_glPopName, METH_VARARGS }, - { "glPopMatrix", _wrap_glPopMatrix, METH_VARARGS }, - { "glPopClientAttrib", _wrap_glPopClientAttrib, METH_VARARGS }, - { "glPopAttrib", _wrap_glPopAttrib, METH_VARARGS }, - { "glPolygonStipple", _wrap_glPolygonStipple, METH_VARARGS }, - { "glPolygonOffset", _wrap_glPolygonOffset, METH_VARARGS }, - { "glPolygonMode", _wrap_glPolygonMode, METH_VARARGS }, - { "glPointSize", _wrap_glPointSize, METH_VARARGS }, - { "glPixelZoom", _wrap_glPixelZoom, METH_VARARGS }, - { "glPixelTransferi", _wrap_glPixelTransferi, METH_VARARGS }, - { "glPixelTransferf", _wrap_glPixelTransferf, METH_VARARGS }, - { "glPixelStorei", _wrap_glPixelStorei, METH_VARARGS }, - { "glPixelStoref", _wrap_glPixelStoref, METH_VARARGS }, - { "glPixelMapusv", _wrap_glPixelMapusv, METH_VARARGS }, - { "glPixelMapuiv", _wrap_glPixelMapuiv, METH_VARARGS }, - { "glPixelMapfv", _wrap_glPixelMapfv, METH_VARARGS }, - { "glPassThrough", _wrap_glPassThrough, METH_VARARGS }, - { "glOrtho", _wrap_glOrtho, METH_VARARGS }, - { "glNormalPointer", _wrap_glNormalPointer, METH_VARARGS }, - { "glNormal3sv", _wrap_glNormal3sv, METH_VARARGS }, - { "glNormal3s", _wrap_glNormal3s, METH_VARARGS }, - { "glNormal3iv", _wrap_glNormal3iv, METH_VARARGS }, - { "glNormal3i", _wrap_glNormal3i, METH_VARARGS }, - { "glNormal3fv", _wrap_glNormal3fv, METH_VARARGS }, - { "glNormal3f", _wrap_glNormal3f, METH_VARARGS }, - { "glNormal3dv", _wrap_glNormal3dv, METH_VARARGS }, - { "glNormal3d", _wrap_glNormal3d, METH_VARARGS }, - { "glNormal3bv", _wrap_glNormal3bv, METH_VARARGS }, - { "glNormal3b", _wrap_glNormal3b, METH_VARARGS }, - { "glNewList", _wrap_glNewList, METH_VARARGS }, - { "glMultMatrixf", _wrap_glMultMatrixf, METH_VARARGS }, - { "glMultMatrixd", _wrap_glMultMatrixd, METH_VARARGS }, - { "glMatrixMode", _wrap_glMatrixMode, METH_VARARGS }, - { "glMaterialiv", _wrap_glMaterialiv, METH_VARARGS }, - { "glMateriali", _wrap_glMateriali, METH_VARARGS }, - { "glMaterialfv", _wrap_glMaterialfv, METH_VARARGS }, - { "glMaterialf", _wrap_glMaterialf, METH_VARARGS }, - { "glMapGrid2f", _wrap_glMapGrid2f, METH_VARARGS }, - { "glMapGrid2d", _wrap_glMapGrid2d, METH_VARARGS }, - { "glMapGrid1f", _wrap_glMapGrid1f, METH_VARARGS }, - { "glMapGrid1d", _wrap_glMapGrid1d, METH_VARARGS }, - { "glMap2f", _wrap_glMap2f, METH_VARARGS }, - { "glMap2d", _wrap_glMap2d, METH_VARARGS }, - { "glMap1f", _wrap_glMap1f, METH_VARARGS }, - { "glMap1d", _wrap_glMap1d, METH_VARARGS }, - { "glLogicOp", _wrap_glLogicOp, METH_VARARGS }, - { "glLoadName", _wrap_glLoadName, METH_VARARGS }, - { "glLoadMatrixf", _wrap_glLoadMatrixf, METH_VARARGS }, - { "glLoadMatrixd", _wrap_glLoadMatrixd, METH_VARARGS }, - { "glLoadIdentity", _wrap_glLoadIdentity, METH_VARARGS }, - { "glListBase", _wrap_glListBase, METH_VARARGS }, - { "glLineWidth", _wrap_glLineWidth, METH_VARARGS }, - { "glLineStipple", _wrap_glLineStipple, METH_VARARGS }, - { "glLightiv", _wrap_glLightiv, METH_VARARGS }, - { "glLighti", _wrap_glLighti, METH_VARARGS }, - { "glLightfv", _wrap_glLightfv, METH_VARARGS }, - { "glLightf", _wrap_glLightf, METH_VARARGS }, - { "glLightModeliv", _wrap_glLightModeliv, METH_VARARGS }, - { "glLightModeli", _wrap_glLightModeli, METH_VARARGS }, - { "glLightModelfv", _wrap_glLightModelfv, METH_VARARGS }, - { "glLightModelf", _wrap_glLightModelf, METH_VARARGS }, - { "glIsTexture", _wrap_glIsTexture, METH_VARARGS }, - { "glIsList", _wrap_glIsList, METH_VARARGS }, - { "glIsEnabled", _wrap_glIsEnabled, METH_VARARGS }, - { "glInterleavedArrays", _wrap_glInterleavedArrays, METH_VARARGS }, - { "glInitNames", _wrap_glInitNames, METH_VARARGS }, - { "glIndexubv", _wrap_glIndexubv, METH_VARARGS }, - { "glIndexub", _wrap_glIndexub, METH_VARARGS }, - { "glIndexsv", _wrap_glIndexsv, METH_VARARGS }, - { "glIndexs", _wrap_glIndexs, METH_VARARGS }, - { "glIndexiv", _wrap_glIndexiv, METH_VARARGS }, - { "glIndexi", _wrap_glIndexi, METH_VARARGS }, - { "glIndexfv", _wrap_glIndexfv, METH_VARARGS }, - { "glIndexf", _wrap_glIndexf, METH_VARARGS }, - { "glIndexdv", _wrap_glIndexdv, METH_VARARGS }, - { "glIndexd", _wrap_glIndexd, METH_VARARGS }, - { "glIndexPointer", _wrap_glIndexPointer, METH_VARARGS }, - { "glIndexMask", _wrap_glIndexMask, METH_VARARGS }, - { "glHint", _wrap_glHint, METH_VARARGS }, - { "glGetTexParameteriv", _wrap_glGetTexParameteriv, METH_VARARGS }, - { "glGetTexParameterfv", _wrap_glGetTexParameterfv, METH_VARARGS }, - { "glGetTexLevelParameteriv", _wrap_glGetTexLevelParameteriv, METH_VARARGS }, - { "glGetTexLevelParameterfv", _wrap_glGetTexLevelParameterfv, METH_VARARGS }, - { "glGetTexImage", _wrap_glGetTexImage, METH_VARARGS }, - { "glGetTexGeniv", _wrap_glGetTexGeniv, METH_VARARGS }, - { "glGetTexGenfv", _wrap_glGetTexGenfv, METH_VARARGS }, - { "glGetTexGendv", _wrap_glGetTexGendv, METH_VARARGS }, - { "glGetTexEnviv", _wrap_glGetTexEnviv, METH_VARARGS }, - { "glGetTexEnvfv", _wrap_glGetTexEnvfv, METH_VARARGS }, - { "glGetString", _wrap_glGetString, METH_VARARGS }, - { "glGetPolygonStipple", _wrap_glGetPolygonStipple, METH_VARARGS }, - { "glGetPointerv", _wrap_glGetPointerv, METH_VARARGS }, - { "glGetPixelMapusv", _wrap_glGetPixelMapusv, METH_VARARGS }, - { "glGetPixelMapuiv", _wrap_glGetPixelMapuiv, METH_VARARGS }, - { "glGetPixelMapfv", _wrap_glGetPixelMapfv, METH_VARARGS }, - { "glGetMaterialiv", _wrap_glGetMaterialiv, METH_VARARGS }, - { "glGetMaterialfv", _wrap_glGetMaterialfv, METH_VARARGS }, - { "glGetMapiv", _wrap_glGetMapiv, METH_VARARGS }, - { "glGetMapfv", _wrap_glGetMapfv, METH_VARARGS }, - { "glGetMapdv", _wrap_glGetMapdv, METH_VARARGS }, - { "glGetLightiv", _wrap_glGetLightiv, METH_VARARGS }, - { "glGetLightfv", _wrap_glGetLightfv, METH_VARARGS }, - { "glGetIntegerv", _wrap_glGetIntegerv, METH_VARARGS }, - { "glGetFloatv", _wrap_glGetFloatv, METH_VARARGS }, - { "glGetError", _wrap_glGetError, METH_VARARGS }, - { "glGetDoublev", _wrap_glGetDoublev, METH_VARARGS }, - { "glGetClipPlane", _wrap_glGetClipPlane, METH_VARARGS }, - { "glGetBooleanv", _wrap_glGetBooleanv, METH_VARARGS }, - { "glGenTextures", _wrap_glGenTextures, METH_VARARGS }, - { "glGenLists", _wrap_glGenLists, METH_VARARGS }, - { "glFrustum", _wrap_glFrustum, METH_VARARGS }, - { "glFrontFace", _wrap_glFrontFace, METH_VARARGS }, - { "glFogiv", _wrap_glFogiv, METH_VARARGS }, - { "glFogi", _wrap_glFogi, METH_VARARGS }, - { "glFogfv", _wrap_glFogfv, METH_VARARGS }, - { "glFogf", _wrap_glFogf, METH_VARARGS }, - { "glFlush", _wrap_glFlush, METH_VARARGS }, - { "glFinish", _wrap_glFinish, METH_VARARGS }, - { "glFeedbackBuffer", _wrap_glFeedbackBuffer, METH_VARARGS }, - { "glEvalPoint2", _wrap_glEvalPoint2, METH_VARARGS }, - { "glEvalPoint1", _wrap_glEvalPoint1, METH_VARARGS }, - { "glEvalMesh2", _wrap_glEvalMesh2, METH_VARARGS }, - { "glEvalMesh1", _wrap_glEvalMesh1, METH_VARARGS }, - { "glEvalCoord2fv", _wrap_glEvalCoord2fv, METH_VARARGS }, - { "glEvalCoord2f", _wrap_glEvalCoord2f, METH_VARARGS }, - { "glEvalCoord2dv", _wrap_glEvalCoord2dv, METH_VARARGS }, - { "glEvalCoord2d", _wrap_glEvalCoord2d, METH_VARARGS }, - { "glEvalCoord1fv", _wrap_glEvalCoord1fv, METH_VARARGS }, - { "glEvalCoord1f", _wrap_glEvalCoord1f, METH_VARARGS }, - { "glEvalCoord1dv", _wrap_glEvalCoord1dv, METH_VARARGS }, - { "glEvalCoord1d", _wrap_glEvalCoord1d, METH_VARARGS }, - { "glEndList", _wrap_glEndList, METH_VARARGS }, - { "glEnd", _wrap_glEnd, METH_VARARGS }, - { "glEnableClientState", _wrap_glEnableClientState, METH_VARARGS }, - { "glEnable", _wrap_glEnable, METH_VARARGS }, - { "glEdgeFlagv", _wrap_glEdgeFlagv, METH_VARARGS }, - { "glEdgeFlagPointer", _wrap_glEdgeFlagPointer, METH_VARARGS }, - { "glEdgeFlag", _wrap_glEdgeFlag, METH_VARARGS }, - { "glDrawPixels", _wrap_glDrawPixels, METH_VARARGS }, - { "glDrawElements", _wrap_glDrawElements, METH_VARARGS }, - { "glDrawBuffer", _wrap_glDrawBuffer, METH_VARARGS }, - { "glDrawArrays", _wrap_glDrawArrays, METH_VARARGS }, - { "glDisableClientState", _wrap_glDisableClientState, METH_VARARGS }, - { "glDisable", _wrap_glDisable, METH_VARARGS }, - { "glDepthRange", _wrap_glDepthRange, METH_VARARGS }, - { "glDepthMask", _wrap_glDepthMask, METH_VARARGS }, - { "glDepthFunc", _wrap_glDepthFunc, METH_VARARGS }, - { "glDeleteTextures", _wrap_glDeleteTextures, METH_VARARGS }, - { "glDeleteLists", _wrap_glDeleteLists, METH_VARARGS }, - { "glCullFace", _wrap_glCullFace, METH_VARARGS }, - { "glCopyTexSubImage2D", _wrap_glCopyTexSubImage2D, METH_VARARGS }, - { "glCopyTexSubImage1D", _wrap_glCopyTexSubImage1D, METH_VARARGS }, - { "glCopyTexImage2D", _wrap_glCopyTexImage2D, METH_VARARGS }, - { "glCopyTexImage1D", _wrap_glCopyTexImage1D, METH_VARARGS }, - { "glCopyPixels", _wrap_glCopyPixels, METH_VARARGS }, - { "glColorPointer", _wrap_glColorPointer, METH_VARARGS }, - { "glColorMaterial", _wrap_glColorMaterial, METH_VARARGS }, - { "glColorMask", _wrap_glColorMask, METH_VARARGS }, - { "glColor4usv", _wrap_glColor4usv, METH_VARARGS }, - { "glColor4us", _wrap_glColor4us, METH_VARARGS }, - { "glColor4uiv", _wrap_glColor4uiv, METH_VARARGS }, - { "glColor4ui", _wrap_glColor4ui, METH_VARARGS }, - { "glColor4ubv", _wrap_glColor4ubv, METH_VARARGS }, - { "glColor4ub", _wrap_glColor4ub, METH_VARARGS }, - { "glColor4sv", _wrap_glColor4sv, METH_VARARGS }, - { "glColor4s", _wrap_glColor4s, METH_VARARGS }, - { "glColor4iv", _wrap_glColor4iv, METH_VARARGS }, - { "glColor4i", _wrap_glColor4i, METH_VARARGS }, - { "glColor4fv", _wrap_glColor4fv, METH_VARARGS }, - { "glColor4f", _wrap_glColor4f, METH_VARARGS }, - { "glColor4dv", _wrap_glColor4dv, METH_VARARGS }, - { "glColor4d", _wrap_glColor4d, METH_VARARGS }, - { "glColor4bv", _wrap_glColor4bv, METH_VARARGS }, - { "glColor4b", _wrap_glColor4b, METH_VARARGS }, - { "glColor3usv", _wrap_glColor3usv, METH_VARARGS }, - { "glColor3us", _wrap_glColor3us, METH_VARARGS }, - { "glColor3uiv", _wrap_glColor3uiv, METH_VARARGS }, - { "glColor3ui", _wrap_glColor3ui, METH_VARARGS }, - { "glColor3ubv", _wrap_glColor3ubv, METH_VARARGS }, - { "glColor3ub", _wrap_glColor3ub, METH_VARARGS }, - { "glColor3sv", _wrap_glColor3sv, METH_VARARGS }, - { "glColor3s", _wrap_glColor3s, METH_VARARGS }, - { "glColor3iv", _wrap_glColor3iv, METH_VARARGS }, - { "glColor3i", _wrap_glColor3i, METH_VARARGS }, - { "glColor3fv", _wrap_glColor3fv, METH_VARARGS }, - { "glColor3f", _wrap_glColor3f, METH_VARARGS }, - { "glColor3dv", _wrap_glColor3dv, METH_VARARGS }, - { "glColor3d", _wrap_glColor3d, METH_VARARGS }, - { "glColor3bv", _wrap_glColor3bv, METH_VARARGS }, - { "glColor3b", _wrap_glColor3b, METH_VARARGS }, - { "glClipPlane", _wrap_glClipPlane, METH_VARARGS }, - { "glClearStencil", _wrap_glClearStencil, METH_VARARGS }, - { "glClearIndex", _wrap_glClearIndex, METH_VARARGS }, - { "glClearDepth", _wrap_glClearDepth, METH_VARARGS }, - { "glClearColor", _wrap_glClearColor, METH_VARARGS }, - { "glClearAccum", _wrap_glClearAccum, METH_VARARGS }, - { "glClear", _wrap_glClear, METH_VARARGS }, - { "glCallLists", _wrap_glCallLists, METH_VARARGS }, - { "glCallList", _wrap_glCallList, METH_VARARGS }, - { "glBlendFunc", _wrap_glBlendFunc, METH_VARARGS }, - { "glBitmap", _wrap_glBitmap, METH_VARARGS }, - { "glBindTexture", _wrap_glBindTexture, METH_VARARGS }, - { "glBegin", _wrap_glBegin, METH_VARARGS }, - { "glArrayElement", _wrap_glArrayElement, METH_VARARGS }, - { "glAreTexturesResident", _wrap_glAreTexturesResident, METH_VARARGS }, - { "glAlphaFunc", _wrap_glAlphaFunc, METH_VARARGS }, - { "glAccum", _wrap_glAccum, METH_VARARGS }, - { "glGetColorTableEXT", _wrap_glGetColorTableEXT, METH_VARARGS }, - { "glColorTableEXT", _wrap_glColorTableEXT, METH_VARARGS }, - { "glVertexPointerEXT", _wrap_glVertexPointerEXT, METH_VARARGS }, - { "glTexCoordPointerEXT", _wrap_glTexCoordPointerEXT, METH_VARARGS }, - { "glNormalPointerEXT", _wrap_glNormalPointerEXT, METH_VARARGS }, - { "glIndexPointerEXT", _wrap_glIndexPointerEXT, METH_VARARGS }, - { "glGetPointervEXT", _wrap_glGetPointervEXT, METH_VARARGS }, - { "glEdgeFlagPointerEXT", _wrap_glEdgeFlagPointerEXT, METH_VARARGS }, - { "glDrawArraysEXT", _wrap_glDrawArraysEXT, METH_VARARGS }, - { "glColorPointerEXT", _wrap_glColorPointerEXT, METH_VARARGS }, - { "glArrayElementEXT", _wrap_glArrayElementEXT, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_GLfloat","_GLclampf",0}, - { "_GLfloat","_float",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_class_wxJPEGHandler","_wxJPEGHandler",0}, - { "_wxBMPHandler","_class_wxBMPHandler",0}, - { "_wxImage","_class_wxImage",0}, - { "_double","_GLclampd",0}, - { "_double","_GLdouble",0}, - { "_wxPrintQuality","_GLuint",0}, - { "_wxPrintQuality","_GLsizei",0}, - { "_wxPrintQuality","_GLint",0}, - { "_wxPrintQuality","_GLbitfield",0}, - { "_wxPrintQuality","_GLenum",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "___wxPyCleanup","_class___wxPyCleanup",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxPyTreeItemData","_wxPyTreeItemData",0}, - { "_class_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_class_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxGIFHandler","_class_wxGIFHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxImageHandler","_class_wxImageHandler",0}, - { "_GLsizei","_GLuint",0}, - { "_GLsizei","_int",0}, - { "_GLsizei","_signed_int",0}, - { "_GLsizei","_unsigned_int",0}, - { "_GLsizei","_wxWindowID",0}, - { "_GLsizei","_uint",0}, - { "_GLsizei","_EBool",0}, - { "_GLsizei","_size_t",0}, - { "_GLsizei","_wxPrintQuality",0}, - { "_GLsizei","_GLenum",0}, - { "_GLsizei","_GLbitfield",0}, - { "_GLsizei","_GLint",0}, - { "_class_wxTreeCtrl","_wxTreeCtrl",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxToolTip","_class_wxToolTip",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPNGHandler","_class_wxPNGHandler",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0}, - { "_wxPrinter","_class_wxPrinter",0}, - { "_GLbyte","_signed_char",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_GLubyte",0}, - { "_byte","_GLboolean",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_wxPyPrintout","_class_wxPyPrintout",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_wxSashWindow","_class_wxSashWindow",0}, - { "_GLenum","_GLuint",0}, - { "_GLenum","_GLsizei",0}, - { "_GLenum","_GLint",0}, - { "_GLenum","_GLbitfield",0}, - { "_GLenum","_unsigned_int",0}, - { "_GLenum","_int",0}, - { "_GLenum","_wxWindowID",0}, - { "_GLenum","_uint",0}, - { "_GLenum","_size_t",0}, - { "_GLenum","_wxPrintQuality",0}, - { "_class_wxPrintDialogData","_wxPrintDialogData",0}, - { "_wxGLContext","_class_wxGLContext",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_class_wxSashEvent","_wxSashEvent",0}, - { "_float","_GLclampf",0}, - { "_float","_GLfloat",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxListEvent","_class_wxListEvent",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_class_wxBMPHandler","_wxBMPHandler",0}, - { "_wxPrintPreview","_class_wxPrintPreview",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0}, - { "_size_t","_GLuint",0}, - { "_size_t","_GLsizei",0}, - { "_size_t","_GLint",0}, - { "_size_t","_GLbitfield",0}, - { "_size_t","_GLenum",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxGIFHandler","_wxGIFHandler",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_wxPanel","_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_signed_char","_GLbyte",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxToolTip","_wxToolTip",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_class_wxPNGHandler","_wxPNGHandler",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxPageSetupDialog","_class_wxPageSetupDialog",0}, - { "_class_wxPrinter","_wxPrinter",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_class_wxPyPrintout","_wxPyPrintout",0}, - { "_class_wxSashWindow","_wxSashWindow",0}, - { "_GLuint","_unsigned_int",0}, - { "_GLuint","_int",0}, - { "_GLuint","_wxWindowID",0}, - { "_GLuint","_uint",0}, - { "_GLuint","_size_t",0}, - { "_GLuint","_wxPrintQuality",0}, - { "_GLuint","_GLenum",0}, - { "_GLuint","_GLbitfield",0}, - { "_GLuint","_GLint",0}, - { "_GLuint","_GLsizei",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_GLuint",0}, - { "_uint","_GLsizei",0}, - { "_uint","_GLint",0}, - { "_uint","_GLbitfield",0}, - { "_uint","_GLenum",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_class_wxImage","_wxImage",0}, - { "_GLclampd","_double",0}, - { "_GLclampd","_GLdouble",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_class___wxPyCleanup","___wxPyCleanup",0}, - { "_GLclampf","_float",0}, - { "_GLclampf","_GLfloat",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPrintDialog","_class_wxPrintDialog",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_wxPrintData","_class_wxPrintData",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_GLbitfield","_GLuint",0}, - { "_GLbitfield","_GLsizei",0}, - { "_GLbitfield","_GLint",0}, - { "_GLbitfield","_unsigned_int",0}, - { "_GLbitfield","_int",0}, - { "_GLbitfield","_wxWindowID",0}, - { "_GLbitfield","_uint",0}, - { "_GLbitfield","_size_t",0}, - { "_GLbitfield","_wxPrintQuality",0}, - { "_GLbitfield","_GLenum",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_wxListItem","_class_wxListItem",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0}, - { "_EBool","_GLsizei",0}, - { "_EBool","_GLint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_class_wxPreviewFrame","_wxPreviewFrame",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_wxPyApp","_class_wxPyApp",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxTreeEvent","_wxTreeEvent",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_class_wxPanel","_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_GLsizei",0}, - { "_signed_int","_GLint",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_GLboolean","_GLubyte",0}, - { "_GLboolean","_unsigned_char",0}, - { "_GLboolean","_byte",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_GLushort",0}, - { "_WXTYPE","_GLshort",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_GLshort","_GLushort",0}, - { "_GLshort","_short",0}, - { "_GLshort","_signed_short",0}, - { "_GLshort","_unsigned_short",0}, - { "_GLshort","_WXTYPE",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_GLushort",0}, - { "_unsigned_short","_GLshort",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_class_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_wxPrintDialogData","_class_wxPrintDialogData",0}, - { "_GLushort","_unsigned_short",0}, - { "_GLushort","_short",0}, - { "_GLushort","_WXTYPE",0}, - { "_GLushort","_GLshort",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_wxSashEvent","_class_wxSashEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxListCtrl","_class_wxListCtrl",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_wxGLCanvas","_class_wxGLCanvas",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_GLshort",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxPrintDialog","_wxPrintDialog",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_class_wxImageHandler","_wxImageHandler",0}, - { "_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_wxTreeItemId","_class_wxTreeItemId",0}, - { "_unsigned_char","_GLubyte",0}, - { "_unsigned_char","_GLboolean",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_GLuint",0}, - { "_unsigned_int","_GLsizei",0}, - { "_unsigned_int","_GLint",0}, - { "_unsigned_int","_GLbitfield",0}, - { "_unsigned_int","_GLenum",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxListItem","_wxListItem",0}, - { "_GLdouble","_GLclampd",0}, - { "_GLdouble","_double",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0}, - { "_short","_GLushort",0}, - { "_short","_GLshort",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxFrame",0}, - { "_class_wxGLContext","_wxGLContext",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxJPEGHandler","_class_wxJPEGHandler",0}, - { "_wxWindowID","_GLuint",0}, - { "_wxWindowID","_GLsizei",0}, - { "_wxWindowID","_GLint",0}, - { "_wxWindowID","_GLbitfield",0}, - { "_wxWindowID","_GLenum",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_GLuint",0}, - { "_int","_GLsizei",0}, - { "_int","_GLint",0}, - { "_int","_GLbitfield",0}, - { "_int","_GLenum",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxListEvent","_wxListEvent",0}, - { "_class_wxPrintPreview","_wxPrintPreview",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_class_wxPyApp","_wxPyApp",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_wxPyTreeItemData","_class_wxPyTreeItemData",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxTreeItemId","_wxTreeItemId",0}, - { "_wxTreeCtrl","_class_wxTreeCtrl",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_class_wxPageSetupDialog","_wxPageSetupDialog",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_wxPreviewFrame","_class_wxPreviewFrame",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_GLint","_GLuint",0}, - { "_GLint","_GLsizei",0}, - { "_GLint","_int",0}, - { "_GLint","_signed_int",0}, - { "_GLint","_unsigned_int",0}, - { "_GLint","_wxWindowID",0}, - { "_GLint","_uint",0}, - { "_GLint","_EBool",0}, - { "_GLint","_size_t",0}, - { "_GLint","_wxPrintQuality",0}, - { "_GLint","_GLenum",0}, - { "_GLint","_GLbitfield",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_GLubyte","_unsigned_char",0}, - { "_GLubyte","_byte",0}, - { "_GLubyte","_GLboolean",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxListCtrl","_wxListCtrl",0}, - { "_class_wxGLCanvas","_wxGLCanvas",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxTreeEvent","_class_wxTreeEvent",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_class_wxPrintData","_wxPrintData",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_class_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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)); - - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/glcanvas.py b/utils/wxPython/src/gtk/glcanvas.py deleted file mode 100644 index 5f3badf26c..0000000000 --- a/utils/wxPython/src/gtk/glcanvas.py +++ /dev/null @@ -1,1383 +0,0 @@ -# This file was created automatically by SWIG. -import glcanvasc - -from misc import * - -from misc2 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 * - -from printfw import * -import wx -class wxGLContextPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,glcanvasc=glcanvasc): - if self.thisown == 1 : - glcanvasc.delete_wxGLContext(self) - def SetCurrent(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SetCurrent,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SetColour,(self,) + _args, _kwargs) - return val - def SwapBuffers(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SwapBuffers,(self,) + _args, _kwargs) - return val - def SetupPixelFormat(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SetupPixelFormat,(self,) + _args, _kwargs) - return val - def SetupPalette(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SetupPalette,(self,) + _args, _kwargs) - return val - def CreateDefaultPalette(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_CreateDefaultPalette,(self,) + _args, _kwargs) - if val: val = wxPalettePtr(val) ; val.thisown = 1 - return val - def GetPalette(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_GetPalette,(self,) + _args, _kwargs) - if val: val = wxPalettePtr(val) - return val - def GetWindow(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_GetWindow,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxGLContext(wxGLContextPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(glcanvasc.new_wxGLContext,_args,_kwargs) - self.thisown = 1 - - - - -class wxGLCanvasPtr(wxScrolledWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetCurrent(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_SetCurrent,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_SetColour,(self,) + _args, _kwargs) - return val - def SwapBuffers(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_SwapBuffers,(self,) + _args, _kwargs) - return val - def GetContext(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_GetContext,(self,) + _args, _kwargs) - if val: val = wxGLContextPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxGLCanvas(wxGLCanvasPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(glcanvasc.new_wxGLCanvas,_args,_kwargs) - 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 9fc3ea936c..0000000000 --- a/utils/wxPython/src/gtk/image.cpp +++ /dev/null @@ -1,1743 +0,0 @@ -/* - * FILE : gtk/image.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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); - } -#ifdef __cplusplus -extern "C" { -#endif -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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyObject *_wrap_wxImageFromBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxBitmap * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageFromBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_wxImage_AddHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_AddHandler",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxImageHandler_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxImageHandler_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetExtension",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetType",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetMimeType",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageHandler_SetName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageHandler_SetExtension",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxImageHandler_SetType",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageHandler_SetMimeType",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPNGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxJPEGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBMPHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGIFHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxImage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_ConvertToBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_Create",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_Destroy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_Scale",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_Rescale(_swigobj,_swigarg0,_swigarg1) (_swigobj->Rescale(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_Rescale(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - int _arg1; - int _arg2; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_Rescale",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Rescale. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_Rescale(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiibbb:wxImage_SetRGB",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_GetRed",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_GetGreen",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_GetBlue",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) wxBITMAP_TYPE_PNG; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|l:wxImage_LoadFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxImage_LoadMimeFile",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxImage_SaveFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxImage_SaveMimeFile",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -static PyObject * wxImage_GetData(wxImage *self) { - unsigned char* data = self->GetData(); - int len = self->GetWidth() * self->GetHeight() * 3; - return PyString_FromStringAndSize((char*)data, len); - } -static PyObject *_wrap_wxImage_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxImage * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (PyObject *)wxImage_GetData(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static void wxImage_SetData(wxImage *self,PyObject * data) { - unsigned char* dataPtr; - - if (! PyString_Check(data)) { - PyErr_SetString(PyExc_TypeError, "Expected string object"); - return /* NULL */ ; - } - dataPtr = (unsigned char*)PyString_AsString(data); - self->SetData(dataPtr); - } -static PyObject *_wrap_wxImage_SetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - PyObject * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImage_SetData",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetData. Expected _wxImage_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Obbb:wxImage_SetMaskColour",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetMaskRed",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetMaskGreen",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetMaskBlue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxImage_SetMask",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_HasMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxImage_SetMask", _wrap_wxImage_SetMask, METH_VARARGS }, - { "wxImage_GetMaskBlue", _wrap_wxImage_GetMaskBlue, METH_VARARGS }, - { "wxImage_GetMaskGreen", _wrap_wxImage_GetMaskGreen, METH_VARARGS }, - { "wxImage_GetMaskRed", _wrap_wxImage_GetMaskRed, METH_VARARGS }, - { "wxImage_SetMaskColour", _wrap_wxImage_SetMaskColour, METH_VARARGS }, - { "wxImage_SetData", _wrap_wxImage_SetData, METH_VARARGS }, - { "wxImage_GetData", _wrap_wxImage_GetData, METH_VARARGS }, - { "wxImage_GetHeight", _wrap_wxImage_GetHeight, METH_VARARGS }, - { "wxImage_GetWidth", _wrap_wxImage_GetWidth, METH_VARARGS }, - { "wxImage_Ok", _wrap_wxImage_Ok, METH_VARARGS }, - { "wxImage_SaveMimeFile", _wrap_wxImage_SaveMimeFile, METH_VARARGS }, - { "wxImage_SaveFile", _wrap_wxImage_SaveFile, METH_VARARGS }, - { "wxImage_LoadMimeFile", _wrap_wxImage_LoadMimeFile, METH_VARARGS }, - { "wxImage_LoadFile", _wrap_wxImage_LoadFile, METH_VARARGS }, - { "wxImage_GetBlue", _wrap_wxImage_GetBlue, METH_VARARGS }, - { "wxImage_GetGreen", _wrap_wxImage_GetGreen, METH_VARARGS }, - { "wxImage_GetRed", _wrap_wxImage_GetRed, METH_VARARGS }, - { "wxImage_SetRGB", _wrap_wxImage_SetRGB, METH_VARARGS }, - { "wxImage_Rescale", _wrap_wxImage_Rescale, METH_VARARGS }, - { "wxImage_Scale", _wrap_wxImage_Scale, METH_VARARGS }, - { "wxImage_Destroy", _wrap_wxImage_Destroy, METH_VARARGS }, - { "wxImage_Create", _wrap_wxImage_Create, METH_VARARGS }, - { "wxImage_ConvertToBitmap", _wrap_wxImage_ConvertToBitmap, METH_VARARGS }, - { "delete_wxImage", _wrap_delete_wxImage, METH_VARARGS }, - { "new_wxImage", _wrap_new_wxImage, METH_VARARGS }, - { "new_wxGIFHandler", _wrap_new_wxGIFHandler, METH_VARARGS }, - { "new_wxBMPHandler", _wrap_new_wxBMPHandler, METH_VARARGS }, - { "new_wxJPEGHandler", _wrap_new_wxJPEGHandler, METH_VARARGS }, - { "new_wxPNGHandler", _wrap_new_wxPNGHandler, METH_VARARGS }, - { "wxImageHandler_SetMimeType", _wrap_wxImageHandler_SetMimeType, METH_VARARGS }, - { "wxImageHandler_SetType", _wrap_wxImageHandler_SetType, METH_VARARGS }, - { "wxImageHandler_SetExtension", _wrap_wxImageHandler_SetExtension, METH_VARARGS }, - { "wxImageHandler_SetName", _wrap_wxImageHandler_SetName, METH_VARARGS }, - { "wxImageHandler_GetMimeType", _wrap_wxImageHandler_GetMimeType, METH_VARARGS }, - { "wxImageHandler_GetType", _wrap_wxImageHandler_GetType, METH_VARARGS }, - { "wxImageHandler_GetExtension", _wrap_wxImageHandler_GetExtension, METH_VARARGS }, - { "wxImageHandler_GetName", _wrap_wxImageHandler_GetName, METH_VARARGS }, - { "new_wxImageHandler", _wrap_new_wxImageHandler, METH_VARARGS }, - { "wxImage_AddHandler", _wrap_wxImage_AddHandler, METH_VARARGS }, - { "wxImageFromBitmap", _wrap_wxImageFromBitmap, METH_VARARGS }, - { "wxImageFromMime", _wrap_wxImageFromMime, METH_VARARGS }, - { "wxEmptyImage", _wrap_wxEmptyImage, METH_VARARGS }, - { "wxNullImage", _wrap_wxNullImage, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_class_wxJPEGHandler","_wxJPEGHandler",0}, - { "_wxBMPHandler","_class_wxBMPHandler",0}, - { "_wxImage","_class_wxImage",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxGIFHandler","_class_wxGIFHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxImageHandler",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPNGHandler","_class_wxPNGHandler",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxDC",0}, - { "_class_wxBMPHandler","_wxBMPHandler",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxGIFHandler","_wxGIFHandler",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxPNGHandler","_wxPNGHandler",0}, - { "_wxColour","_class_wxColour",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_class_wxImage","_wxImage",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_class_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_class_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_class_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxImageHandler",0}, - { "_unsigned_char","_byte",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxJPEGHandler","_class_wxJPEGHandler",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxPalette","_wxPalette",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/image.py b/utils/wxPython/src/gtk/image.py deleted file mode 100644 index d2b4c89599..0000000000 --- a/utils/wxPython/src/gtk/image.py +++ /dev/null @@ -1,221 +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, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetName,(self,) + _args, _kwargs) - return val - def GetExtension(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetExtension,(self,) + _args, _kwargs) - return val - def GetType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetType,(self,) + _args, _kwargs) - return val - def GetMimeType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetMimeType,(self,) + _args, _kwargs) - return val - def SetName(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetName,(self,) + _args, _kwargs) - return val - def SetExtension(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetExtension,(self,) + _args, _kwargs) - return val - def SetType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetType,(self,) + _args, _kwargs) - return val - def SetMimeType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetMimeType,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxImageHandler(wxImageHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxImageHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxPNGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxPNGHandler(wxPNGHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxPNGHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxJPEGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxJPEGHandler(wxJPEGHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxJPEGHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxBMPHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxBMPHandler(wxBMPHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxBMPHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxGIFHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxGIFHandler(wxGIFHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxGIFHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxImagePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,imagec=imagec): - if self.thisown == 1 : - imagec.delete_wxImage(self) - def ConvertToBitmap(self, *_args, **_kwargs): - val = apply(imagec.wxImage_ConvertToBitmap,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) ; val.thisown = 1 - return val - def Create(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Create,(self,) + _args, _kwargs) - return val - def Destroy(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Destroy,(self,) + _args, _kwargs) - return val - def Scale(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Scale,(self,) + _args, _kwargs) - if val: val = wxImagePtr(val) ; val.thisown = 1 - return val - def Rescale(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Rescale,(self,) + _args, _kwargs) - return val - def SetRGB(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetRGB,(self,) + _args, _kwargs) - return val - def GetRed(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetRed,(self,) + _args, _kwargs) - return val - def GetGreen(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetGreen,(self,) + _args, _kwargs) - return val - def GetBlue(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetBlue,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_LoadFile,(self,) + _args, _kwargs) - return val - def LoadMimeFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_LoadMimeFile,(self,) + _args, _kwargs) - return val - def SaveFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SaveFile,(self,) + _args, _kwargs) - return val - def SaveMimeFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SaveMimeFile,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Ok,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetWidth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetHeight,(self,) + _args, _kwargs) - return val - def GetData(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetData,(self,) + _args, _kwargs) - return val - def SetData(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetData,(self,) + _args, _kwargs) - return val - def SetMaskColour(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetMaskColour,(self,) + _args, _kwargs) - return val - def GetMaskRed(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetMaskRed,(self,) + _args, _kwargs) - return val - def GetMaskGreen(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetMaskGreen,(self,) + _args, _kwargs) - return val - def GetMaskBlue(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetMaskBlue,(self,) + _args, _kwargs) - return val - def SetMask(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetMask,(self,) + _args, _kwargs) - return val - def HasMask(self, *_args, **_kwargs): - val = apply(imagec.wxImage_HasMask,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxImage(wxImagePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxImage,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxNullImage(*_args, **_kwargs): - val = apply(imagec.wxNullImage,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -def wxEmptyImage(*_args, **_kwargs): - val = apply(imagec.wxEmptyImage,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -def wxImageFromMime(*_args, **_kwargs): - val = apply(imagec.wxImageFromMime,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -def wxImageFromBitmap(*_args, **_kwargs): - val = apply(imagec.wxImageFromBitmap,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -wxImage_AddHandler = imagec.wxImage_AddHandler - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/mdi.cpp b/utils/wxPython/src/gtk/mdi.cpp deleted file mode 100644 index 9e3dfcb069..0000000000 --- a/utils/wxPython/src/gtk/mdi.cpp +++ /dev/null @@ -1,974 +0,0 @@ -/* - * FILE : gtk/mdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE|wxVSCROLL|wxHSCROLL; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxMDIParentFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIParentFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIParentFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_ActivateNext",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_ActivatePrevious",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_ArrangeIcons",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_Cascade",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_GetActiveChild",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMDIParentFrame_GetClientWindow(_swigobj) (_swigobj->GetClientWindow()) -static PyObject *_wrap_wxMDIParentFrame_GetClientWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIClientWindow * _result; - wxMDIParentFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_GetClientWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMDIParentFrame_GetToolBar(_swigobj) (_swigobj->GetToolBar()) -static PyObject *_wrap_wxMDIParentFrame_GetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxMDIParentFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_GetToolBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_Tile",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxMDIChildFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIChildFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIChildFrame_Activate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMDIChildFrame_Maximize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIChildFrame_Restore",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|l:new_wxMDIClientWindow",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyMethodDef mdicMethods[] = { - { "new_wxMDIClientWindow", _wrap_new_wxMDIClientWindow, METH_VARARGS }, - { "wxMDIChildFrame_Restore", _wrap_wxMDIChildFrame_Restore, METH_VARARGS }, - { "wxMDIChildFrame_Maximize", _wrap_wxMDIChildFrame_Maximize, METH_VARARGS }, - { "wxMDIChildFrame_Activate", _wrap_wxMDIChildFrame_Activate, METH_VARARGS }, - { "new_wxMDIChildFrame", _wrap_new_wxMDIChildFrame, METH_VARARGS }, - { "wxMDIParentFrame_Tile", _wrap_wxMDIParentFrame_Tile, METH_VARARGS }, - { "wxMDIParentFrame_GetToolBar", _wrap_wxMDIParentFrame_GetToolBar, METH_VARARGS }, - { "wxMDIParentFrame_GetClientWindow", _wrap_wxMDIParentFrame_GetClientWindow, METH_VARARGS }, - { "wxMDIParentFrame_GetActiveChild", _wrap_wxMDIParentFrame_GetActiveChild, METH_VARARGS }, - { "wxMDIParentFrame_Cascade", _wrap_wxMDIParentFrame_Cascade, METH_VARARGS }, - { "wxMDIParentFrame_ArrangeIcons", _wrap_wxMDIParentFrame_ArrangeIcons, METH_VARARGS }, - { "wxMDIParentFrame_ActivatePrevious", _wrap_wxMDIParentFrame_ActivatePrevious, METH_VARARGS }, - { "wxMDIParentFrame_ActivateNext", _wrap_wxMDIParentFrame_ActivateNext, METH_VARARGS }, - { "new_wxMDIParentFrame", _wrap_new_wxMDIParentFrame, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_class_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_class_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_class_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_class_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_class_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_class_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_class_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_class_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/mdi.py b/utils/wxPython/src/gtk/mdi.py deleted file mode 100644 index 439734413f..0000000000 --- a/utils/wxPython/src/gtk/mdi.py +++ /dev/null @@ -1,107 +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, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_ActivateNext,(self,) + _args, _kwargs) - return val - def ActivatePrevious(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_ActivatePrevious,(self,) + _args, _kwargs) - return val - def ArrangeIcons(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_ArrangeIcons,(self,) + _args, _kwargs) - return val - def Cascade(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_Cascade,(self,) + _args, _kwargs) - return val - def GetActiveChild(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_GetActiveChild,(self,) + _args, _kwargs) - if val: val = wxMDIChildFramePtr(val) - return val - def GetClientWindow(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_GetClientWindow,(self,) + _args, _kwargs) - if val: val = wxMDIClientWindowPtr(val) - return val - def GetToolBar(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_GetToolBar,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def Tile(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_Tile,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMDIParentFrame(wxMDIParentFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(mdic.new_wxMDIParentFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIChildFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Activate(self, *_args, **_kwargs): - val = apply(mdic.wxMDIChildFrame_Activate,(self,) + _args, _kwargs) - return val - def Maximize(self, *_args, **_kwargs): - val = apply(mdic.wxMDIChildFrame_Maximize,(self,) + _args, _kwargs) - return val - def Restore(self, *_args, **_kwargs): - val = apply(mdic.wxMDIChildFrame_Restore,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMDIChildFrame(wxMDIChildFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(mdic.new_wxMDIChildFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIClientWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxMDIClientWindow(wxMDIClientWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(mdic.new_wxMDIClientWindow,_args,_kwargs) - 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 e1efd7a109..0000000000 --- a/utils/wxPython/src/gtk/misc.cpp +++ /dev/null @@ -1,4600 +0,0 @@ -/* - * FILE : gtk/misc.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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; - } - - - wxColour wxSystemSettings_GetSystemColour(int index) { - return wxSystemSettings::GetSystemColour(index); - } - - wxFont wxSystemSettings_GetSystemFont(int index) { - return wxSystemSettings::GetSystemFont(index); - } - - int wxSystemSettings_GetSystemMetric(int index) { - return wxSystemSettings::GetSystemMetric(index); - } -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_wxFileSelector(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - char * _arg0; - char * _arg1 = (char *) NULL; - char * _arg2 = (char *) NULL; - char * _arg3 = (char *) NULL; - char * _arg4 = (char *) "*.*"; - int _arg5 = (int ) 0; - wxWindow * _arg6 = (wxWindow *) NULL; - int _arg7 = (int ) -1; - int _arg8 = (int ) -1; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssssiOii:wxFileSelector",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6,&_arg7,&_arg8)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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 = (wxString *) &wxPyEmptyStr; - wxString * _arg2 = (wxString *) &wxPyEmptyStr; - wxWindow * _arg3 = (wxWindow *) NULL; - int _arg4 = (int ) -1; - int _arg5 = (int ) -1; - bool _arg6 = (bool ) TRUE; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - int tempbool6 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|OOOiii:wxGetTextFromUser",&_obj0,&_obj1,&_obj2,&_argo3,&_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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 = (wxWindow *) NULL; - int _arg5 = (int ) -1; - int _arg6 = (int ) -1; - bool _arg7 = (bool ) TRUE; - int _arg8 = (int ) 150; - int _arg9 = (int ) 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - PyObject * _argo4 = 0; - int tempbool7 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|Oiiiii:wxGetSingleChoice",&_obj0,&_obj1,&_obj3,&_argo4,&_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 (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 = (wxWindow *) NULL; - int _arg5 = (int ) -1; - int _arg6 = (int ) -1; - bool _arg7 = (bool ) TRUE; - int _arg8 = (int ) 150; - int _arg9 = (int ) 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - PyObject * _argo4 = 0; - int tempbool7 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|Oiiiii:wxGetSingleChoiceIndex",&_obj0,&_obj1,&_obj3,&_argo4,&_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 (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 = (wxString *) &wxPyEmptyStr; - int _arg2 = (int ) wxOK|wxCENTRE; - wxWindow * _arg3 = (wxWindow *) NULL; - int _arg4 = (int ) -1; - int _arg5 = (int ) -1; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|OiOii:wxMessageBox",&_obj0,&_obj1,&_arg2,&_argo3,&_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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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_wxGetNumberFromUser(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxString * _arg0; - wxString * _arg1; - wxString * _arg2; - long _arg3; - long _arg4 = (long ) 0; - long _arg5 = (long ) 100; - wxWindow * _arg6 = (wxWindow *) NULL; - wxPoint * _arg7 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo6 = 0; - PyObject * _argo7 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOOl|llOO:wxGetNumberFromUser",&_obj0,&_obj1,&_obj2,&_arg3,&_arg4,&_arg5,&_argo6,&_argo7)) - 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)); -} - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxGetNumberFromUser. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(void **) &_arg7,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of wxGetNumberFromUser. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxGetNumberFromUser(*_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6,*_arg7); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSetCursor",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxCursor *) wxHOURGLASS_CURSOR; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"|O:wxBeginBusyCursor",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _obj0 = 0; - int tempbool1 = (int) FALSE; - - 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_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_wxSleep(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSleep",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSleep(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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_wxEnableTopLevelWindows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _arg0; - int tempbool0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxEnableTopLevelWindows",&tempbool0)) - return NULL; - _arg0 = (bool ) tempbool0; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEnableTopLevelWindows(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxGetResource(PyObject *self, PyObject *args) { - PyObject * _resultobj; - char * _result; - char * _arg0; - char * _arg1; - char * _arg2 = (char *) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxResourceTable *) NULL; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|O:wxResourceParseData",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxResourceTable *) NULL; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|O:wxResourceParseFile",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxResourceTable *) NULL; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|O:wxResourceParseString",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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_wxSystemSettings_GetSystemColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - int _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSystemSettings_GetSystemColour",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxSystemSettings_GetSystemColour(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxSystemSettings_GetSystemFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - int _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSystemSettings_GetSystemFont",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxFont (wxSystemSettings_GetSystemFont(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxSystemSettings_GetSystemMetric(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - int _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSystemSettings_GetSystemMetric",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSystemSettings_GetSystemMetric(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg1 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxSize(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxSize_Set",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxSize_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxSize_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetWidth. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxSize_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetHeight. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxSize_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - long _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_SetWidth. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSize_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxSize_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - long _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_SetHeight. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSize_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_asTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Od:wxRealPoint_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRealPoint_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Od:wxRealPoint_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRealPoint_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (double ) 0.0; - double _arg1 = (double ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRealPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRealPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRealPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRealPoint * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRealPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxPoint_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPoint_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxPoint_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPoint_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg1 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxPoint_Set",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPoint_asTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg1 = (long ) 0; - long _arg2 = (long ) 0; - long _arg3 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRect(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetLeft",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetTop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetBottom",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetRight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_width_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_width_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_height_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_height_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_asTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTimer_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPyTimer(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyTimer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPyTimer",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyTimer_Interval",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - int _arg2 = (int ) FALSE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:wxPyTimer_Start",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyTimer_Stop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_Above",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Above. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIndividualLayoutConstraint_Absolute",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIndividualLayoutConstraint_AsIs",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_Below",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Below. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIndividualLayoutConstraint_Unconstrained",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_LeftOf",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_LeftOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxIndividualLayoutConstraint_PercentOf",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_PercentOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_RightOf",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_RightOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi|i:wxIndividualLayoutConstraint_SameAs",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_SameAs. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - int _arg5 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOi|ii:wxIndividualLayoutConstraint_Set",&_argo0,&_arg1,&_argo2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Set. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_bottom_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_centreX_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_centreY_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_height_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_left_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_right_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_top_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_width_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegion_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRegion(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRegion",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegion_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxRegion_Contains",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_ContainsPoint",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsPoint. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_ContainsRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsRect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegion_GetBox",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Intersect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Intersect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Subtract",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Subtract. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Union",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Union. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Xor",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Xor. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxRegionIterator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegionIterator_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRegionIterator(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegionIterator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRegionIterator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetW",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetH",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_HaveRects",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_Reset",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_Next",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg1 = (int ) 0; - int _arg2 = (int ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorEntry_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiii:wxAcceleratorEntry_Set",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxAcceleratorEntry_GetFlags",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxAcceleratorEntry_GetKeyCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxAcceleratorEntry_GetCommand",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorTable_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - delete [] _arg1; -} - return _resultobj; -} - -static PyMethodDef misccMethods[] = { - { "new_wxAcceleratorTable", _wrap_new_wxAcceleratorTable, METH_VARARGS }, - { "wxAcceleratorEntry_GetCommand", _wrap_wxAcceleratorEntry_GetCommand, METH_VARARGS }, - { "wxAcceleratorEntry_GetKeyCode", _wrap_wxAcceleratorEntry_GetKeyCode, METH_VARARGS }, - { "wxAcceleratorEntry_GetFlags", _wrap_wxAcceleratorEntry_GetFlags, METH_VARARGS }, - { "wxAcceleratorEntry_Set", _wrap_wxAcceleratorEntry_Set, METH_VARARGS }, - { "new_wxAcceleratorEntry", _wrap_new_wxAcceleratorEntry, METH_VARARGS }, - { "wxRegionIterator_Next", _wrap_wxRegionIterator_Next, METH_VARARGS }, - { "wxRegionIterator_Reset", _wrap_wxRegionIterator_Reset, METH_VARARGS }, - { "wxRegionIterator_HaveRects", _wrap_wxRegionIterator_HaveRects, METH_VARARGS }, - { "wxRegionIterator_GetRect", _wrap_wxRegionIterator_GetRect, METH_VARARGS }, - { "wxRegionIterator_GetHeight", _wrap_wxRegionIterator_GetHeight, METH_VARARGS }, - { "wxRegionIterator_GetH", _wrap_wxRegionIterator_GetH, METH_VARARGS }, - { "wxRegionIterator_GetWidth", _wrap_wxRegionIterator_GetWidth, METH_VARARGS }, - { "wxRegionIterator_GetW", _wrap_wxRegionIterator_GetW, METH_VARARGS }, - { "wxRegionIterator_GetY", _wrap_wxRegionIterator_GetY, METH_VARARGS }, - { "wxRegionIterator_GetX", _wrap_wxRegionIterator_GetX, METH_VARARGS }, - { "delete_wxRegionIterator", _wrap_delete_wxRegionIterator, METH_VARARGS }, - { "new_wxRegionIterator", _wrap_new_wxRegionIterator, METH_VARARGS }, - { "wxRegion_Xor", _wrap_wxRegion_Xor, METH_VARARGS }, - { "wxRegion_Union", _wrap_wxRegion_Union, METH_VARARGS }, - { "wxRegion_Subtract", _wrap_wxRegion_Subtract, METH_VARARGS }, - { "wxRegion_Intersect", _wrap_wxRegion_Intersect, METH_VARARGS }, - { "wxRegion_GetBox", _wrap_wxRegion_GetBox, METH_VARARGS }, - { "wxRegion_ContainsRect", _wrap_wxRegion_ContainsRect, METH_VARARGS }, - { "wxRegion_ContainsPoint", _wrap_wxRegion_ContainsPoint, METH_VARARGS }, - { "wxRegion_Contains", _wrap_wxRegion_Contains, METH_VARARGS }, - { "wxRegion_Clear", _wrap_wxRegion_Clear, METH_VARARGS }, - { "delete_wxRegion", _wrap_delete_wxRegion, METH_VARARGS }, - { "new_wxRegion", _wrap_new_wxRegion, METH_VARARGS }, - { "wxLayoutConstraints_width_get", _wrap_wxLayoutConstraints_width_get, METH_VARARGS }, - { "wxLayoutConstraints_top_get", _wrap_wxLayoutConstraints_top_get, METH_VARARGS }, - { "wxLayoutConstraints_right_get", _wrap_wxLayoutConstraints_right_get, METH_VARARGS }, - { "wxLayoutConstraints_left_get", _wrap_wxLayoutConstraints_left_get, METH_VARARGS }, - { "wxLayoutConstraints_height_get", _wrap_wxLayoutConstraints_height_get, METH_VARARGS }, - { "wxLayoutConstraints_centreY_get", _wrap_wxLayoutConstraints_centreY_get, METH_VARARGS }, - { "wxLayoutConstraints_centreX_get", _wrap_wxLayoutConstraints_centreX_get, METH_VARARGS }, - { "wxLayoutConstraints_bottom_get", _wrap_wxLayoutConstraints_bottom_get, METH_VARARGS }, - { "new_wxLayoutConstraints", _wrap_new_wxLayoutConstraints, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Set", _wrap_wxIndividualLayoutConstraint_Set, METH_VARARGS }, - { "wxIndividualLayoutConstraint_SameAs", _wrap_wxIndividualLayoutConstraint_SameAs, METH_VARARGS }, - { "wxIndividualLayoutConstraint_RightOf", _wrap_wxIndividualLayoutConstraint_RightOf, METH_VARARGS }, - { "wxIndividualLayoutConstraint_PercentOf", _wrap_wxIndividualLayoutConstraint_PercentOf, METH_VARARGS }, - { "wxIndividualLayoutConstraint_LeftOf", _wrap_wxIndividualLayoutConstraint_LeftOf, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Unconstrained", _wrap_wxIndividualLayoutConstraint_Unconstrained, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Below", _wrap_wxIndividualLayoutConstraint_Below, METH_VARARGS }, - { "wxIndividualLayoutConstraint_AsIs", _wrap_wxIndividualLayoutConstraint_AsIs, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Absolute", _wrap_wxIndividualLayoutConstraint_Absolute, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Above", _wrap_wxIndividualLayoutConstraint_Above, METH_VARARGS }, - { "wxPyTimer_Stop", _wrap_wxPyTimer_Stop, METH_VARARGS }, - { "wxPyTimer_Start", _wrap_wxPyTimer_Start, METH_VARARGS }, - { "wxPyTimer_Interval", _wrap_wxPyTimer_Interval, METH_VARARGS }, - { "delete_wxPyTimer", _wrap_delete_wxPyTimer, METH_VARARGS }, - { "new_wxPyTimer", _wrap_new_wxPyTimer, METH_VARARGS }, - { "wxRect_asTuple", _wrap_wxRect_asTuple, METH_VARARGS }, - { "wxRect_height_get", _wrap_wxRect_height_get, METH_VARARGS }, - { "wxRect_height_set", _wrap_wxRect_height_set, METH_VARARGS }, - { "wxRect_width_get", _wrap_wxRect_width_get, METH_VARARGS }, - { "wxRect_width_set", _wrap_wxRect_width_set, METH_VARARGS }, - { "wxRect_y_get", _wrap_wxRect_y_get, METH_VARARGS }, - { "wxRect_y_set", _wrap_wxRect_y_set, METH_VARARGS }, - { "wxRect_x_get", _wrap_wxRect_x_get, METH_VARARGS }, - { "wxRect_x_set", _wrap_wxRect_x_set, METH_VARARGS }, - { "wxRect_GetRight", _wrap_wxRect_GetRight, METH_VARARGS }, - { "wxRect_GetBottom", _wrap_wxRect_GetBottom, METH_VARARGS }, - { "wxRect_GetTop", _wrap_wxRect_GetTop, METH_VARARGS }, - { "wxRect_GetLeft", _wrap_wxRect_GetLeft, METH_VARARGS }, - { "wxRect_GetSize", _wrap_wxRect_GetSize, METH_VARARGS }, - { "wxRect_GetPosition", _wrap_wxRect_GetPosition, METH_VARARGS }, - { "wxRect_SetHeight", _wrap_wxRect_SetHeight, METH_VARARGS }, - { "wxRect_GetHeight", _wrap_wxRect_GetHeight, METH_VARARGS }, - { "wxRect_SetWidth", _wrap_wxRect_SetWidth, METH_VARARGS }, - { "wxRect_GetWidth", _wrap_wxRect_GetWidth, METH_VARARGS }, - { "wxRect_SetY", _wrap_wxRect_SetY, METH_VARARGS }, - { "wxRect_GetY", _wrap_wxRect_GetY, METH_VARARGS }, - { "wxRect_SetX", _wrap_wxRect_SetX, METH_VARARGS }, - { "wxRect_GetX", _wrap_wxRect_GetX, METH_VARARGS }, - { "delete_wxRect", _wrap_delete_wxRect, METH_VARARGS }, - { "new_wxRect", _wrap_new_wxRect, METH_VARARGS }, - { "wxPoint_asTuple", _wrap_wxPoint_asTuple, METH_VARARGS }, - { "wxPoint_Set", _wrap_wxPoint_Set, METH_VARARGS }, - { "delete_wxPoint", _wrap_delete_wxPoint, METH_VARARGS }, - { "new_wxPoint", _wrap_new_wxPoint, METH_VARARGS }, - { "wxPoint_y_get", _wrap_wxPoint_y_get, METH_VARARGS }, - { "wxPoint_y_set", _wrap_wxPoint_y_set, METH_VARARGS }, - { "wxPoint_x_get", _wrap_wxPoint_x_get, METH_VARARGS }, - { "wxPoint_x_set", _wrap_wxPoint_x_set, METH_VARARGS }, - { "delete_wxRealPoint", _wrap_delete_wxRealPoint, METH_VARARGS }, - { "new_wxRealPoint", _wrap_new_wxRealPoint, METH_VARARGS }, - { "wxRealPoint_y_get", _wrap_wxRealPoint_y_get, METH_VARARGS }, - { "wxRealPoint_y_set", _wrap_wxRealPoint_y_set, METH_VARARGS }, - { "wxRealPoint_x_get", _wrap_wxRealPoint_x_get, METH_VARARGS }, - { "wxRealPoint_x_set", _wrap_wxRealPoint_x_set, METH_VARARGS }, - { "wxSize_asTuple", _wrap_wxSize_asTuple, METH_VARARGS }, - { "wxSize_SetHeight", _wrap_wxSize_SetHeight, METH_VARARGS }, - { "wxSize_SetWidth", _wrap_wxSize_SetWidth, METH_VARARGS }, - { "wxSize_GetHeight", _wrap_wxSize_GetHeight, METH_VARARGS }, - { "wxSize_GetWidth", _wrap_wxSize_GetWidth, METH_VARARGS }, - { "wxSize_GetY", _wrap_wxSize_GetY, METH_VARARGS }, - { "wxSize_GetX", _wrap_wxSize_GetX, METH_VARARGS }, - { "wxSize_Set", _wrap_wxSize_Set, METH_VARARGS }, - { "delete_wxSize", _wrap_delete_wxSize, METH_VARARGS }, - { "new_wxSize", _wrap_new_wxSize, METH_VARARGS }, - { "wxSize_height_get", _wrap_wxSize_y_get, METH_VARARGS }, - { "wxSize_height_set", _wrap_wxSize_y_set, METH_VARARGS }, - { "wxSize_width_get", _wrap_wxSize_x_get, METH_VARARGS }, - { "wxSize_width_set", _wrap_wxSize_x_set, METH_VARARGS }, - { "wxSize_y_get", _wrap_wxSize_y_get, METH_VARARGS }, - { "wxSize_y_set", _wrap_wxSize_y_set, METH_VARARGS }, - { "wxSize_x_get", _wrap_wxSize_x_get, METH_VARARGS }, - { "wxSize_x_set", _wrap_wxSize_x_set, METH_VARARGS }, - { "wxSystemSettings_GetSystemMetric", _wrap_wxSystemSettings_GetSystemMetric, METH_VARARGS }, - { "wxSystemSettings_GetSystemFont", _wrap_wxSystemSettings_GetSystemFont, METH_VARARGS }, - { "wxSystemSettings_GetSystemColour", _wrap_wxSystemSettings_GetSystemColour, METH_VARARGS }, - { "wxResourceParseString", _wrap_wxResourceParseString, METH_VARARGS }, - { "wxResourceParseFile", _wrap_wxResourceParseFile, METH_VARARGS }, - { "wxResourceParseData", _wrap_wxResourceParseData, METH_VARARGS }, - { "wxResourceGetIdentifier", _wrap_wxResourceGetIdentifier, METH_VARARGS }, - { "wxResourceCreateMenuBar", _wrap_wxResourceCreateMenuBar, METH_VARARGS }, - { "wxResourceCreateIcon", _wrap_wxResourceCreateIcon, METH_VARARGS }, - { "wxResourceCreateBitmap", _wrap_wxResourceCreateBitmap, METH_VARARGS }, - { "wxResourceClear", _wrap_wxResourceClear, METH_VARARGS }, - { "wxResourceAddIdentifier", _wrap_wxResourceAddIdentifier, METH_VARARGS }, - { "wxGetResource", _wrap_wxGetResource, METH_VARARGS }, - { "wxEnableTopLevelWindows", _wrap_wxEnableTopLevelWindows, METH_VARARGS }, - { "wxSafeYield", _wrap_wxSafeYield, METH_VARARGS }, - { "wxYield", _wrap_wxYield, METH_VARARGS }, - { "wxSleep", _wrap_wxSleep, METH_VARARGS }, - { "wxNow", _wrap_wxNow, METH_VARARGS }, - { "wxIsBusy", _wrap_wxIsBusy, METH_VARARGS }, - { "wxGetMousePosition", _wrap_wxGetMousePosition, METH_VARARGS }, - { "wxExecute", _wrap_wxExecute, METH_VARARGS }, - { "wxEndBusyCursor", _wrap_wxEndBusyCursor, METH_VARARGS }, - { "wxDisplaySize", _wrap_wxDisplaySize, METH_VARARGS }, - { "wxBell", _wrap_wxBell, METH_VARARGS }, - { "wxBeginBusyCursor", _wrap_wxBeginBusyCursor, METH_VARARGS }, - { "RegisterId", _wrap_RegisterId, METH_VARARGS }, - { "NewId", _wrap_NewId, METH_VARARGS }, - { "wxRegisterId", _wrap_wxRegisterId, METH_VARARGS }, - { "wxNewId", _wrap_wxNewId, METH_VARARGS }, - { "wxSetCursor", _wrap_wxSetCursor, METH_VARARGS }, - { "wxDisplayDepth", _wrap_wxDisplayDepth, METH_VARARGS }, - { "wxColourDisplay", _wrap_wxColourDisplay, METH_VARARGS }, - { "wxGetNumberFromUser", _wrap_wxGetNumberFromUser, METH_VARARGS }, - { "wxMessageBox", _wrap_wxMessageBox, METH_VARARGS }, - { "wxGetSingleChoiceIndex", _wrap_wxGetSingleChoiceIndex, METH_VARARGS }, - { "wxGetSingleChoice", _wrap_wxGetSingleChoice, METH_VARARGS }, - { "wxGetTextFromUser", _wrap_wxGetTextFromUser, METH_VARARGS }, - { "wxFileSelector", _wrap_wxFileSelector, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_byte","_unsigned_char",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_unsigned_char","_byte",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSize","_wxSize",0}, -{0,0,0}}; - -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)); - PyDict_SetItemString(d,"wxSYS_WHITE_BRUSH", PyInt_FromLong((long) wxSYS_WHITE_BRUSH)); - PyDict_SetItemString(d,"wxSYS_LTGRAY_BRUSH", PyInt_FromLong((long) wxSYS_LTGRAY_BRUSH)); - PyDict_SetItemString(d,"wxSYS_GRAY_BRUSH", PyInt_FromLong((long) wxSYS_GRAY_BRUSH)); - PyDict_SetItemString(d,"wxSYS_DKGRAY_BRUSH", PyInt_FromLong((long) wxSYS_DKGRAY_BRUSH)); - PyDict_SetItemString(d,"wxSYS_BLACK_BRUSH", PyInt_FromLong((long) wxSYS_BLACK_BRUSH)); - PyDict_SetItemString(d,"wxSYS_NULL_BRUSH", PyInt_FromLong((long) wxSYS_NULL_BRUSH)); - PyDict_SetItemString(d,"wxSYS_HOLLOW_BRUSH", PyInt_FromLong((long) wxSYS_HOLLOW_BRUSH)); - PyDict_SetItemString(d,"wxSYS_WHITE_PEN", PyInt_FromLong((long) wxSYS_WHITE_PEN)); - PyDict_SetItemString(d,"wxSYS_BLACK_PEN", PyInt_FromLong((long) wxSYS_BLACK_PEN)); - PyDict_SetItemString(d,"wxSYS_NULL_PEN", PyInt_FromLong((long) wxSYS_NULL_PEN)); - PyDict_SetItemString(d,"wxSYS_OEM_FIXED_FONT", PyInt_FromLong((long) wxSYS_OEM_FIXED_FONT)); - PyDict_SetItemString(d,"wxSYS_ANSI_FIXED_FONT", PyInt_FromLong((long) wxSYS_ANSI_FIXED_FONT)); - PyDict_SetItemString(d,"wxSYS_ANSI_VAR_FONT", PyInt_FromLong((long) wxSYS_ANSI_VAR_FONT)); - PyDict_SetItemString(d,"wxSYS_SYSTEM_FONT", PyInt_FromLong((long) wxSYS_SYSTEM_FONT)); - PyDict_SetItemString(d,"wxSYS_DEVICE_DEFAULT_FONT", PyInt_FromLong((long) wxSYS_DEVICE_DEFAULT_FONT)); - PyDict_SetItemString(d,"wxSYS_DEFAULT_PALETTE", PyInt_FromLong((long) wxSYS_DEFAULT_PALETTE)); - PyDict_SetItemString(d,"wxSYS_SYSTEM_FIXED_FONT", PyInt_FromLong((long) wxSYS_SYSTEM_FIXED_FONT)); - PyDict_SetItemString(d,"wxSYS_DEFAULT_GUI_FONT", PyInt_FromLong((long) wxSYS_DEFAULT_GUI_FONT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_SCROLLBAR", PyInt_FromLong((long) wxSYS_COLOUR_SCROLLBAR)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BACKGROUND", PyInt_FromLong((long) wxSYS_COLOUR_BACKGROUND)); - PyDict_SetItemString(d,"wxSYS_COLOUR_ACTIVECAPTION", PyInt_FromLong((long) wxSYS_COLOUR_ACTIVECAPTION)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INACTIVECAPTION", PyInt_FromLong((long) wxSYS_COLOUR_INACTIVECAPTION)); - PyDict_SetItemString(d,"wxSYS_COLOUR_MENU", PyInt_FromLong((long) wxSYS_COLOUR_MENU)); - PyDict_SetItemString(d,"wxSYS_COLOUR_WINDOW", PyInt_FromLong((long) wxSYS_COLOUR_WINDOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_WINDOWFRAME", PyInt_FromLong((long) wxSYS_COLOUR_WINDOWFRAME)); - PyDict_SetItemString(d,"wxSYS_COLOUR_MENUTEXT", PyInt_FromLong((long) wxSYS_COLOUR_MENUTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_WINDOWTEXT", PyInt_FromLong((long) wxSYS_COLOUR_WINDOWTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_CAPTIONTEXT", PyInt_FromLong((long) wxSYS_COLOUR_CAPTIONTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_ACTIVEBORDER", PyInt_FromLong((long) wxSYS_COLOUR_ACTIVEBORDER)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INACTIVEBORDER", PyInt_FromLong((long) wxSYS_COLOUR_INACTIVEBORDER)); - PyDict_SetItemString(d,"wxSYS_COLOUR_APPWORKSPACE", PyInt_FromLong((long) wxSYS_COLOUR_APPWORKSPACE)); - PyDict_SetItemString(d,"wxSYS_COLOUR_HIGHLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_HIGHLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_HIGHLIGHTTEXT", PyInt_FromLong((long) wxSYS_COLOUR_HIGHLIGHTTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNFACE", PyInt_FromLong((long) wxSYS_COLOUR_BTNFACE)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNSHADOW", PyInt_FromLong((long) wxSYS_COLOUR_BTNSHADOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_GRAYTEXT", PyInt_FromLong((long) wxSYS_COLOUR_GRAYTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNTEXT", PyInt_FromLong((long) wxSYS_COLOUR_BTNTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INACTIVECAPTIONTEXT", PyInt_FromLong((long) wxSYS_COLOUR_INACTIVECAPTIONTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNHIGHLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_BTNHIGHLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DDKSHADOW", PyInt_FromLong((long) wxSYS_COLOUR_3DDKSHADOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_3DLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INFOTEXT", PyInt_FromLong((long) wxSYS_COLOUR_INFOTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INFOBK", PyInt_FromLong((long) wxSYS_COLOUR_INFOBK)); - PyDict_SetItemString(d,"wxSYS_COLOUR_DESKTOP", PyInt_FromLong((long) wxSYS_COLOUR_DESKTOP)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DFACE", PyInt_FromLong((long) wxSYS_COLOUR_3DFACE)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DSHADOW", PyInt_FromLong((long) wxSYS_COLOUR_3DSHADOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DHIGHLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_3DHIGHLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DHILIGHT", PyInt_FromLong((long) wxSYS_COLOUR_3DHILIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNHILIGHT", PyInt_FromLong((long) wxSYS_COLOUR_BTNHILIGHT)); - PyDict_SetItemString(d,"wxSYS_MOUSE_BUTTONS", PyInt_FromLong((long) wxSYS_MOUSE_BUTTONS)); - PyDict_SetItemString(d,"wxSYS_BORDER_X", PyInt_FromLong((long) wxSYS_BORDER_X)); - PyDict_SetItemString(d,"wxSYS_BORDER_Y", PyInt_FromLong((long) wxSYS_BORDER_Y)); - PyDict_SetItemString(d,"wxSYS_CURSOR_X", PyInt_FromLong((long) wxSYS_CURSOR_X)); - PyDict_SetItemString(d,"wxSYS_CURSOR_Y", PyInt_FromLong((long) wxSYS_CURSOR_Y)); - PyDict_SetItemString(d,"wxSYS_DCLICK_X", PyInt_FromLong((long) wxSYS_DCLICK_X)); - PyDict_SetItemString(d,"wxSYS_DCLICK_Y", PyInt_FromLong((long) wxSYS_DCLICK_Y)); - PyDict_SetItemString(d,"wxSYS_DRAG_X", PyInt_FromLong((long) wxSYS_DRAG_X)); - PyDict_SetItemString(d,"wxSYS_DRAG_Y", PyInt_FromLong((long) wxSYS_DRAG_Y)); - PyDict_SetItemString(d,"wxSYS_EDGE_X", PyInt_FromLong((long) wxSYS_EDGE_X)); - PyDict_SetItemString(d,"wxSYS_EDGE_Y", PyInt_FromLong((long) wxSYS_EDGE_Y)); - PyDict_SetItemString(d,"wxSYS_HSCROLL_ARROW_X", PyInt_FromLong((long) wxSYS_HSCROLL_ARROW_X)); - PyDict_SetItemString(d,"wxSYS_HSCROLL_ARROW_Y", PyInt_FromLong((long) wxSYS_HSCROLL_ARROW_Y)); - PyDict_SetItemString(d,"wxSYS_HTHUMB_X", PyInt_FromLong((long) wxSYS_HTHUMB_X)); - PyDict_SetItemString(d,"wxSYS_ICON_X", PyInt_FromLong((long) wxSYS_ICON_X)); - PyDict_SetItemString(d,"wxSYS_ICON_Y", PyInt_FromLong((long) wxSYS_ICON_Y)); - PyDict_SetItemString(d,"wxSYS_ICONSPACING_X", PyInt_FromLong((long) wxSYS_ICONSPACING_X)); - PyDict_SetItemString(d,"wxSYS_ICONSPACING_Y", PyInt_FromLong((long) wxSYS_ICONSPACING_Y)); - PyDict_SetItemString(d,"wxSYS_WINDOWMIN_X", PyInt_FromLong((long) wxSYS_WINDOWMIN_X)); - PyDict_SetItemString(d,"wxSYS_WINDOWMIN_Y", PyInt_FromLong((long) wxSYS_WINDOWMIN_Y)); - PyDict_SetItemString(d,"wxSYS_SCREEN_X", PyInt_FromLong((long) wxSYS_SCREEN_X)); - PyDict_SetItemString(d,"wxSYS_SCREEN_Y", PyInt_FromLong((long) wxSYS_SCREEN_Y)); - PyDict_SetItemString(d,"wxSYS_FRAMESIZE_X", PyInt_FromLong((long) wxSYS_FRAMESIZE_X)); - PyDict_SetItemString(d,"wxSYS_FRAMESIZE_Y", PyInt_FromLong((long) wxSYS_FRAMESIZE_Y)); - PyDict_SetItemString(d,"wxSYS_SMALLICON_X", PyInt_FromLong((long) wxSYS_SMALLICON_X)); - PyDict_SetItemString(d,"wxSYS_SMALLICON_Y", PyInt_FromLong((long) wxSYS_SMALLICON_Y)); - PyDict_SetItemString(d,"wxSYS_HSCROLL_Y", PyInt_FromLong((long) wxSYS_HSCROLL_Y)); - PyDict_SetItemString(d,"wxSYS_VSCROLL_X", PyInt_FromLong((long) wxSYS_VSCROLL_X)); - PyDict_SetItemString(d,"wxSYS_VSCROLL_ARROW_X", PyInt_FromLong((long) wxSYS_VSCROLL_ARROW_X)); - PyDict_SetItemString(d,"wxSYS_VSCROLL_ARROW_Y", PyInt_FromLong((long) wxSYS_VSCROLL_ARROW_Y)); - PyDict_SetItemString(d,"wxSYS_VTHUMB_Y", PyInt_FromLong((long) wxSYS_VTHUMB_Y)); - PyDict_SetItemString(d,"wxSYS_CAPTION_Y", PyInt_FromLong((long) wxSYS_CAPTION_Y)); - PyDict_SetItemString(d,"wxSYS_MENU_Y", PyInt_FromLong((long) wxSYS_MENU_Y)); - PyDict_SetItemString(d,"wxSYS_NETWORK_PRESENT", PyInt_FromLong((long) wxSYS_NETWORK_PRESENT)); - PyDict_SetItemString(d,"wxSYS_PENWINDOWS_PRESENT", PyInt_FromLong((long) wxSYS_PENWINDOWS_PRESENT)); - PyDict_SetItemString(d,"wxSYS_SHOW_SOUNDS", PyInt_FromLong((long) wxSYS_SHOW_SOUNDS)); - PyDict_SetItemString(d,"wxSYS_SWAP_BUTTONS", PyInt_FromLong((long) wxSYS_SWAP_BUTTONS)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/misc.py b/utils/wxPython/src/gtk/misc.py deleted file mode 100644 index 84945365e2..0000000000 --- a/utils/wxPython/src/gtk/misc.py +++ /dev/null @@ -1,696 +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,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxSize(self) - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxSize_Set,(self,) + _args, _kwargs) - return val - def GetX(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetY,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetWidth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetHeight,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxSize_SetWidth,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxSize_SetHeight,(self,) + _args, _kwargs) - return val - def asTuple(self, *_args, **_kwargs): - val = apply(miscc.wxSize_asTuple,(self,) + _args, _kwargs) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxSize_x_set(self,value) - return - if name == "y" : - miscc.wxSize_y_set(self,value) - return - if name == "width" : - miscc.wxSize_width_set(self,value) - return - if name == "height" : - miscc.wxSize_height_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxSize_x_get(self) - if name == "y" : - return miscc.wxSize_y_get(self) - if name == "width" : - return miscc.wxSize_width_get(self) - if name == "height" : - return miscc.wxSize_height_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxSize(wxSizePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxSize,_args,_kwargs) - self.thisown = 1 - - - - -class wxRealPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRealPoint(self) - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRealPoint_x_set(self,value) - return - if name == "y" : - miscc.wxRealPoint_y_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRealPoint_x_get(self) - if name == "y" : - return miscc.wxRealPoint_y_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxRealPoint(wxRealPointPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRealPoint,_args,_kwargs) - self.thisown = 1 - - - - -class wxPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxPoint(self) - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxPoint_Set,(self,) + _args, _kwargs) - return val - def asTuple(self, *_args, **_kwargs): - val = apply(miscc.wxPoint_asTuple,(self,) + _args, _kwargs) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxPoint_x_set(self,value) - return - if name == "y" : - miscc.wxPoint_y_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxPoint_x_get(self) - if name == "y" : - return miscc.wxPoint_y_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxPoint(wxPointPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxPoint,_args,_kwargs) - self.thisown = 1 - - - - -class wxRectPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRect(self) - def GetX(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetX,(self,) + _args, _kwargs) - return val - def SetX(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetY,(self,) + _args, _kwargs) - return val - def SetY(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetY,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetWidth,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetWidth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetHeight,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetHeight,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetSize(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetLeft(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetLeft,(self,) + _args, _kwargs) - return val - def GetTop(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetTop,(self,) + _args, _kwargs) - return val - def GetBottom(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetBottom,(self,) + _args, _kwargs) - return val - def GetRight(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetRight,(self,) + _args, _kwargs) - return val - def asTuple(self, *_args, **_kwargs): - val = apply(miscc.wxRect_asTuple,(self,) + _args, _kwargs) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRect_x_set(self,value) - return - if name == "y" : - miscc.wxRect_y_set(self,value) - return - if name == "width" : - miscc.wxRect_width_set(self,value) - return - if name == "height" : - miscc.wxRect_height_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRect_x_get(self) - if name == "y" : - return miscc.wxRect_y_get(self) - if name == "width" : - return miscc.wxRect_width_get(self) - if name == "height" : - return miscc.wxRect_height_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxRect(wxRectPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRect,_args,_kwargs) - self.thisown = 1 - - - - -class wxPyTimerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxPyTimer(self) - def Interval(self, *_args, **_kwargs): - val = apply(miscc.wxPyTimer_Interval,(self,) + _args, _kwargs) - return val - def Start(self, *_args, **_kwargs): - val = apply(miscc.wxPyTimer_Start,(self,) + _args, _kwargs) - return val - def Stop(self, *_args, **_kwargs): - val = apply(miscc.wxPyTimer_Stop,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPyTimer(wxPyTimerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxPyTimer,_args,_kwargs) - self.thisown = 1 - - - - -class wxIndividualLayoutConstraintPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Above(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Above,(self,) + _args, _kwargs) - return val - def Absolute(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Absolute,(self,) + _args, _kwargs) - return val - def AsIs(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_AsIs,(self,) + _args, _kwargs) - return val - def Below(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Below,(self,) + _args, _kwargs) - return val - def Unconstrained(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Unconstrained,(self,) + _args, _kwargs) - return val - def LeftOf(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_LeftOf,(self,) + _args, _kwargs) - return val - def PercentOf(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_PercentOf,(self,) + _args, _kwargs) - return val - def RightOf(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_RightOf,(self,) + _args, _kwargs) - return val - def SameAs(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_SameAs,(self,) + _args, _kwargs) - return val - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Set,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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,value.this) - return - if name == "centreX" : - miscc.wxLayoutConstraints_centreX_set(self,value.this) - return - if name == "centreY" : - miscc.wxLayoutConstraints_centreY_set(self,value.this) - return - if name == "height" : - miscc.wxLayoutConstraints_height_set(self,value.this) - return - if name == "left" : - miscc.wxLayoutConstraints_left_set(self,value.this) - return - if name == "right" : - miscc.wxLayoutConstraints_right_set(self,value.this) - return - if name == "top" : - miscc.wxLayoutConstraints_top_set(self,value.this) - return - if name == "width" : - miscc.wxLayoutConstraints_width_set(self,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "bottom" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_bottom_get(self)) - if name == "centreX" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreX_get(self)) - if name == "centreY" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreY_get(self)) - if name == "height" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_height_get(self)) - if name == "left" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_left_get(self)) - if name == "right" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_right_get(self)) - if name == "top" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_top_get(self)) - if name == "width" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_width_get(self)) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxLayoutConstraints(wxLayoutConstraintsPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxLayoutConstraints,_args,_kwargs) - self.thisown = 1 - - - - -class wxRegionPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRegion(self) - def Clear(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Clear,(self,) + _args, _kwargs) - return val - def Contains(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Contains,(self,) + _args, _kwargs) - return val - def ContainsPoint(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_ContainsPoint,(self,) + _args, _kwargs) - return val - def ContainsRect(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_ContainsRect,(self,) + _args, _kwargs) - return val - def GetBox(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_GetBox,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def Intersect(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Intersect,(self,) + _args, _kwargs) - return val - def Subtract(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Subtract,(self,) + _args, _kwargs) - return val - def Union(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Union,(self,) + _args, _kwargs) - return val - def Xor(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Xor,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRegion(wxRegionPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRegion,_args,_kwargs) - self.thisown = 1 - - - - -class wxRegionIteratorPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRegionIterator(self) - def GetX(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetY,(self,) + _args, _kwargs) - return val - def GetW(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetW,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetWidth,(self,) + _args, _kwargs) - return val - def GetH(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetH,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetHeight,(self,) + _args, _kwargs) - return val - def GetRect(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def HaveRects(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_HaveRects,(self,) + _args, _kwargs) - return val - def Reset(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_Reset,(self,) + _args, _kwargs) - return val - def Next(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_Next,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRegionIterator(wxRegionIteratorPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRegionIterator,_args,_kwargs) - self.thisown = 1 - - - - -class wxAcceleratorEntryPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_Set,(self,) + _args, _kwargs) - return val - def GetFlags(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_GetFlags,(self,) + _args, _kwargs) - return val - def GetKeyCode(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_GetKeyCode,(self,) + _args, _kwargs) - return val - def GetCommand(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_GetCommand,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxAcceleratorEntry(wxAcceleratorEntryPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxAcceleratorEntry,_args,_kwargs) - self.thisown = 1 - - - - -class wxAcceleratorTablePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxAcceleratorTable(wxAcceleratorTablePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxAcceleratorTable,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -wxFileSelector = miscc.wxFileSelector - -wxGetTextFromUser = miscc.wxGetTextFromUser - -wxGetSingleChoice = miscc.wxGetSingleChoice - -wxGetSingleChoiceIndex = miscc.wxGetSingleChoiceIndex - -wxMessageBox = miscc.wxMessageBox - -wxGetNumberFromUser = miscc.wxGetNumberFromUser - -wxColourDisplay = miscc.wxColourDisplay - -wxDisplayDepth = miscc.wxDisplayDepth - -wxSetCursor = miscc.wxSetCursor - -wxNewId = miscc.wxNewId - -wxRegisterId = miscc.wxRegisterId - -NewId = miscc.NewId - -RegisterId = miscc.RegisterId - -wxBeginBusyCursor = miscc.wxBeginBusyCursor - -wxBell = miscc.wxBell - -wxDisplaySize = miscc.wxDisplaySize - -wxEndBusyCursor = miscc.wxEndBusyCursor - -wxExecute = miscc.wxExecute - -wxGetMousePosition = miscc.wxGetMousePosition - -wxIsBusy = miscc.wxIsBusy - -wxNow = miscc.wxNow - -wxSleep = miscc.wxSleep - -wxYield = miscc.wxYield - -wxSafeYield = miscc.wxSafeYield - -wxEnableTopLevelWindows = miscc.wxEnableTopLevelWindows - -wxGetResource = miscc.wxGetResource - -wxResourceAddIdentifier = miscc.wxResourceAddIdentifier - -wxResourceClear = miscc.wxResourceClear - -def wxResourceCreateBitmap(*_args, **_kwargs): - val = apply(miscc.wxResourceCreateBitmap,_args,_kwargs) - if val: val = wxBitmapPtr(val); val.thisown = 1 - return val - -def wxResourceCreateIcon(*_args, **_kwargs): - val = apply(miscc.wxResourceCreateIcon,_args,_kwargs) - if val: val = wxIconPtr(val); val.thisown = 1 - return val - -def wxResourceCreateMenuBar(*_args, **_kwargs): - val = apply(miscc.wxResourceCreateMenuBar,_args,_kwargs) - if val: val = wxMenuBarPtr(val) - return val - -wxResourceGetIdentifier = miscc.wxResourceGetIdentifier - -wxResourceParseData = miscc.wxResourceParseData - -wxResourceParseFile = miscc.wxResourceParseFile - -wxResourceParseString = miscc.wxResourceParseString - -def wxSystemSettings_GetSystemColour(*_args, **_kwargs): - val = apply(miscc.wxSystemSettings_GetSystemColour,_args,_kwargs) - if val: val = wxColourPtr(val); val.thisown = 1 - return val - -def wxSystemSettings_GetSystemFont(*_args, **_kwargs): - val = apply(miscc.wxSystemSettings_GetSystemFont,_args,_kwargs) - if val: val = wxFontPtr(val); val.thisown = 1 - return val - -wxSystemSettings_GetSystemMetric = miscc.wxSystemSettings_GetSystemMetric - - - -#-------------- 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 -wxSYS_WHITE_BRUSH = miscc.wxSYS_WHITE_BRUSH -wxSYS_LTGRAY_BRUSH = miscc.wxSYS_LTGRAY_BRUSH -wxSYS_GRAY_BRUSH = miscc.wxSYS_GRAY_BRUSH -wxSYS_DKGRAY_BRUSH = miscc.wxSYS_DKGRAY_BRUSH -wxSYS_BLACK_BRUSH = miscc.wxSYS_BLACK_BRUSH -wxSYS_NULL_BRUSH = miscc.wxSYS_NULL_BRUSH -wxSYS_HOLLOW_BRUSH = miscc.wxSYS_HOLLOW_BRUSH -wxSYS_WHITE_PEN = miscc.wxSYS_WHITE_PEN -wxSYS_BLACK_PEN = miscc.wxSYS_BLACK_PEN -wxSYS_NULL_PEN = miscc.wxSYS_NULL_PEN -wxSYS_OEM_FIXED_FONT = miscc.wxSYS_OEM_FIXED_FONT -wxSYS_ANSI_FIXED_FONT = miscc.wxSYS_ANSI_FIXED_FONT -wxSYS_ANSI_VAR_FONT = miscc.wxSYS_ANSI_VAR_FONT -wxSYS_SYSTEM_FONT = miscc.wxSYS_SYSTEM_FONT -wxSYS_DEVICE_DEFAULT_FONT = miscc.wxSYS_DEVICE_DEFAULT_FONT -wxSYS_DEFAULT_PALETTE = miscc.wxSYS_DEFAULT_PALETTE -wxSYS_SYSTEM_FIXED_FONT = miscc.wxSYS_SYSTEM_FIXED_FONT -wxSYS_DEFAULT_GUI_FONT = miscc.wxSYS_DEFAULT_GUI_FONT -wxSYS_COLOUR_SCROLLBAR = miscc.wxSYS_COLOUR_SCROLLBAR -wxSYS_COLOUR_BACKGROUND = miscc.wxSYS_COLOUR_BACKGROUND -wxSYS_COLOUR_ACTIVECAPTION = miscc.wxSYS_COLOUR_ACTIVECAPTION -wxSYS_COLOUR_INACTIVECAPTION = miscc.wxSYS_COLOUR_INACTIVECAPTION -wxSYS_COLOUR_MENU = miscc.wxSYS_COLOUR_MENU -wxSYS_COLOUR_WINDOW = miscc.wxSYS_COLOUR_WINDOW -wxSYS_COLOUR_WINDOWFRAME = miscc.wxSYS_COLOUR_WINDOWFRAME -wxSYS_COLOUR_MENUTEXT = miscc.wxSYS_COLOUR_MENUTEXT -wxSYS_COLOUR_WINDOWTEXT = miscc.wxSYS_COLOUR_WINDOWTEXT -wxSYS_COLOUR_CAPTIONTEXT = miscc.wxSYS_COLOUR_CAPTIONTEXT -wxSYS_COLOUR_ACTIVEBORDER = miscc.wxSYS_COLOUR_ACTIVEBORDER -wxSYS_COLOUR_INACTIVEBORDER = miscc.wxSYS_COLOUR_INACTIVEBORDER -wxSYS_COLOUR_APPWORKSPACE = miscc.wxSYS_COLOUR_APPWORKSPACE -wxSYS_COLOUR_HIGHLIGHT = miscc.wxSYS_COLOUR_HIGHLIGHT -wxSYS_COLOUR_HIGHLIGHTTEXT = miscc.wxSYS_COLOUR_HIGHLIGHTTEXT -wxSYS_COLOUR_BTNFACE = miscc.wxSYS_COLOUR_BTNFACE -wxSYS_COLOUR_BTNSHADOW = miscc.wxSYS_COLOUR_BTNSHADOW -wxSYS_COLOUR_GRAYTEXT = miscc.wxSYS_COLOUR_GRAYTEXT -wxSYS_COLOUR_BTNTEXT = miscc.wxSYS_COLOUR_BTNTEXT -wxSYS_COLOUR_INACTIVECAPTIONTEXT = miscc.wxSYS_COLOUR_INACTIVECAPTIONTEXT -wxSYS_COLOUR_BTNHIGHLIGHT = miscc.wxSYS_COLOUR_BTNHIGHLIGHT -wxSYS_COLOUR_3DDKSHADOW = miscc.wxSYS_COLOUR_3DDKSHADOW -wxSYS_COLOUR_3DLIGHT = miscc.wxSYS_COLOUR_3DLIGHT -wxSYS_COLOUR_INFOTEXT = miscc.wxSYS_COLOUR_INFOTEXT -wxSYS_COLOUR_INFOBK = miscc.wxSYS_COLOUR_INFOBK -wxSYS_COLOUR_DESKTOP = miscc.wxSYS_COLOUR_DESKTOP -wxSYS_COLOUR_3DFACE = miscc.wxSYS_COLOUR_3DFACE -wxSYS_COLOUR_3DSHADOW = miscc.wxSYS_COLOUR_3DSHADOW -wxSYS_COLOUR_3DHIGHLIGHT = miscc.wxSYS_COLOUR_3DHIGHLIGHT -wxSYS_COLOUR_3DHILIGHT = miscc.wxSYS_COLOUR_3DHILIGHT -wxSYS_COLOUR_BTNHILIGHT = miscc.wxSYS_COLOUR_BTNHILIGHT -wxSYS_MOUSE_BUTTONS = miscc.wxSYS_MOUSE_BUTTONS -wxSYS_BORDER_X = miscc.wxSYS_BORDER_X -wxSYS_BORDER_Y = miscc.wxSYS_BORDER_Y -wxSYS_CURSOR_X = miscc.wxSYS_CURSOR_X -wxSYS_CURSOR_Y = miscc.wxSYS_CURSOR_Y -wxSYS_DCLICK_X = miscc.wxSYS_DCLICK_X -wxSYS_DCLICK_Y = miscc.wxSYS_DCLICK_Y -wxSYS_DRAG_X = miscc.wxSYS_DRAG_X -wxSYS_DRAG_Y = miscc.wxSYS_DRAG_Y -wxSYS_EDGE_X = miscc.wxSYS_EDGE_X -wxSYS_EDGE_Y = miscc.wxSYS_EDGE_Y -wxSYS_HSCROLL_ARROW_X = miscc.wxSYS_HSCROLL_ARROW_X -wxSYS_HSCROLL_ARROW_Y = miscc.wxSYS_HSCROLL_ARROW_Y -wxSYS_HTHUMB_X = miscc.wxSYS_HTHUMB_X -wxSYS_ICON_X = miscc.wxSYS_ICON_X -wxSYS_ICON_Y = miscc.wxSYS_ICON_Y -wxSYS_ICONSPACING_X = miscc.wxSYS_ICONSPACING_X -wxSYS_ICONSPACING_Y = miscc.wxSYS_ICONSPACING_Y -wxSYS_WINDOWMIN_X = miscc.wxSYS_WINDOWMIN_X -wxSYS_WINDOWMIN_Y = miscc.wxSYS_WINDOWMIN_Y -wxSYS_SCREEN_X = miscc.wxSYS_SCREEN_X -wxSYS_SCREEN_Y = miscc.wxSYS_SCREEN_Y -wxSYS_FRAMESIZE_X = miscc.wxSYS_FRAMESIZE_X -wxSYS_FRAMESIZE_Y = miscc.wxSYS_FRAMESIZE_Y -wxSYS_SMALLICON_X = miscc.wxSYS_SMALLICON_X -wxSYS_SMALLICON_Y = miscc.wxSYS_SMALLICON_Y -wxSYS_HSCROLL_Y = miscc.wxSYS_HSCROLL_Y -wxSYS_VSCROLL_X = miscc.wxSYS_VSCROLL_X -wxSYS_VSCROLL_ARROW_X = miscc.wxSYS_VSCROLL_ARROW_X -wxSYS_VSCROLL_ARROW_Y = miscc.wxSYS_VSCROLL_ARROW_Y -wxSYS_VTHUMB_Y = miscc.wxSYS_VTHUMB_Y -wxSYS_CAPTION_Y = miscc.wxSYS_CAPTION_Y -wxSYS_MENU_Y = miscc.wxSYS_MENU_Y -wxSYS_NETWORK_PRESENT = miscc.wxSYS_NETWORK_PRESENT -wxSYS_PENWINDOWS_PRESENT = miscc.wxSYS_PENWINDOWS_PRESENT -wxSYS_SHOW_SOUNDS = miscc.wxSYS_SHOW_SOUNDS -wxSYS_SWAP_BUTTONS = miscc.wxSYS_SWAP_BUTTONS diff --git a/utils/wxPython/src/gtk/misc2.cpp b/utils/wxPython/src/gtk/misc2.cpp deleted file mode 100644 index 4d568b807f..0000000000 --- a/utils/wxPython/src/gtk/misc2.cpp +++ /dev/null @@ -1,568 +0,0 @@ -/* - * FILE : gtk/misc2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif -#define SWIG_init initmisc2c - -#define SWIG_name "misc2c" - -#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"; - - void wxToolTip_Enable(bool flag) { - wxToolTip::Enable(flag); - } - - void wxToolTip_SetDelay(long milliseconds) { - wxToolTip::SetDelay(milliseconds); - } -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_wxFindWindowByLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = (wxWindow *) NULL; - PyObject * _obj0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxFindWindowByLabel",&_obj0,&_argo1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxFindWindowByName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = (wxWindow *) NULL; - PyObject * _obj0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxFindWindowByName",&_obj0,&_argo1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} - 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 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolTip_SetTip",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolTip_GetTip",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolTip_GetWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyMethodDef misc2cMethods[] = { - { "wxToolTip_GetWindow", _wrap_wxToolTip_GetWindow, METH_VARARGS }, - { "wxToolTip_GetTip", _wrap_wxToolTip_GetTip, METH_VARARGS }, - { "wxToolTip_SetTip", _wrap_wxToolTip_SetTip, METH_VARARGS }, - { "new_wxToolTip", _wrap_new_wxToolTip, METH_VARARGS }, - { "wxToolTip_SetDelay", _wrap_wxToolTip_SetDelay, METH_VARARGS }, - { "wxToolTip_Enable", _wrap_wxToolTip_Enable, METH_VARARGS }, - { "wxFindWindowByName", _wrap_wxFindWindowByName, METH_VARARGS }, - { "wxFindWindowByLabel", _wrap_wxFindWindowByLabel, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxToolTip","_class_wxToolTip",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxDC",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxToolTip","_wxToolTip",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void) initmisc2c() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("misc2c", misc2cMethods); - d = PyModule_GetDict(m); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/misc2.py b/utils/wxPython/src/gtk/misc2.py deleted file mode 100644 index 7ffd3c947f..0000000000 --- a/utils/wxPython/src/gtk/misc2.py +++ /dev/null @@ -1,54 +0,0 @@ -# This file was created automatically by SWIG. -import misc2c - -from windows import * - -from misc import * - -from gdi import * -class wxToolTipPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetTip(self, *_args, **_kwargs): - val = apply(misc2c.wxToolTip_SetTip,(self,) + _args, _kwargs) - return val - def GetTip(self, *_args, **_kwargs): - val = apply(misc2c.wxToolTip_GetTip,(self,) + _args, _kwargs) - return val - def GetWindow(self, *_args, **_kwargs): - val = apply(misc2c.wxToolTip_GetWindow,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxToolTip(wxToolTipPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(misc2c.new_wxToolTip,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxFindWindowByLabel(*_args, **_kwargs): - val = apply(misc2c.wxFindWindowByLabel,_args,_kwargs) - if val: val = wxWindowPtr(val) - return val - -def wxFindWindowByName(*_args, **_kwargs): - val = apply(misc2c.wxFindWindowByName,_args,_kwargs) - if val: val = wxWindowPtr(val) - return val - -wxToolTip_Enable = misc2c.wxToolTip_Enable - -wxToolTip_SetDelay = misc2c.wxToolTip_SetDelay - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/printfw.cpp b/utils/wxPython/src/gtk/printfw.cpp deleted file mode 100644 index 9e96960a1a..0000000000 --- a/utils/wxPython/src/gtk/printfw.cpp +++ /dev/null @@ -1,4574 +0,0 @@ -/* - * FILE : gtk/printfw.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif -#define SWIG_init initprintfwc - -#define SWIG_name "printfwc" - -#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"; - -class wxPyPrintout : public wxPrintout { -public: - wxPyPrintout(const wxString& title) : wxPrintout(title) {} - - PYCALLBACK_BOOL_INTINT(wxPrintout, OnBeginDocument); - PYCALLBACK__(wxPrintout, OnEndDocument); - PYCALLBACK__(wxPrintout, OnBeginPrinting); - PYCALLBACK__(wxPrintout, OnEndPrinting); - PYCALLBACK__(wxPrintout, OnPreparePrinting); - PYCALLBACK_BOOL_INT_pure(wxPrintout, OnPrintPage); - PYCALLBACK_BOOL_INT(wxPrintout, HasPage); - - - // Since this one would be tough and ugly to do with the Macros... - void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { - bool hadErr = false; - - if (m_myInst.findCallback("GetPageInfo")) { - PyObject* result = m_myInst.callCallbackObj(Py_BuildValue("()")); - if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) { - PyObject* val; - - val = PyTuple_GetItem(result, 0); - if (PyInt_Check(val)) *minPage = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 1); - if (PyInt_Check(val)) *maxPage = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 2); - if (PyInt_Check(val)) *pageFrom = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 3); - if (PyInt_Check(val)) *pageTo = PyInt_AsLong(val); - else hadErr = true; - } - else - hadErr = true; - - if (hadErr) { - PyErr_SetString(PyExc_TypeError, "GetPageInfo should return a tuple of 4 integers."); - PyErr_Print(); - } - Py_DECREF(result); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif - } - else - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); - } - void base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); - } - - PYPRIVATE; -}; -#ifdef __cplusplus -extern "C" { -#endif -#define new_wxPrintData() (new wxPrintData()) -static PyObject *_wrap_new_wxPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPrintData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintData *)new_wxPrintData(); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPrintData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPrintData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPrintData. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPrintData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_GetNoCopies(_swigobj) (_swigobj->GetNoCopies()) -static PyObject *_wrap_wxPrintData_GetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetNoCopies",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetNoCopies. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintData_GetNoCopies(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetCollate(_swigobj) (_swigobj->GetCollate()) -static PyObject *_wrap_wxPrintData_GetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetCollate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetCollate. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintData_GetCollate(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxPrintData_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetOrientation. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintData_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetPrinterName(_swigobj) (_swigobj->GetPrinterName()) -static PyObject *_wrap_wxPrintData_GetPrinterName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetPrinterName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetPrinterName. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxString & _result_ref = wxPrintData_GetPrinterName(_arg0); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxPrintData_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxPrintData_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetColour. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintData_GetColour(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetDuplex(_swigobj) (_swigobj->GetDuplex()) -static PyObject *_wrap_wxPrintData_GetDuplex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDuplexMode _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetDuplex",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetDuplex. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDuplexMode )wxPrintData_GetDuplex(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetPaperId(_swigobj) (_swigobj->GetPaperId()) -static PyObject *_wrap_wxPrintData_GetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPaperSize _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetPaperId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetPaperId. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPaperSize )wxPrintData_GetPaperId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetPaperSize(_swigobj) (_swigobj->GetPaperSize()) -static PyObject *_wrap_wxPrintData_GetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetPaperSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetPaperSize. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxSize & _result_ref = wxPrintData_GetPaperSize(_arg0); - _result = (wxSize *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintData_GetQuality(_swigobj) (_swigobj->GetQuality()) -static PyObject *_wrap_wxPrintData_GetQuality(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintQuality _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetQuality",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetQuality. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintQuality )wxPrintData_GetQuality(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_SetNoCopies(_swigobj,_swigarg0) (_swigobj->SetNoCopies(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetNoCopies",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetNoCopies. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetNoCopies(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetCollate(_swigobj,_swigarg0) (_swigobj->SetCollate(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - bool _arg1; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetCollate",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetCollate. Expected _wxPrintData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetCollate(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetOrientation(_swigobj,_swigarg0) (_swigobj->SetOrientation(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetOrientation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetOrientation. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetPrinterName(_swigobj,_swigarg0) (_swigobj->SetPrinterName(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetPrinterName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxString * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintData_SetPrinterName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetPrinterName. Expected _wxPrintData_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; - wxPrintData_SetPrinterName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPrintData_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - bool _arg1; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetColour",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetColour. Expected _wxPrintData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetColour(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetDuplex(_swigobj,_swigarg0) (_swigobj->SetDuplex(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetDuplex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxDuplexMode _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetDuplex",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetDuplex. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetDuplex(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetPaperId(_swigobj,_swigarg0) (_swigobj->SetPaperId(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxPaperSize _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetPaperId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetPaperId. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetPaperId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetPaperSize(_swigobj,_swigarg0) (_swigobj->SetPaperSize(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxSize * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintData_SetPaperSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetPaperSize. Expected _wxPrintData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintData_SetPaperSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetPaperSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetQuality(_swigobj,_swigarg0) (_swigobj->SetQuality(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetQuality(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxPrintQuality _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetQuality",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetQuality. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetQuality(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPageSetupDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPageSetupDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPageSetupDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnableHelp",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnableMargins",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnableOrientation",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnablePaper",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnablePrinter",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetDefaultMinMargins",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnableMargins",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnableOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnablePaper",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnablePrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnableHelp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetDefaultInfo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMarginTopLeft",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMarginBottomRight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMinMarginTopLeft",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMinMarginBottomRight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetPaperId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetPaperSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -static wxPrintData * wxPageSetupDialogData_GetPrintData(wxPageSetupDialogData *self) { - return new wxPrintData(self->GetPrintData()); // force a copy - } -static PyObject *_wrap_wxPageSetupDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPageSetupDialogData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetPrintData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - _result = (wxPrintData *)wxPageSetupDialogData_GetPrintData(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_SetDefaultInfo",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_SetDefaultMinMargins",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMarginTopLeft",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMarginBottomRight",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMinMarginTopLeft",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMinMarginBottomRight",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetPaperId",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperId. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetPaperSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperSize. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetPrintData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPrintData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPageSetupDialogData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxPageSetupDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPageSetupDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPageSetupDialog_GetPageSetupData(_swigobj) (_swigobj->GetPageSetupData()) -static PyObject *_wrap_wxPageSetupDialog_GetPageSetupData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _result; - wxPageSetupDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialog_GetPageSetupData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPageSetupDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPageSetupDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPageSetupDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPrintDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnableHelp",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnablePageNumbers",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnablePrintToFile",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnableSelection",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetAllPages",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetCollate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetFromPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetMaxPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetMinPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetNoCopies",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -static wxPrintData * wxPrintDialogData_GetPrintData(wxPrintDialogData *self) { - return new wxPrintData(self->GetPrintData()); // force a copy - } -static PyObject *_wrap_wxPrintDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPrintDialogData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetPrintData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - _result = (wxPrintData *)wxPrintDialogData_GetPrintData(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialogData_GetPrintToFile(_swigobj) (_swigobj->GetPrintToFile()) -static PyObject *_wrap_wxPrintDialogData_GetPrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetPrintToFile",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetToPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetCollate",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetFromPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetMaxPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetMinPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetNoCopies",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintDialogData_SetPrintData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetPrintData. Expected _wxPrintDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetPrintToFile",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetSetupDialog",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetToPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPrintDialogData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxPrintDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrintDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialog_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrintDialog_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrintDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialog_GetPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialog_GetPrintDC(_swigobj) (_swigobj->GetPrintDC()) -static PyObject *_wrap_wxPrintDialog_GetPrintDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPrintDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialog_GetPrintDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPrintDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define new_wxPrintout(_swigarg0) (new wxPyPrintout(_swigarg0)) -static PyObject *_wrap_new_wxPrintout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _result; - char * _arg0 = (char *) "Printout"; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|s:new_wxPrintout",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyPrintout *)new_wxPrintout(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyPrintout_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintout__setSelf(_swigobj,_swigarg0) (_swigobj->_setSelf(_swigarg0)) -static PyObject *_wrap_wxPrintout__setSelf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintout__setSelf",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout__setSelf. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout__setSelf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxPyPrintout_Destroy(wxPyPrintout *self) { - delete self; - } -static PyObject *_wrap_wxPrintout_Destroy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_Destroy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_Destroy. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyPrintout_Destroy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_GetDC(_swigobj) (_swigobj->GetDC()) -static PyObject *_wrap_wxPrintout_GetDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetDC. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxPrintout_GetDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintout_GetPageSizeMM(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPageSizeMM(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPageSizeMM(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPageSizeMM",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPageSizeMM. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPageSizeMM(_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 wxPrintout_GetPageSizePixels(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPageSizePixels(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPageSizePixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPageSizePixels",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPageSizePixels. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPageSizePixels(_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 wxPrintout_GetPPIPrinter(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPPIPrinter(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPPIPrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPPIPrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPPIPrinter. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPPIPrinter(_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 wxPrintout_GetPPIScreen(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPPIScreen(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPPIScreen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPPIScreen",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPPIScreen. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPPIScreen(_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 wxPrintout_IsPreview(_swigobj) (_swigobj->IsPreview()) -static PyObject *_wrap_wxPrintout_IsPreview(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_IsPreview",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_IsPreview. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintout_IsPreview(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintout_base_OnBeginDocument(_swigobj,_swigarg0,_swigarg1) (_swigobj->base_OnBeginDocument(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_base_OnBeginDocument(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyPrintout * _arg0; - int _arg1; - int _arg2; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxPrintout_base_OnBeginDocument",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnBeginDocument. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintout_base_OnBeginDocument(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintout_base_OnEndDocument(_swigobj) (_swigobj->base_OnEndDocument()) -static PyObject *_wrap_wxPrintout_base_OnEndDocument(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnEndDocument",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnEndDocument. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnEndDocument(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_OnBeginPrinting(_swigobj) (_swigobj->base_OnBeginPrinting()) -static PyObject *_wrap_wxPrintout_base_OnBeginPrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnBeginPrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnBeginPrinting. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnBeginPrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_OnEndPrinting(_swigobj) (_swigobj->base_OnEndPrinting()) -static PyObject *_wrap_wxPrintout_base_OnEndPrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnEndPrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnEndPrinting. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnEndPrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_OnPreparePrinting(_swigobj) (_swigobj->base_OnPreparePrinting()) -static PyObject *_wrap_wxPrintout_base_OnPreparePrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnPreparePrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnPreparePrinting. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnPreparePrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_GetPageInfo(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->base_GetPageInfo(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxPrintout_base_GetPageInfo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - int * _arg3; - int temp1; - int * _arg4; - int temp2; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} -{ - _arg3 = &temp1; -} -{ - _arg4 = &temp2; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_GetPageInfo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_GetPageInfo. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_GetPageInfo(_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 wxPrintout_base_HasPage(_swigobj,_swigarg0) (_swigobj->base_HasPage(_swigarg0)) -static PyObject *_wrap_wxPrintout_base_HasPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyPrintout * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintout_base_HasPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_HasPage. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintout_base_HasPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPrinter(_swigarg0) (new wxPrinter(_swigarg0)) -static PyObject *_wrap_new_wxPrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _result; - wxPrintDialogData * _arg0 = (wxPrintDialogData *) NULL; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|O:new_wxPrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrinter. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrinter *)new_wxPrinter(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrinter_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPrinter(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPrinter. Expected _wxPrinter_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPrinter(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrinter_CreateAbortWindow(_swigobj,_swigarg0,_swigarg1) (_swigobj->CreateAbortWindow(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrinter_CreateAbortWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _arg0; - wxWindow * _arg1; - wxPyPrintout * _arg2; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxPrinter_CreateAbortWindow",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_CreateAbortWindow. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_CreateAbortWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPrinter_CreateAbortWindow. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrinter_CreateAbortWindow(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrinter_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrinter_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrinter * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrinter_GetPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_GetPrintDialogData. Expected _wxPrinter_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData & _result_ref = wxPrinter_GetPrintDialogData(_arg0); - _result = (wxPrintDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrinter_Print(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Print(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxPrinter_Print(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrinter * _arg0; - wxWindow * _arg1; - wxPyPrintout * _arg2; - int _arg3 = (int ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|i:wxPrinter_Print",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_Print. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_Print. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPrinter_Print. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrinter_Print(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrinter_PrintDialog(_swigobj,_swigarg0) (_swigobj->PrintDialog(_swigarg0)) -static PyObject *_wrap_wxPrinter_PrintDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPrinter * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrinter_PrintDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_PrintDialog. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_PrintDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxPrinter_PrintDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrinter_ReportError(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->ReportError(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxPrinter_ReportError(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _arg0; - wxWindow * _arg1; - wxPyPrintout * _arg2; - char * _arg3; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOOs:wxPrinter_ReportError",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_ReportError. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_ReportError. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPrinter_ReportError. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrinter_ReportError(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrinter_Setup(_swigobj,_swigarg0) (_swigobj->Setup(_swigarg0)) -static PyObject *_wrap_wxPrinter_Setup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrinter * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrinter_Setup",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_Setup. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_Setup. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrinter_Setup(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPrintPreview(_swigarg0,_swigarg1,_swigarg2) (new wxPrintPreview(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxPrintPreview(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _result; - wxPyPrintout * _arg0; - wxPyPrintout * _arg1; - wxPrintData * _arg2 = (wxPrintData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:new_wxPrintPreview",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrintPreview. Expected _wxPyPrintout_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPrintPreview. Expected _wxPyPrintout_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPrintPreview. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintPreview *)new_wxPrintPreview(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintPreview_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetCanvas(_swigobj) (_swigobj->GetCanvas()) -static PyObject *_wrap_wxPrintPreview_GetCanvas(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetCanvas",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetCanvas. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxPrintPreview_GetCanvas(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetCurrentPage(_swigobj) (_swigobj->GetCurrentPage()) -static PyObject *_wrap_wxPrintPreview_GetCurrentPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetCurrentPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetCurrentPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetCurrentPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_GetFrame(_swigobj) (_swigobj->GetFrame()) -static PyObject *_wrap_wxPrintPreview_GetFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetFrame",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetFrame. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFrame *)wxPrintPreview_GetFrame(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetMaxPage(_swigobj) (_swigobj->GetMaxPage()) -static PyObject *_wrap_wxPrintPreview_GetMaxPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetMaxPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetMaxPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetMaxPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_GetMinPage(_swigobj) (_swigobj->GetMinPage()) -static PyObject *_wrap_wxPrintPreview_GetMinPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetMinPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetMinPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetMinPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrintPreview_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetPrintDialogData. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData & _result_ref = wxPrintPreview_GetPrintDialogData(_arg0); - _result = (wxPrintDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetPrintout(_swigobj) (_swigobj->GetPrintout()) -static PyObject *_wrap_wxPrintPreview_GetPrintout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetPrintout",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetPrintout. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyPrintout *)wxPrintPreview_GetPrintout(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyPrintout_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetPrintoutForPrinting(_swigobj) (_swigobj->GetPrintoutForPrinting()) -static PyObject *_wrap_wxPrintPreview_GetPrintoutForPrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetPrintoutForPrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetPrintoutForPrinting. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyPrintout *)wxPrintPreview_GetPrintoutForPrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyPrintout_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetZoom(_swigobj) (_swigobj->GetZoom()) -static PyObject *_wrap_wxPrintPreview_GetZoom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetZoom",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetZoom. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetZoom(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxPrintPreview_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_Ok. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintPreview_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_Print(_swigobj,_swigarg0) (_swigobj->Print(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_Print(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintPreview * _arg0; - bool _arg1; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintPreview_Print",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_Print. Expected _wxPrintPreview_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintPreview_Print(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_SetCanvas(_swigobj,_swigarg0) (_swigobj->SetCanvas(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetCanvas(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintPreview_SetCanvas",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetCanvas. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintPreview_SetCanvas. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetCanvas(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetCurrentPage(_swigobj,_swigarg0) (_swigobj->SetCurrentPage(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetCurrentPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintPreview_SetCurrentPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetCurrentPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetCurrentPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetFrame(_swigobj,_swigarg0) (_swigobj->SetFrame(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - wxFrame * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintPreview_SetFrame",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetFrame. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintPreview_SetFrame. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetFrame(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetPrintout(_swigobj,_swigarg0) (_swigobj->SetPrintout(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetPrintout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - wxPyPrintout * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintPreview_SetPrintout",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetPrintout. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintPreview_SetPrintout. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetPrintout(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetZoom(_swigobj,_swigarg0) (_swigobj->SetZoom(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetZoom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintPreview_SetZoom",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetZoom. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetZoom(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxPreviewFrameTowxFrame(void *ptr) { - wxPreviewFrame *src; - wxFrame *dest; - src = (wxPreviewFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxPreviewFrameTowxWindow(void *ptr) { - wxPreviewFrame *src; - wxWindow *dest; - src = (wxPreviewFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPreviewFrameTowxEvtHandler(void *ptr) { - wxPreviewFrame *src; - wxEvtHandler *dest; - src = (wxPreviewFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPreviewFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxPreviewFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxPreviewFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPreviewFrame * _result; - wxPrintPreview * _arg0; - wxFrame * _arg1; - wxString * _arg2; - wxPoint * _arg3 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|OOls:new_wxPreviewFrame",&_argo0,&_argo1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPreviewFrame. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPreviewFrame. Expected _wxFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxPreviewFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxPreviewFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPreviewFrame *)new_wxPreviewFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPreviewFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxPreviewFrame_Initialize(_swigobj) (_swigobj->Initialize()) -static PyObject *_wrap_wxPreviewFrame_Initialize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPreviewFrame * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPreviewFrame_Initialize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPreviewFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPreviewFrame_Initialize. Expected _wxPreviewFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPreviewFrame_Initialize(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef printfwcMethods[] = { - { "wxPreviewFrame_Initialize", _wrap_wxPreviewFrame_Initialize, METH_VARARGS }, - { "new_wxPreviewFrame", _wrap_new_wxPreviewFrame, METH_VARARGS }, - { "wxPrintPreview_SetZoom", _wrap_wxPrintPreview_SetZoom, METH_VARARGS }, - { "wxPrintPreview_SetPrintout", _wrap_wxPrintPreview_SetPrintout, METH_VARARGS }, - { "wxPrintPreview_SetFrame", _wrap_wxPrintPreview_SetFrame, METH_VARARGS }, - { "wxPrintPreview_SetCurrentPage", _wrap_wxPrintPreview_SetCurrentPage, METH_VARARGS }, - { "wxPrintPreview_SetCanvas", _wrap_wxPrintPreview_SetCanvas, METH_VARARGS }, - { "wxPrintPreview_Print", _wrap_wxPrintPreview_Print, METH_VARARGS }, - { "wxPrintPreview_Ok", _wrap_wxPrintPreview_Ok, METH_VARARGS }, - { "wxPrintPreview_GetZoom", _wrap_wxPrintPreview_GetZoom, METH_VARARGS }, - { "wxPrintPreview_GetPrintoutForPrinting", _wrap_wxPrintPreview_GetPrintoutForPrinting, METH_VARARGS }, - { "wxPrintPreview_GetPrintout", _wrap_wxPrintPreview_GetPrintout, METH_VARARGS }, - { "wxPrintPreview_GetPrintDialogData", _wrap_wxPrintPreview_GetPrintDialogData, METH_VARARGS }, - { "wxPrintPreview_GetMinPage", _wrap_wxPrintPreview_GetMinPage, METH_VARARGS }, - { "wxPrintPreview_GetMaxPage", _wrap_wxPrintPreview_GetMaxPage, METH_VARARGS }, - { "wxPrintPreview_GetFrame", _wrap_wxPrintPreview_GetFrame, METH_VARARGS }, - { "wxPrintPreview_GetCurrentPage", _wrap_wxPrintPreview_GetCurrentPage, METH_VARARGS }, - { "wxPrintPreview_GetCanvas", _wrap_wxPrintPreview_GetCanvas, METH_VARARGS }, - { "new_wxPrintPreview", _wrap_new_wxPrintPreview, METH_VARARGS }, - { "wxPrinter_Setup", _wrap_wxPrinter_Setup, METH_VARARGS }, - { "wxPrinter_ReportError", _wrap_wxPrinter_ReportError, METH_VARARGS }, - { "wxPrinter_PrintDialog", _wrap_wxPrinter_PrintDialog, METH_VARARGS }, - { "wxPrinter_Print", _wrap_wxPrinter_Print, METH_VARARGS }, - { "wxPrinter_GetPrintDialogData", _wrap_wxPrinter_GetPrintDialogData, METH_VARARGS }, - { "wxPrinter_CreateAbortWindow", _wrap_wxPrinter_CreateAbortWindow, METH_VARARGS }, - { "delete_wxPrinter", _wrap_delete_wxPrinter, METH_VARARGS }, - { "new_wxPrinter", _wrap_new_wxPrinter, METH_VARARGS }, - { "wxPrintout_base_HasPage", _wrap_wxPrintout_base_HasPage, METH_VARARGS }, - { "wxPrintout_base_GetPageInfo", _wrap_wxPrintout_base_GetPageInfo, METH_VARARGS }, - { "wxPrintout_base_OnPreparePrinting", _wrap_wxPrintout_base_OnPreparePrinting, METH_VARARGS }, - { "wxPrintout_base_OnEndPrinting", _wrap_wxPrintout_base_OnEndPrinting, METH_VARARGS }, - { "wxPrintout_base_OnBeginPrinting", _wrap_wxPrintout_base_OnBeginPrinting, METH_VARARGS }, - { "wxPrintout_base_OnEndDocument", _wrap_wxPrintout_base_OnEndDocument, METH_VARARGS }, - { "wxPrintout_base_OnBeginDocument", _wrap_wxPrintout_base_OnBeginDocument, METH_VARARGS }, - { "wxPrintout_IsPreview", _wrap_wxPrintout_IsPreview, METH_VARARGS }, - { "wxPrintout_GetPPIScreen", _wrap_wxPrintout_GetPPIScreen, METH_VARARGS }, - { "wxPrintout_GetPPIPrinter", _wrap_wxPrintout_GetPPIPrinter, METH_VARARGS }, - { "wxPrintout_GetPageSizePixels", _wrap_wxPrintout_GetPageSizePixels, METH_VARARGS }, - { "wxPrintout_GetPageSizeMM", _wrap_wxPrintout_GetPageSizeMM, METH_VARARGS }, - { "wxPrintout_GetDC", _wrap_wxPrintout_GetDC, METH_VARARGS }, - { "wxPrintout_Destroy", _wrap_wxPrintout_Destroy, METH_VARARGS }, - { "wxPrintout__setSelf", _wrap_wxPrintout__setSelf, METH_VARARGS }, - { "new_wxPrintout", _wrap_new_wxPrintout, METH_VARARGS }, - { "wxPrintDialog_ShowModal", _wrap_wxPrintDialog_ShowModal, METH_VARARGS }, - { "wxPrintDialog_GetPrintDC", _wrap_wxPrintDialog_GetPrintDC, METH_VARARGS }, - { "wxPrintDialog_GetPrintDialogData", _wrap_wxPrintDialog_GetPrintDialogData, METH_VARARGS }, - { "new_wxPrintDialog", _wrap_new_wxPrintDialog, METH_VARARGS }, - { "wxPrintDialogData_SetToPage", _wrap_wxPrintDialogData_SetToPage, METH_VARARGS }, - { "wxPrintDialogData_SetSetupDialog", _wrap_wxPrintDialogData_SetSetupDialog, METH_VARARGS }, - { "wxPrintDialogData_SetPrintToFile", _wrap_wxPrintDialogData_SetPrintToFile, METH_VARARGS }, - { "wxPrintDialogData_SetPrintData", _wrap_wxPrintDialogData_SetPrintData, METH_VARARGS }, - { "wxPrintDialogData_SetNoCopies", _wrap_wxPrintDialogData_SetNoCopies, METH_VARARGS }, - { "wxPrintDialogData_SetMinPage", _wrap_wxPrintDialogData_SetMinPage, METH_VARARGS }, - { "wxPrintDialogData_SetMaxPage", _wrap_wxPrintDialogData_SetMaxPage, METH_VARARGS }, - { "wxPrintDialogData_SetFromPage", _wrap_wxPrintDialogData_SetFromPage, METH_VARARGS }, - { "wxPrintDialogData_SetCollate", _wrap_wxPrintDialogData_SetCollate, METH_VARARGS }, - { "wxPrintDialogData_GetToPage", _wrap_wxPrintDialogData_GetToPage, METH_VARARGS }, - { "wxPrintDialogData_GetPrintToFile", _wrap_wxPrintDialogData_GetPrintToFile, METH_VARARGS }, - { "wxPrintDialogData_GetPrintData", _wrap_wxPrintDialogData_GetPrintData, METH_VARARGS }, - { "wxPrintDialogData_GetNoCopies", _wrap_wxPrintDialogData_GetNoCopies, METH_VARARGS }, - { "wxPrintDialogData_GetMinPage", _wrap_wxPrintDialogData_GetMinPage, METH_VARARGS }, - { "wxPrintDialogData_GetMaxPage", _wrap_wxPrintDialogData_GetMaxPage, METH_VARARGS }, - { "wxPrintDialogData_GetFromPage", _wrap_wxPrintDialogData_GetFromPage, METH_VARARGS }, - { "wxPrintDialogData_GetCollate", _wrap_wxPrintDialogData_GetCollate, METH_VARARGS }, - { "wxPrintDialogData_GetAllPages", _wrap_wxPrintDialogData_GetAllPages, METH_VARARGS }, - { "wxPrintDialogData_EnableSelection", _wrap_wxPrintDialogData_EnableSelection, METH_VARARGS }, - { "wxPrintDialogData_EnablePrintToFile", _wrap_wxPrintDialogData_EnablePrintToFile, METH_VARARGS }, - { "wxPrintDialogData_EnablePageNumbers", _wrap_wxPrintDialogData_EnablePageNumbers, METH_VARARGS }, - { "wxPrintDialogData_EnableHelp", _wrap_wxPrintDialogData_EnableHelp, METH_VARARGS }, - { "delete_wxPrintDialogData", _wrap_delete_wxPrintDialogData, METH_VARARGS }, - { "new_wxPrintDialogData", _wrap_new_wxPrintDialogData, METH_VARARGS }, - { "wxPageSetupDialog_ShowModal", _wrap_wxPageSetupDialog_ShowModal, METH_VARARGS }, - { "wxPageSetupDialog_GetPageSetupData", _wrap_wxPageSetupDialog_GetPageSetupData, METH_VARARGS }, - { "new_wxPageSetupDialog", _wrap_new_wxPageSetupDialog, METH_VARARGS }, - { "wxPageSetupDialogData_SetPrintData", _wrap_wxPageSetupDialogData_SetPrintData, METH_VARARGS }, - { "wxPageSetupDialogData_SetPaperSize", _wrap_wxPageSetupDialogData_SetPaperSize, METH_VARARGS }, - { "wxPageSetupDialogData_SetPaperId", _wrap_wxPageSetupDialogData_SetPaperId, METH_VARARGS }, - { "wxPageSetupDialogData_SetMinMarginBottomRight", _wrap_wxPageSetupDialogData_SetMinMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_SetMinMarginTopLeft", _wrap_wxPageSetupDialogData_SetMinMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_SetMarginBottomRight", _wrap_wxPageSetupDialogData_SetMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_SetMarginTopLeft", _wrap_wxPageSetupDialogData_SetMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_SetDefaultMinMargins", _wrap_wxPageSetupDialogData_SetDefaultMinMargins, METH_VARARGS }, - { "wxPageSetupDialogData_SetDefaultInfo", _wrap_wxPageSetupDialogData_SetDefaultInfo, METH_VARARGS }, - { "wxPageSetupDialogData_GetPrintData", _wrap_wxPageSetupDialogData_GetPrintData, METH_VARARGS }, - { "wxPageSetupDialogData_GetPaperSize", _wrap_wxPageSetupDialogData_GetPaperSize, METH_VARARGS }, - { "wxPageSetupDialogData_GetPaperId", _wrap_wxPageSetupDialogData_GetPaperId, METH_VARARGS }, - { "wxPageSetupDialogData_GetMinMarginBottomRight", _wrap_wxPageSetupDialogData_GetMinMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_GetMinMarginTopLeft", _wrap_wxPageSetupDialogData_GetMinMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_GetMarginBottomRight", _wrap_wxPageSetupDialogData_GetMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_GetMarginTopLeft", _wrap_wxPageSetupDialogData_GetMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_GetDefaultInfo", _wrap_wxPageSetupDialogData_GetDefaultInfo, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnableHelp", _wrap_wxPageSetupDialogData_GetEnableHelp, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnablePrinter", _wrap_wxPageSetupDialogData_GetEnablePrinter, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnablePaper", _wrap_wxPageSetupDialogData_GetEnablePaper, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnableOrientation", _wrap_wxPageSetupDialogData_GetEnableOrientation, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnableMargins", _wrap_wxPageSetupDialogData_GetEnableMargins, METH_VARARGS }, - { "wxPageSetupDialogData_GetDefaultMinMargins", _wrap_wxPageSetupDialogData_GetDefaultMinMargins, METH_VARARGS }, - { "wxPageSetupDialogData_EnablePrinter", _wrap_wxPageSetupDialogData_EnablePrinter, METH_VARARGS }, - { "wxPageSetupDialogData_EnablePaper", _wrap_wxPageSetupDialogData_EnablePaper, METH_VARARGS }, - { "wxPageSetupDialogData_EnableOrientation", _wrap_wxPageSetupDialogData_EnableOrientation, METH_VARARGS }, - { "wxPageSetupDialogData_EnableMargins", _wrap_wxPageSetupDialogData_EnableMargins, METH_VARARGS }, - { "wxPageSetupDialogData_EnableHelp", _wrap_wxPageSetupDialogData_EnableHelp, METH_VARARGS }, - { "delete_wxPageSetupDialogData", _wrap_delete_wxPageSetupDialogData, METH_VARARGS }, - { "new_wxPageSetupDialogData", _wrap_new_wxPageSetupDialogData, METH_VARARGS }, - { "wxPrintData_SetQuality", _wrap_wxPrintData_SetQuality, METH_VARARGS }, - { "wxPrintData_SetPaperSize", _wrap_wxPrintData_SetPaperSize, METH_VARARGS }, - { "wxPrintData_SetPaperId", _wrap_wxPrintData_SetPaperId, METH_VARARGS }, - { "wxPrintData_SetDuplex", _wrap_wxPrintData_SetDuplex, METH_VARARGS }, - { "wxPrintData_SetColour", _wrap_wxPrintData_SetColour, METH_VARARGS }, - { "wxPrintData_SetPrinterName", _wrap_wxPrintData_SetPrinterName, METH_VARARGS }, - { "wxPrintData_SetOrientation", _wrap_wxPrintData_SetOrientation, METH_VARARGS }, - { "wxPrintData_SetCollate", _wrap_wxPrintData_SetCollate, METH_VARARGS }, - { "wxPrintData_SetNoCopies", _wrap_wxPrintData_SetNoCopies, METH_VARARGS }, - { "wxPrintData_GetQuality", _wrap_wxPrintData_GetQuality, METH_VARARGS }, - { "wxPrintData_GetPaperSize", _wrap_wxPrintData_GetPaperSize, METH_VARARGS }, - { "wxPrintData_GetPaperId", _wrap_wxPrintData_GetPaperId, METH_VARARGS }, - { "wxPrintData_GetDuplex", _wrap_wxPrintData_GetDuplex, METH_VARARGS }, - { "wxPrintData_GetColour", _wrap_wxPrintData_GetColour, METH_VARARGS }, - { "wxPrintData_GetPrinterName", _wrap_wxPrintData_GetPrinterName, METH_VARARGS }, - { "wxPrintData_GetOrientation", _wrap_wxPrintData_GetOrientation, METH_VARARGS }, - { "wxPrintData_GetCollate", _wrap_wxPrintData_GetCollate, METH_VARARGS }, - { "wxPrintData_GetNoCopies", _wrap_wxPrintData_GetNoCopies, METH_VARARGS }, - { "delete_wxPrintData", _wrap_delete_wxPrintData, METH_VARARGS }, - { "new_wxPrintData", _wrap_new_wxPrintData, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0}, - { "_wxPrinter","_class_wxPrinter",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxPyPrintout","_class_wxPyPrintout",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxPrintDialogData","_wxPrintDialogData",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_wxPrintPreview","_class_wxPrintPreview",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_class_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_class_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_class_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxPageSetupDialog","_class_wxPageSetupDialog",0}, - { "_class_wxPrinter","_wxPrinter",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxPyPrintout","_wxPyPrintout",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPrintDialog","_class_wxPrintDialog",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_wxPrintData","_class_wxPrintData",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_class_wxPreviewFrame","_wxPreviewFrame",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_class_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_class_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_class_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_class_wxWindow","_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_class_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_class_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_class_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_class_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_wxPrintDialogData","_class_wxPrintDialogData",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxPrintDialog","_wxPrintDialog",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_wxFrame","_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxPrintPreview","_wxPrintPreview",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_class_wxPageSetupDialog","_wxPageSetupDialog",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_wxPreviewFrame","_class_wxPreviewFrame",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_class_wxPrintData","_wxPrintData",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_wxWindow","_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_class_wxFrame","_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void) initprintfwc() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("printfwc", printfwcMethods); - d = PyModule_GetDict(m); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/printfw.py b/utils/wxPython/src/gtk/printfw.py deleted file mode 100644 index df3356033f..0000000000 --- a/utils/wxPython/src/gtk/printfw.py +++ /dev/null @@ -1,521 +0,0 @@ -# This file was created automatically by SWIG. -import printfwc - -from misc import * - -from windows import * - -from gdi import * - -from cmndlgs import * - -from frames import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxPrintDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPrintData(self) - def GetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetNoCopies,(self,) + _args, _kwargs) - return val - def GetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetCollate,(self,) + _args, _kwargs) - return val - def GetOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetOrientation,(self,) + _args, _kwargs) - return val - def GetPrinterName(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetPrinterName,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetColour,(self,) + _args, _kwargs) - return val - def GetDuplex(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetDuplex,(self,) + _args, _kwargs) - return val - def GetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetPaperId,(self,) + _args, _kwargs) - return val - def GetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetPaperSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) - return val - def GetQuality(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetQuality,(self,) + _args, _kwargs) - return val - def SetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetNoCopies,(self,) + _args, _kwargs) - return val - def SetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetCollate,(self,) + _args, _kwargs) - return val - def SetOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetOrientation,(self,) + _args, _kwargs) - return val - def SetPrinterName(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetPrinterName,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetColour,(self,) + _args, _kwargs) - return val - def SetDuplex(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetDuplex,(self,) + _args, _kwargs) - return val - def SetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetPaperId,(self,) + _args, _kwargs) - return val - def SetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetPaperSize,(self,) + _args, _kwargs) - return val - def SetQuality(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetQuality,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintData(wxPrintDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintData,_args,_kwargs) - self.thisown = 1 - - - - -class wxPageSetupDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPageSetupDialogData(self) - def EnableHelp(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnableHelp,(self,) + _args, _kwargs) - return val - def EnableMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnableMargins,(self,) + _args, _kwargs) - return val - def EnableOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnableOrientation,(self,) + _args, _kwargs) - return val - def EnablePaper(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnablePaper,(self,) + _args, _kwargs) - return val - def EnablePrinter(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnablePrinter,(self,) + _args, _kwargs) - return val - def GetDefaultMinMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetDefaultMinMargins,(self,) + _args, _kwargs) - return val - def GetEnableMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnableMargins,(self,) + _args, _kwargs) - return val - def GetEnableOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnableOrientation,(self,) + _args, _kwargs) - return val - def GetEnablePaper(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnablePaper,(self,) + _args, _kwargs) - return val - def GetEnablePrinter(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnablePrinter,(self,) + _args, _kwargs) - return val - def GetEnableHelp(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnableHelp,(self,) + _args, _kwargs) - return val - def GetDefaultInfo(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetDefaultInfo,(self,) + _args, _kwargs) - return val - def GetMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMarginTopLeft,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMarginBottomRight,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetMinMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMinMarginTopLeft,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetMinMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMinMarginBottomRight,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetPaperId,(self,) + _args, _kwargs) - return val - def GetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetPaperSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetPrintData,(self,) + _args, _kwargs) - if val: val = wxPrintDataPtr(val) ; val.thisown = 1 - return val - def SetDefaultInfo(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetDefaultInfo,(self,) + _args, _kwargs) - return val - def SetDefaultMinMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetDefaultMinMargins,(self,) + _args, _kwargs) - return val - def SetMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMarginTopLeft,(self,) + _args, _kwargs) - return val - def SetMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMarginBottomRight,(self,) + _args, _kwargs) - return val - def SetMinMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMinMarginTopLeft,(self,) + _args, _kwargs) - return val - def SetMinMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMinMarginBottomRight,(self,) + _args, _kwargs) - return val - def SetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetPaperId,(self,) + _args, _kwargs) - return val - def SetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetPaperSize,(self,) + _args, _kwargs) - return val - def SetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetPrintData,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPageSetupDialogData(wxPageSetupDialogDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPageSetupDialogData,_args,_kwargs) - self.thisown = 1 - - - - -class wxPageSetupDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPageSetupData(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialog_GetPageSetupData,(self,) + _args, _kwargs) - if val: val = wxPageSetupDialogDataPtr(val) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPageSetupDialog(wxPageSetupDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPageSetupDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPrintDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPrintDialogData(self) - def EnableHelp(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnableHelp,(self,) + _args, _kwargs) - return val - def EnablePageNumbers(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnablePageNumbers,(self,) + _args, _kwargs) - return val - def EnablePrintToFile(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnablePrintToFile,(self,) + _args, _kwargs) - return val - def EnableSelection(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnableSelection,(self,) + _args, _kwargs) - return val - def GetAllPages(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetAllPages,(self,) + _args, _kwargs) - return val - def GetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetCollate,(self,) + _args, _kwargs) - return val - def GetFromPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetFromPage,(self,) + _args, _kwargs) - return val - def GetMaxPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetMaxPage,(self,) + _args, _kwargs) - return val - def GetMinPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetMinPage,(self,) + _args, _kwargs) - return val - def GetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetNoCopies,(self,) + _args, _kwargs) - return val - def GetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetPrintData,(self,) + _args, _kwargs) - if val: val = wxPrintDataPtr(val) ; val.thisown = 1 - return val - def GetPrintToFile(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetPrintToFile,(self,) + _args, _kwargs) - return val - def GetToPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetToPage,(self,) + _args, _kwargs) - return val - def SetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetCollate,(self,) + _args, _kwargs) - return val - def SetFromPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetFromPage,(self,) + _args, _kwargs) - return val - def SetMaxPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetMaxPage,(self,) + _args, _kwargs) - return val - def SetMinPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetMinPage,(self,) + _args, _kwargs) - return val - def SetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetNoCopies,(self,) + _args, _kwargs) - return val - def SetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetPrintData,(self,) + _args, _kwargs) - return val - def SetPrintToFile(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetPrintToFile,(self,) + _args, _kwargs) - return val - def SetSetupDialog(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetSetupDialog,(self,) + _args, _kwargs) - return val - def SetToPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetToPage,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintDialogData(wxPrintDialogDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintDialogData,_args,_kwargs) - self.thisown = 1 - - - - -class wxPrintDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPrintDialogData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialog_GetPrintDialogData,(self,) + _args, _kwargs) - if val: val = wxPrintDialogDataPtr(val) - return val - def GetPrintDC(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialog_GetPrintDC,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) ; val.thisown = 1 - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintDialog(wxPrintDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPrintoutPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def _setSelf(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout__setSelf,(self,) + _args, _kwargs) - return val - def Destroy(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_Destroy,(self,) + _args, _kwargs) - return val - def GetDC(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetDC,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) - return val - def GetPageSizeMM(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPageSizeMM,(self,) + _args, _kwargs) - return val - def GetPageSizePixels(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPageSizePixels,(self,) + _args, _kwargs) - return val - def GetPPIPrinter(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPPIPrinter,(self,) + _args, _kwargs) - return val - def GetPPIScreen(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPPIScreen,(self,) + _args, _kwargs) - return val - def IsPreview(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_IsPreview,(self,) + _args, _kwargs) - return val - def base_OnBeginDocument(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnBeginDocument,(self,) + _args, _kwargs) - return val - def base_OnEndDocument(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnEndDocument,(self,) + _args, _kwargs) - return val - def base_OnBeginPrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnBeginPrinting,(self,) + _args, _kwargs) - return val - def base_OnEndPrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnEndPrinting,(self,) + _args, _kwargs) - return val - def base_OnPreparePrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnPreparePrinting,(self,) + _args, _kwargs) - return val - def base_GetPageInfo(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_GetPageInfo,(self,) + _args, _kwargs) - return val - def base_HasPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_HasPage,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintout(wxPrintoutPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintout,_args,_kwargs) - self.thisown = 1 - self._setSelf(self) - - - - -class wxPrinterPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPrinter(self) - def CreateAbortWindow(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_CreateAbortWindow,(self,) + _args, _kwargs) - return val - def GetPrintDialogData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_GetPrintDialogData,(self,) + _args, _kwargs) - if val: val = wxPrintDialogDataPtr(val) - return val - def Print(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_Print,(self,) + _args, _kwargs) - return val - def PrintDialog(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_PrintDialog,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) - return val - def ReportError(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_ReportError,(self,) + _args, _kwargs) - return val - def Setup(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_Setup,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrinter(wxPrinterPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrinter,_args,_kwargs) - self.thisown = 1 - - - - -class wxPrintPreviewPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCanvas(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetCanvas,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetCurrentPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetCurrentPage,(self,) + _args, _kwargs) - return val - def GetFrame(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetFrame,(self,) + _args, _kwargs) - if val: val = wxFramePtr(val) - return val - def GetMaxPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetMaxPage,(self,) + _args, _kwargs) - return val - def GetMinPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetMinPage,(self,) + _args, _kwargs) - return val - def GetPrintDialogData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetPrintDialogData,(self,) + _args, _kwargs) - if val: val = wxPrintDialogDataPtr(val) - return val - def GetPrintout(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetPrintout,(self,) + _args, _kwargs) - if val: val = wxPrintoutPtr(val) - return val - def GetPrintoutForPrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetPrintoutForPrinting,(self,) + _args, _kwargs) - if val: val = wxPrintoutPtr(val) - return val - def GetZoom(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetZoom,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_Ok,(self,) + _args, _kwargs) - return val - def Print(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_Print,(self,) + _args, _kwargs) - return val - def SetCanvas(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetCanvas,(self,) + _args, _kwargs) - return val - def SetCurrentPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetCurrentPage,(self,) + _args, _kwargs) - return val - def SetFrame(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetFrame,(self,) + _args, _kwargs) - return val - def SetPrintout(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetPrintout,(self,) + _args, _kwargs) - return val - def SetZoom(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetZoom,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintPreview(wxPrintPreviewPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintPreview,_args,_kwargs) - self.thisown = 1 - - - - -class wxPreviewFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Initialize(self, *_args, **_kwargs): - val = apply(printfwc.wxPreviewFrame_Initialize,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPreviewFrame(wxPreviewFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPreviewFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/stattool.cpp b/utils/wxPython/src/gtk/stattool.cpp deleted file mode 100644 index 0994ba9e4b..0000000000 --- a/utils/wxPython/src/gtk/stattool.cpp +++ /dev/null @@ -1,2315 +0,0 @@ -/* - * FILE : gtk/stattool.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxST_SIZEGRIP; - char * _arg5 = (char *) "statusBar"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxStatusBar",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStatusBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStatusBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxStatusBar_GetFieldRect",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxStatusBar_GetFieldsCount(_swigobj) (_swigobj->GetFieldsCount()) -static PyObject *_wrap_wxStatusBar_GetFieldsCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxStatusBar * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStatusBar_GetFieldsCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxStatusBar_GetStatusText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxStatusBar_DrawField",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawField. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxStatusBar_DrawFieldText",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawFieldText. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStatusBar_InitColours",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxStatusBar_SetFieldsCount",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxStatusBar_SetStatusText",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStatusBar_SetStatusWidths",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxToolBarTool(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxToolBarTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxToolBarTool",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_toolStyle_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_toolStyle_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_clientData_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_clientData_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_clientData_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_index_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_index_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_toggleState_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_toggleState_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_isToggle_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_isToggle_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_deleteSecondBitmap_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_deleteSecondBitmap_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_enabled_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_enabled_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_bitmap1_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap1_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_bitmap1_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_bitmap2_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap2_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_bitmap2_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_isMenuCommand_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_isMenuCommand_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_shortHelpString_set",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_shortHelpString_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_longHelpString_set",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_longHelpString_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxTB_HORIZONTAL|wxNO_BORDER; - char * _arg5 = (char *) "toolBar"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxToolBar",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxToolBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxToolBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxToolBar_AddSeparator(_swigobj) (_swigobj->AddSeparator()) -static PyObject *_wrap_wxToolBar_AddSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_AddSeparator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxBitmap *) &wxNullBitmap; - int _arg4 = (int ) FALSE; - long _arg5 = (long ) -1; - long _arg6 = (long ) -1; - wxString * _arg7 = (wxString *) &wxPyEmptyStr; - wxString * _arg8 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj7 = 0; - PyObject * _obj8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OillOO:wxToolBar_AddTool",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5,&_arg6,&_obj7,&_obj8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxToolBar_AddTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (wxString *) &wxPyEmptyStr; - wxString * _arg4 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _obj3 = 0; - PyObject * _obj4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OO:wxToolBar_AddSimpleTool",&_argo0,&_arg1,&_argo2,&_obj3,&_obj4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddSimpleTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxToolBar_EnableTool",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolEnabled",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolLongHelp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_GetToolPacking",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_GetToolSeparation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolShortHelp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolState",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_Realize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxToolBar_SetToolLongHelp",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxToolBar_SetToolShortHelp",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBar_SetMargins",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetMargins. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_SetToolPacking",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_SetToolSeparation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxToolBar_ToggleTool",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxToolBar_SetToolSeparation", _wrap_wxToolBar_SetToolSeparation, METH_VARARGS }, - { "wxToolBar_SetToolPacking", _wrap_wxToolBar_SetToolPacking, METH_VARARGS }, - { "wxToolBar_SetMargins", _wrap_wxToolBar_SetMargins, METH_VARARGS }, - { "wxToolBar_SetToolShortHelp", _wrap_wxToolBar_SetToolShortHelp, METH_VARARGS }, - { "wxToolBar_SetToolLongHelp", _wrap_wxToolBar_SetToolLongHelp, METH_VARARGS }, - { "wxToolBar_Realize", _wrap_wxToolBar_Realize, METH_VARARGS }, - { "wxToolBar_GetToolState", _wrap_wxToolBar_GetToolState, METH_VARARGS }, - { "wxToolBar_GetToolShortHelp", _wrap_wxToolBar_GetToolShortHelp, METH_VARARGS }, - { "wxToolBar_GetToolSeparation", _wrap_wxToolBar_GetToolSeparation, METH_VARARGS }, - { "wxToolBar_GetToolPacking", _wrap_wxToolBar_GetToolPacking, METH_VARARGS }, - { "wxToolBar_GetToolLongHelp", _wrap_wxToolBar_GetToolLongHelp, METH_VARARGS }, - { "wxToolBar_GetToolEnabled", _wrap_wxToolBar_GetToolEnabled, METH_VARARGS }, - { "wxToolBar_EnableTool", _wrap_wxToolBar_EnableTool, METH_VARARGS }, - { "wxToolBar_AddSimpleTool", _wrap_wxToolBar_AddSimpleTool, METH_VARARGS }, - { "wxToolBar_AddTool", _wrap_wxToolBar_AddTool, METH_VARARGS }, - { "wxToolBar_AddSeparator", _wrap_wxToolBar_AddSeparator, METH_VARARGS }, - { "new_wxToolBar", _wrap_new_wxToolBar, METH_VARARGS }, - { "wxToolBarTool_m_longHelpString_get", _wrap_wxToolBarTool_m_longHelpString_get, METH_VARARGS }, - { "wxToolBarTool_m_longHelpString_set", _wrap_wxToolBarTool_m_longHelpString_set, METH_VARARGS }, - { "wxToolBarTool_m_shortHelpString_get", _wrap_wxToolBarTool_m_shortHelpString_get, METH_VARARGS }, - { "wxToolBarTool_m_shortHelpString_set", _wrap_wxToolBarTool_m_shortHelpString_set, METH_VARARGS }, - { "wxToolBarTool_m_isMenuCommand_get", _wrap_wxToolBarTool_m_isMenuCommand_get, METH_VARARGS }, - { "wxToolBarTool_m_isMenuCommand_set", _wrap_wxToolBarTool_m_isMenuCommand_set, METH_VARARGS }, - { "wxToolBarTool_m_bitmap2_get", _wrap_wxToolBarTool_m_bitmap2_get, METH_VARARGS }, - { "wxToolBarTool_m_bitmap2_set", _wrap_wxToolBarTool_m_bitmap2_set, METH_VARARGS }, - { "wxToolBarTool_m_bitmap1_get", _wrap_wxToolBarTool_m_bitmap1_get, METH_VARARGS }, - { "wxToolBarTool_m_bitmap1_set", _wrap_wxToolBarTool_m_bitmap1_set, METH_VARARGS }, - { "wxToolBarTool_m_enabled_get", _wrap_wxToolBarTool_m_enabled_get, METH_VARARGS }, - { "wxToolBarTool_m_enabled_set", _wrap_wxToolBarTool_m_enabled_set, METH_VARARGS }, - { "wxToolBarTool_m_deleteSecondBitmap_get", _wrap_wxToolBarTool_m_deleteSecondBitmap_get, METH_VARARGS }, - { "wxToolBarTool_m_deleteSecondBitmap_set", _wrap_wxToolBarTool_m_deleteSecondBitmap_set, METH_VARARGS }, - { "wxToolBarTool_m_isToggle_get", _wrap_wxToolBarTool_m_isToggle_get, METH_VARARGS }, - { "wxToolBarTool_m_isToggle_set", _wrap_wxToolBarTool_m_isToggle_set, METH_VARARGS }, - { "wxToolBarTool_m_toggleState_get", _wrap_wxToolBarTool_m_toggleState_get, METH_VARARGS }, - { "wxToolBarTool_m_toggleState_set", _wrap_wxToolBarTool_m_toggleState_set, METH_VARARGS }, - { "wxToolBarTool_m_index_get", _wrap_wxToolBarTool_m_index_get, METH_VARARGS }, - { "wxToolBarTool_m_index_set", _wrap_wxToolBarTool_m_index_set, METH_VARARGS }, - { "wxToolBarTool_m_clientData_get", _wrap_wxToolBarTool_m_clientData_get, METH_VARARGS }, - { "wxToolBarTool_m_clientData_set", _wrap_wxToolBarTool_m_clientData_set, METH_VARARGS }, - { "wxToolBarTool_m_toolStyle_get", _wrap_wxToolBarTool_m_toolStyle_get, METH_VARARGS }, - { "wxToolBarTool_m_toolStyle_set", _wrap_wxToolBarTool_m_toolStyle_set, METH_VARARGS }, - { "delete_wxToolBarTool", _wrap_delete_wxToolBarTool, METH_VARARGS }, - { "new_wxToolBarTool", _wrap_new_wxToolBarTool, METH_VARARGS }, - { "wxStatusBar_SetStatusWidths", _wrap_wxStatusBar_SetStatusWidths, METH_VARARGS }, - { "wxStatusBar_SetStatusText", _wrap_wxStatusBar_SetStatusText, METH_VARARGS }, - { "wxStatusBar_SetFieldsCount", _wrap_wxStatusBar_SetFieldsCount, METH_VARARGS }, - { "wxStatusBar_InitColours", _wrap_wxStatusBar_InitColours, METH_VARARGS }, - { "wxStatusBar_DrawFieldText", _wrap_wxStatusBar_DrawFieldText, METH_VARARGS }, - { "wxStatusBar_DrawField", _wrap_wxStatusBar_DrawField, METH_VARARGS }, - { "wxStatusBar_GetStatusText", _wrap_wxStatusBar_GetStatusText, METH_VARARGS }, - { "wxStatusBar_GetFieldsCount", _wrap_wxStatusBar_GetFieldsCount, METH_VARARGS }, - { "wxStatusBar_GetFieldRect", _wrap_wxStatusBar_GetFieldRect, METH_VARARGS }, - { "new_wxStatusBar", _wrap_new_wxStatusBar, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow}, - { "_class_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow}, - { "_class_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_class_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl}, - { "_wxControl","_wxToolBar",SwigwxToolBarTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl}, - { "_class_wxControl","_wxToolBar",SwigwxToolBarTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow}, - { "_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow}, - { "_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/stattool.py b/utils/wxPython/src/gtk/stattool.py deleted file mode 100644 index a87137b839..0000000000 --- a/utils/wxPython/src/gtk/stattool.py +++ /dev/null @@ -1,213 +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, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_GetFieldRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetFieldsCount(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_GetFieldsCount,(self,) + _args, _kwargs) - return val - def GetStatusText(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_GetStatusText,(self,) + _args, _kwargs) - return val - def DrawField(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_DrawField,(self,) + _args, _kwargs) - return val - def DrawFieldText(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_DrawFieldText,(self,) + _args, _kwargs) - return val - def InitColours(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_InitColours,(self,) + _args, _kwargs) - return val - def SetFieldsCount(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_SetFieldsCount,(self,) + _args, _kwargs) - return val - def SetStatusText(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_SetStatusText,(self,) + _args, _kwargs) - return val - def SetStatusWidths(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_SetStatusWidths,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxStatusBar(wxStatusBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(stattoolc.new_wxStatusBar,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxToolBarToolPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,stattoolc=stattoolc): - if self.thisown == 1 : - stattoolc.delete_wxToolBarTool(self) - def __setattr__(self,name,value): - if name == "m_toolStyle" : - stattoolc.wxToolBarTool_m_toolStyle_set(self,value) - return - if name == "m_clientData" : - stattoolc.wxToolBarTool_m_clientData_set(self,value) - return - if name == "m_index" : - stattoolc.wxToolBarTool_m_index_set(self,value) - return - if name == "m_toggleState" : - stattoolc.wxToolBarTool_m_toggleState_set(self,value) - return - if name == "m_isToggle" : - stattoolc.wxToolBarTool_m_isToggle_set(self,value) - return - if name == "m_deleteSecondBitmap" : - stattoolc.wxToolBarTool_m_deleteSecondBitmap_set(self,value) - return - if name == "m_enabled" : - stattoolc.wxToolBarTool_m_enabled_set(self,value) - return - if name == "m_bitmap1" : - stattoolc.wxToolBarTool_m_bitmap1_set(self,value.this) - return - if name == "m_bitmap2" : - stattoolc.wxToolBarTool_m_bitmap2_set(self,value.this) - return - if name == "m_isMenuCommand" : - stattoolc.wxToolBarTool_m_isMenuCommand_set(self,value) - return - if name == "m_shortHelpString" : - stattoolc.wxToolBarTool_m_shortHelpString_set(self,value) - return - if name == "m_longHelpString" : - stattoolc.wxToolBarTool_m_longHelpString_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_toolStyle" : - return stattoolc.wxToolBarTool_m_toolStyle_get(self) - if name == "m_clientData" : - return stattoolc.wxToolBarTool_m_clientData_get(self) - if name == "m_index" : - return stattoolc.wxToolBarTool_m_index_get(self) - if name == "m_toggleState" : - return stattoolc.wxToolBarTool_m_toggleState_get(self) - if name == "m_isToggle" : - return stattoolc.wxToolBarTool_m_isToggle_get(self) - if name == "m_deleteSecondBitmap" : - return stattoolc.wxToolBarTool_m_deleteSecondBitmap_get(self) - if name == "m_enabled" : - return stattoolc.wxToolBarTool_m_enabled_get(self) - if name == "m_bitmap1" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap1_get(self)) - if name == "m_bitmap2" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap2_get(self)) - if name == "m_isMenuCommand" : - return stattoolc.wxToolBarTool_m_isMenuCommand_get(self) - if name == "m_shortHelpString" : - return stattoolc.wxToolBarTool_m_shortHelpString_get(self) - if name == "m_longHelpString" : - return stattoolc.wxToolBarTool_m_longHelpString_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxToolBarTool(wxToolBarToolPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(stattoolc.new_wxToolBarTool,_args,_kwargs) - self.thisown = 1 - - - - -class wxToolBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AddSeparator(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_AddSeparator,(self,) + _args, _kwargs) - return val - def AddTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_AddTool,(self,) + _args, _kwargs) - if val: val = wxToolBarToolPtr(val) - return val - def AddSimpleTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_AddSimpleTool,(self,) + _args, _kwargs) - if val: val = wxToolBarToolPtr(val) - return val - def EnableTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_EnableTool,(self,) + _args, _kwargs) - return val - def GetToolEnabled(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolEnabled,(self,) + _args, _kwargs) - return val - def GetToolLongHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolLongHelp,(self,) + _args, _kwargs) - return val - def GetToolPacking(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolPacking,(self,) + _args, _kwargs) - return val - def GetToolSeparation(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolSeparation,(self,) + _args, _kwargs) - return val - def GetToolShortHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolShortHelp,(self,) + _args, _kwargs) - return val - def GetToolState(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolState,(self,) + _args, _kwargs) - return val - def Realize(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_Realize,(self,) + _args, _kwargs) - return val - def SetToolLongHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolLongHelp,(self,) + _args, _kwargs) - return val - def SetToolShortHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolShortHelp,(self,) + _args, _kwargs) - return val - def SetMargins(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetMargins,(self,) + _args, _kwargs) - return val - def SetToolPacking(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolPacking,(self,) + _args, _kwargs) - return val - def SetToolSeparation(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolSeparation,(self,) + _args, _kwargs) - return val - def ToggleTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_ToggleTool,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxToolBar(wxToolBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(stattoolc.new_wxToolBar,_args,_kwargs) - 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 aa2af0a105..0000000000 --- a/utils/wxPython/src/gtk/utils.cpp +++ /dev/null @@ -1,1306 +0,0 @@ -/* - * FILE : gtk/utils.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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; - } -#ifdef __cplusplus -extern "C" { -#endif -#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 = (wxString *) &wxPyEmptyStr; - wxString * _arg1 = (wxString *) &wxPyEmptyStr; - wxString * _arg2 = (wxString *) &wxPyEmptyStr; - wxString * _arg3 = (wxString *) &wxPyEmptyStr; - long _arg4 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxConfig_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxConfig",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_DontCreateOnDemand",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_DeleteAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxConfig_DeleteEntry",&_argo0,&_obj1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_DeleteGroup",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_Exists",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - int tempbool1 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_Flush",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetAppName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetFirstGroup",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetFirstEntry",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxConfig_GetNextGroup",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxConfig_GetNextEntry",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - int tempbool1 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_GetNumberOfEntries",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - int tempbool1 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_GetNumberOfGroups",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetPath",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetVendorName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_HasEntry",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_HasGroup",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_IsExpandingEnvVars",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_IsRecordingDefaults",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxConfig_Read",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|l:wxConfig_ReadInt",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (double ) 0.0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|d:wxConfig_ReadFloat",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_SetExpandEnvVars",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_SetPath",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_SetRecordDefaults",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxConfig_Write",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOl:wxConfig_WriteInt",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOd:wxConfig_WriteFloat",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxConfig_WriteInt", _wrap_wxConfig_WriteInt, METH_VARARGS }, - { "wxConfig_Write", _wrap_wxConfig_Write, METH_VARARGS }, - { "wxConfig_SetRecordDefaults", _wrap_wxConfig_SetRecordDefaults, METH_VARARGS }, - { "wxConfig_SetPath", _wrap_wxConfig_SetPath, METH_VARARGS }, - { "wxConfig_SetExpandEnvVars", _wrap_wxConfig_SetExpandEnvVars, METH_VARARGS }, - { "wxConfig_ReadFloat", _wrap_wxConfig_ReadFloat, METH_VARARGS }, - { "wxConfig_ReadInt", _wrap_wxConfig_ReadInt, METH_VARARGS }, - { "wxConfig_Read", _wrap_wxConfig_Read, METH_VARARGS }, - { "wxConfig_IsRecordingDefaults", _wrap_wxConfig_IsRecordingDefaults, METH_VARARGS }, - { "wxConfig_IsExpandingEnvVars", _wrap_wxConfig_IsExpandingEnvVars, METH_VARARGS }, - { "wxConfig_HasGroup", _wrap_wxConfig_HasGroup, METH_VARARGS }, - { "wxConfig_HasEntry", _wrap_wxConfig_HasEntry, METH_VARARGS }, - { "wxConfig_GetVendorName", _wrap_wxConfig_GetVendorName, METH_VARARGS }, - { "wxConfig_GetPath", _wrap_wxConfig_GetPath, METH_VARARGS }, - { "wxConfig_GetNumberOfGroups", _wrap_wxConfig_GetNumberOfGroups, METH_VARARGS }, - { "wxConfig_GetNumberOfEntries", _wrap_wxConfig_GetNumberOfEntries, METH_VARARGS }, - { "wxConfig_GetNextEntry", _wrap_wxConfig_GetNextEntry, METH_VARARGS }, - { "wxConfig_GetNextGroup", _wrap_wxConfig_GetNextGroup, METH_VARARGS }, - { "wxConfig_GetFirstEntry", _wrap_wxConfig_GetFirstEntry, METH_VARARGS }, - { "wxConfig_GetFirstGroup", _wrap_wxConfig_GetFirstGroup, METH_VARARGS }, - { "wxConfig_GetAppName", _wrap_wxConfig_GetAppName, METH_VARARGS }, - { "wxConfig_Flush", _wrap_wxConfig_Flush, METH_VARARGS }, - { "wxConfig_Exists", _wrap_wxConfig_Exists, METH_VARARGS }, - { "wxConfig_DeleteGroup", _wrap_wxConfig_DeleteGroup, METH_VARARGS }, - { "wxConfig_DeleteEntry", _wrap_wxConfig_DeleteEntry, METH_VARARGS }, - { "wxConfig_DeleteAll", _wrap_wxConfig_DeleteAll, METH_VARARGS }, - { "wxConfig_DontCreateOnDemand", _wrap_wxConfig_DontCreateOnDemand, METH_VARARGS }, - { "delete_wxConfig", _wrap_delete_wxConfig, METH_VARARGS }, - { "new_wxConfig", _wrap_new_wxConfig, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_signed_long","_long",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxConfig","_class_wxConfig",0}, - { "_unsigned_long","_long",0}, - { "_signed_int","_int",0}, - { "_unsigned_short","_short",0}, - { "_signed_short","_short",0}, - { "_unsigned_int","_int",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxConfig","_wxConfig",0}, -{0,0,0}}; - -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); - - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/utils.py b/utils/wxPython/src/gtk/utils.py deleted file mode 100644 index 86f4d662d1..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,utilsc=utilsc): - if self.thisown == 1 : - utilsc.delete_wxConfig(self) - def DontCreateOnDemand(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DontCreateOnDemand,(self,) + _args, _kwargs) - return val - def DeleteAll(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DeleteAll,(self,) + _args, _kwargs) - return val - def DeleteEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DeleteEntry,(self,) + _args, _kwargs) - return val - def DeleteGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DeleteGroup,(self,) + _args, _kwargs) - return val - def Exists(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Exists,(self,) + _args, _kwargs) - return val - def Flush(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Flush,(self,) + _args, _kwargs) - return val - def GetAppName(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetAppName,(self,) + _args, _kwargs) - return val - def GetFirstGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetFirstGroup,(self,) + _args, _kwargs) - return val - def GetFirstEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetFirstEntry,(self,) + _args, _kwargs) - return val - def GetNextGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNextGroup,(self,) + _args, _kwargs) - return val - def GetNextEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNextEntry,(self,) + _args, _kwargs) - return val - def GetNumberOfEntries(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNumberOfEntries,(self,) + _args, _kwargs) - return val - def GetNumberOfGroups(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNumberOfGroups,(self,) + _args, _kwargs) - return val - def GetPath(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetPath,(self,) + _args, _kwargs) - return val - def GetVendorName(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetVendorName,(self,) + _args, _kwargs) - return val - def HasEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_HasEntry,(self,) + _args, _kwargs) - return val - def HasGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_HasGroup,(self,) + _args, _kwargs) - return val - def IsExpandingEnvVars(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_IsExpandingEnvVars,(self,) + _args, _kwargs) - return val - def IsRecordingDefaults(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_IsRecordingDefaults,(self,) + _args, _kwargs) - return val - def Read(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Read,(self,) + _args, _kwargs) - return val - def ReadInt(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_ReadInt,(self,) + _args, _kwargs) - return val - def ReadFloat(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_ReadFloat,(self,) + _args, _kwargs) - return val - def SetExpandEnvVars(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_SetExpandEnvVars,(self,) + _args, _kwargs) - return val - def SetPath(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_SetPath,(self,) + _args, _kwargs) - return val - def SetRecordDefaults(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_SetRecordDefaults,(self,) + _args, _kwargs) - return val - def Write(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Write,(self,) + _args, _kwargs) - return val - def WriteInt(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_WriteInt,(self,) + _args, _kwargs) - return val - def WriteFloat(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_WriteFloat,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxConfig(wxConfigPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(utilsc.new_wxConfig,_args,_kwargs) - 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 8a45064863..0000000000 --- a/utils/wxPython/src/gtk/windows.cpp +++ /dev/null @@ -1,6050 +0,0 @@ -/* - * FILE : gtk/windows.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -#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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxEvtHandler_ProcessEvent",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvtHandler_ProcessEvent. Expected _wxEvtHandler_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiiiO:wxEvtHandler_Connect",&_argo0,&_arg1,&_arg2,&_arg3,&_obj4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "panel"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_CaptureMouse(_swigobj) (_swigobj->CaptureMouse()) -static PyObject *_wrap_wxWindow_CaptureMouse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_CaptureMouse",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_Center",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_Centre",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_CentreOnParent(_swigobj,_swigarg0) (_swigobj->CentreOnParent(_swigarg0)) -static PyObject *_wrap_wxWindow_CentreOnParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_CentreOnParent",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_CentreOnParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_CentreOnParent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_CenterOnParent(_swigobj,_swigarg0) (_swigobj->CenterOnParent(_swigarg0)) -static PyObject *_wrap_wxWindow_CenterOnParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_CenterOnParent",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_CenterOnParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_CenterOnParent(_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; - PyObject * _argo0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxWindow_ClientToScreenXY",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ClientToScreen",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ClientToScreen. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) FALSE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_Close",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Destroy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_DestroyChildren",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxWindow_FindWindowById",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_FindWindowByName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Fit",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetCharHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetCharWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxWindow_GetClientSizeTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetClientSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetConstraints",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxWindow_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_GetForegroundColour(_swigobj) (_swigobj->GetForegroundColour()) -static PyObject *_wrap_wxWindow_GetForegroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetForegroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetGrandParent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxWindow_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxWindow_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetLabel",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetLabel. 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_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxWindow_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetParent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxWindow_GetPositionTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_GetScrollThumb",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_GetScrollPos",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_GetScrollRange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxWindow_GetSizeTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"OO:wxWindow_GetTextExtent",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxFont *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"OO|O:wxWindow_GetFullTextExtent",&_argo0,&_obj1,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_GetUpdateRegion(_swigobj) (_swigobj->GetUpdateRegion()) -static PyObject *_wrap_wxWindow_GetUpdateRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetUpdateRegion",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetUpdateRegion. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRegion (wxWindow_GetUpdateRegion(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRegion_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetWindowStyleFlag(_swigobj) (_swigobj->GetWindowStyleFlag()) -static PyObject *_wrap_wxWindow_GetWindowStyleFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetWindowStyleFlag",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_Hide(_swigobj) (_swigobj->Hide()) -static PyObject *_wrap_wxWindow_Hide(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Hide",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Hide. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Hide(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxWindow_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_InitDialog",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsRetained",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsShown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_IsTopLevel(_swigobj) (_swigobj->IsTopLevel()) -static PyObject *_wrap_wxWindow_IsTopLevel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsTopLevel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsTopLevel. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsTopLevel(_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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Layout",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxResourceTable *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|O:wxWindow_LoadFromResource",&_argo0,&_argo1,&_obj2,&_argo3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_LoadFromResource. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Lower",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_MakeModal",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxWindow_MoveXY",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_Move",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Move. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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_PopupMenuXY(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PopupMenu(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_PopupMenuXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxMenu * _arg1; - int _arg2; - int _arg3; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxWindow_PopupMenuXY",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_PopupMenuXY. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_PopupMenuXY. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_PopupMenuXY(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_PopupMenu(_swigobj,_swigarg0,_swigarg1) (_swigobj->PopupMenu(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_PopupMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxMenu * _arg1; - wxPoint * _arg2; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxWindow_PopupMenu",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_PopupMenu. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_PopupMenu. Expected _wxMenu_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxWindow_PopupMenu. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_PopupMenu(_arg0,_arg1,*_arg2); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Raise",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - wxRect * _arg2 = (wxRect *) NULL; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|iO:wxWindow_Refresh",&_argo0,&tempbool1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_ReleaseMouse",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_Reparent(_swigobj,_swigarg0) (_swigobj->Reparent(_swigarg0)) -static PyObject *_wrap_wxWindow_Reparent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_Reparent",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Reparent. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_Reparent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Reparent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - 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; - PyObject * _argo0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxWindow_ScreenToClientXY",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ScreenToClient",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScreenToClient. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxRect *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|O:wxWindow_ScrollWindow",&_argo0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScrollWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetAcceleratorTable",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetAcceleratorTable. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_SetAutoLayout",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetBackgroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetConstraints",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetConstraints. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_SetFocus",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetFont. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetForegroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetForegroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_SetId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool5 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|i:wxWindow_SetScrollbar",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|i:wxWindow_SetScrollPos",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxSIZE_AUTO; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|i:wxWindow_SetDimensions",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetPosition",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetPosition. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) -1; - int _arg2 = (int ) -1; - int _arg3 = (int ) -1; - int _arg4 = (int ) -1; - int _arg5 = (int ) -1; - int _arg6 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|iiiiii:wxWindow_SetSizeHints",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxWindow_SetClientSizeWH",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetClientSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetClientSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetCursor",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetCursor. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_Show",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_TransferDataFromWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_TransferDataToWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Validate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxWindow_WarpPointer",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertDialogPointToPixels",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogPointToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertDialogSizeToPixels",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogSizeToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertPixelPointToDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelPointToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertPixelSizeToDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelSizeToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetToolTipString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetToolTip",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetToolTip. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetToolTip",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxTAB_TRAVERSAL; - char * _arg5 = (char *) "panel"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxPanel",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPanel. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPanel. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPanel_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPanel_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxPanel_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPanel_InitDialog",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxPanel_GetDefaultItem(_swigobj) (_swigobj->GetDefaultItem()) -static PyObject *_wrap_wxPanel_GetDefaultItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxButton * _result; - wxPanel * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPanel_GetDefaultItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPanel_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPanel_GetDefaultItem. Expected _wxPanel_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxButton *)wxPanel_GetDefaultItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPanel_SetDefaultItem(_swigobj,_swigarg0) (_swigobj->SetDefaultItem(_swigarg0)) -static PyObject *_wrap_wxPanel_SetDefaultItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _arg0; - wxButton * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPanel_SetDefaultItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPanel_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPanel_SetDefaultItem. Expected _wxPanel_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPanel_SetDefaultItem. Expected _wxButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPanel_SetDefaultItem(_arg0,_arg1); - - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_DIALOG_STYLE; - char * _arg6 = (char *) "dialogBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxDialog",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxDialog. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxDialog_Centre",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_EndModal",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_Iconize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_IsIconized",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_SetModal",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_IsModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDialog_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_Show",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_GetReturnCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_SetReturnCode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 *SwigwxScrolledWindowTowxPanel(void *ptr) { - wxScrolledWindow *src; - wxPanel *dest; - src = (wxScrolledWindow *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxHSCROLL|wxVSCROLL; - char * _arg5 = (char *) "scrolledWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOls:new_wxScrolledWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrolledWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrolledWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrolledWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxScrolledWindow_EnableScrolling",&_argo0,&tempbool1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_GetScrollPixelsPerUnit",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_GetVirtualSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_IsRetained",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxScrolledWindow_PrepareDC",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_PrepareDC. Expected _wxScrolledWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxScrolledWindow_Scroll",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg6 = (int ) 0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|ii:wxScrolledWindow_SetScrollbars",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_ViewStart",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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,_swigarg1) (new wxMenu(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxString * _arg0 = (wxString *) &wxPyEmptyStr; - long _arg1 = (long ) 0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|Ol:new_wxMenu",&_obj0,&_arg1)) - 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,_arg1); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (wxString *) &wxPyEmptyStr; - int _arg4 = (int ) FALSE; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|Oi:wxMenu_Append",&_argo0,&_arg1,&_obj2,&_obj3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOO|O:wxMenu_AppendMenu",&_argo0,&_arg1,&_obj2,&_argo3,&_obj4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenu_AppendSeparator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenu_Break",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenu_Check",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenu_Enable",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenu_FindItem",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenu_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenu_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_FindItemForId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_GetHelpString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_GetLabel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxMenu_SetHelpString",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_IsChecked",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_IsEnabled",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxMenu_SetLabel",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxMenu_UpdateUI(_swigobj,_swigarg0) (_swigobj->UpdateUI(_swigarg0)) -static PyObject *_wrap_wxMenu_UpdateUI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - wxEvtHandler * _arg1 = (wxEvtHandler *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxMenu_UpdateUI",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_UpdateUI. Expected _wxMenu_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenu_UpdateUI. Expected _wxEvtHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_UpdateUI(_arg0,_arg1); - - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxMenuBar_Append",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Append. Expected _wxMenuBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenuBar_Check",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_Checked",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenuBar_Enable",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_Enabled",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxMenuBar_FindMenuItem",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_FindItemForId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMenuBar_GetMenuCount(_swigobj) (_swigobj->GetMenuCount()) -static PyObject *_wrap_wxMenuBar_GetMenuCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuBar * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuBar_GetMenuCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_GetMenu",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMenuItem_IsSeparator(_swigobj) (_swigobj->IsSeparator()) -static PyObject *_wrap_wxMenuItem_IsSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsSeparator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsChecked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsCheckable",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetSubMenu",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenuItem_SetName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetHelp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenuItem_SetHelp",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMenuItem_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMenuItem_Check",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxMenuItem_Enable", _wrap_wxMenuItem_Enable, METH_VARARGS }, - { "wxMenuItem_SetHelp", _wrap_wxMenuItem_SetHelp, METH_VARARGS }, - { "wxMenuItem_GetHelp", _wrap_wxMenuItem_GetHelp, METH_VARARGS }, - { "wxMenuItem_GetName", _wrap_wxMenuItem_GetName, METH_VARARGS }, - { "wxMenuItem_SetName", _wrap_wxMenuItem_SetName, METH_VARARGS }, - { "wxMenuItem_GetSubMenu", _wrap_wxMenuItem_GetSubMenu, METH_VARARGS }, - { "wxMenuItem_GetId", _wrap_wxMenuItem_GetId, METH_VARARGS }, - { "wxMenuItem_IsCheckable", _wrap_wxMenuItem_IsCheckable, METH_VARARGS }, - { "wxMenuItem_IsChecked", _wrap_wxMenuItem_IsChecked, METH_VARARGS }, - { "wxMenuItem_IsEnabled", _wrap_wxMenuItem_IsEnabled, METH_VARARGS }, - { "wxMenuItem_IsSeparator", _wrap_wxMenuItem_IsSeparator, METH_VARARGS }, - { "new_wxMenuItem", _wrap_new_wxMenuItem, METH_VARARGS }, - { "wxMenuBar_GetMenu", _wrap_wxMenuBar_GetMenu, METH_VARARGS }, - { "wxMenuBar_GetMenuCount", _wrap_wxMenuBar_GetMenuCount, METH_VARARGS }, - { "wxMenuBar_FindItemForId", _wrap_wxMenuBar_FindItemForId, METH_VARARGS }, - { "wxMenuBar_FindMenuItem", _wrap_wxMenuBar_FindMenuItem, METH_VARARGS }, - { "wxMenuBar_Enabled", _wrap_wxMenuBar_Enabled, METH_VARARGS }, - { "wxMenuBar_Enable", _wrap_wxMenuBar_Enable, METH_VARARGS }, - { "wxMenuBar_Checked", _wrap_wxMenuBar_Checked, METH_VARARGS }, - { "wxMenuBar_Check", _wrap_wxMenuBar_Check, METH_VARARGS }, - { "wxMenuBar_Append", _wrap_wxMenuBar_Append, METH_VARARGS }, - { "new_wxMenuBar", _wrap_new_wxMenuBar, METH_VARARGS }, - { "wxMenu_UpdateUI", _wrap_wxMenu_UpdateUI, METH_VARARGS }, - { "wxMenu_SetLabel", _wrap_wxMenu_SetLabel, METH_VARARGS }, - { "wxMenu_IsEnabled", _wrap_wxMenu_IsEnabled, METH_VARARGS }, - { "wxMenu_IsChecked", _wrap_wxMenu_IsChecked, METH_VARARGS }, - { "wxMenu_SetHelpString", _wrap_wxMenu_SetHelpString, METH_VARARGS }, - { "wxMenu_GetLabel", _wrap_wxMenu_GetLabel, METH_VARARGS }, - { "wxMenu_GetHelpString", _wrap_wxMenu_GetHelpString, METH_VARARGS }, - { "wxMenu_FindItemForId", _wrap_wxMenu_FindItemForId, METH_VARARGS }, - { "wxMenu_SetTitle", _wrap_wxMenu_SetTitle, METH_VARARGS }, - { "wxMenu_GetTitle", _wrap_wxMenu_GetTitle, METH_VARARGS }, - { "wxMenu_FindItem", _wrap_wxMenu_FindItem, METH_VARARGS }, - { "wxMenu_Enable", _wrap_wxMenu_Enable, METH_VARARGS }, - { "wxMenu_Check", _wrap_wxMenu_Check, METH_VARARGS }, - { "wxMenu_Break", _wrap_wxMenu_Break, METH_VARARGS }, - { "wxMenu_AppendSeparator", _wrap_wxMenu_AppendSeparator, METH_VARARGS }, - { "wxMenu_AppendMenu", _wrap_wxMenu_AppendMenu, METH_VARARGS }, - { "wxMenu_Append", _wrap_wxMenu_Append, METH_VARARGS }, - { "new_wxMenu", _wrap_new_wxMenu, METH_VARARGS }, - { "wxScrolledWindow_ViewStart", _wrap_wxScrolledWindow_ViewStart, METH_VARARGS }, - { "wxScrolledWindow_SetScrollbars", _wrap_wxScrolledWindow_SetScrollbars, METH_VARARGS }, - { "wxScrolledWindow_Scroll", _wrap_wxScrolledWindow_Scroll, METH_VARARGS }, - { "wxScrolledWindow_PrepareDC", _wrap_wxScrolledWindow_PrepareDC, METH_VARARGS }, - { "wxScrolledWindow_IsRetained", _wrap_wxScrolledWindow_IsRetained, METH_VARARGS }, - { "wxScrolledWindow_GetVirtualSize", _wrap_wxScrolledWindow_GetVirtualSize, METH_VARARGS }, - { "wxScrolledWindow_GetScrollPixelsPerUnit", _wrap_wxScrolledWindow_GetScrollPixelsPerUnit, METH_VARARGS }, - { "wxScrolledWindow_EnableScrolling", _wrap_wxScrolledWindow_EnableScrolling, METH_VARARGS }, - { "new_wxScrolledWindow", _wrap_new_wxScrolledWindow, METH_VARARGS }, - { "wxDialog_SetReturnCode", _wrap_wxDialog_SetReturnCode, METH_VARARGS }, - { "wxDialog_GetReturnCode", _wrap_wxDialog_GetReturnCode, METH_VARARGS }, - { "wxDialog_ShowModal", _wrap_wxDialog_ShowModal, METH_VARARGS }, - { "wxDialog_Show", _wrap_wxDialog_Show, METH_VARARGS }, - { "wxDialog_SetTitle", _wrap_wxDialog_SetTitle, METH_VARARGS }, - { "wxDialog_IsModal", _wrap_wxDialog_IsModal, METH_VARARGS }, - { "wxDialog_SetModal", _wrap_wxDialog_SetModal, METH_VARARGS }, - { "wxDialog_IsIconized", _wrap_wxDialog_IsIconized, METH_VARARGS }, - { "wxDialog_Iconize", _wrap_wxDialog_Iconize, METH_VARARGS }, - { "wxDialog_GetTitle", _wrap_wxDialog_GetTitle, METH_VARARGS }, - { "wxDialog_EndModal", _wrap_wxDialog_EndModal, METH_VARARGS }, - { "wxDialog_Centre", _wrap_wxDialog_Centre, METH_VARARGS }, - { "new_wxDialog", _wrap_new_wxDialog, METH_VARARGS }, - { "wxPanel_SetDefaultItem", _wrap_wxPanel_SetDefaultItem, METH_VARARGS }, - { "wxPanel_GetDefaultItem", _wrap_wxPanel_GetDefaultItem, METH_VARARGS }, - { "wxPanel_InitDialog", _wrap_wxPanel_InitDialog, METH_VARARGS }, - { "new_wxPanel", _wrap_new_wxPanel, METH_VARARGS }, - { "wxWindow_GetToolTip", _wrap_wxWindow_GetToolTip, METH_VARARGS }, - { "wxWindow_SetToolTip", _wrap_wxWindow_SetToolTip, METH_VARARGS }, - { "wxWindow_SetToolTipString", _wrap_wxWindow_SetToolTipString, METH_VARARGS }, - { "wxWindow_ConvertPixelSizeToDialog", _wrap_wxWindow_ConvertPixelSizeToDialog, METH_VARARGS }, - { "wxWindow_ConvertPixelPointToDialog", _wrap_wxWindow_ConvertPixelPointToDialog, METH_VARARGS }, - { "wxWindow_DLG_SZE", _wrap_wxWindow_ConvertDialogSizeToPixels, METH_VARARGS }, - { "wxWindow_DLG_PNT", _wrap_wxWindow_ConvertDialogPointToPixels, METH_VARARGS }, - { "wxWindow_ConvertDialogSizeToPixels", _wrap_wxWindow_ConvertDialogSizeToPixels, METH_VARARGS }, - { "wxWindow_ConvertDialogPointToPixels", _wrap_wxWindow_ConvertDialogPointToPixels, METH_VARARGS }, - { "wxWindow_WarpPointer", _wrap_wxWindow_WarpPointer, METH_VARARGS }, - { "wxWindow_Validate", _wrap_wxWindow_Validate, METH_VARARGS }, - { "wxWindow_TransferDataToWindow", _wrap_wxWindow_TransferDataToWindow, METH_VARARGS }, - { "wxWindow_TransferDataFromWindow", _wrap_wxWindow_TransferDataFromWindow, METH_VARARGS }, - { "wxWindow_Show", _wrap_wxWindow_Show, METH_VARARGS }, - { "wxWindow_SetTitle", _wrap_wxWindow_SetTitle, METH_VARARGS }, - { "wxWindow_SetCursor", _wrap_wxWindow_SetCursor, METH_VARARGS }, - { "wxWindow_SetClientSize", _wrap_wxWindow_SetClientSize, METH_VARARGS }, - { "wxWindow_SetClientSizeWH", _wrap_wxWindow_SetClientSizeWH, METH_VARARGS }, - { "wxWindow_SetSizeHints", _wrap_wxWindow_SetSizeHints, METH_VARARGS }, - { "wxWindow_SetPosition", _wrap_wxWindow_SetPosition, METH_VARARGS }, - { "wxWindow_SetSize", _wrap_wxWindow_SetSize, METH_VARARGS }, - { "wxWindow_SetDimensions", _wrap_wxWindow_SetDimensions, METH_VARARGS }, - { "wxWindow_SetScrollPos", _wrap_wxWindow_SetScrollPos, METH_VARARGS }, - { "wxWindow_SetScrollbar", _wrap_wxWindow_SetScrollbar, METH_VARARGS }, - { "wxWindow_SetName", _wrap_wxWindow_SetName, METH_VARARGS }, - { "wxWindow_SetId", _wrap_wxWindow_SetId, METH_VARARGS }, - { "wxWindow_SetForegroundColour", _wrap_wxWindow_SetForegroundColour, METH_VARARGS }, - { "wxWindow_SetFont", _wrap_wxWindow_SetFont, METH_VARARGS }, - { "wxWindow_SetFocus", _wrap_wxWindow_SetFocus, METH_VARARGS }, - { "wxWindow_SetConstraints", _wrap_wxWindow_SetConstraints, METH_VARARGS }, - { "wxWindow_SetBackgroundColour", _wrap_wxWindow_SetBackgroundColour, METH_VARARGS }, - { "wxWindow_SetAutoLayout", _wrap_wxWindow_SetAutoLayout, METH_VARARGS }, - { "wxWindow_SetAcceleratorTable", _wrap_wxWindow_SetAcceleratorTable, METH_VARARGS }, - { "wxWindow_ScrollWindow", _wrap_wxWindow_ScrollWindow, METH_VARARGS }, - { "wxWindow_ScreenToClient", _wrap_wxWindow_ScreenToClient, METH_VARARGS }, - { "wxWindow_ScreenToClientXY", _wrap_wxWindow_ScreenToClientXY, METH_VARARGS }, - { "wxWindow_Reparent", _wrap_wxWindow_Reparent, METH_VARARGS }, - { "wxWindow_ReleaseMouse", _wrap_wxWindow_ReleaseMouse, METH_VARARGS }, - { "wxWindow_Refresh", _wrap_wxWindow_Refresh, METH_VARARGS }, - { "wxWindow_Raise", _wrap_wxWindow_Raise, METH_VARARGS }, - { "wxWindow_PopupMenu", _wrap_wxWindow_PopupMenu, METH_VARARGS }, - { "wxWindow_PopupMenuXY", _wrap_wxWindow_PopupMenuXY, METH_VARARGS }, - { "wxWindow_Move", _wrap_wxWindow_Move, METH_VARARGS }, - { "wxWindow_MoveXY", _wrap_wxWindow_MoveXY, METH_VARARGS }, - { "wxWindow_MakeModal", _wrap_wxWindow_MakeModal, METH_VARARGS }, - { "wxWindow_Lower", _wrap_wxWindow_Lower, METH_VARARGS }, - { "wxWindow_LoadFromResource", _wrap_wxWindow_LoadFromResource, METH_VARARGS }, - { "wxWindow_Layout", _wrap_wxWindow_Layout, METH_VARARGS }, - { "wxWindow_IsTopLevel", _wrap_wxWindow_IsTopLevel, METH_VARARGS }, - { "wxWindow_IsShown", _wrap_wxWindow_IsShown, METH_VARARGS }, - { "wxWindow_IsRetained", _wrap_wxWindow_IsRetained, METH_VARARGS }, - { "wxWindow_IsEnabled", _wrap_wxWindow_IsEnabled, METH_VARARGS }, - { "wxWindow_InitDialog", _wrap_wxWindow_InitDialog, METH_VARARGS }, - { "wxWindow_Hide", _wrap_wxWindow_Hide, METH_VARARGS }, - { "wxWindow_GetWindowStyleFlag", _wrap_wxWindow_GetWindowStyleFlag, METH_VARARGS }, - { "wxWindow_GetUpdateRegion", _wrap_wxWindow_GetUpdateRegion, METH_VARARGS }, - { "wxWindow_GetTitle", _wrap_wxWindow_GetTitle, METH_VARARGS }, - { "wxWindow_GetFullTextExtent", _wrap_wxWindow_GetFullTextExtent, METH_VARARGS }, - { "wxWindow_GetTextExtent", _wrap_wxWindow_GetTextExtent, METH_VARARGS }, - { "wxWindow_GetSize", _wrap_wxWindow_GetSize, METH_VARARGS }, - { "wxWindow_GetSizeTuple", _wrap_wxWindow_GetSizeTuple, METH_VARARGS }, - { "wxWindow_GetScrollRange", _wrap_wxWindow_GetScrollRange, METH_VARARGS }, - { "wxWindow_GetScrollPos", _wrap_wxWindow_GetScrollPos, METH_VARARGS }, - { "wxWindow_GetScrollThumb", _wrap_wxWindow_GetScrollThumb, METH_VARARGS }, - { "wxWindow_GetRect", _wrap_wxWindow_GetRect, METH_VARARGS }, - { "wxWindow_GetPosition", _wrap_wxWindow_GetPosition, METH_VARARGS }, - { "wxWindow_GetPositionTuple", _wrap_wxWindow_GetPositionTuple, METH_VARARGS }, - { "wxWindow_GetParent", _wrap_wxWindow_GetParent, METH_VARARGS }, - { "wxWindow_GetName", _wrap_wxWindow_GetName, METH_VARARGS }, - { "wxWindow_SetLabel", _wrap_wxWindow_SetLabel, METH_VARARGS }, - { "wxWindow_GetLabel", _wrap_wxWindow_GetLabel, METH_VARARGS }, - { "wxWindow_GetId", _wrap_wxWindow_GetId, METH_VARARGS }, - { "wxWindow_GetGrandParent", _wrap_wxWindow_GetGrandParent, METH_VARARGS }, - { "wxWindow_GetForegroundColour", _wrap_wxWindow_GetForegroundColour, METH_VARARGS }, - { "wxWindow_GetFont", _wrap_wxWindow_GetFont, METH_VARARGS }, - { "wxWindow_GetConstraints", _wrap_wxWindow_GetConstraints, METH_VARARGS }, - { "wxWindow_GetClientSize", _wrap_wxWindow_GetClientSize, METH_VARARGS }, - { "wxWindow_GetClientSizeTuple", _wrap_wxWindow_GetClientSizeTuple, METH_VARARGS }, - { "wxWindow_GetCharWidth", _wrap_wxWindow_GetCharWidth, METH_VARARGS }, - { "wxWindow_GetCharHeight", _wrap_wxWindow_GetCharHeight, METH_VARARGS }, - { "wxWindow_GetBackgroundColour", _wrap_wxWindow_GetBackgroundColour, METH_VARARGS }, - { "wxWindow_Fit", _wrap_wxWindow_Fit, METH_VARARGS }, - { "wxWindow_FindWindowByName", _wrap_wxWindow_FindWindowByName, METH_VARARGS }, - { "wxWindow_FindWindowById", _wrap_wxWindow_FindWindowById, METH_VARARGS }, - { "wxWindow_Enable", _wrap_wxWindow_Enable, METH_VARARGS }, - { "wxWindow_DestroyChildren", _wrap_wxWindow_DestroyChildren, METH_VARARGS }, - { "wxWindow_Destroy", _wrap_wxWindow_Destroy, METH_VARARGS }, - { "wxWindow_Close", _wrap_wxWindow_Close, METH_VARARGS }, - { "wxWindow_ClientToScreen", _wrap_wxWindow_ClientToScreen, METH_VARARGS }, - { "wxWindow_ClientToScreenXY", _wrap_wxWindow_ClientToScreenXY, METH_VARARGS }, - { "wxWindow_CenterOnParent", _wrap_wxWindow_CenterOnParent, METH_VARARGS }, - { "wxWindow_CentreOnParent", _wrap_wxWindow_CentreOnParent, METH_VARARGS }, - { "wxWindow_Centre", _wrap_wxWindow_Centre, METH_VARARGS }, - { "wxWindow_Center", _wrap_wxWindow_Center, METH_VARARGS }, - { "wxWindow_CaptureMouse", _wrap_wxWindow_CaptureMouse, METH_VARARGS }, - { "new_wxWindow", _wrap_new_wxWindow, METH_VARARGS }, - { "wxEvtHandler_Connect", _wrap_wxEvtHandler_Connect, METH_VARARGS }, - { "wxEvtHandler_ProcessEvent", _wrap_wxEvtHandler_ProcessEvent, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxDC",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_wxPanel","_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel}, - { "_wxPanel","_wxDialog",SwigwxDialogTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_class_wxMask","_wxMask",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_class_wxPanel","_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_class_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel}, - { "_class_wxPanel","_wxDialog",SwigwxDialogTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_class_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_class_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow}, - { "_class_wxWindow","_wxDialog",SwigwxDialogTowxWindow}, - { "_class_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow}, - { "_class_wxWindow","_wxPanel",SwigwxPanelTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow}, - { "_wxWindow","_wxDialog",SwigwxDialogTowxWindow}, - { "_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow}, - { "_wxWindow","_wxPanel",SwigwxPanelTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/windows.py b/utils/wxPython/src/gtk/windows.py deleted file mode 100644 index be4e354305..0000000000 --- a/utils/wxPython/src/gtk/windows.py +++ /dev/null @@ -1,652 +0,0 @@ -# This file was created automatically by SWIG. -import windowsc - -from misc import * - -from gdi import * -import wx - -def wxDLG_PNT(win, point_or_x, y=None): - if y is None: - return win.ConvertDialogPointToPixels(point_or_x) - else: - return win.ConvertDialogPointToPixels(wxPoint(point_or_x, y)) - -def wxDLG_SZE(win, size_width, height=None): - if height is None: - return win.ConvertDialogSizeToPixels(size_width) - else: - return win.ConvertDialogSizeToPixels(wxSize(size_width, height)) - -class wxEvtHandlerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def ProcessEvent(self, *_args, **_kwargs): - val = apply(windowsc.wxEvtHandler_ProcessEvent,(self,) + _args, _kwargs) - return val - def Connect(self, *_args, **_kwargs): - val = apply(windowsc.wxEvtHandler_Connect,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windowsc.wxWindow_CaptureMouse,(self,) + _args, _kwargs) - return val - def Center(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Center,(self,) + _args, _kwargs) - return val - def Centre(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Centre,(self,) + _args, _kwargs) - return val - def CentreOnParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_CentreOnParent,(self,) + _args, _kwargs) - return val - def CenterOnParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_CenterOnParent,(self,) + _args, _kwargs) - return val - def ClientToScreenXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ClientToScreenXY,(self,) + _args, _kwargs) - return val - def ClientToScreen(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ClientToScreen,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def Close(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Close,(self,) + _args, _kwargs) - return val - def Destroy(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Destroy,(self,) + _args, _kwargs) - return val - def DestroyChildren(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_DestroyChildren,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Enable,(self,) + _args, _kwargs) - return val - def FindWindowById(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_FindWindowById,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def FindWindowByName(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_FindWindowByName,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def Fit(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Fit,(self,) + _args, _kwargs) - return val - def GetBackgroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetCharHeight(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetCharHeight,(self,) + _args, _kwargs) - return val - def GetCharWidth(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetCharWidth,(self,) + _args, _kwargs) - return val - def GetClientSizeTuple(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetClientSizeTuple,(self,) + _args, _kwargs) - return val - def GetClientSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetClientSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetConstraints(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetConstraints,(self,) + _args, _kwargs) - if val: val = wxLayoutConstraintsPtr(val) - return val - def GetFont(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetForegroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetForegroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetGrandParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetGrandParent,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetId(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetId,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetLabel,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetLabel,(self,) + _args, _kwargs) - return val - def GetName(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetName,(self,) + _args, _kwargs) - return val - def GetParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetParent,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetPositionTuple(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetPositionTuple,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetRect(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetScrollThumb(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetScrollThumb,(self,) + _args, _kwargs) - return val - def GetScrollPos(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetScrollPos,(self,) + _args, _kwargs) - return val - def GetScrollRange(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetScrollRange,(self,) + _args, _kwargs) - return val - def GetSizeTuple(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetSizeTuple,(self,) + _args, _kwargs) - return val - def GetSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetTextExtent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetTextExtent,(self,) + _args, _kwargs) - return val - def GetFullTextExtent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetFullTextExtent,(self,) + _args, _kwargs) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetTitle,(self,) + _args, _kwargs) - return val - def GetUpdateRegion(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetUpdateRegion,(self,) + _args, _kwargs) - if val: val = wxRegionPtr(val) ; val.thisown = 1 - return val - def GetWindowStyleFlag(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetWindowStyleFlag,(self,) + _args, _kwargs) - return val - def Hide(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Hide,(self,) + _args, _kwargs) - return val - def InitDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_InitDialog,(self,) + _args, _kwargs) - return val - def IsEnabled(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsEnabled,(self,) + _args, _kwargs) - return val - def IsRetained(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsRetained,(self,) + _args, _kwargs) - return val - def IsShown(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsShown,(self,) + _args, _kwargs) - return val - def IsTopLevel(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsTopLevel,(self,) + _args, _kwargs) - return val - def Layout(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Layout,(self,) + _args, _kwargs) - return val - def LoadFromResource(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_LoadFromResource,(self,) + _args, _kwargs) - return val - def Lower(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Lower,(self,) + _args, _kwargs) - return val - def MakeModal(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_MakeModal,(self,) + _args, _kwargs) - return val - def MoveXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_MoveXY,(self,) + _args, _kwargs) - return val - def Move(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Move,(self,) + _args, _kwargs) - return val - def PopupMenuXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_PopupMenuXY,(self,) + _args, _kwargs) - return val - def PopupMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_PopupMenu,(self,) + _args, _kwargs) - return val - def Raise(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Raise,(self,) + _args, _kwargs) - return val - def Refresh(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Refresh,(self,) + _args, _kwargs) - return val - def ReleaseMouse(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ReleaseMouse,(self,) + _args, _kwargs) - return val - def Reparent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Reparent,(self,) + _args, _kwargs) - return val - def ScreenToClientXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ScreenToClientXY,(self,) + _args, _kwargs) - return val - def ScreenToClient(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ScreenToClient,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ScrollWindow(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ScrollWindow,(self,) + _args, _kwargs) - return val - def SetAcceleratorTable(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetAcceleratorTable,(self,) + _args, _kwargs) - return val - def SetAutoLayout(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetAutoLayout,(self,) + _args, _kwargs) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def SetConstraints(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetConstraints,(self,) + _args, _kwargs) - return val - def SetFocus(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetFocus,(self,) + _args, _kwargs) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetFont,(self,) + _args, _kwargs) - return val - def SetForegroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetForegroundColour,(self,) + _args, _kwargs) - return val - def SetId(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetId,(self,) + _args, _kwargs) - return val - def SetName(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetName,(self,) + _args, _kwargs) - return val - def SetScrollbar(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetScrollbar,(self,) + _args, _kwargs) - return val - def SetScrollPos(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetScrollPos,(self,) + _args, _kwargs) - return val - def SetDimensions(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetDimensions,(self,) + _args, _kwargs) - return val - def SetSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetSize,(self,) + _args, _kwargs) - return val - def SetPosition(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetPosition,(self,) + _args, _kwargs) - return val - def SetSizeHints(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetSizeHints,(self,) + _args, _kwargs) - return val - def SetClientSizeWH(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetClientSizeWH,(self,) + _args, _kwargs) - return val - def SetClientSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetClientSize,(self,) + _args, _kwargs) - return val - def SetCursor(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetCursor,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetTitle,(self,) + _args, _kwargs) - return val - def Show(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Show,(self,) + _args, _kwargs) - return val - def TransferDataFromWindow(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_TransferDataFromWindow,(self,) + _args, _kwargs) - return val - def TransferDataToWindow(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_TransferDataToWindow,(self,) + _args, _kwargs) - return val - def Validate(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Validate,(self,) + _args, _kwargs) - return val - def WarpPointer(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_WarpPointer,(self,) + _args, _kwargs) - return val - def ConvertDialogPointToPixels(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertDialogPointToPixels,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ConvertDialogSizeToPixels(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertDialogSizeToPixels,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def DLG_PNT(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_DLG_PNT,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def DLG_SZE(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_DLG_SZE,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def ConvertPixelPointToDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertPixelPointToDialog,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ConvertPixelSizeToDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertPixelSizeToDialog,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def SetToolTipString(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetToolTipString,(self,) + _args, _kwargs) - return val - def SetToolTip(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetToolTip,(self,) + _args, _kwargs) - return val - def GetToolTip(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetToolTip,(self,) + _args, _kwargs) - if val: val = wxToolTipPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxWindow(wxWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxWindow,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxPanelPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def InitDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxPanel_InitDialog,(self,) + _args, _kwargs) - return val - def GetDefaultItem(self, *_args, **_kwargs): - val = apply(windowsc.wxPanel_GetDefaultItem,(self,) + _args, _kwargs) - if val: val = wxButtonPtr(val) - return val - def SetDefaultItem(self, *_args, **_kwargs): - val = apply(windowsc.wxPanel_SetDefaultItem,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) - - def GetDefaultItem(self): - import controls - val = windowsc.wxPanel_GetDefaultItem(self.this) - val = controls.wxButtonPtr(val) - return val - -class wxPanel(wxPanelPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxPanel,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxDialogPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Centre(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_Centre,(self,) + _args, _kwargs) - return val - def EndModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_EndModal,(self,) + _args, _kwargs) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_GetTitle,(self,) + _args, _kwargs) - return val - def Iconize(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_Iconize,(self,) + _args, _kwargs) - return val - def IsIconized(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_IsIconized,(self,) + _args, _kwargs) - return val - def SetModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_SetModal,(self,) + _args, _kwargs) - return val - def IsModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_IsModal,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_SetTitle,(self,) + _args, _kwargs) - return val - def Show(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_Show,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_ShowModal,(self,) + _args, _kwargs) - return val - def GetReturnCode(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_GetReturnCode,(self,) + _args, _kwargs) - return val - def SetReturnCode(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_SetReturnCode,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxDialog(wxDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxScrolledWindowPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def EnableScrolling(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_EnableScrolling,(self,) + _args, _kwargs) - return val - def GetScrollPixelsPerUnit(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_GetScrollPixelsPerUnit,(self,) + _args, _kwargs) - return val - def GetVirtualSize(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_GetVirtualSize,(self,) + _args, _kwargs) - return val - def IsRetained(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_IsRetained,(self,) + _args, _kwargs) - return val - def PrepareDC(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_PrepareDC,(self,) + _args, _kwargs) - return val - def Scroll(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_Scroll,(self,) + _args, _kwargs) - return val - def SetScrollbars(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_SetScrollbars,(self,) + _args, _kwargs) - return val - def ViewStart(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_ViewStart,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxScrolledWindow(wxScrolledWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxScrolledWindow,_args,_kwargs) - 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, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Append,(self,) + _args, _kwargs) - return val - def AppendMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_AppendMenu,(self,) + _args, _kwargs) - return val - def AppendSeparator(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_AppendSeparator,(self,) + _args, _kwargs) - return val - def Break(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Break,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Check,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Enable,(self,) + _args, _kwargs) - return val - def FindItem(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_FindItem,(self,) + _args, _kwargs) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_GetTitle,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_SetTitle,(self,) + _args, _kwargs) - return val - def FindItemForId(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_FindItemForId,(self,) + _args, _kwargs) - if val: val = wxMenuItemPtr(val) - return val - def GetHelpString(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_GetHelpString,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_GetLabel,(self,) + _args, _kwargs) - return val - def SetHelpString(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_SetHelpString,(self,) + _args, _kwargs) - return val - def IsChecked(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_IsChecked,(self,) + _args, _kwargs) - return val - def IsEnabled(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_IsEnabled,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_SetLabel,(self,) + _args, _kwargs) - return val - def UpdateUI(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_UpdateUI,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMenu(wxMenuPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxMenu,_args,_kwargs) - self.thisown = 1 - - - - -class wxMenuBarPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Append,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Check,(self,) + _args, _kwargs) - return val - def Checked(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Checked,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Enable,(self,) + _args, _kwargs) - return val - def Enabled(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Enabled,(self,) + _args, _kwargs) - return val - def FindMenuItem(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_FindMenuItem,(self,) + _args, _kwargs) - return val - def FindItemForId(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_FindItemForId,(self,) + _args, _kwargs) - if val: val = wxMenuItemPtr(val) - return val - def GetMenuCount(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_GetMenuCount,(self,) + _args, _kwargs) - return val - def GetMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_GetMenu,(self,) + _args, _kwargs) - if val: val = wxMenuPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxMenuBar(wxMenuBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxMenuBar,_args,_kwargs) - self.thisown = 1 - - - - -class wxMenuItemPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsSeparator(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsSeparator,(self,) + _args, _kwargs) - return val - def IsEnabled(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsEnabled,(self,) + _args, _kwargs) - return val - def IsChecked(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsChecked,(self,) + _args, _kwargs) - return val - def IsCheckable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsCheckable,(self,) + _args, _kwargs) - return val - def GetId(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetId,(self,) + _args, _kwargs) - return val - def GetSubMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetSubMenu,(self,) + _args, _kwargs) - if val: val = wxMenuPtr(val) - return val - def SetName(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetName,(self,) + _args, _kwargs) - return val - def GetName(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetName,(self,) + _args, _kwargs) - return val - def GetHelp(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetHelp,(self,) + _args, _kwargs) - return val - def SetHelp(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetHelp,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_Enable,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_Check,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMenuItem(wxMenuItemPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxMenuItem,_args,_kwargs) - 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 45b768ecb9..0000000000 --- a/utils/wxPython/src/gtk/windows2.cpp +++ /dev/null @@ -1,5305 +0,0 @@ -/* - * FILE : gtk/windows2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -#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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxGridCell(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGridCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxGridCell",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetTextValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetTextValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetFont. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetBackgroundColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetBackgroundBrush",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGridCell_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxGridCell_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridCell * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridCell_SetAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetCellBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetCellBitmap",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetCellBitmap. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "grid"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxGrid",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGrid. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGrid. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGrid_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_AdjustScrollbars(_swigobj) (_swigobj->AdjustScrollbars()) -static PyObject *_wrap_wxGrid_AdjustScrollbars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_AdjustScrollbars",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - bool _arg2 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:wxGrid_AppendCols",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - bool _arg2 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:wxGrid_AppendRows",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_BeginBatch",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg3 = &temp; -} -{ - _arg4 = &temp0; -} - if(!PyArg_ParseTuple(args,"Oii:wxGrid_CellHitTest",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (short ) wxGRID_DEFAULT_CELL_WIDTH; - short _arg4 = (short ) wxGRID_DEFAULT_CELL_HEIGHT; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|hh:wxGrid_CreateGrid",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_CurrentCellVisible",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_DeleteCols",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_DeleteRows",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_EndBatch",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetBatchCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCell",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellAlignment",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellBackgroundColour",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetDefCellBackgroundColour(_swigobj) (_swigobj->GetCellBackgroundColour()) -static PyObject *_wrap_wxGrid_GetDefCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject * wxGrid_GetCells(wxGrid *self) { - int row, col; - PyObject* rows = PyList_New(0); - for (row=0; row < self->GetRows(); row++) { - PyObject* rowList = PyList_New(0); - for (col=0; col < self->GetCols(); col++) { - wxGridCell* cell = self->GetCell(row, col); - -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); - wxPyInEvent = true; -#endif - PyObject* pyCell = wxPyConstructObject(cell, "wxGridCell"); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); - wxPyInEvent = false; -#endif - - if (PyList_Append(rowList, pyCell) == -1) - return NULL; - } - if (PyList_Append(rows, rowList) == -1) - return NULL; - } - return rows; - } -static PyObject *_wrap_wxGrid_GetCells(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCells",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCells. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxGrid_GetCells(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellTextColour",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetDefCellTextColour(_swigobj) (_swigobj->GetCellTextColour()) -static PyObject *_wrap_wxGrid_GetDefCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellTextFont",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetDefCellTextFont(_swigobj) (_swigobj->GetCellTextFont()) -static PyObject *_wrap_wxGrid_GetDefCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellTextFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellValue",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCols",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetColumnWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCurrentRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCursorColumn",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCursorRow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetEditable",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetHorizScrollBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetLabelAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetLabelBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetLabelSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetLabelTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetLabelTextFont(_swigobj) (_swigobj->GetLabelTextFont()) -static PyObject *_wrap_wxGrid_GetLabelTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetLabelTextFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetLabelValue",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetRowHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetRows",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetScrollPosX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetScrollPosY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetTextItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetVertScrollBar(_swigobj) (_swigobj->GetVertScrollBar()) -static PyObject *_wrap_wxGrid_GetVertScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetVertScrollBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_InsertCols",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_InsertRows",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_OnActivate",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiii:wxGrid_SetCellAlignment",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_SetDefCellAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellBackgroundColour",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDefCellBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellTextColour",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDefCellTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellTextFont",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDefCellTextFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellValue",&_argo0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetColumnWidth",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDividerPen",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDividerPen. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_SetEditable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetGridCursor",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetLabelAlignment",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetLabelBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetLabelSize",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetLabelTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetLabelTextFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOi:wxGrid_SetLabelValue",&_argo0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetRowHeight",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_UpdateDimensions",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxGrid_GetEditInPlace(_swigobj) (_swigobj->GetEditInPlace()) -static PyObject *_wrap_wxGrid_GetEditInPlace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetEditInPlace",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetEditInPlace. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_GetEditInPlace(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_SetEditInPlace(_swigobj,_swigarg0) (_swigobj->SetEditInPlace(_swigarg0)) -static PyObject *_wrap_wxGrid_SetEditInPlace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1 = (int ) TRUE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxGrid_SetEditInPlace",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetEditInPlace. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetEditInPlace(_arg0,_arg1); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_row_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_row_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_col_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_col_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_control_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_control_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_shift_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_shift_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridEvent_m_cell_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_set. Expected _wxGridEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_cell_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGridEvent_GetRow(_swigobj) (_swigobj->GetRow()) -static PyObject *_wrap_wxGridEvent_GetRow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetRow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetRow. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_GetRow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_GetCol(_swigobj) (_swigobj->GetCol()) -static PyObject *_wrap_wxGridEvent_GetCol(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetCol",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetCol. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_GetCol(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxGridEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetPosition. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxGridEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridEvent_ControlDown(_swigobj) (_swigobj->ControlDown()) -static PyObject *_wrap_wxGridEvent_ControlDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_ControlDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_ControlDown. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_ControlDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_ShiftDown(_swigobj) (_swigobj->ShiftDown()) -static PyObject *_wrap_wxGridEvent_ShiftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_ShiftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_ShiftDown. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_ShiftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_GetCell(_swigobj) (_swigobj->GetCell()) -static PyObject *_wrap_wxGridEvent_GetCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetCell",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetCell. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGridEvent_GetCell(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static void *SwigwxNotebookEventTowxNotifyEvent(void *ptr) { - wxNotebookEvent *src; - wxNotifyEvent *dest; - src = (wxNotebookEvent *) ptr; - dest = (wxNotifyEvent *) src; - return (void *) dest; -} - -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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebookEvent_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebookEvent_GetOldSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxNotebookEvent_SetOldSelection(_swigobj,_swigarg0) (_swigobj->SetOldSelection(_swigarg0)) -static PyObject *_wrap_wxNotebookEvent_SetOldSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebookEvent * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebookEvent_SetOldSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_SetOldSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebookEvent_SetOldSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxNotebookEvent_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxNotebookEvent_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebookEvent * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebookEvent_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_SetSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebookEvent_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "notebook"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxNotebook",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxNotebook. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxNotebook. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebook_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxNotebook_GetPageCount(_swigobj) (_swigobj->GetPageCount()) -static PyObject *_wrap_wxNotebook_GetPageCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetPageCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxNotebook_AdvanceSelection",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxNotebook_SetPageText",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_GetPageText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxNotebook_SetImageList",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetImageList. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_GetPageImage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxNotebook_SetPageImage",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetRowCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_DeletePage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_RemovePage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_DeleteAllPages",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) FALSE; - int _arg4 = (int ) -1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|ii:wxNotebook_AddPage",&_argo0,&_argo1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AddPage. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - wxWindow * _result; - wxNotebook * _arg0; - int _arg1; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_GetPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxWindow *)wxNotebook_GetPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_ResizeChildren",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 *SwigwxSplitterEventTowxCommandEvent(void *ptr) { - wxSplitterEvent *src; - wxCommandEvent *dest; - src = (wxSplitterEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxSplitterEventTowxEvent(void *ptr) { - wxSplitterEvent *src; - wxEvent *dest; - src = (wxSplitterEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxSplitterEvent_GetSashPosition(_swigobj) (_swigobj->GetSashPosition()) -static PyObject *_wrap_wxSplitterEvent_GetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetSashPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetSashPosition. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterEvent_GetSashPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterEvent_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxSplitterEvent_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetX. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterEvent_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterEvent_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxSplitterEvent_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetY. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterEvent_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterEvent_GetWindowBeingRemoved(_swigobj) (_swigobj->GetWindowBeingRemoved()) -static PyObject *_wrap_wxSplitterEvent_GetWindowBeingRemoved(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetWindowBeingRemoved",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetWindowBeingRemoved. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxSplitterEvent_GetWindowBeingRemoved(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSplitterEvent_SetSashPosition(_swigobj,_swigarg0) (_swigobj->SetSashPosition(_swigarg0)) -static PyObject *_wrap_wxSplitterEvent_SetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterEvent * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterEvent_SetSashPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_SetSashPosition. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterEvent_SetSashPosition(_arg0,_arg1); - - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxSP_3D|wxCLIP_CHILDREN; - char * _arg5 = (char *) "splitterWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxSplitterWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSplitterWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSplitterWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSplitterWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSplitterWindow_GetBorderSize(_swigobj) (_swigobj->GetBorderSize()) -static PyObject *_wrap_wxSplitterWindow_GetBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetBorderSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetMinimumPaneSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetSashPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetSashSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetSplitMode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetWindow1",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSplitterWindow_GetWindow2(_swigobj) (_swigobj->GetWindow2()) -static PyObject *_wrap_wxSplitterWindow_GetWindow2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetWindow2",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxSplitterWindow_Initialize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Initialize. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_IsSplit",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetBorderSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) TRUE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|i:wxSplitterWindow_SetSashPosition",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetSashSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetMinimumPaneSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetSplitMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|i:wxSplitterWindow_SplitHorizontally",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitHorizontally. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|i:wxSplitterWindow_SplitVertically",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitVertically. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxWindow *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxSplitterWindow_Unsplit",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Unsplit. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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, METH_VARARGS }, - { "wxSplitterWindow_SplitVertically", _wrap_wxSplitterWindow_SplitVertically, METH_VARARGS }, - { "wxSplitterWindow_SplitHorizontally", _wrap_wxSplitterWindow_SplitHorizontally, METH_VARARGS }, - { "wxSplitterWindow_SetSplitMode", _wrap_wxSplitterWindow_SetSplitMode, METH_VARARGS }, - { "wxSplitterWindow_SetMinimumPaneSize", _wrap_wxSplitterWindow_SetMinimumPaneSize, METH_VARARGS }, - { "wxSplitterWindow_SetSashSize", _wrap_wxSplitterWindow_SetSashSize, METH_VARARGS }, - { "wxSplitterWindow_SetSashPosition", _wrap_wxSplitterWindow_SetSashPosition, METH_VARARGS }, - { "wxSplitterWindow_SetBorderSize", _wrap_wxSplitterWindow_SetBorderSize, METH_VARARGS }, - { "wxSplitterWindow_IsSplit", _wrap_wxSplitterWindow_IsSplit, METH_VARARGS }, - { "wxSplitterWindow_Initialize", _wrap_wxSplitterWindow_Initialize, METH_VARARGS }, - { "wxSplitterWindow_GetWindow2", _wrap_wxSplitterWindow_GetWindow2, METH_VARARGS }, - { "wxSplitterWindow_GetWindow1", _wrap_wxSplitterWindow_GetWindow1, METH_VARARGS }, - { "wxSplitterWindow_GetSplitMode", _wrap_wxSplitterWindow_GetSplitMode, METH_VARARGS }, - { "wxSplitterWindow_GetSashSize", _wrap_wxSplitterWindow_GetSashSize, METH_VARARGS }, - { "wxSplitterWindow_GetSashPosition", _wrap_wxSplitterWindow_GetSashPosition, METH_VARARGS }, - { "wxSplitterWindow_GetMinimumPaneSize", _wrap_wxSplitterWindow_GetMinimumPaneSize, METH_VARARGS }, - { "wxSplitterWindow_GetBorderSize", _wrap_wxSplitterWindow_GetBorderSize, METH_VARARGS }, - { "new_wxSplitterWindow", _wrap_new_wxSplitterWindow, METH_VARARGS }, - { "wxSplitterEvent_SetSashPosition", _wrap_wxSplitterEvent_SetSashPosition, METH_VARARGS }, - { "wxSplitterEvent_GetWindowBeingRemoved", _wrap_wxSplitterEvent_GetWindowBeingRemoved, METH_VARARGS }, - { "wxSplitterEvent_GetY", _wrap_wxSplitterEvent_GetY, METH_VARARGS }, - { "wxSplitterEvent_GetX", _wrap_wxSplitterEvent_GetX, METH_VARARGS }, - { "wxSplitterEvent_GetSashPosition", _wrap_wxSplitterEvent_GetSashPosition, METH_VARARGS }, - { "wxNotebook_ResizeChildren", _wrap_wxNotebook_ResizeChildren, METH_VARARGS }, - { "wxNotebook_GetPage", _wrap_wxNotebook_GetPage, METH_VARARGS }, - { "wxNotebook_AddPage", _wrap_wxNotebook_AddPage, METH_VARARGS }, - { "wxNotebook_DeleteAllPages", _wrap_wxNotebook_DeleteAllPages, METH_VARARGS }, - { "wxNotebook_RemovePage", _wrap_wxNotebook_RemovePage, METH_VARARGS }, - { "wxNotebook_DeletePage", _wrap_wxNotebook_DeletePage, METH_VARARGS }, - { "wxNotebook_GetRowCount", _wrap_wxNotebook_GetRowCount, METH_VARARGS }, - { "wxNotebook_SetPageImage", _wrap_wxNotebook_SetPageImage, METH_VARARGS }, - { "wxNotebook_GetPageImage", _wrap_wxNotebook_GetPageImage, METH_VARARGS }, - { "wxNotebook_GetImageList", _wrap_wxNotebook_GetImageList, METH_VARARGS }, - { "wxNotebook_SetImageList", _wrap_wxNotebook_SetImageList, METH_VARARGS }, - { "wxNotebook_GetPageText", _wrap_wxNotebook_GetPageText, METH_VARARGS }, - { "wxNotebook_SetPageText", _wrap_wxNotebook_SetPageText, METH_VARARGS }, - { "wxNotebook_GetSelection", _wrap_wxNotebook_GetSelection, METH_VARARGS }, - { "wxNotebook_AdvanceSelection", _wrap_wxNotebook_AdvanceSelection, METH_VARARGS }, - { "wxNotebook_SetSelection", _wrap_wxNotebook_SetSelection, METH_VARARGS }, - { "wxNotebook_GetPageCount", _wrap_wxNotebook_GetPageCount, METH_VARARGS }, - { "new_wxNotebook", _wrap_new_wxNotebook, METH_VARARGS }, - { "wxNotebookEvent_SetSelection", _wrap_wxNotebookEvent_SetSelection, METH_VARARGS }, - { "wxNotebookEvent_SetOldSelection", _wrap_wxNotebookEvent_SetOldSelection, METH_VARARGS }, - { "wxNotebookEvent_GetOldSelection", _wrap_wxNotebookEvent_GetOldSelection, METH_VARARGS }, - { "wxNotebookEvent_GetSelection", _wrap_wxNotebookEvent_GetSelection, METH_VARARGS }, - { "wxGridEvent_GetCell", _wrap_wxGridEvent_GetCell, METH_VARARGS }, - { "wxGridEvent_ShiftDown", _wrap_wxGridEvent_ShiftDown, METH_VARARGS }, - { "wxGridEvent_ControlDown", _wrap_wxGridEvent_ControlDown, METH_VARARGS }, - { "wxGridEvent_GetPosition", _wrap_wxGridEvent_GetPosition, METH_VARARGS }, - { "wxGridEvent_GetCol", _wrap_wxGridEvent_GetCol, METH_VARARGS }, - { "wxGridEvent_GetRow", _wrap_wxGridEvent_GetRow, METH_VARARGS }, - { "wxGridEvent_m_cell_get", _wrap_wxGridEvent_m_cell_get, METH_VARARGS }, - { "wxGridEvent_m_cell_set", _wrap_wxGridEvent_m_cell_set, METH_VARARGS }, - { "wxGridEvent_m_shift_get", _wrap_wxGridEvent_m_shift_get, METH_VARARGS }, - { "wxGridEvent_m_shift_set", _wrap_wxGridEvent_m_shift_set, METH_VARARGS }, - { "wxGridEvent_m_control_get", _wrap_wxGridEvent_m_control_get, METH_VARARGS }, - { "wxGridEvent_m_control_set", _wrap_wxGridEvent_m_control_set, METH_VARARGS }, - { "wxGridEvent_m_y_get", _wrap_wxGridEvent_m_y_get, METH_VARARGS }, - { "wxGridEvent_m_y_set", _wrap_wxGridEvent_m_y_set, METH_VARARGS }, - { "wxGridEvent_m_x_get", _wrap_wxGridEvent_m_x_get, METH_VARARGS }, - { "wxGridEvent_m_x_set", _wrap_wxGridEvent_m_x_set, METH_VARARGS }, - { "wxGridEvent_m_col_get", _wrap_wxGridEvent_m_col_get, METH_VARARGS }, - { "wxGridEvent_m_col_set", _wrap_wxGridEvent_m_col_set, METH_VARARGS }, - { "wxGridEvent_m_row_get", _wrap_wxGridEvent_m_row_get, METH_VARARGS }, - { "wxGridEvent_m_row_set", _wrap_wxGridEvent_m_row_set, METH_VARARGS }, - { "wxGrid_SetEditInPlace", _wrap_wxGrid_SetEditInPlace, METH_VARARGS }, - { "wxGrid_GetEditInPlace", _wrap_wxGrid_GetEditInPlace, METH_VARARGS }, - { "wxGrid_UpdateDimensions", _wrap_wxGrid_UpdateDimensions, METH_VARARGS }, - { "wxGrid_SetRowHeight", _wrap_wxGrid_SetRowHeight, METH_VARARGS }, - { "wxGrid_SetLabelValue", _wrap_wxGrid_SetLabelValue, METH_VARARGS }, - { "wxGrid_SetLabelTextFont", _wrap_wxGrid_SetLabelTextFont, METH_VARARGS }, - { "wxGrid_SetLabelTextColour", _wrap_wxGrid_SetLabelTextColour, METH_VARARGS }, - { "wxGrid_SetLabelSize", _wrap_wxGrid_SetLabelSize, METH_VARARGS }, - { "wxGrid_SetLabelBackgroundColour", _wrap_wxGrid_SetLabelBackgroundColour, METH_VARARGS }, - { "wxGrid_SetLabelAlignment", _wrap_wxGrid_SetLabelAlignment, METH_VARARGS }, - { "wxGrid_SetGridCursor", _wrap_wxGrid_SetGridCursor, METH_VARARGS }, - { "wxGrid_SetEditable", _wrap_wxGrid_SetEditable, METH_VARARGS }, - { "wxGrid_SetDividerPen", _wrap_wxGrid_SetDividerPen, METH_VARARGS }, - { "wxGrid_SetColumnWidth", _wrap_wxGrid_SetColumnWidth, METH_VARARGS }, - { "wxGrid_SetCellValue", _wrap_wxGrid_SetCellValue, METH_VARARGS }, - { "wxGrid_SetDefCellTextFont", _wrap_wxGrid_SetDefCellTextFont, METH_VARARGS }, - { "wxGrid_SetCellTextFont", _wrap_wxGrid_SetCellTextFont, METH_VARARGS }, - { "wxGrid_SetDefCellTextColour", _wrap_wxGrid_SetDefCellTextColour, METH_VARARGS }, - { "wxGrid_SetCellTextColour", _wrap_wxGrid_SetCellTextColour, METH_VARARGS }, - { "wxGrid_SetDefCellBackgroundColour", _wrap_wxGrid_SetDefCellBackgroundColour, METH_VARARGS }, - { "wxGrid_SetCellBackgroundColour", _wrap_wxGrid_SetCellBackgroundColour, METH_VARARGS }, - { "wxGrid_SetDefCellAlignment", _wrap_wxGrid_SetDefCellAlignment, METH_VARARGS }, - { "wxGrid_SetCellAlignment", _wrap_wxGrid_SetCellAlignment, METH_VARARGS }, - { "wxGrid_OnActivate", _wrap_wxGrid_OnActivate, METH_VARARGS }, - { "wxGrid_InsertRows", _wrap_wxGrid_InsertRows, METH_VARARGS }, - { "wxGrid_InsertCols", _wrap_wxGrid_InsertCols, METH_VARARGS }, - { "wxGrid_GetVertScrollBar", _wrap_wxGrid_GetVertScrollBar, METH_VARARGS }, - { "wxGrid_GetTextItem", _wrap_wxGrid_GetTextItem, METH_VARARGS }, - { "wxGrid_GetScrollPosY", _wrap_wxGrid_GetScrollPosY, METH_VARARGS }, - { "wxGrid_GetScrollPosX", _wrap_wxGrid_GetScrollPosX, METH_VARARGS }, - { "wxGrid_GetRows", _wrap_wxGrid_GetRows, METH_VARARGS }, - { "wxGrid_GetRowHeight", _wrap_wxGrid_GetRowHeight, METH_VARARGS }, - { "wxGrid_GetLabelValue", _wrap_wxGrid_GetLabelValue, METH_VARARGS }, - { "wxGrid_GetLabelTextFont", _wrap_wxGrid_GetLabelTextFont, METH_VARARGS }, - { "wxGrid_GetLabelTextColour", _wrap_wxGrid_GetLabelTextColour, METH_VARARGS }, - { "wxGrid_GetLabelSize", _wrap_wxGrid_GetLabelSize, METH_VARARGS }, - { "wxGrid_GetLabelBackgroundColour", _wrap_wxGrid_GetLabelBackgroundColour, METH_VARARGS }, - { "wxGrid_GetLabelAlignment", _wrap_wxGrid_GetLabelAlignment, METH_VARARGS }, - { "wxGrid_GetHorizScrollBar", _wrap_wxGrid_GetHorizScrollBar, METH_VARARGS }, - { "wxGrid_GetEditable", _wrap_wxGrid_GetEditable, METH_VARARGS }, - { "wxGrid_GetCursorRow", _wrap_wxGrid_GetCursorRow, METH_VARARGS }, - { "wxGrid_GetCursorColumn", _wrap_wxGrid_GetCursorColumn, METH_VARARGS }, - { "wxGrid_GetCurrentRect", _wrap_wxGrid_GetCurrentRect, METH_VARARGS }, - { "wxGrid_GetColumnWidth", _wrap_wxGrid_GetColumnWidth, METH_VARARGS }, - { "wxGrid_GetCols", _wrap_wxGrid_GetCols, METH_VARARGS }, - { "wxGrid_GetCellValue", _wrap_wxGrid_GetCellValue, METH_VARARGS }, - { "wxGrid_GetDefCellTextFont", _wrap_wxGrid_GetDefCellTextFont, METH_VARARGS }, - { "wxGrid_GetCellTextFont", _wrap_wxGrid_GetCellTextFont, METH_VARARGS }, - { "wxGrid_GetDefCellTextColour", _wrap_wxGrid_GetDefCellTextColour, METH_VARARGS }, - { "wxGrid_GetCellTextColour", _wrap_wxGrid_GetCellTextColour, METH_VARARGS }, - { "wxGrid_GetCells", _wrap_wxGrid_GetCells, METH_VARARGS }, - { "wxGrid_GetDefCellBackgroundColour", _wrap_wxGrid_GetDefCellBackgroundColour, METH_VARARGS }, - { "wxGrid_GetCellBackgroundColour", _wrap_wxGrid_GetCellBackgroundColour, METH_VARARGS }, - { "wxGrid_GetDefCellAlignment", _wrap_wxGrid_GetDefCellAlignment, METH_VARARGS }, - { "wxGrid_GetCellAlignment", _wrap_wxGrid_GetCellAlignment, METH_VARARGS }, - { "wxGrid_GetCell", _wrap_wxGrid_GetCell, METH_VARARGS }, - { "wxGrid_GetBatchCount", _wrap_wxGrid_GetBatchCount, METH_VARARGS }, - { "wxGrid_EndBatch", _wrap_wxGrid_EndBatch, METH_VARARGS }, - { "wxGrid_DeleteRows", _wrap_wxGrid_DeleteRows, METH_VARARGS }, - { "wxGrid_DeleteCols", _wrap_wxGrid_DeleteCols, METH_VARARGS }, - { "wxGrid_CurrentCellVisible", _wrap_wxGrid_CurrentCellVisible, METH_VARARGS }, - { "wxGrid_CreateGrid", _wrap_wxGrid_CreateGrid, METH_VARARGS }, - { "wxGrid_CellHitTest", _wrap_wxGrid_CellHitTest, METH_VARARGS }, - { "wxGrid_BeginBatch", _wrap_wxGrid_BeginBatch, METH_VARARGS }, - { "wxGrid_AppendRows", _wrap_wxGrid_AppendRows, METH_VARARGS }, - { "wxGrid_AppendCols", _wrap_wxGrid_AppendCols, METH_VARARGS }, - { "wxGrid_AdjustScrollbars", _wrap_wxGrid_AdjustScrollbars, METH_VARARGS }, - { "new_wxGrid", _wrap_new_wxGrid, METH_VARARGS }, - { "wxGridCell_SetCellBitmap", _wrap_wxGridCell_SetCellBitmap, METH_VARARGS }, - { "wxGridCell_GetCellBitmap", _wrap_wxGridCell_GetCellBitmap, METH_VARARGS }, - { "wxGridCell_SetAlignment", _wrap_wxGridCell_SetAlignment, METH_VARARGS }, - { "wxGridCell_GetAlignment", _wrap_wxGridCell_GetAlignment, METH_VARARGS }, - { "wxGridCell_GetBackgroundBrush", _wrap_wxGridCell_GetBackgroundBrush, METH_VARARGS }, - { "wxGridCell_SetBackgroundColour", _wrap_wxGridCell_SetBackgroundColour, METH_VARARGS }, - { "wxGridCell_GetBackgroundColour", _wrap_wxGridCell_GetBackgroundColour, METH_VARARGS }, - { "wxGridCell_SetTextColour", _wrap_wxGridCell_SetTextColour, METH_VARARGS }, - { "wxGridCell_GetTextColour", _wrap_wxGridCell_GetTextColour, METH_VARARGS }, - { "wxGridCell_SetFont", _wrap_wxGridCell_SetFont, METH_VARARGS }, - { "wxGridCell_GetFont", _wrap_wxGridCell_GetFont, METH_VARARGS }, - { "wxGridCell_SetTextValue", _wrap_wxGridCell_SetTextValue, METH_VARARGS }, - { "wxGridCell_GetTextValue", _wrap_wxGridCell_GetTextValue, METH_VARARGS }, - { "delete_wxGridCell", _wrap_delete_wxGridCell, METH_VARARGS }, - { "new_wxGridCell", _wrap_new_wxGridCell, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_wxEvent","_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_class_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler}, - { "_class_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_wxNotifyEvent","_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxGrid",SwigwxGridTowxPanel}, - { "_wxPanel","_wxGrid",SwigwxGridTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_class_wxEvent","_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_class_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_class_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_class_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_class_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_wxCommandEvent","_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxGrid",SwigwxGridTowxPanel}, - { "_class_wxPanel","_wxGrid",SwigwxGridTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_class_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_class_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow}, - { "_class_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow}, - { "_class_wxWindow","_class_wxGrid",SwigwxGridTowxWindow}, - { "_class_wxWindow","_wxGrid",SwigwxGridTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl}, - { "_wxControl","_wxNotebook",SwigwxNotebookTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl}, - { "_class_wxControl","_wxNotebook",SwigwxNotebookTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler}, - { "_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow}, - { "_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow}, - { "_wxWindow","_class_wxGrid",SwigwxGridTowxWindow}, - { "_wxWindow","_wxGrid",SwigwxGridTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/windows2.py b/utils/wxPython/src/gtk/windows2.py deleted file mode 100644 index 41f6c2f894..0000000000 --- a/utils/wxPython/src/gtk/windows2.py +++ /dev/null @@ -1,595 +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,windows2c=windows2c): - if self.thisown == 1 : - windows2c.delete_wxGridCell(self) - def GetTextValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetTextValue,(self,) + _args, _kwargs) - return val - def SetTextValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetTextValue,(self,) + _args, _kwargs) - return val - def GetFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetFont,(self,) + _args, _kwargs) - return val - def GetTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def SetTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetTextColour,(self,) + _args, _kwargs) - return val - def GetBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def GetBackgroundBrush(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetBackgroundBrush,(self,) + _args, _kwargs) - if val: val = wxBrushPtr(val) - return val - def GetAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetAlignment,(self,) + _args, _kwargs) - return val - def SetAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetAlignment,(self,) + _args, _kwargs) - return val - def GetCellBitmap(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetCellBitmap,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def SetCellBitmap(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetCellBitmap,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxGridCell(wxGridCellPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxGridCell,_args,_kwargs) - self.thisown = 1 - - - - -class wxGridPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AdjustScrollbars(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_AdjustScrollbars,(self,) + _args, _kwargs) - return val - def AppendCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_AppendCols,(self,) + _args, _kwargs) - return val - def AppendRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_AppendRows,(self,) + _args, _kwargs) - return val - def BeginBatch(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_BeginBatch,(self,) + _args, _kwargs) - return val - def CellHitTest(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_CellHitTest,(self,) + _args, _kwargs) - return val - def CreateGrid(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_CreateGrid,(self,) + _args, _kwargs) - return val - def CurrentCellVisible(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_CurrentCellVisible,(self,) + _args, _kwargs) - return val - def DeleteCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_DeleteCols,(self,) + _args, _kwargs) - return val - def DeleteRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_DeleteRows,(self,) + _args, _kwargs) - return val - def EndBatch(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_EndBatch,(self,) + _args, _kwargs) - return val - def GetBatchCount(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetBatchCount,(self,) + _args, _kwargs) - return val - def GetCell(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCell,(self,) + _args, _kwargs) - if val: val = wxGridCellPtr(val) - return val - def GetCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellAlignment,(self,) + _args, _kwargs) - return val - def GetDefCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellAlignment,(self,) + _args, _kwargs) - return val - def GetCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetDefCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetCells(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCells,(self,) + _args, _kwargs) - return val - def GetCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetDefCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellTextFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetDefCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellTextFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetCellValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellValue,(self,) + _args, _kwargs) - return val - def GetCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCols,(self,) + _args, _kwargs) - return val - def GetColumnWidth(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetColumnWidth,(self,) + _args, _kwargs) - return val - def GetCurrentRect(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCurrentRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetCursorColumn(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCursorColumn,(self,) + _args, _kwargs) - return val - def GetCursorRow(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCursorRow,(self,) + _args, _kwargs) - return val - def GetEditable(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetEditable,(self,) + _args, _kwargs) - return val - def GetHorizScrollBar(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetHorizScrollBar,(self,) + _args, _kwargs) - if val: val = wxScrollBarPtr(val) - return val - def GetLabelAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelAlignment,(self,) + _args, _kwargs) - return val - def GetLabelBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetLabelSize(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelSize,(self,) + _args, _kwargs) - return val - def GetLabelTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetLabelTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelTextFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetLabelValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelValue,(self,) + _args, _kwargs) - return val - def GetRowHeight(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetRowHeight,(self,) + _args, _kwargs) - return val - def GetRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetRows,(self,) + _args, _kwargs) - return val - def GetScrollPosX(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetScrollPosX,(self,) + _args, _kwargs) - return val - def GetScrollPosY(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetScrollPosY,(self,) + _args, _kwargs) - return val - def GetTextItem(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetTextItem,(self,) + _args, _kwargs) - if val: val = wxTextCtrlPtr(val) - return val - def GetVertScrollBar(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetVertScrollBar,(self,) + _args, _kwargs) - if val: val = wxScrollBarPtr(val) - return val - def InsertCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_InsertCols,(self,) + _args, _kwargs) - return val - def InsertRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_InsertRows,(self,) + _args, _kwargs) - return val - def OnActivate(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_OnActivate,(self,) + _args, _kwargs) - return val - def SetCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellAlignment,(self,) + _args, _kwargs) - return val - def SetDefCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellAlignment,(self,) + _args, _kwargs) - return val - def SetCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellBackgroundColour,(self,) + _args, _kwargs) - return val - def SetDefCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellBackgroundColour,(self,) + _args, _kwargs) - return val - def SetCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellTextColour,(self,) + _args, _kwargs) - return val - def SetDefCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellTextColour,(self,) + _args, _kwargs) - return val - def SetCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellTextFont,(self,) + _args, _kwargs) - return val - def SetDefCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellTextFont,(self,) + _args, _kwargs) - return val - def SetCellValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellValue,(self,) + _args, _kwargs) - return val - def SetColumnWidth(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetColumnWidth,(self,) + _args, _kwargs) - return val - def SetDividerPen(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDividerPen,(self,) + _args, _kwargs) - return val - def SetEditable(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetEditable,(self,) + _args, _kwargs) - return val - def SetGridCursor(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetGridCursor,(self,) + _args, _kwargs) - return val - def SetLabelAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelAlignment,(self,) + _args, _kwargs) - return val - def SetLabelBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelBackgroundColour,(self,) + _args, _kwargs) - return val - def SetLabelSize(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelSize,(self,) + _args, _kwargs) - return val - def SetLabelTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelTextColour,(self,) + _args, _kwargs) - return val - def SetLabelTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelTextFont,(self,) + _args, _kwargs) - return val - def SetLabelValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelValue,(self,) + _args, _kwargs) - return val - def SetRowHeight(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetRowHeight,(self,) + _args, _kwargs) - return val - def UpdateDimensions(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_UpdateDimensions,(self,) + _args, _kwargs) - return val - def GetEditInPlace(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetEditInPlace,(self,) + _args, _kwargs) - return val - def SetEditInPlace(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetEditInPlace,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxGrid(wxGridPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxGrid,_args,_kwargs) - 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 GetRow(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetRow,(self,) + _args, _kwargs) - return val - def GetCol(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetCol,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ControlDown(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_ControlDown,(self,) + _args, _kwargs) - return val - def ShiftDown(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_ShiftDown,(self,) + _args, _kwargs) - return val - def GetCell(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetCell,(self,) + _args, _kwargs) - if val: val = wxGridCellPtr(val) - return val - def __setattr__(self,name,value): - if name == "m_row" : - windows2c.wxGridEvent_m_row_set(self,value) - return - if name == "m_col" : - windows2c.wxGridEvent_m_col_set(self,value) - return - if name == "m_x" : - windows2c.wxGridEvent_m_x_set(self,value) - return - if name == "m_y" : - windows2c.wxGridEvent_m_y_set(self,value) - return - if name == "m_control" : - windows2c.wxGridEvent_m_control_set(self,value) - return - if name == "m_shift" : - windows2c.wxGridEvent_m_shift_set(self,value) - return - if name == "m_cell" : - windows2c.wxGridEvent_m_cell_set(self,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_row" : - return windows2c.wxGridEvent_m_row_get(self) - if name == "m_col" : - return windows2c.wxGridEvent_m_col_get(self) - if name == "m_x" : - return windows2c.wxGridEvent_m_x_get(self) - if name == "m_y" : - return windows2c.wxGridEvent_m_y_get(self) - if name == "m_control" : - return windows2c.wxGridEvent_m_control_get(self) - if name == "m_shift" : - return windows2c.wxGridEvent_m_shift_get(self) - if name == "m_cell" : - return wxGridCellPtr(windows2c.wxGridEvent_m_cell_get(self)) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxGridEvent(wxGridEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxNotebookEventPtr(wxNotifyEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_GetSelection,(self,) + _args, _kwargs) - return val - def GetOldSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_GetOldSelection,(self,) + _args, _kwargs) - return val - def SetOldSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_SetOldSelection,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_SetSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPageCount,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetSelection,(self,) + _args, _kwargs) - return val - def AdvanceSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_AdvanceSelection,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetSelection,(self,) + _args, _kwargs) - return val - def SetPageText(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetPageText,(self,) + _args, _kwargs) - return val - def GetPageText(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPageText,(self,) + _args, _kwargs) - return val - def SetImageList(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetImageList,(self,) + _args, _kwargs) - return val - def GetImageList(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def GetPageImage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPageImage,(self,) + _args, _kwargs) - return val - def SetPageImage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetPageImage,(self,) + _args, _kwargs) - return val - def GetRowCount(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetRowCount,(self,) + _args, _kwargs) - return val - def DeletePage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_DeletePage,(self,) + _args, _kwargs) - return val - def RemovePage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_RemovePage,(self,) + _args, _kwargs) - return val - def DeleteAllPages(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_DeleteAllPages,(self,) + _args, _kwargs) - return val - def AddPage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_AddPage,(self,) + _args, _kwargs) - return val - def GetPage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPage,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def ResizeChildren(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_ResizeChildren,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxNotebook(wxNotebookPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxNotebook,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSplitterEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetSashPosition,(self,) + _args, _kwargs) - return val - def GetX(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetY,(self,) + _args, _kwargs) - return val - def GetWindowBeingRemoved(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetWindowBeingRemoved,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def SetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_SetSashPosition,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSplitterEvent(wxSplitterEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSplitterWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBorderSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetBorderSize,(self,) + _args, _kwargs) - return val - def GetMinimumPaneSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetMinimumPaneSize,(self,) + _args, _kwargs) - return val - def GetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetSashPosition,(self,) + _args, _kwargs) - return val - def GetSashSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetSashSize,(self,) + _args, _kwargs) - return val - def GetSplitMode(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetSplitMode,(self,) + _args, _kwargs) - return val - def GetWindow1(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetWindow1,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetWindow2(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetWindow2,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def Initialize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_Initialize,(self,) + _args, _kwargs) - return val - def IsSplit(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_IsSplit,(self,) + _args, _kwargs) - return val - def SetBorderSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetBorderSize,(self,) + _args, _kwargs) - return val - def SetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetSashPosition,(self,) + _args, _kwargs) - return val - def SetSashSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetSashSize,(self,) + _args, _kwargs) - return val - def SetMinimumPaneSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetMinimumPaneSize,(self,) + _args, _kwargs) - return val - def SetSplitMode(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetSplitMode,(self,) + _args, _kwargs) - return val - def SplitHorizontally(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SplitHorizontally,(self,) + _args, _kwargs) - return val - def SplitVertically(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SplitVertically,(self,) + _args, _kwargs) - return val - def Unsplit(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_Unsplit,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSplitterWindow(wxSplitterWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxSplitterWindow,_args,_kwargs) - 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 800d718af5..0000000000 --- a/utils/wxPython/src/gtk/windows3.cpp +++ /dev/null @@ -1,2039 +0,0 @@ -/* - * FILE : gtk/windows3.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashEvent_SetEdge",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashEvent_GetEdge",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxSashEvent_SetDragRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetDragRect. Expected _wxSashEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashEvent_GetDragRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashEvent_SetDragStatus",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashEvent_GetDragStatus",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxCLIP_CHILDREN|(wxSW_3D); - char * _arg5 = (char *) "sashWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxSashWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_GetSashVisible",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetDefaultBorderSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_GetEdgeMargin",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetExtraBorderSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMaximumSizeX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMaximumSizeY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMinimumSizeX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMinimumSizeY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_HasBorder",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetDefaultBorderSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetExtraBorderSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMaximumSizeX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMaximumSizeY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMinimumSizeX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMinimumSizeY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSashWindow_SetSashVisible",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSashWindow_SetSashBorder",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetRequestedLength",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetRequestedLength",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetFlags",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetFlags",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxQueryLayoutInfoEvent_SetSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetSize. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetOrientation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCalculateLayoutEvent_SetFlags",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCalculateLayoutEvent_GetFlags",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxCalculateLayoutEvent_SetRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_SetRect. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCalculateLayoutEvent_GetRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxCLIP_CHILDREN|(wxSW_3D); - char * _arg5 = (char *) "layoutWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxSashLayoutWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashLayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashLayoutWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashLayoutWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSashLayoutWindow_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxSashLayoutWindow_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlignment _result; - wxSashLayoutWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashLayoutWindow_GetAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashLayoutWindow_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashLayoutWindow_SetAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxSashLayoutWindow_SetDefaultSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetDefaultSize. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashLayoutWindow_SetOrientation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutAlgorithm_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxLayoutAlgorithm(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxLayoutAlgorithm(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlgorithm * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxLayoutAlgorithm",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxRect *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxLayoutAlgorithm_LayoutMDIFrame",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxMDIParentFrame_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxWindow *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxLayoutAlgorithm_LayoutFrame",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutFrame. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxWindow *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxLayoutAlgorithm_LayoutWindow",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutWindow. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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, METH_VARARGS }, - { "wxLayoutAlgorithm_LayoutFrame", _wrap_wxLayoutAlgorithm_LayoutFrame, METH_VARARGS }, - { "wxLayoutAlgorithm_LayoutMDIFrame", _wrap_wxLayoutAlgorithm_LayoutMDIFrame, METH_VARARGS }, - { "delete_wxLayoutAlgorithm", _wrap_delete_wxLayoutAlgorithm, METH_VARARGS }, - { "new_wxLayoutAlgorithm", _wrap_new_wxLayoutAlgorithm, METH_VARARGS }, - { "wxSashLayoutWindow_SetOrientation", _wrap_wxSashLayoutWindow_SetOrientation, METH_VARARGS }, - { "wxSashLayoutWindow_SetDefaultSize", _wrap_wxSashLayoutWindow_SetDefaultSize, METH_VARARGS }, - { "wxSashLayoutWindow_SetAlignment", _wrap_wxSashLayoutWindow_SetAlignment, METH_VARARGS }, - { "wxSashLayoutWindow_GetOrientation", _wrap_wxSashLayoutWindow_GetOrientation, METH_VARARGS }, - { "wxSashLayoutWindow_GetAlignment", _wrap_wxSashLayoutWindow_GetAlignment, METH_VARARGS }, - { "new_wxSashLayoutWindow", _wrap_new_wxSashLayoutWindow, METH_VARARGS }, - { "wxCalculateLayoutEvent_GetRect", _wrap_wxCalculateLayoutEvent_GetRect, METH_VARARGS }, - { "wxCalculateLayoutEvent_SetRect", _wrap_wxCalculateLayoutEvent_SetRect, METH_VARARGS }, - { "wxCalculateLayoutEvent_GetFlags", _wrap_wxCalculateLayoutEvent_GetFlags, METH_VARARGS }, - { "wxCalculateLayoutEvent_SetFlags", _wrap_wxCalculateLayoutEvent_SetFlags, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetAlignment", _wrap_wxQueryLayoutInfoEvent_GetAlignment, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetAlignment", _wrap_wxQueryLayoutInfoEvent_SetAlignment, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetOrientation", _wrap_wxQueryLayoutInfoEvent_GetOrientation, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetOrientation", _wrap_wxQueryLayoutInfoEvent_SetOrientation, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetSize", _wrap_wxQueryLayoutInfoEvent_GetSize, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetSize", _wrap_wxQueryLayoutInfoEvent_SetSize, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetFlags", _wrap_wxQueryLayoutInfoEvent_GetFlags, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetFlags", _wrap_wxQueryLayoutInfoEvent_SetFlags, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetRequestedLength", _wrap_wxQueryLayoutInfoEvent_GetRequestedLength, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetRequestedLength", _wrap_wxQueryLayoutInfoEvent_SetRequestedLength, METH_VARARGS }, - { "wxSashWindow_SetSashBorder", _wrap_wxSashWindow_SetSashBorder, METH_VARARGS }, - { "wxSashWindow_SetSashVisible", _wrap_wxSashWindow_SetSashVisible, METH_VARARGS }, - { "wxSashWindow_SetMinimumSizeY", _wrap_wxSashWindow_SetMinimumSizeY, METH_VARARGS }, - { "wxSashWindow_SetMinimumSizeX", _wrap_wxSashWindow_SetMinimumSizeX, METH_VARARGS }, - { "wxSashWindow_SetMaximumSizeY", _wrap_wxSashWindow_SetMaximumSizeY, METH_VARARGS }, - { "wxSashWindow_SetMaximumSizeX", _wrap_wxSashWindow_SetMaximumSizeX, METH_VARARGS }, - { "wxSashWindow_SetExtraBorderSize", _wrap_wxSashWindow_SetExtraBorderSize, METH_VARARGS }, - { "wxSashWindow_SetDefaultBorderSize", _wrap_wxSashWindow_SetDefaultBorderSize, METH_VARARGS }, - { "wxSashWindow_HasBorder", _wrap_wxSashWindow_HasBorder, METH_VARARGS }, - { "wxSashWindow_GetMinimumSizeY", _wrap_wxSashWindow_GetMinimumSizeY, METH_VARARGS }, - { "wxSashWindow_GetMinimumSizeX", _wrap_wxSashWindow_GetMinimumSizeX, METH_VARARGS }, - { "wxSashWindow_GetMaximumSizeY", _wrap_wxSashWindow_GetMaximumSizeY, METH_VARARGS }, - { "wxSashWindow_GetMaximumSizeX", _wrap_wxSashWindow_GetMaximumSizeX, METH_VARARGS }, - { "wxSashWindow_GetExtraBorderSize", _wrap_wxSashWindow_GetExtraBorderSize, METH_VARARGS }, - { "wxSashWindow_GetEdgeMargin", _wrap_wxSashWindow_GetEdgeMargin, METH_VARARGS }, - { "wxSashWindow_GetDefaultBorderSize", _wrap_wxSashWindow_GetDefaultBorderSize, METH_VARARGS }, - { "wxSashWindow_GetSashVisible", _wrap_wxSashWindow_GetSashVisible, METH_VARARGS }, - { "new_wxSashWindow", _wrap_new_wxSashWindow, METH_VARARGS }, - { "wxSashEvent_GetDragStatus", _wrap_wxSashEvent_GetDragStatus, METH_VARARGS }, - { "wxSashEvent_SetDragStatus", _wrap_wxSashEvent_SetDragStatus, METH_VARARGS }, - { "wxSashEvent_GetDragRect", _wrap_wxSashEvent_GetDragRect, METH_VARARGS }, - { "wxSashEvent_SetDragRect", _wrap_wxSashEvent_SetDragRect, METH_VARARGS }, - { "wxSashEvent_GetEdge", _wrap_wxSashEvent_GetEdge, METH_VARARGS }, - { "wxSashEvent_SetEdge", _wrap_wxSashEvent_SetEdge, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_wxSashWindow","_class_wxSashWindow",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_class_wxSashEvent","_wxSashEvent",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_class_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_class_wxSashWindow","_wxSashWindow",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_class_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_class_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_class_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_class_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_class_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_class_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_class_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_class_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_wxSashEvent","_class_wxSashEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxFrame",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/windows3.py b/utils/wxPython/src/gtk/windows3.py deleted file mode 100644 index 82ea7fbd95..0000000000 --- a/utils/wxPython/src/gtk/windows3.py +++ /dev/null @@ -1,273 +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, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_SetEdge,(self,) + _args, _kwargs) - return val - def GetEdge(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_GetEdge,(self,) + _args, _kwargs) - return val - def SetDragRect(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_SetDragRect,(self,) + _args, _kwargs) - return val - def GetDragRect(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_GetDragRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def SetDragStatus(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_SetDragStatus,(self,) + _args, _kwargs) - return val - def GetDragStatus(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_GetDragStatus,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetSashVisible,(self,) + _args, _kwargs) - return val - def GetDefaultBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetDefaultBorderSize,(self,) + _args, _kwargs) - return val - def GetEdgeMargin(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetEdgeMargin,(self,) + _args, _kwargs) - return val - def GetExtraBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetExtraBorderSize,(self,) + _args, _kwargs) - return val - def GetMaximumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMaximumSizeX,(self,) + _args, _kwargs) - return val - def GetMaximumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMaximumSizeY,(self,) + _args, _kwargs) - return val - def GetMinimumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMinimumSizeX,(self,) + _args, _kwargs) - return val - def GetMinimumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMinimumSizeY,(self,) + _args, _kwargs) - return val - def HasBorder(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_HasBorder,(self,) + _args, _kwargs) - return val - def SetDefaultBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetDefaultBorderSize,(self,) + _args, _kwargs) - return val - def SetExtraBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetExtraBorderSize,(self,) + _args, _kwargs) - return val - def SetMaximumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMaximumSizeX,(self,) + _args, _kwargs) - return val - def SetMaximumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMaximumSizeY,(self,) + _args, _kwargs) - return val - def SetMinimumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMinimumSizeX,(self,) + _args, _kwargs) - return val - def SetMinimumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMinimumSizeY,(self,) + _args, _kwargs) - return val - def SetSashVisible(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetSashVisible,(self,) + _args, _kwargs) - return val - def SetSashBorder(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetSashBorder,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSashWindow(wxSashWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows3c.new_wxSashWindow,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxQueryLayoutInfoEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetRequestedLength(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetRequestedLength,(self,) + _args, _kwargs) - return val - def GetRequestedLength(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetRequestedLength,(self,) + _args, _kwargs) - return val - def SetFlags(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetFlags,(self,) + _args, _kwargs) - return val - def GetFlags(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetFlags,(self,) + _args, _kwargs) - return val - def SetSize(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetSize,(self,) + _args, _kwargs) - return val - def GetSize(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def SetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetOrientation,(self,) + _args, _kwargs) - return val - def GetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetOrientation,(self,) + _args, _kwargs) - return val - def SetAlignment(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetAlignment,(self,) + _args, _kwargs) - return val - def GetAlignment(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetAlignment,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_SetFlags,(self,) + _args, _kwargs) - return val - def GetFlags(self, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_GetFlags,(self,) + _args, _kwargs) - return val - def SetRect(self, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_SetRect,(self,) + _args, _kwargs) - return val - def GetRect(self, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_GetRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_GetAlignment,(self,) + _args, _kwargs) - return val - def GetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_GetOrientation,(self,) + _args, _kwargs) - return val - def SetAlignment(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_SetAlignment,(self,) + _args, _kwargs) - return val - def SetDefaultSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_SetDefaultSize,(self,) + _args, _kwargs) - return val - def SetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_SetOrientation,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSashLayoutWindow(wxSashLayoutWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows3c.new_wxSashLayoutWindow,_args,_kwargs) - 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,windows3c=windows3c): - if self.thisown == 1 : - windows3c.delete_wxLayoutAlgorithm(self) - def LayoutMDIFrame(self, *_args, **_kwargs): - val = apply(windows3c.wxLayoutAlgorithm_LayoutMDIFrame,(self,) + _args, _kwargs) - return val - def LayoutFrame(self, *_args, **_kwargs): - val = apply(windows3c.wxLayoutAlgorithm_LayoutFrame,(self,) + _args, _kwargs) - return val - def LayoutWindow(self, *_args, **_kwargs): - val = apply(windows3c.wxLayoutAlgorithm_LayoutWindow,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxLayoutAlgorithm(wxLayoutAlgorithmPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows3c.new_wxLayoutAlgorithm,_args,_kwargs) - 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 80e7860ebc..0000000000 --- a/utils/wxPython/src/gtk/wx.cpp +++ /dev/null @@ -1,2592 +0,0 @@ -/* - * FILE : gtk/wx.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif -#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"; - - -#include - -/*------------------------------------------------------------------ - ptrcast(value,type) - - Constructs a new pointer value. Value may either be a string - or an integer. Type is a string corresponding to either the - C datatype or mangled datatype. - - ptrcast(0,"Vector *") - or - ptrcast(0,"Vector_p") - ------------------------------------------------------------------ */ - -static PyObject *ptrcast(PyObject *_PTRVALUE, char *type) { - - char *r,*s; - void *ptr; - PyObject *obj; - char *typestr,*c; - - /* Produce a "mangled" version of the type string. */ - - typestr = (char *) malloc(strlen(type)+2); - - /* Go through and munge the typestring */ - - r = typestr; - *(r++) = '_'; - c = type; - while (*c) { - if (!isspace(*c)) { - if ((*c == '*') || (*c == '&')) { - *(r++) = 'p'; - } - else *(r++) = *c; - } else { - *(r++) = '_'; - } - c++; - } - *(r++) = 0; - - /* Check to see what kind of object _PTRVALUE is */ - - if (PyInt_Check(_PTRVALUE)) { - ptr = (void *) PyInt_AsLong(_PTRVALUE); - /* Received a numerical value. Make a pointer out of it */ - r = (char *) malloc(strlen(typestr)+22); - if (ptr) { - SWIG_MakePtr(r, ptr, typestr); - } else { - sprintf(r,"_0%s",typestr); - } - obj = PyString_FromString(r); - free(r); - } else if (PyString_Check(_PTRVALUE)) { - /* Have a real pointer value now. Try to strip out the pointer - value */ - s = PyString_AsString(_PTRVALUE); - r = (char *) malloc(strlen(type)+22); - - /* Now extract the pointer value */ - if (!SWIG_GetPtr(s,&ptr,0)) { - if (ptr) { - SWIG_MakePtr(r,ptr,typestr); - } else { - sprintf(r,"_0%s",typestr); - } - obj = PyString_FromString(r); - } else { - obj = NULL; - } - free(r); - } else { - obj = NULL; - } - free(typestr); - if (!obj) - PyErr_SetString(PyExc_TypeError,"Type error in ptrcast. Argument is not a valid pointer value."); - return obj; -} - -/*------------------------------------------------------------------ - ptrvalue(ptr,type = 0) - - Attempts to dereference a pointer value. If type is given, it - will try to use that type. Otherwise, this function will attempt - to "guess" the proper datatype by checking against all of the - builtin C datatypes. - ------------------------------------------------------------------ */ - -static PyObject *ptrvalue(PyObject *_PTRVALUE, int index, char *type) { - void *ptr; - char *s; - PyObject *obj; - - if (!PyString_Check(_PTRVALUE)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrvalue. Argument is not a valid pointer value."); - return NULL; - } - s = PyString_AsString(_PTRVALUE); - if (SWIG_GetPtr(s,&ptr,0)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrvalue. Argument is not a valid pointer value."); - return NULL; - } - - /* If no datatype was passed, try a few common datatypes first */ - - if (!type) { - - /* No datatype was passed. Type to figure out if it's a common one */ - - if (!SWIG_GetPtr(s,&ptr,"_int_p")) { - type = "int"; - } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { - type = "double"; - } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { - type = "short"; - } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { - type = "long"; - } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { - type = "float"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { - type = "char"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_pp")) { - type = "char *"; - } else { - type = "unknown"; - } - } - - if (!ptr) { - PyErr_SetString(PyExc_TypeError,"Unable to dereference NULL pointer."); - return NULL; - } - - /* Now we have a datatype. Try to figure out what to do about it */ - if (strcmp(type,"int") == 0) { - obj = PyInt_FromLong((long) *(((int *) ptr) + index)); - } else if (strcmp(type,"double") == 0) { - obj = PyFloat_FromDouble((double) *(((double *) ptr)+index)); - } else if (strcmp(type,"short") == 0) { - obj = PyInt_FromLong((long) *(((short *) ptr)+index)); - } else if (strcmp(type,"long") == 0) { - obj = PyInt_FromLong((long) *(((long *) ptr)+index)); - } else if (strcmp(type,"float") == 0) { - obj = PyFloat_FromDouble((double) *(((float *) ptr)+index)); - } else if (strcmp(type,"char") == 0) { - obj = PyString_FromString(((char *) ptr)+index); - } else if (strcmp(type,"char *") == 0) { - char *c = *(((char **) ptr)+index); - if (c) obj = PyString_FromString(c); - else obj = PyString_FromString("NULL"); - } else { - PyErr_SetString(PyExc_TypeError,"Unable to dereference unsupported datatype."); - return NULL; - } - return obj; -} - -/*------------------------------------------------------------------ - ptrcreate(type,value = 0,numelements = 1) - - Attempts to create a new object of given type. Type must be - a basic C datatype. Will not create complex objects. - ------------------------------------------------------------------ */ - -static PyObject *ptrcreate(char *type, PyObject *_PYVALUE, int numelements) { - void *ptr; - PyObject *obj; - int sz; - char *cast; - char temp[40]; - - /* Check the type string against a variety of possibilities */ - - if (strcmp(type,"int") == 0) { - sz = sizeof(int)*numelements; - cast = "_int_p"; - } else if (strcmp(type,"short") == 0) { - sz = sizeof(short)*numelements; - cast = "_short_p"; - } else if (strcmp(type,"long") == 0) { - sz = sizeof(long)*numelements; - cast = "_long_p"; - } else if (strcmp(type,"double") == 0) { - sz = sizeof(double)*numelements; - cast = "_double_p"; - } else if (strcmp(type,"float") == 0) { - sz = sizeof(float)*numelements; - cast = "_float_p"; - } else if (strcmp(type,"char") == 0) { - sz = sizeof(char)*numelements; - cast = "_char_p"; - } else if (strcmp(type,"char *") == 0) { - sz = sizeof(char *)*(numelements+1); - cast = "_char_pp"; - } else { - PyErr_SetString(PyExc_TypeError,"Unable to create unknown datatype."); - return NULL; - } - - /* Create the new object */ - - ptr = (void *) malloc(sz); - if (!ptr) { - PyErr_SetString(PyExc_MemoryError,"Out of memory in swig_create."); - return NULL; - } - - /* Now try to set its default value */ - - if (_PYVALUE) { - if (strcmp(type,"int") == 0) { - int *ip,i,ivalue; - ivalue = (int) PyInt_AsLong(_PYVALUE); - ip = (int *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"short") == 0) { - short *ip,ivalue; - int i; - ivalue = (short) PyInt_AsLong(_PYVALUE); - ip = (short *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"long") == 0) { - long *ip,ivalue; - int i; - ivalue = (long) PyInt_AsLong(_PYVALUE); - ip = (long *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"double") == 0) { - double *ip,ivalue; - int i; - ivalue = (double) PyFloat_AsDouble(_PYVALUE); - ip = (double *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"float") == 0) { - float *ip,ivalue; - int i; - ivalue = (float) PyFloat_AsDouble(_PYVALUE); - ip = (float *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"char") == 0) { - char *ip,*ivalue; - ivalue = (char *) PyString_AsString(_PYVALUE); - ip = (char *) ptr; - strncpy(ip,ivalue,numelements-1); - } else if (strcmp(type,"char *") == 0) { - char **ip, *ivalue; - int i; - ivalue = (char *) PyString_AsString(_PYVALUE); - ip = (char **) ptr; - for (i = 0; i < numelements; i++) { - if (ivalue) { - ip[i] = (char *) malloc(strlen(ivalue)+1); - strcpy(ip[i],ivalue); - } else { - ip[i] = 0; - } - } - ip[numelements] = 0; - } - } - /* Create the pointer value */ - - SWIG_MakePtr(temp,ptr,cast); - obj = PyString_FromString(temp); - return obj; -} - - -/*------------------------------------------------------------------ - ptrset(ptr,value,index = 0,type = 0) - - Attempts to set the value of a pointer variable. If type is - given, we will use that type. Otherwise, we'll guess the datatype. - ------------------------------------------------------------------ */ - -static PyObject *ptrset(PyObject *_PTRVALUE, PyObject *_PYVALUE, int index, char *type) { - void *ptr; - char *s; - PyObject *obj; - - if (!PyString_Check(_PTRVALUE)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrset. Argument is not a valid pointer value."); - return NULL; - } - s = PyString_AsString(_PTRVALUE); - if (SWIG_GetPtr(s,&ptr,0)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrset. Argument is not a valid pointer value."); - return NULL; - } - - /* If no datatype was passed, try a few common datatypes first */ - - if (!type) { - - /* No datatype was passed. Type to figure out if it's a common one */ - - if (!SWIG_GetPtr(s,&ptr,"_int_p")) { - type = "int"; - } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { - type = "double"; - } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { - type = "short"; - } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { - type = "long"; - } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { - type = "float"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { - type = "char"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_pp")) { - type = "char *"; - } else { - type = "unknown"; - } - } - - if (!ptr) { - PyErr_SetString(PyExc_TypeError,"Unable to set NULL pointer."); - return NULL; - } - - /* Now we have a datatype. Try to figure out what to do about it */ - if (strcmp(type,"int") == 0) { - *(((int *) ptr)+index) = (int) PyInt_AsLong(_PYVALUE); - } else if (strcmp(type,"double") == 0) { - *(((double *) ptr)+index) = (double) PyFloat_AsDouble(_PYVALUE); - } else if (strcmp(type,"short") == 0) { - *(((short *) ptr)+index) = (short) PyInt_AsLong(_PYVALUE); - } else if (strcmp(type,"long") == 0) { - *(((long *) ptr)+index) = (long) PyInt_AsLong(_PYVALUE); - } else if (strcmp(type,"float") == 0) { - *(((float *) ptr)+index) = (float) PyFloat_AsDouble(_PYVALUE); - } else if (strcmp(type,"char") == 0) { - char *c = PyString_AsString(_PYVALUE); - strcpy(((char *) ptr)+index, c); - } else if (strcmp(type,"char *") == 0) { - char *c = PyString_AsString(_PYVALUE); - char **ca = (char **) ptr; - if (ca[index]) free(ca[index]); - if (strcmp(c,"NULL") == 0) { - ca[index] = 0; - } else { - ca[index] = (char *) malloc(strlen(c)+1); - strcpy(ca[index],c); - } - } else { - PyErr_SetString(PyExc_TypeError,"Unable to set unsupported datatype."); - return NULL; - } - Py_INCREF(Py_None); - return Py_None; -} - - -/*------------------------------------------------------------------ - ptradd(ptr,offset) - - Adds a value to an existing pointer value. Will do a type-dependent - add for basic datatypes. For other datatypes, will do a byte-add. - ------------------------------------------------------------------ */ - -static PyObject *ptradd(PyObject *_PTRVALUE, int offset) { - - char *r,*s; - void *ptr,*junk; - PyObject *obj; - char *type; - - /* Check to see what kind of object _PTRVALUE is */ - - if (PyString_Check(_PTRVALUE)) { - /* Have a potential pointer value now. Try to strip out the value */ - s = PyString_AsString(_PTRVALUE); - - /* Try to handle a few common datatypes first */ - - if (!SWIG_GetPtr(s,&ptr,"_int_p")) { - ptr = (void *) (((int *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { - ptr = (void *) (((double *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { - ptr = (void *) (((short *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { - ptr = (void *) (((long *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { - ptr = (void *) (((float *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { - ptr = (void *) (((char *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,0)) { - ptr = (void *) (((char *) ptr) + offset); - } else { - PyErr_SetString(PyExc_TypeError,"Type error in ptradd. Argument is not a valid pointer value."); - return NULL; - } - type = SWIG_GetPtr(s,&junk,"INVALID POINTER"); - r = (char *) malloc(strlen(type)+20); - if (ptr) { - SWIG_MakePtr(r,ptr,type); - } else { - sprintf(r,"_0%s",type); - } - obj = PyString_FromString(r); - free(r); - } - return obj; -} - -/*------------------------------------------------------------------ - ptrmap(type1,type2) - - Allows a mapping between type1 and type2. (Like a typedef) - ------------------------------------------------------------------ */ - -static void ptrmap(char *type1, char *type2) { - - char *typestr1,*typestr2,*c,*r; - - /* Produce a "mangled" version of the type string. */ - - typestr1 = (char *) malloc(strlen(type1)+2); - - /* Go through and munge the typestring */ - - r = typestr1; - *(r++) = '_'; - c = type1; - while (*c) { - if (!isspace(*c)) { - if ((*c == '*') || (*c == '&')) { - *(r++) = 'p'; - } - else *(r++) = *c; - } else { - *(r++) = '_'; - } - c++; - } - *(r++) = 0; - - typestr2 = (char *) malloc(strlen(type2)+2); - - /* Go through and munge the typestring */ - - r = typestr2; - *(r++) = '_'; - c = type2; - while (*c) { - if (!isspace(*c)) { - if ((*c == '*') || (*c == '&')) { - *(r++) = 'p'; - } - else *(r++) = *c; - } else { - *(r++) = '_'; - } - c++; - } - *(r++) = 0; - SWIG_RegisterMapping(typestr1,typestr2,0); - SWIG_RegisterMapping(typestr2,typestr1,0); -} - -/*------------------------------------------------------------------ - ptrfree(ptr) - - Destroys a pointer value - ------------------------------------------------------------------ */ - -PyObject *ptrfree(PyObject *_PTRVALUE) { - void *ptr, *junk; - char *s; - - if (!PyString_Check(_PTRVALUE)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrfree. Argument is not a valid pointer value."); - return NULL; - } - s = PyString_AsString(_PTRVALUE); - if (SWIG_GetPtr(s,&ptr,0)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrfree. Argument is not a valid pointer value."); - return NULL; - } - - /* Check to see if this pointer is a char ** */ - if (!SWIG_GetPtr(s,&junk,"_char_pp")) { - char **c = (char **) ptr; - if (c) { - int i = 0; - while (c[i]) { - free(c[i]); - i++; - } - } - } - if (ptr) - free((char *) ptr); - - Py_INCREF(Py_None); - return Py_None; -} - - -class __wxPyCleanup { -public: - __wxPyCleanup() { } - ~__wxPyCleanup() { wxApp::CleanUp(); } -}; - -extern "C" SWIGEXPORT(void) initwindowsc(); -extern "C" SWIGEXPORT(void) initwindows2c(); -extern "C" SWIGEXPORT(void) initeventsc(); -extern "C" SWIGEXPORT(void) initmiscc(); -extern "C" SWIGEXPORT(void) initmisc2c(); -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(); -extern "C" SWIGEXPORT(void) initprintfwc(); -#ifndef SEPARATE -extern "C" SWIGEXPORT(void) initutilsc(); -//extern "C" SWIGEXPORT(void) initoglc(); -extern "C" SWIGEXPORT(void) initglcanvasc(); -#endif -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_ptrcast(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - char * _arg1; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Os:ptrcast",&_obj0,&_arg1)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrcast(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrvalue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - int _arg1 = (int ) 0; - char * _arg2 = (char *) 0; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|is:ptrvalue",&_obj0,&_arg1,&_arg2)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrvalue(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - PyObject * _arg1; - int _arg2 = (int ) 0; - char * _arg3 = (char *) 0; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|is:ptrset",&_obj0,&_obj1,&_arg2,&_arg3)) - return NULL; -{ - _arg0 = _obj0; -} -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrset(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrcreate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - char * _arg0; - PyObject * _arg1 = (PyObject *) 0; - int _arg2 = (int ) 1; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|Oi:ptrcreate",&_arg0,&_obj1,&_arg2)) - return NULL; - if (_obj1) -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrcreate(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrfree(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:ptrfree",&_obj0)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrfree(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptradd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - int _arg1; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:ptradd",&_obj0,&_arg1)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptradd(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - char * _arg0; - char * _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ss:ptrmap",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - ptrmap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static int _wrap_wxPyDefaultPosition_set(PyObject *val) { - wxPoint * temp; - - if (val) { - if (val == Py_None) { temp = NULL; } - else if (SWIG_GetPtrObj(val,(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) { - wxSize * temp; - - if (val) { - if (val == Py_None) { temp = NULL; } - else if (SWIG_GetPtrObj(val,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyApp_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPyApp(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyApp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPyApp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyApp. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyApp(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_GetAppName(_swigobj) (_swigobj->GetAppName()) -static PyObject *_wrap_wxPyApp_GetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetAppName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetClassName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetExitOnFrameDelete",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetPrintMode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetTopWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPyApp_GetVendorName(_swigobj) (_swigobj->GetVendorName()) -static PyObject *_wrap_wxPyApp_GetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetVendorName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_Dispatch",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_ExitMainLoop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_Initialized",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_MainLoop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_Pending",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_ProcessIdle(_swigobj) (_swigobj->ProcessIdle()) -static PyObject *_wrap_wxPyApp_ProcessIdle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_ProcessIdle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_ProcessIdle. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_ProcessIdle(_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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetAppName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetClassName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPyApp_SetExitOnFrameDelete",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPyApp_SetPrintMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetTopWindow",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetTopWindow. Expected _wxPyApp_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetVendorName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_GetStdIcon(_swigobj,_swigarg0) (_swigobj->GetStdIcon(_swigarg0)) -static PyObject *_wrap_wxPyApp_GetStdIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _result; - wxPyApp * _arg0; - int _arg1; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPyApp_GetStdIcon",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetStdIcon. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxIcon (wxPyApp_GetStdIcon(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new___wxPyCleanup() (new __wxPyCleanup()) -static PyObject *_wrap_new___wxPyCleanup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - __wxPyCleanup * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new___wxPyCleanup")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (__wxPyCleanup *)new___wxPyCleanup(); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"___wxPyCleanup_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete___wxPyCleanup(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete___wxPyCleanup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - __wxPyCleanup * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete___wxPyCleanup",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"___wxPyCleanup_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete___wxPyCleanup. Expected ___wxPyCleanup_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete___wxPyCleanup(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef wxcMethods[] = { - { "delete___wxPyCleanup", _wrap_delete___wxPyCleanup, METH_VARARGS }, - { "new___wxPyCleanup", _wrap_new___wxPyCleanup, METH_VARARGS }, - { "wxPyApp_GetStdIcon", _wrap_wxPyApp_GetStdIcon, METH_VARARGS }, - { "wxPyApp_SetVendorName", _wrap_wxPyApp_SetVendorName, METH_VARARGS }, - { "wxPyApp_SetTopWindow", _wrap_wxPyApp_SetTopWindow, METH_VARARGS }, - { "wxPyApp_SetPrintMode", _wrap_wxPyApp_SetPrintMode, METH_VARARGS }, - { "wxPyApp_SetExitOnFrameDelete", _wrap_wxPyApp_SetExitOnFrameDelete, METH_VARARGS }, - { "wxPyApp_SetClassName", _wrap_wxPyApp_SetClassName, METH_VARARGS }, - { "wxPyApp_SetAppName", _wrap_wxPyApp_SetAppName, METH_VARARGS }, - { "wxPyApp_ProcessIdle", _wrap_wxPyApp_ProcessIdle, METH_VARARGS }, - { "wxPyApp_Pending", _wrap_wxPyApp_Pending, METH_VARARGS }, - { "wxPyApp_MainLoop", _wrap_wxPyApp_MainLoop, METH_VARARGS }, - { "wxPyApp_Initialized", _wrap_wxPyApp_Initialized, METH_VARARGS }, - { "wxPyApp_ExitMainLoop", _wrap_wxPyApp_ExitMainLoop, METH_VARARGS }, - { "wxPyApp_Dispatch", _wrap_wxPyApp_Dispatch, METH_VARARGS }, - { "wxPyApp_GetVendorName", _wrap_wxPyApp_GetVendorName, METH_VARARGS }, - { "wxPyApp_GetTopWindow", _wrap_wxPyApp_GetTopWindow, METH_VARARGS }, - { "wxPyApp_GetPrintMode", _wrap_wxPyApp_GetPrintMode, METH_VARARGS }, - { "wxPyApp_GetExitOnFrameDelete", _wrap_wxPyApp_GetExitOnFrameDelete, METH_VARARGS }, - { "wxPyApp_GetClassName", _wrap_wxPyApp_GetClassName, METH_VARARGS }, - { "wxPyApp_GetAppName", _wrap_wxPyApp_GetAppName, METH_VARARGS }, - { "delete_wxPyApp", _wrap_delete_wxPyApp, METH_VARARGS }, - { "new_wxPyApp", _wrap_new_wxPyApp, METH_VARARGS }, - { "_wxSetDictionary", __wxSetDictionary, METH_VARARGS }, - { "_wxStart", __wxStart, METH_VARARGS }, - { "ptrmap", _wrap_ptrmap, METH_VARARGS }, - { "ptradd", _wrap_ptradd, METH_VARARGS }, - { "ptrfree", _wrap_ptrfree, METH_VARARGS }, - { "ptrcreate", _wrap_ptrcreate, METH_VARARGS }, - { "ptrset", _wrap_ptrset, METH_VARARGS }, - { "ptrvalue", _wrap_ptrvalue, METH_VARARGS }, - { "ptrcast", _wrap_ptrcast, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_class_wxJPEGHandler","_wxJPEGHandler",0}, - { "_wxBMPHandler","_class_wxBMPHandler",0}, - { "_wxImage","_class_wxImage",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "___wxPyCleanup","_class___wxPyCleanup",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxPyTreeItemData","_wxPyTreeItemData",0}, - { "_class_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxGIFHandler","_class_wxGIFHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxImageHandler","_class_wxImageHandler",0}, - { "_class_wxTreeCtrl","_wxTreeCtrl",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxToolTip","_class_wxToolTip",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPNGHandler","_class_wxPNGHandler",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0}, - { "_wxPrinter","_class_wxPrinter",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_wxPyPrintout","_class_wxPyPrintout",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_wxSashWindow","_class_wxSashWindow",0}, - { "_class_wxPrintDialogData","_wxPrintDialogData",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_class_wxSashEvent","_wxSashEvent",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxListEvent","_class_wxListEvent",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_class_wxBMPHandler","_wxBMPHandler",0}, - { "_wxPrintPreview","_class_wxPrintPreview",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxGIFHandler","_wxGIFHandler",0}, - { "_class_wxPostScriptDC","_wxPostScriptDC",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxToolTip","_wxToolTip",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_class_wxPNGHandler","_wxPNGHandler",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxPageSetupDialog","_class_wxPageSetupDialog",0}, - { "_class_wxPrinter","_wxPrinter",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_class_wxPyPrintout","_wxPyPrintout",0}, - { "_class_wxSashWindow","_wxSashWindow",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_class_wxImage","_wxImage",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_class___wxPyCleanup","___wxPyCleanup",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPrintDialog","_class_wxPrintDialog",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_wxPrintData","_class_wxPrintData",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_wxListItem","_class_wxListItem",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_class_wxPreviewFrame","_wxPreviewFrame",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_wxPyApp","_class_wxPyApp",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxTreeEvent","_wxTreeEvent",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_wxPrintDialogData","_class_wxPrintDialogData",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_wxSashEvent","_class_wxSashEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxListCtrl","_class_wxListCtrl",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxPrintDialog","_wxPrintDialog",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxPostScriptDC","_class_wxPostScriptDC",0}, - { "_class_wxImageHandler","_wxImageHandler",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_wxTreeItemId","_class_wxTreeItemId",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxListItem","_wxListItem",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxFrame",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxJPEGHandler","_class_wxJPEGHandler",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxListEvent","_wxListEvent",0}, - { "_class_wxPrintPreview","_wxPrintPreview",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_class_wxPyApp","_wxPyApp",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_wxPyTreeItemData","_class_wxPyTreeItemData",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxTreeItemId","_wxTreeItemId",0}, - { "_wxTreeCtrl","_class_wxTreeCtrl",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_class_wxPageSetupDialog","_wxPageSetupDialog",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_wxPreviewFrame","_class_wxPreviewFrame",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxListCtrl","_wxListCtrl",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxTreeEvent","_class_wxTreeEvent",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_class_wxPrintData","_wxPrintData",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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,"wxFRAME_FLOAT_ON_PARENT", PyInt_FromLong((long) wxFRAME_FLOAT_ON_PARENT)); - 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_RICH", PyInt_FromLong((long) wxTE_RICH)); - 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,"wxGA_SMOOTH", PyInt_FromLong((long) wxGA_SMOOTH)); - 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,"wxTR_MULTIPLE", PyInt_FromLong((long) wxTR_MULTIPLE)); - PyDict_SetItemString(d,"wxTR_HAS_VARIABLE_ROW_HEIGHT", PyInt_FromLong((long) wxTR_HAS_VARIABLE_ROW_HEIGHT)); - 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,"wxPRINT_QUALITY_HIGH", PyInt_FromLong((long) wxPRINT_QUALITY_HIGH)); - PyDict_SetItemString(d,"wxPRINT_QUALITY_MEDIUM", PyInt_FromLong((long) wxPRINT_QUALITY_MEDIUM)); - PyDict_SetItemString(d,"wxPRINT_QUALITY_LOW", PyInt_FromLong((long) wxPRINT_QUALITY_LOW)); - PyDict_SetItemString(d,"wxPRINT_QUALITY_DRAFT", PyInt_FromLong((long) wxPRINT_QUALITY_DRAFT)); - 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,"wxPD_AUTO_HIDE", PyInt_FromLong((long) wxPD_AUTO_HIDE)); - PyDict_SetItemString(d,"wxPD_APP_MODAL", PyInt_FromLong((long) wxPD_APP_MODAL)); - PyDict_SetItemString(d,"wxPD_CAN_ABORT", PyInt_FromLong((long) wxPD_CAN_ABORT)); - PyDict_SetItemString(d,"wxPD_ELAPSED_TIME", PyInt_FromLong((long) wxPD_ELAPSED_TIME)); - PyDict_SetItemString(d,"wxPD_ESTIMATED_TIME", PyInt_FromLong((long) wxPD_ESTIMATED_TIME)); - PyDict_SetItemString(d,"wxPD_REMAINING_TIME", PyInt_FromLong((long) wxPD_REMAINING_TIME)); - PyDict_SetItemString(d,"wxNO_DEFAULT", PyInt_FromLong((long) wxNO_DEFAULT)); - PyDict_SetItemString(d,"wxMENU_TEAROFF", PyInt_FromLong((long) wxMENU_TEAROFF)); - PyDict_SetItemString(d,"wxNO_FULL_REPAINT_ON_RESIZE", PyInt_FromLong((long) wxNO_FULL_REPAINT_ON_RESIZE)); - 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,"wxDUPLEX_SIMPLEX", PyInt_FromLong((long) wxDUPLEX_SIMPLEX)); - PyDict_SetItemString(d,"wxDUPLEX_HORIZONTAL", PyInt_FromLong((long) wxDUPLEX_HORIZONTAL)); - PyDict_SetItemString(d,"wxDUPLEX_VERTICAL", PyInt_FromLong((long) wxDUPLEX_VERTICAL)); - 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_KEY_DOWN", PyInt_FromLong((long) wxEVT_KEY_DOWN)); - PyDict_SetItemString(d,"wxEVT_KEY_UP", PyInt_FromLong((long) wxEVT_KEY_UP)); - PyDict_SetItemString(d,"wxEVT_CHAR_HOOK", PyInt_FromLong((long) wxEVT_CHAR_HOOK)); - 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_SCROLLWIN_TOP", PyInt_FromLong((long) wxEVT_SCROLLWIN_TOP)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_BOTTOM", PyInt_FromLong((long) wxEVT_SCROLLWIN_BOTTOM)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_LINEUP", PyInt_FromLong((long) wxEVT_SCROLLWIN_LINEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_LINEDOWN", PyInt_FromLong((long) wxEVT_SCROLLWIN_LINEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_PAGEUP", PyInt_FromLong((long) wxEVT_SCROLLWIN_PAGEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_PAGEDOWN", PyInt_FromLong((long) wxEVT_SCROLLWIN_PAGEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_THUMBTRACK", PyInt_FromLong((long) wxEVT_SCROLLWIN_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_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_LIST_ITEM_ACTIVATED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_ACTIVATED)); - 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,"wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SPLITTER_UNSPLIT", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_UNSPLIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SPLITTER_DOUBLECLICKED", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_DOUBLECLICKED)); - PyDict_SetItemString(d,"__version__", PyString_FromString("2.1b3")); - 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. - - - // 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(); - initmisc2c(); - initgdic(); - initmdic(); - initcontrolsc(); - initcontrols2c(); - initcmndlgsc(); - initstattoolc(); - initframesc(); - initwindows3c(); - initimagec(); - initprintfwc(); -#ifndef SEPARATE - initutilsc(); -// initoglc(); -#ifdef WITH_GLCANVAS - initglcanvasc(); -#endif -#endif -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/gtk/wx.py b/utils/wxPython/src/gtk/wx.py deleted file mode 100644 index 9ca948c728..0000000000 --- a/utils/wxPython/src/gtk/wx.py +++ /dev/null @@ -1,1464 +0,0 @@ -# This file was created automatically by SWIG. -import wxc - -from misc import * - -from misc2 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 * - -from printfw import * -class wxPyAppPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,wxc=wxc): - if self.thisown == 1 : - wxc.delete_wxPyApp(self) - def GetAppName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetAppName,(self,) + _args, _kwargs) - return val - def GetClassName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetClassName,(self,) + _args, _kwargs) - return val - def GetExitOnFrameDelete(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetExitOnFrameDelete,(self,) + _args, _kwargs) - return val - def GetPrintMode(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetPrintMode,(self,) + _args, _kwargs) - return val - def GetTopWindow(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetTopWindow,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetVendorName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetVendorName,(self,) + _args, _kwargs) - return val - def Dispatch(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_Dispatch,(self,) + _args, _kwargs) - return val - def ExitMainLoop(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_ExitMainLoop,(self,) + _args, _kwargs) - return val - def Initialized(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_Initialized,(self,) + _args, _kwargs) - return val - def MainLoop(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_MainLoop,(self,) + _args, _kwargs) - return val - def Pending(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_Pending,(self,) + _args, _kwargs) - return val - def ProcessIdle(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_ProcessIdle,(self,) + _args, _kwargs) - return val - def SetAppName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetAppName,(self,) + _args, _kwargs) - return val - def SetClassName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetClassName,(self,) + _args, _kwargs) - return val - def SetExitOnFrameDelete(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetExitOnFrameDelete,(self,) + _args, _kwargs) - return val - def SetPrintMode(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetPrintMode,(self,) + _args, _kwargs) - return val - def SetTopWindow(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetTopWindow,(self,) + _args, _kwargs) - return val - def SetVendorName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetVendorName,(self,) + _args, _kwargs) - return val - def GetStdIcon(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetStdIcon,(self,) + _args, _kwargs) - if val: val = wxIconPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -class wxPyApp(wxPyAppPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(wxc.new_wxPyApp,_args,_kwargs) - self.thisown = 1 - - - - -class __wxPyCleanupPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,wxc=wxc): - if self.thisown == 1 : - wxc.delete___wxPyCleanup(self) - def __repr__(self): - return "" % (self.this,) -class __wxPyCleanup(__wxPyCleanupPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(wxc.new___wxPyCleanup,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -ptrcast = wxc.ptrcast - -ptrvalue = wxc.ptrvalue - -ptrset = wxc.ptrset - -ptrcreate = wxc.ptrcreate - -ptrfree = wxc.ptrfree - -ptradd = wxc.ptradd - -ptrmap = wxc.ptrmap - -_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 -wxFRAME_FLOAT_ON_PARENT = wxc.wxFRAME_FLOAT_ON_PARENT -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_RICH = wxc.wxTE_RICH -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 -wxGA_SMOOTH = wxc.wxGA_SMOOTH -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 -wxTR_MULTIPLE = wxc.wxTR_MULTIPLE -wxTR_HAS_VARIABLE_ROW_HEIGHT = wxc.wxTR_HAS_VARIABLE_ROW_HEIGHT -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 -wxPRINT_QUALITY_HIGH = wxc.wxPRINT_QUALITY_HIGH -wxPRINT_QUALITY_MEDIUM = wxc.wxPRINT_QUALITY_MEDIUM -wxPRINT_QUALITY_LOW = wxc.wxPRINT_QUALITY_LOW -wxPRINT_QUALITY_DRAFT = wxc.wxPRINT_QUALITY_DRAFT -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 -wxPD_AUTO_HIDE = wxc.wxPD_AUTO_HIDE -wxPD_APP_MODAL = wxc.wxPD_APP_MODAL -wxPD_CAN_ABORT = wxc.wxPD_CAN_ABORT -wxPD_ELAPSED_TIME = wxc.wxPD_ELAPSED_TIME -wxPD_ESTIMATED_TIME = wxc.wxPD_ESTIMATED_TIME -wxPD_REMAINING_TIME = wxc.wxPD_REMAINING_TIME -wxNO_DEFAULT = wxc.wxNO_DEFAULT -wxMENU_TEAROFF = wxc.wxMENU_TEAROFF -wxNO_FULL_REPAINT_ON_RESIZE = wxc.wxNO_FULL_REPAINT_ON_RESIZE -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 -wxDUPLEX_SIMPLEX = wxc.wxDUPLEX_SIMPLEX -wxDUPLEX_HORIZONTAL = wxc.wxDUPLEX_HORIZONTAL -wxDUPLEX_VERTICAL = wxc.wxDUPLEX_VERTICAL -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_KEY_DOWN = wxc.wxEVT_KEY_DOWN -wxEVT_KEY_UP = wxc.wxEVT_KEY_UP -wxEVT_CHAR_HOOK = wxc.wxEVT_CHAR_HOOK -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_SCROLLWIN_TOP = wxc.wxEVT_SCROLLWIN_TOP -wxEVT_SCROLLWIN_BOTTOM = wxc.wxEVT_SCROLLWIN_BOTTOM -wxEVT_SCROLLWIN_LINEUP = wxc.wxEVT_SCROLLWIN_LINEUP -wxEVT_SCROLLWIN_LINEDOWN = wxc.wxEVT_SCROLLWIN_LINEDOWN -wxEVT_SCROLLWIN_PAGEUP = wxc.wxEVT_SCROLLWIN_PAGEUP -wxEVT_SCROLLWIN_PAGEDOWN = wxc.wxEVT_SCROLLWIN_PAGEDOWN -wxEVT_SCROLLWIN_THUMBTRACK = wxc.wxEVT_SCROLLWIN_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_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_LIST_ITEM_ACTIVATED = wxc.wxEVT_COMMAND_LIST_ITEM_ACTIVATED -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 -wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING = wxc.wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING -wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED = wxc.wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED -wxEVT_COMMAND_SPLITTER_UNSPLIT = wxc.wxEVT_COMMAND_SPLITTER_UNSPLIT -wxEVT_COMMAND_SPLITTER_DOUBLECLICKED = wxc.wxEVT_COMMAND_SPLITTER_DOUBLECLICKED -__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 _checkClassCallback(obj, name): -## try: cb = getattr(obj, name) -## except: pass -## else: obj._addCallback(name, 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_KEY_DOWN(win, func): - win.Connect(-1, -1, wxEVT_KEY_DOWN, func) - -def EVT_KEY_UP(win, func): - win.Connect(-1, -1, wxEVT_KEY_UP, 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) - -def EVT_UPDATE_UI(win, id, func): - win.Connect(id, -1, wxEVT_UPDATE_UI, 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_ACTIVATED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_ACTIVATED, 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) - -#wxSplitterWindow -def EVT_SPLITTER_SASH_POS_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, func) - -def EVT_SPLITTER_SASH_POS_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, func) - -def EVT_SPLITTER_UNSPLIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_UNSPLIT, func) - -def EVT_SPLITTER_DOUBLECLICKED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 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 - -#---------------------------------------------------------------------- -# This helper function will take a wxPython object and convert it to -# another wxPython object type. This will not be able to create objects -# that are derived from wxPython classes by the user, only those that are -# actually part of wxPython and directly corespond to C++ objects. -# -# This is useful in situations where some method returns a generic -# type such as wxWindow, but you know that it is actually some -# derived type such as a wxTextCtrl. You can't call wxTextCtrl specific -# methods on a wxWindow object, but you can use this function to -# create a wxTextCtrl object that will pass the same pointer to -# the C++ code. You use it like this: -# -# textCtrl = wxPyTypeCast(window, "wxTextCtrl") -# -# -# WARNING: Using this function to type cast objects into types that -# they are not is not recommended and is likely to cause your -# program to crash... Hard. -# - -def wxPyTypeCast(obj, typeStr): - if hasattr(obj, "this"): - newPtr = ptrcast(obj.this, typeStr+"_p") - else: - newPtr = ptrcast(obj, typeStr+"_p") - theClass = globals()[typeStr+"Ptr"] - theObj = theClass(newPtr) - theObj.thisown = obj.thisown - return theObj - - -#---------------------------------------------------------------------- - -## 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() - - -#---------------------------------------------------------------------------- -# DO NOT hold any other references to this object. This is how we know when -# to cleanup system resources that wxWin is holding... -__cleanMeUp = __wxPyCleanup() -#---------------------------------------------------------------------------- - - - diff --git a/utils/wxPython/src/helpers.cpp b/utils/wxPython/src/helpers.cpp deleted file mode 100644 index 3d5e345026..0000000000 --- a/utils/wxPython/src/helpers.cpp +++ /dev/null @@ -1,795 +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(); - wxPythonApp->OnExit(); //# - 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 -// wxcmodule 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); - result = PyEval_CallObject(onInitFunc, arglist); - if (!result) { // an exception was raised. - return NULL; - } - - if (! PyInt_Check(result)) { - PyErr_SetString(PyExc_TypeError, "OnInit should return a boolean value"); - return NULL; - } - bResult = PyInt_AS_LONG(result); - if (! bResult) { - 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; -} - - -//--------------------------------------------------------------------------- - -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 - //if (! wxPyInEvent) - PyEval_RestoreThread(wxPyEventThreadState); -#endif - - Py_DECREF(m_func); - -#ifdef WXP_WITH_THREAD - //if (! wxPyInEvent) - 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(wxPyEventThreadState); - wxPyInEvent = true; -#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(); - wxPyInEvent = false; -#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() { -// #ifdef WXP_WITH_THREAD -// //if (! wxPyInEvent) -// PyEval_RestoreThread(wxPyEventThreadState); -// #endif - -// if (func) -// Py_DECREF(func); - -// #ifdef WXP_WITH_THREAD -// //if (! wxPyInEvent) -// PyEval_SaveThread(); -// #endif -// } - - -// void wxPyMenu::MenuCallback(wxMenu& menu, wxCommandEvent& evt) { -// PyObject* evtobj; -// PyObject* menuobj; -// PyObject* func; -// PyObject* args; -// PyObject* res; - -// #ifdef WXP_WITH_THREAD -// PyEval_RestoreThread(wxPyEventThreadState); -// wxPyInEvent = true; -// #endif -// evtobj = wxPyConstructObject((void*)&evt, "wxCommandEvent"); -// menuobj = wxPyConstructObject((void*)&menu, "wxMenu"); -// if (PyErr_Occurred()) { -// // bail out if a problem -// PyErr_Print(); -// goto done; -// } -// // Now call the callback... -// func = ((wxPyMenu*)&menu)->func; -// args = PyTuple_New(2); -// PyTuple_SET_ITEM(args, 0, menuobj); -// PyTuple_SET_ITEM(args, 1, evtobj); -// res = PyEval_CallObject(func, args); -// Py_DECREF(args); -// Py_XDECREF(res); /* In case res is a NULL pointer */ -// done: -// #ifdef WXP_WITH_THREAD -// PyEval_SaveThread(); -// wxPyInEvent = false; -// #endif -// return; -// } - - -//--------------------------------------------------------------------------- - -wxPyTimer::wxPyTimer(PyObject* callback) { - func = callback; - Py_INCREF(func); -} - -wxPyTimer::~wxPyTimer() { -#ifdef WXP_WITH_THREAD - //if (! wxPyInEvent) - PyEval_RestoreThread(wxPyEventThreadState); -#endif - - Py_DECREF(func); - -#ifdef WXP_WITH_THREAD - //if (! wxPyInEvent) - PyEval_SaveThread(); -#endif -} - -void wxPyTimer::Notify() { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); - wxPyInEvent = true; -#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(); - wxPyInEvent = false; -#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() { -#ifdef WXP_WITH_THREAD - //if (! wxPyInEvent) - PyEval_RestoreThread(wxPyEventThreadState); -#endif - if (m_userData != Py_None) { - Py_DECREF(m_userData); - m_userData = Py_None; - } -#ifdef WXP_WITH_THREAD - //if (! wxPyInEvent) - PyEval_SaveThread(); -#endif -} - - -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 - -#ifdef WXP_WITH_THREAD -extern PyThreadState* wxPyEventThreadState; -extern bool wxPyInEvent; -#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); - -void wxPyEventThunker(wxObject*, wxEvent& event); -PyObject* wxPyConstructObject(void* ptr, char* className); - -//---------------------------------------------------------------------- - - -#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; -}; - - - - - -//--------------------------------------------------------------------------- -// This class holds an instance of a Python Shadow Class object and assists -// with looking up and invoking Python callback methods from C++ virtual -// method redirections. For all classes which have virtuals which should be -// overridable in wxPython, a new subclass is created that contains a -// wxPyCallbackHelper. -//--------------------------------------------------------------------------- - -class wxPyCallbackHelper { -public: - wxPyCallbackHelper(); - ~wxPyCallbackHelper(); - - void setSelf(PyObject* self); - - bool findCallback(const wxString& name); - int callCallback(PyObject* argTuple); - PyObject* callCallbackObj(PyObject* argTuple); - -private: - PyObject* m_self; - PyObject* m_lastFound; -}; - - - -//--------------------------------------------------------------------------- -// These macros are used to implement the virtual methods that should -// redirect to a Python method if one exists. The names designate the -// return type, if any as well as any parameter types. -//--------------------------------------------------------------------------- - -#define PYCALLBACK_BOOL_INTINT(PCLASS, CBNAME) \ - bool CBNAME(int a, int b) { \ - if (m_myInst.findCallback(#CBNAME)) \ - return m_myInst.callCallback(Py_BuildValue("(ii)",a,b)); \ - else \ - return PCLASS::CBNAME(a,b); \ - } \ - bool base_##CBNAME(int a, int b) { \ - return PCLASS::CBNAME(a,b); \ - } - -//--------------------------------------------------------------------------- - -#define PYCALLBACK_BOOL_INT(PCLASS, CBNAME) \ - bool CBNAME(int a) { \ - if (m_myInst.findCallback(#CBNAME)) \ - return m_myInst.callCallback(Py_BuildValue("(i)",a)); \ - else \ - return PCLASS::CBNAME(a); \ - } \ - bool base_##CBNAME(int a) { \ - return PCLASS::CBNAME(a); \ - } - -#define PYCALLBACK_BOOL_INT_pure(PCLASS, CBNAME) \ - bool CBNAME(int a) { \ - if (m_myInst.findCallback(#CBNAME)) \ - return m_myInst.callCallback(Py_BuildValue("(i)",a)); \ - else return false; \ - } - - -//--------------------------------------------------------------------------- - -#define PYCALLBACK__(PCLASS, CBNAME) \ - void CBNAME() { \ - if (m_myInst.findCallback(#CBNAME)) \ - m_myInst.callCallback(Py_BuildValue("()")); \ - else \ - PCLASS::CBNAME(); \ - } \ - void base_##CBNAME() { \ - PCLASS::CBNAME(); \ - } - -//--------------------------------------------------------------------------- - -#define PYPRIVATE \ - void _setSelf(PyObject* self) { \ - m_myInst.setSelf(self); \ - } \ - private: wxPyCallbackHelper m_myInst; - -//--------------------------------------------------------------------------- - -#endif - diff --git a/utils/wxPython/src/image.i b/utils/wxPython/src/image.i deleted file mode 100644 index ae84b468bb..0000000000 --- a/utils/wxPython/src/image.i +++ /dev/null @@ -1,172 +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 Rescale(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 ); - - %addmethods { - PyObject* GetData() { - unsigned char* data = self->GetData(); - int len = self->GetWidth() * self->GetHeight() * 3; - return PyString_FromStringAndSize((char*)data, len); - } - - void SetData(PyObject* data) { - unsigned char* dataPtr; - - if (! PyString_Check(data)) { - PyErr_SetString(PyExc_TypeError, "Expected string object"); - return /* NULL */ ; - } - dataPtr = (unsigned char*)PyString_AsString(data); - self->SetData(dataPtr); - } - } - - 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/libpy.c b/utils/wxPython/src/libpy.c deleted file mode 100644 index 59aa8fae2f..0000000000 --- a/utils/wxPython/src/libpy.c +++ /dev/null @@ -1,413 +0,0 @@ -/*********************************************************************** - * $Header$ - * swig_lib/python/python.cfg - * - * Contains variable linking and pointer type-checking code. - ************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" - -/* Definitions for Windows/Unix exporting */ -#if defined(_WIN32) || defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#endif - -#ifdef SWIG_GLOBAL -#define SWIGSTATICRUNTIME(a) SWIGEXPORT(a) -#else -#define SWIGSTATICRUNTIME(a) static a -#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 */ - -SWIGSTATICRUNTIME(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); -} - -SWIGSTATICRUNTIME(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; -} - -/* ----------------------------------------------------------------------------- - * Pointer type-checking - * ----------------------------------------------------------------------------- */ - -/* 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; - -static int SwigPtrMax = 64; /* Max entries that can be currently held */ -static int SwigPtrN = 0; /* Current number of entries */ -static int SwigPtrSort = 0; /* Status flag indicating sort */ -static int SwigStart[256]; /* Starting positions of types */ -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); -} - -/* Register a new datatype with the type-checker */ -SWIGSTATICRUNTIME(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)); - } - - /* 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; - } - - /* Check for existing entries */ - while (t->next) { - if ((strcmp(t->name,newtype) == 0)) { - if (cast) t->cast = cast; - return; - } - t = t->next; - } - 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 */ -SWIGSTATICRUNTIME(void) -SWIG_MakePtr(char *c, const void *ptr, char *type) { - static char hex[17] = "0123456789abcdef"; - unsigned long p, s; - char result[24], *r; - 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--); - strcpy (c, type); - } else { - strcpy (c, "NULL"); - } -} - -/* Function for getting a pointer value */ -SWIGSTATICRUNTIME(char *) -SWIG_GetPtr(char *c, void **ptr, char *t) -{ - unsigned long p; - char temp_type[256], *name; - int i, len, start, end; - SwigPtrType *sp,*tp; - SwigCacheType *cache; - register int d; - - p = 0; - /* Pointer values must start with leading underscore */ - if (*c != '_') { - *ptr = (void *) 0; - if (strcmp(c,"NULL") == 0) return (char *) 0; - else c; - } - c++; - /* Extract hex value from pointer */ - while (d = *c) { - if ((d >= '0') && (d <= '9')) - p = (p << 4) + (d - '0'); - else if ((d >= 'a') && (d <= 'f')) - p = (p << 4) + (d - ('a'-10)); - else - break; - c++; - } - *ptr = (void *) p; - if ((!t) || (strcmp(t,c)==0)) return (char *) 0; - - 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 && (strcmp(t,cache->name) == 0) && (strcmp(c,cache->mapped) == 0)) { - cache->stat++; - if (cache->tp->cast) *ptr = (*(cache->tp->cast))(*ptr); - return (char *) 0; - } - SwigLastCache = (SwigLastCache+1) & SWIG_CACHEMASK; - if (!SwigLastCache) cache = SwigCache; - else cache++; - } - /* Type mismatch. Look through type-mapping table */ - start = SwigStart[(int) t[1]]; - end = SwigStart[(int) t[1]+1]; - sp = &SwigPtrTable[start]; - - /* Try to find a match */ - while (start <= end) { - if (strncmp(t,sp->name,sp->len) == 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++; - start++; - } - return c; -} - -/* New object-based GetPointer function. This uses the Python abstract - * object interface to automatically dereference the 'this' attribute - * of shadow objects. */ - -SWIGSTATICRUNTIME(char *) -SWIG_GetPtrObj(PyObject *obj, void **ptr, char *type) { - PyObject *sobj = obj; - char *str; - if (!PyString_Check(obj)) { - sobj = PyObject_GetAttrString(obj,"this"); - if (!sobj) return ""; - } - str = PyString_AsString(sobj); - return SWIG_GetPtr(str,ptr,type); -} - -#ifdef __cplusplus -} -#endif - - diff --git a/utils/wxPython/src/makefile.nt b/utils/wxPython/src/makefile.nt deleted file mode 100644 index 42d9af86b7..0000000000 --- a/utils/wxPython/src/makefile.nt +++ /dev/null @@ -1,339 +0,0 @@ -#---------------------------------------------------------------------------- -# Name: makefile.nt -# Purpose: Win32, VC++ 5 makefile for wxPython -# -# Author: Robin Dunn -# -# Created: 3/27/97 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- -VERSION=0.5.4 - -# Set WXDIR to the root wxWindows directory for your system -WXDIR = $(WXWIN) - -# Set this to the root of the Python installation -PYTHONDIR=d:\Python - -# 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 at the first -# runtime. -COMPILEPY=0 - -SEPARATE=0 - -#---------------------------------------------------------------------- - -WXUSINGDLL=0 -NOPCH=1 -THISDIR=$(WXDIR)\utils\wxPython - -EXTRALIBS=$(PYTHONDIR)\libs\python15.lib -EXTRAINC=-I$(PYTHONDIR)\include -I. -EXTRAFLAGS=/Fpwxp.pch /YXhelpers.h -DSWIG_GLOBAL -DHAVE_CONFIG_H -OVERRIDEFLAGS=/GX- - - -SWIGFLAGS=-c++ -shadow -python -dnone -D__WXMSW__ -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 \ -!if "$(SEPARATE)" == "0" - utils.obj -!else - -TARGET2 = utilsc -OBJECTS2 = utils.obj -target2=$(TARGETDIR)\$(TARGET2).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)\utils.py $(TARGETDIR)\windows3.py \ - $(TARGETDIR)\__init__.py - - -#---------------------------------------------------------------------- - -!if "$(FINAL)" == "0" -DEBUGLFLAGS = /DEBUG /INCREMENTAL:YES -!else -DEBUGLFLAGS = /INCREMENTAL:NO -!endif - -LFLAGS= $(DEBUGLFLAGS) /DLL /def:$(TARGET).def /subsystem:windows,3.50 \ - /machine:I386 /implib:./$(TARGET).lib /nologo - -LFLAGS2=$(DEBUGLFLAGS) /DLL /def:$(TARGET2).def /subsystem:windows,3.50 \ - /machine:I386 /implib:./$(TARGET2).lib /nologo - -#---------------------------------------------------------------------- - -default: $(TARGETDIR)\$(TARGET).pyd $(target2) pycfiles - -all: wx $(TARGET) $(TARGET2) - -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) -$(DUMMYOBJ) $(OBJECTS) $(TARGET).res -$(LIBS) -<< - -$(TARGETDIR)\$(TARGET2).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS2) - $(link) @<< -/out:$@ /dll -$(LFLAGS2) -$(DUMMYOBJ) $(OBJECTS2) -$(LIBS) -<< - - -$(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).* -!endif - -erase $(TARGETDIR)\$(TARGET).pyd - -erase $(TARGETDIR)\*.py - -erase $(TARGETDIR)\*.pyc - -erase $(TARGETDIR)\*.pyo - - - -#------------------------------------------------------------------------ - -.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 - -!if "$(SEPARATE)" == "1" -$(GENCODEDIR)\utils.cpp $(GENCODEDIR)\utils.py : utils.i my_typemaps.i - swig $(SWIGFLAGS) -o $(GENCODEDIR)/utils.cpp utils.i -!else -$(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py : utils.i my_typemaps.i _defs.i -!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)\utils.py : $(GENCODEDIR)\utils.py -$(TARGETDIR)\__init__.py : __init__.py - - -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 \ - - -sources : $(SOURCES) - - -dist: - cd ..\.. - wxPython\distrib\zipit.bat $(VERSION) - -#------------------------------------------------------------------------ -# -# $Log$ -# Revision 1.12 1999/06/28 21:39:47 VZ -# 1. wxStaticLine implemented (generic (ugly) and MSW versions) -# 2. wxTextDialog looks fine under MSW again -# 3. startup tips added: code, sample, docs -# 4. read-only text controls don't participate in TAB traversal -# -# Revision 1.11 1999/02/06 23:47:02 RD -# -# Changing makefile.nt to makefile.vc as in rest of wxWindows -# -# Revision 1.10 1999/02/01 00:10:40 RD -# -# Added the missing EVT_LIST_ITEM_SELECTED and friends. -# -# Revision 1.9 1999/01/30 07:30:13 RD -# -# Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -# -# Various cleanup, tweaks, minor additions, etc. to maintain -# compatibility with the current wxWindows. -# -# Revision 1.8 1998/12/21 19:58:06 RD -# -# Now compiles with /GX- on MSW. -# -# Revision 1.7 1998/12/15 20:41:20 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:41 RD -# -# Version 0.4 of wxPython for MSW. -# -# Revision 1.5 1998/08/19 00:38:23 RD -# -# A few tweaks -# -# Revision 1.4 1998/08/18 21:55:10 RD -# -# New build directory structure -# -# Revision 1.3 1998/08/15 07:36:37 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 03:34:23 RD -# made pre-compiling the python files optional -# -# Revision 1.1 1998/08/09 08:25:51 RD -# Initial version -# diff --git a/utils/wxPython/src/mdi.i b/utils/wxPython/src/mdi.i deleted file mode 100644 index 41de685303..0000000000 --- a/utils/wxPython/src/mdi.i +++ /dev/null @@ -1,94 +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(); - void Maximize(bool maximize); - 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 faef0a7a9a..0000000000 --- a/utils/wxPython/src/misc.i +++ /dev/null @@ -1,512 +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(); - long GetWidth(); - long GetHeight(); - void SetWidth(long w); - void SetHeight(long h); - - %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); - -long wxGetNumberFromUser(const wxString& message, - const wxString& prompt, - const wxString& caption, - long value, - long min = 0, long max = 100, - wxWindow *parent = NULL, - const wxPoint& pos = wxPyDefaultPosition); - -//--------------------------------------------------------------------------- -// 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); -#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 - -void wxSleep(int secs); -bool wxYield(); -bool wxSafeYield(); -void wxEnableTopLevelWindows(bool enable); - -%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(); *** ? - -}; - -//--------------------------------------------------------------------------- - -enum { - wxSYS_WHITE_BRUSH, - wxSYS_LTGRAY_BRUSH, - wxSYS_GRAY_BRUSH, - wxSYS_DKGRAY_BRUSH, - wxSYS_BLACK_BRUSH, - wxSYS_NULL_BRUSH, - wxSYS_HOLLOW_BRUSH, - wxSYS_WHITE_PEN, - wxSYS_BLACK_PEN, - wxSYS_NULL_PEN, - wxSYS_OEM_FIXED_FONT, - wxSYS_ANSI_FIXED_FONT, - wxSYS_ANSI_VAR_FONT, - wxSYS_SYSTEM_FONT, - wxSYS_DEVICE_DEFAULT_FONT, - wxSYS_DEFAULT_PALETTE, - wxSYS_SYSTEM_FIXED_FONT, - wxSYS_DEFAULT_GUI_FONT, - - wxSYS_COLOUR_SCROLLBAR, - wxSYS_COLOUR_BACKGROUND, - wxSYS_COLOUR_ACTIVECAPTION, - wxSYS_COLOUR_INACTIVECAPTION, - wxSYS_COLOUR_MENU, - wxSYS_COLOUR_WINDOW, - wxSYS_COLOUR_WINDOWFRAME, - wxSYS_COLOUR_MENUTEXT, - wxSYS_COLOUR_WINDOWTEXT, - wxSYS_COLOUR_CAPTIONTEXT, - wxSYS_COLOUR_ACTIVEBORDER, - wxSYS_COLOUR_INACTIVEBORDER, - wxSYS_COLOUR_APPWORKSPACE, - wxSYS_COLOUR_HIGHLIGHT, - wxSYS_COLOUR_HIGHLIGHTTEXT, - wxSYS_COLOUR_BTNFACE, - wxSYS_COLOUR_BTNSHADOW, - wxSYS_COLOUR_GRAYTEXT, - wxSYS_COLOUR_BTNTEXT, - wxSYS_COLOUR_INACTIVECAPTIONTEXT, - wxSYS_COLOUR_BTNHIGHLIGHT, - - wxSYS_COLOUR_3DDKSHADOW, - wxSYS_COLOUR_3DLIGHT, - wxSYS_COLOUR_INFOTEXT, - wxSYS_COLOUR_INFOBK, - - wxSYS_COLOUR_DESKTOP, - wxSYS_COLOUR_3DFACE, - wxSYS_COLOUR_3DSHADOW, - wxSYS_COLOUR_3DHIGHLIGHT, - wxSYS_COLOUR_3DHILIGHT, - wxSYS_COLOUR_BTNHILIGHT, - - wxSYS_MOUSE_BUTTONS, - wxSYS_BORDER_X, - wxSYS_BORDER_Y, - wxSYS_CURSOR_X, - wxSYS_CURSOR_Y, - wxSYS_DCLICK_X, - wxSYS_DCLICK_Y, - wxSYS_DRAG_X, - wxSYS_DRAG_Y, - wxSYS_EDGE_X, - wxSYS_EDGE_Y, - wxSYS_HSCROLL_ARROW_X, - wxSYS_HSCROLL_ARROW_Y, - wxSYS_HTHUMB_X, - wxSYS_ICON_X, - wxSYS_ICON_Y, - wxSYS_ICONSPACING_X, - wxSYS_ICONSPACING_Y, - wxSYS_WINDOWMIN_X, - wxSYS_WINDOWMIN_Y, - wxSYS_SCREEN_X, - wxSYS_SCREEN_Y, - wxSYS_FRAMESIZE_X, - wxSYS_FRAMESIZE_Y, - wxSYS_SMALLICON_X, - wxSYS_SMALLICON_Y, - wxSYS_HSCROLL_Y, - wxSYS_VSCROLL_X, - wxSYS_VSCROLL_ARROW_X, - wxSYS_VSCROLL_ARROW_Y, - wxSYS_VTHUMB_Y, - wxSYS_CAPTION_Y, - wxSYS_MENU_Y, - wxSYS_NETWORK_PRESENT, - wxSYS_PENWINDOWS_PRESENT, - wxSYS_SHOW_SOUNDS, - wxSYS_SWAP_BUTTONS, -}; - - - -%inline %{ - - wxColour wxSystemSettings_GetSystemColour(int index) { - return wxSystemSettings::GetSystemColour(index); - } - - wxFont wxSystemSettings_GetSystemFont(int index) { - return wxSystemSettings::GetSystemFont(index); - } - - int wxSystemSettings_GetSystemMetric(int index) { - return wxSystemSettings::GetSystemMetric(index); - } -%} - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- - - diff --git a/utils/wxPython/src/misc2.i b/utils/wxPython/src/misc2.i deleted file mode 100644 index 48a009a3b1..0000000000 --- a/utils/wxPython/src/misc2.i +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: misc2.i -// Purpose: Definitions of miscelaneous functions and classes that need -// to know about wxWindow. (So they can't be in misc.i or an -// import loop will happen.) -// -// Author: Robin Dunn -// -// Created: 18-June-1999 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module misc2 - -%{ -#include "helpers.h" -#include -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import windows.i - -//---------------------------------------------------------------------- - -wxWindow * wxFindWindowByLabel(const wxString& label, wxWindow *parent=NULL); -wxWindow * wxFindWindowByName(const wxString& name, wxWindow *parent=NULL); - - - -//--------------------------------------------------------------------------- -// 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); - } -%} - -//---------------------------------------------------------------------- -//---------------------------------------------------------------------- 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 c7ab22e788..0000000000 --- a/utils/wxPython/src/msw/cmndlgs.cpp +++ /dev/null @@ -1,3021 +0,0 @@ -/* - * FILE : msw/cmndlgs.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -#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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxColourData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxColourData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourData_GetChooseFull",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourData_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxColourData_GetCustomColour",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxColourData_SetChooseFull",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxColourData_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxColourData_SetCustomColour",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetCustomColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxColourData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxColourDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxColourDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxColourDialog_GetColourData(_swigobj) (_swigobj->GetColourData()) -static PyObject *_wrap_wxColourDialog_GetColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _result; - wxColourDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourDialog_GetColourData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxColourDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxColourDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxColourDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColourDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) "Choose a directory"; - char * _arg2 = (char *) ""; - long _arg3 = (long ) 0; - wxPoint * _arg4 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|sslO:new_wxDirDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxDirDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDirDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDirDialog_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxDirDialog_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDirDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_GetPath",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_GetMessage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDirDialog_SetMessage",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDirDialog_SetPath",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDirDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) "Choose a file"; - char * _arg2 = (char *) ""; - char * _arg3 = (char *) ""; - char * _arg4 = (char *) "*.*"; - long _arg5 = (long ) 0; - wxPoint * _arg6 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|sssslO:new_wxFileDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFileDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFileDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFileDialog_GetDirectory(_swigobj) (_swigobj->GetDirectory()) -static PyObject *_wrap_wxFileDialog_GetDirectory(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetDirectory",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetFilename",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetFilterIndex",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetMessage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetPath",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_GetWildcard",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetDirectory",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetFilename",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFileDialog_SetFilterIndex",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetMessage",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetPath",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxFileDialog_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFileDialog_SetWildcard",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFileDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) wxOK|wxCANCEL|wxCENTRE; - wxPoint * _arg6 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOOO|lO:new_wxSingleChoiceDialog",&_argo0,&_obj1,&_obj2,&_obj4,&_arg5,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSingleChoiceDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSingleChoiceDialog_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSingleChoiceDialog_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSingleChoiceDialog_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSingleChoiceDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) "Input Text"; - char * _arg3 = (char *) ""; - long _arg4 = (long ) wxOK|wxCANCEL|wxCENTRE; - wxPoint * _arg5 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Os|sslO:new_wxTextEntryDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextEntryDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextEntryDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTextEntryDialog_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxTextEntryDialog_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextEntryDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextEntryDialog_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextEntryDialog_SetValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextEntryDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxFontData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxFontData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFontData_EnableEffects",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetAllowSymbols",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFontData_GetChosenFont(_swigobj) (_swigobj->GetChosenFont()) -static PyObject *_wrap_wxFontData_GetChosenFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxFontData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetChosenFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetEnableEffects",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetInitialFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontData_GetShowHelp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFontData_SetAllowSymbols",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFontData_SetChosenFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetChosenFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFontData_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetColour. Expected _wxFontData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFontData_SetInitialFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetInitialFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxFontData_SetRange",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFontData_SetShowHelp",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxFontData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxFontDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFontDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFontDialog_GetFontData(_swigobj) (_swigobj->GetFontData()) -static PyObject *_wrap_wxFontDialog_GetFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _result; - wxFontDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontDialog_GetFontData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFontDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxFontDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFontDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFontDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -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 = (char *) "Message box"; - long _arg3 = (long ) wxOK|wxCANCEL|wxCENTRE; - wxPoint * _arg4 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _argo0 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Os|slO:new_wxMessageDialog",&_argo0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMessageDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMessageDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMessageDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxMessageDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMessageDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMessageDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 void *SwigwxProgressDialogTowxFrame(void *ptr) { - wxProgressDialog *src; - wxFrame *dest; - src = (wxProgressDialog *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxProgressDialogTowxWindow(void *ptr) { - wxProgressDialog *src; - wxWindow *dest; - src = (wxProgressDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxProgressDialogTowxEvtHandler(void *ptr) { - wxProgressDialog *src; - wxEvtHandler *dest; - src = (wxProgressDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxProgressDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxProgressDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxProgressDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxProgressDialog * _result; - wxString * _arg0; - wxString * _arg1; - int _arg2 = (int ) 100; - wxWindow * _arg3 = (wxWindow *) NULL; - int _arg4 = (int ) wxPD_AUTO_HIDE|wxPD_APP_MODAL; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO|iOi:new_wxProgressDialog",&_obj0,&_obj1,&_arg2,&_argo3,&_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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxProgressDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxProgressDialog *)new_wxProgressDialog(*_arg0,*_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxProgressDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxProgressDialog_Update(_swigobj,_swigarg0,_swigarg1) (_swigobj->Update(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxProgressDialog_Update(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxProgressDialog * _arg0; - int _arg1 = (int ) -1; - char * _arg2 = (char *) NULL; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|is:wxProgressDialog_Update",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxProgressDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxProgressDialog_Update. Expected _wxProgressDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxProgressDialog_Update(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxProgressDialog_Resume(_swigobj) (_swigobj->Resume()) -static PyObject *_wrap_wxProgressDialog_Resume(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxProgressDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxProgressDialog_Resume",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxProgressDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxProgressDialog_Resume. Expected _wxProgressDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxProgressDialog_Resume(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef cmndlgscMethods[] = { - { "wxProgressDialog_Resume", _wrap_wxProgressDialog_Resume, METH_VARARGS }, - { "wxProgressDialog_Update", _wrap_wxProgressDialog_Update, METH_VARARGS }, - { "new_wxProgressDialog", _wrap_new_wxProgressDialog, METH_VARARGS }, - { "wxMessageDialog_ShowModal", _wrap_wxMessageDialog_ShowModal, METH_VARARGS }, - { "new_wxMessageDialog", _wrap_new_wxMessageDialog, METH_VARARGS }, - { "wxFontDialog_ShowModal", _wrap_wxFontDialog_ShowModal, METH_VARARGS }, - { "wxFontDialog_GetFontData", _wrap_wxFontDialog_GetFontData, METH_VARARGS }, - { "new_wxFontDialog", _wrap_new_wxFontDialog, METH_VARARGS }, - { "wxFontData_SetShowHelp", _wrap_wxFontData_SetShowHelp, METH_VARARGS }, - { "wxFontData_SetRange", _wrap_wxFontData_SetRange, METH_VARARGS }, - { "wxFontData_SetInitialFont", _wrap_wxFontData_SetInitialFont, METH_VARARGS }, - { "wxFontData_SetColour", _wrap_wxFontData_SetColour, METH_VARARGS }, - { "wxFontData_SetChosenFont", _wrap_wxFontData_SetChosenFont, METH_VARARGS }, - { "wxFontData_SetAllowSymbols", _wrap_wxFontData_SetAllowSymbols, METH_VARARGS }, - { "wxFontData_GetShowHelp", _wrap_wxFontData_GetShowHelp, METH_VARARGS }, - { "wxFontData_GetInitialFont", _wrap_wxFontData_GetInitialFont, METH_VARARGS }, - { "wxFontData_GetEnableEffects", _wrap_wxFontData_GetEnableEffects, METH_VARARGS }, - { "wxFontData_GetChosenFont", _wrap_wxFontData_GetChosenFont, METH_VARARGS }, - { "wxFontData_GetColour", _wrap_wxFontData_GetColour, METH_VARARGS }, - { "wxFontData_GetAllowSymbols", _wrap_wxFontData_GetAllowSymbols, METH_VARARGS }, - { "wxFontData_EnableEffects", _wrap_wxFontData_EnableEffects, METH_VARARGS }, - { "delete_wxFontData", _wrap_delete_wxFontData, METH_VARARGS }, - { "new_wxFontData", _wrap_new_wxFontData, METH_VARARGS }, - { "wxTextEntryDialog_ShowModal", _wrap_wxTextEntryDialog_ShowModal, METH_VARARGS }, - { "wxTextEntryDialog_SetValue", _wrap_wxTextEntryDialog_SetValue, METH_VARARGS }, - { "wxTextEntryDialog_GetValue", _wrap_wxTextEntryDialog_GetValue, METH_VARARGS }, - { "new_wxTextEntryDialog", _wrap_new_wxTextEntryDialog, METH_VARARGS }, - { "wxSingleChoiceDialog_ShowModal", _wrap_wxSingleChoiceDialog_ShowModal, METH_VARARGS }, - { "wxSingleChoiceDialog_SetSelection", _wrap_wxSingleChoiceDialog_SetSelection, METH_VARARGS }, - { "wxSingleChoiceDialog_GetStringSelection", _wrap_wxSingleChoiceDialog_GetStringSelection, METH_VARARGS }, - { "wxSingleChoiceDialog_GetSelection", _wrap_wxSingleChoiceDialog_GetSelection, METH_VARARGS }, - { "new_wxSingleChoiceDialog", _wrap_new_wxSingleChoiceDialog, METH_VARARGS }, - { "wxFileDialog_ShowModal", _wrap_wxFileDialog_ShowModal, METH_VARARGS }, - { "wxFileDialog_SetWildcard", _wrap_wxFileDialog_SetWildcard, METH_VARARGS }, - { "wxFileDialog_SetStyle", _wrap_wxFileDialog_SetStyle, METH_VARARGS }, - { "wxFileDialog_SetPath", _wrap_wxFileDialog_SetPath, METH_VARARGS }, - { "wxFileDialog_SetMessage", _wrap_wxFileDialog_SetMessage, METH_VARARGS }, - { "wxFileDialog_SetFilterIndex", _wrap_wxFileDialog_SetFilterIndex, METH_VARARGS }, - { "wxFileDialog_SetFilename", _wrap_wxFileDialog_SetFilename, METH_VARARGS }, - { "wxFileDialog_SetDirectory", _wrap_wxFileDialog_SetDirectory, METH_VARARGS }, - { "wxFileDialog_GetWildcard", _wrap_wxFileDialog_GetWildcard, METH_VARARGS }, - { "wxFileDialog_GetStyle", _wrap_wxFileDialog_GetStyle, METH_VARARGS }, - { "wxFileDialog_GetPath", _wrap_wxFileDialog_GetPath, METH_VARARGS }, - { "wxFileDialog_GetMessage", _wrap_wxFileDialog_GetMessage, METH_VARARGS }, - { "wxFileDialog_GetFilterIndex", _wrap_wxFileDialog_GetFilterIndex, METH_VARARGS }, - { "wxFileDialog_GetFilename", _wrap_wxFileDialog_GetFilename, METH_VARARGS }, - { "wxFileDialog_GetDirectory", _wrap_wxFileDialog_GetDirectory, METH_VARARGS }, - { "new_wxFileDialog", _wrap_new_wxFileDialog, METH_VARARGS }, - { "wxDirDialog_ShowModal", _wrap_wxDirDialog_ShowModal, METH_VARARGS }, - { "wxDirDialog_SetPath", _wrap_wxDirDialog_SetPath, METH_VARARGS }, - { "wxDirDialog_SetMessage", _wrap_wxDirDialog_SetMessage, METH_VARARGS }, - { "wxDirDialog_GetStyle", _wrap_wxDirDialog_GetStyle, METH_VARARGS }, - { "wxDirDialog_GetMessage", _wrap_wxDirDialog_GetMessage, METH_VARARGS }, - { "wxDirDialog_GetPath", _wrap_wxDirDialog_GetPath, METH_VARARGS }, - { "new_wxDirDialog", _wrap_new_wxDirDialog, METH_VARARGS }, - { "wxColourDialog_ShowModal", _wrap_wxColourDialog_ShowModal, METH_VARARGS }, - { "wxColourDialog_GetColourData", _wrap_wxColourDialog_GetColourData, METH_VARARGS }, - { "new_wxColourDialog", _wrap_new_wxColourDialog, METH_VARARGS }, - { "wxColourData_SetCustomColour", _wrap_wxColourData_SetCustomColour, METH_VARARGS }, - { "wxColourData_SetColour", _wrap_wxColourData_SetColour, METH_VARARGS }, - { "wxColourData_SetChooseFull", _wrap_wxColourData_SetChooseFull, METH_VARARGS }, - { "wxColourData_GetCustomColour", _wrap_wxColourData_GetCustomColour, METH_VARARGS }, - { "wxColourData_GetColour", _wrap_wxColourData_GetColour, METH_VARARGS }, - { "wxColourData_GetChooseFull", _wrap_wxColourData_GetChooseFull, METH_VARARGS }, - { "delete_wxColourData", _wrap_delete_wxColourData, METH_VARARGS }, - { "new_wxColourData", _wrap_new_wxColourData, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_class_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_class_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_class_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_class_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_class_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_class_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_class_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_class_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_class_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_class_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_class_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_class_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_class_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_class_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel}, - { "_class_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_class_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel}, - { "_class_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_class_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel}, - { "_class_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_class_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel}, - { "_class_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_class_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel}, - { "_class_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_class_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel}, - { "_class_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_class_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_class_wxWindow","_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_class_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_class_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_class_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_class_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_class_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_class_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_class_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_class_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_class_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_class_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_class_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_class_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_class_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_class_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog}, - { "_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog}, - { "_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog}, - { "_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog}, - { "_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog}, - { "_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog}, - { "_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_wxFrame","_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxProgressDialog",SwigwxProgressDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_wxWindow","_wxProgressDialog",SwigwxProgressDialogTowxWindow}, - { "_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow}, - { "_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow}, - { "_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow}, - { "_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow}, - { "_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow}, - { "_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow}, - { "_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_class_wxFrame","_wxProgressDialog",SwigwxProgressDialogTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/cmndlgs.py b/utils/wxPython/src/msw/cmndlgs.py deleted file mode 100644 index 52e107501a..0000000000 --- a/utils/wxPython/src/msw/cmndlgs.py +++ /dev/null @@ -1,347 +0,0 @@ -# This file was created automatically by SWIG. -import cmndlgsc - -from misc import * - -from gdi import * - -from windows import * - -from frames import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxColourDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,cmndlgsc=cmndlgsc): - if self.thisown == 1 : - cmndlgsc.delete_wxColourData(self) - def GetChooseFull(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_GetChooseFull,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetCustomColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_GetCustomColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def SetChooseFull(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_SetChooseFull,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_SetColour,(self,) + _args, _kwargs) - return val - def SetCustomColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourData_SetCustomColour,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxColourData(wxColourDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxColourData,_args,_kwargs) - self.thisown = 1 - - - - -class wxColourDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColourData(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourDialog_GetColourData,(self,) + _args, _kwargs) - if val: val = wxColourDataPtr(val) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxColourDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxColourDialog(wxColourDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxColourDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxDirDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_GetPath,(self,) + _args, _kwargs) - return val - def GetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_GetMessage,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_GetStyle,(self,) + _args, _kwargs) - return val - def SetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_SetMessage,(self,) + _args, _kwargs) - return val - def SetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_SetPath,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxDirDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxDirDialog(wxDirDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxDirDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFileDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetDirectory(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetDirectory,(self,) + _args, _kwargs) - return val - def GetFilename(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetFilename,(self,) + _args, _kwargs) - return val - def GetFilterIndex(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetFilterIndex,(self,) + _args, _kwargs) - return val - def GetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetMessage,(self,) + _args, _kwargs) - return val - def GetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetPath,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetStyle,(self,) + _args, _kwargs) - return val - def GetWildcard(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_GetWildcard,(self,) + _args, _kwargs) - return val - def SetDirectory(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetDirectory,(self,) + _args, _kwargs) - return val - def SetFilename(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetFilename,(self,) + _args, _kwargs) - return val - def SetFilterIndex(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetFilterIndex,(self,) + _args, _kwargs) - return val - def SetMessage(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetMessage,(self,) + _args, _kwargs) - return val - def SetPath(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetPath,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetStyle,(self,) + _args, _kwargs) - return val - def SetWildcard(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_SetWildcard,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFileDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFileDialog(wxFileDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxFileDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxSingleChoiceDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_GetSelection,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_GetStringSelection,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_SetSelection,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxSingleChoiceDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSingleChoiceDialog(wxSingleChoiceDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxSingleChoiceDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxTextEntryDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxTextEntryDialog_GetValue,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxTextEntryDialog_SetValue,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxTextEntryDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTextEntryDialog(wxTextEntryDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxTextEntryDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFontDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,cmndlgsc=cmndlgsc): - if self.thisown == 1 : - cmndlgsc.delete_wxFontData(self) - def EnableEffects(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_EnableEffects,(self,) + _args, _kwargs) - return val - def GetAllowSymbols(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetAllowSymbols,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetChosenFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetChosenFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) ; val.thisown = 1 - return val - def GetEnableEffects(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetEnableEffects,(self,) + _args, _kwargs) - return val - def GetInitialFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetInitialFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) ; val.thisown = 1 - return val - def GetShowHelp(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_GetShowHelp,(self,) + _args, _kwargs) - return val - def SetAllowSymbols(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetAllowSymbols,(self,) + _args, _kwargs) - return val - def SetChosenFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetChosenFont,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetColour,(self,) + _args, _kwargs) - return val - def SetInitialFont(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetInitialFont,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetRange,(self,) + _args, _kwargs) - return val - def SetShowHelp(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontData_SetShowHelp,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFontData(wxFontDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxFontData,_args,_kwargs) - self.thisown = 1 - - - - -class wxFontDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFontData(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontDialog_GetFontData,(self,) + _args, _kwargs) - if val: val = wxFontDataPtr(val) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxFontDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFontDialog(wxFontDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxFontDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxMessageDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ShowModal(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxMessageDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMessageDialog(wxMessageDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxMessageDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxProgressDialogPtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Update(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxProgressDialog_Update,(self,) + _args, _kwargs) - return val - def Resume(self, *_args, **_kwargs): - val = apply(cmndlgsc.wxProgressDialog_Resume,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxProgressDialog(wxProgressDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(cmndlgsc.new_wxProgressDialog,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- 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 f75b98b5e2..0000000000 --- a/utils/wxPython/src/msw/controls.cpp +++ /dev/null @@ -1,7291 +0,0 @@ -/* - * FILE : msw/controls.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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 -#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 -#ifdef __cplusplus -extern "C" { -#endif -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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxControl_Command",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxControl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxControl_Command. Expected _wxControl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxControl_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxControl_SetLabel",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "button"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxButton",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxButton_SetDefault",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxBU_AUTODRAW; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "button"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxBitmapButton",&_argo0,&_arg1,&_argo2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxBitmapButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxBitmapButton. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxBitmapButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxBitmapButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmapButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapLabel(_swigobj) (_swigobj->GetBitmapLabel()) -static PyObject *_wrap_wxBitmapButton_GetBitmapLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapDisabled(_swigobj) (_swigobj->GetBitmapDisabled()) -static PyObject *_wrap_wxBitmapButton_GetBitmapDisabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapDisabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapFocus(_swigobj) (_swigobj->GetBitmapFocus()) -static PyObject *_wrap_wxBitmapButton_GetBitmapFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapFocus",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmapButton_GetBitmapSelected(_swigobj) (_swigobj->GetBitmapSelected()) -static PyObject *_wrap_wxBitmapButton_GetBitmapSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmapButton_GetBitmapSelected",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapDisabled",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapDisabled. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapFocus",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapFocus. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapSelected",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapSelected. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmapButton_SetBitmapLabel",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapLabel. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "checkBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxCheckBox",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxCheckBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxCheckBox. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCheckBox_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCheckBox_SetValue",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - int _arg4 = (int ) 0; - wxString * _arg5 = (wxString *) NULL; - long _arg6 = (long ) 0; - wxValidator * _arg7 = (wxValidator *) &wxPyDefaultValidator; - char * _arg8 = (char *) "choice"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj5 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOOlOs:new_wxChoice",&_argo0,&_arg1,&_argo2,&_argo3,&_obj5,&_arg6,&_argo7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxChoice. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxChoice. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxChoice_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxChoice_Append",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxChoice_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_GetColumns",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxChoice_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxChoice_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxChoice_SetColumns",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxChoice_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxChoice_SetStringSelection",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 *SwigwxComboBoxTowxChoice(void *ptr) { - wxComboBox *src; - wxChoice *dest; - src = (wxComboBox *) ptr; - dest = (wxChoice *) src; - return (void *) dest; -} - -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 = (char *) ""; - wxPoint * _arg3 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - int _arg5 = (int ) 0; - wxString * _arg6 = (wxString *) NULL; - long _arg7 = (long ) 0; - wxValidator * _arg8 = (wxValidator *) &wxPyDefaultValidator; - char * _arg9 = (char *) "comboBox"; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _obj6 = 0; - PyObject * _argo8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|sOOOlOs:new_wxComboBox",&_argo0,&_arg1,&_arg2,&_argo3,&_argo4,&_obj6,&_arg7,&_argo8,&_arg9)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxComboBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxComboBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxComboBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxComboBox_Append",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Copy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Cut",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxComboBox_Delete",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxComboBox_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetInsertionPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetLastPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxComboBox_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_Paste",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllO:wxComboBox_Replace",&_argo0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxComboBox_Remove",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxComboBox_SetInsertionPoint",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxComboBox_SetInsertionPointEnd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxComboBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxComboBox_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetSelection. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetSelection(_arg0,_arg1); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxComboBox_SetMark",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxComboBox_SetValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxGA_HORIZONTAL; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "gauge"; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|OOlOs:new_wxGauge",&_argo0,&_arg1,&_arg2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGauge. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGauge. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxGauge. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGauge_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGauge_GetBezelFace(_swigobj) (_swigobj->GetBezelFace()) -static PyObject *_wrap_wxGauge_GetBezelFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetBezelFace",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetRange",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetShadowWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGauge_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetBezelFace",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetRange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetShadowWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGauge_SetValue",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - char * _arg6 = (char *) "staticBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxStaticBox",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static void *SwigwxStaticLineTowxControl(void *ptr) { - wxStaticLine *src; - wxControl *dest; - src = (wxStaticLine *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticLineTowxWindow(void *ptr) { - wxStaticLine *src; - wxWindow *dest; - src = (wxStaticLine *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticLineTowxEvtHandler(void *ptr) { - wxStaticLine *src; - wxEvtHandler *dest; - src = (wxStaticLine *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxStaticLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxStaticLine(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticLine * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxLI_HORIZONTAL; - char * _arg5 = (char *) "staticLine"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxStaticLine",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticLine. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStaticLine. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticLine. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticLine *)new_wxStaticLine(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticLine_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - char * _arg6 = (char *) "staticText"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxStaticText",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticText. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticText_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStaticText_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStaticText_SetLabel",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - int _arg4; - wxString * _arg5 = (wxString *) NULL; - long _arg6 = (long ) 0; - wxValidator * _arg7 = (wxValidator *) &wxPyDefaultValidator; - char * _arg8 = (char *) "listBox"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj5 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOOlOs:new_wxListBox",&_argo0,&_arg1,&_argo2,&_argo3,&_obj5,&_arg6,&_argo7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_Append",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_Delete",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_Deselect",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListBox_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_Selected",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_Set",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListBox_SetFirstItem",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListBox_SetFirstItemStr",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|i:wxListBox_SetSelection",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxListBox_SetString",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxListBox_SetStringSelection",&_argo0,&_obj1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - int _arg4 = (int ) 0; - wxString * _arg5 = (wxString *) NULL; - long _arg6 = (long ) 0; - wxValidator * _arg7 = (wxValidator *) &wxPyDefaultValidator; - char * _arg8 = (char *) "listBox"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj5 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOOlOs:new_wxCheckListBox",&_argo0,&_arg1,&_argo2,&_argo3,&_obj5,&_arg6,&_argo7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxCheckListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxCheckListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCheckListBox_IsChecked",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|i:wxCheckListBox_Check",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCheckListBox_GetItemHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (char *) ""; - wxPoint * _arg3 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "text"; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|sOOlOs:new_wxTextCtrl",&_argo0,&_arg1,&_arg2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTextCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxTextCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTextCtrl_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxTextCtrl_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Copy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Cut",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_DiscardEdits",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetInsertionPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetLastPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_GetLineLength",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_GetLineText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetNumberOfLines",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_IsModified",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_LoadFile",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_Paste",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_PositionToXY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxTextCtrl_Remove",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllO:wxTextCtrl_Replace",&_argo0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_SaveFile",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxTextCtrl_SetEditable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_SetInsertionPoint",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_SetInsertionPointEnd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxTextCtrl_SetSelection",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_SetValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxTextCtrl_ShowPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_WriteText",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTextCtrl_AppendText",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxTextCtrl_XYToPosition",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanCopy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanCut",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanPaste",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanRedo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_CanUndo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTextCtrl_IsEditable",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxSB_HORIZONTAL; - wxValidator * _arg5 = (wxValidator *) &wxPyDefaultValidator; - char * _arg6 = (char *) "scrollBar"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOlOs:new_wxScrollBar",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_argo5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrollBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrollBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxScrollBar. Expected _wxSize_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxScrollBar_GetRange(_swigobj) (_swigobj->GetRange()) -static PyObject *_wrap_wxScrollBar_GetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetRange",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetPageSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetThumbPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollBar_GetThumbSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxScrollBar_SetThumbPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool5 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|i:wxScrollBar_SetScrollbar",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxSP_HORIZONTAL; - char * _arg5 = (char *) "spinButton"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOls:new_wxSpinButton",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSpinButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSpinButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSpinButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSpinButton_GetMax(_swigobj) (_swigobj->GetMax()) -static PyObject *_wrap_wxSpinButton_GetMax(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSpinButton_GetMax",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSpinButton_GetMin",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSpinButton_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSpinButton_SetRange",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSpinButton_SetValue",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - char * _arg6 = (char *) "staticBitmap"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxStaticBitmap",&_argo0,&_arg1,&_argo2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticBitmap. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStaticBitmap. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBitmap. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxStaticBitmap_GetBitmap(_swigobj) (_swigobj->GetBitmap()) -static PyObject *_wrap_wxStaticBitmap_GetBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxStaticBitmap * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStaticBitmap_GetBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStaticBitmap_SetBitmap",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_SetBitmap. Expected _wxStaticBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} - -#define wxStaticBitmap_SetIcon(_swigobj,_swigarg0) (_swigobj->SetIcon(_swigarg0)) -static PyObject *_wrap_wxStaticBitmap_SetIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBitmap * _arg0; - wxIcon * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStaticBitmap_SetIcon",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_SetIcon. Expected _wxStaticBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStaticBitmap_SetIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStaticBitmap_SetIcon(_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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - int _arg5 = (int ) 0; - wxString * _arg6 = (wxString *) NULL; - int _arg7 = (int ) 0; - long _arg8 = (long ) wxRA_HORIZONTAL; - wxValidator * _arg9 = (wxValidator *) &wxPyDefaultValidator; - char * _arg10 = (char *) "radioBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _obj6 = 0; - PyObject * _argo9 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOOilOs:new_wxRadioBox",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_obj6,&_arg7,&_arg8,&_argo9,&_arg10)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 (_argo9) { - if (_argo9 == Py_None) { _arg9 = NULL; } - else if (SWIG_GetPtrObj(_argo9,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxRadioBox_EnableItem",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRadioBox_FindString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_GetItemLabel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioBox_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_GetString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioBox_GetStringSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioBox_Number",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxRadioBox_SetItemLabel",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRadioBox_SetStringSelection",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioBox_Show",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxRadioBox_ShowItem",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) 0; - wxValidator * _arg6 = (wxValidator *) &wxPyDefaultValidator; - char * _arg7 = (char *) "radioButton"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOlOs:new_wxRadioButton",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_argo6,&_arg7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxRadioButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRadioButton_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxRadioButton_SetValue",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg6 = (wxSize *) &wxPyDefaultSize; - long _arg7 = (long ) wxSL_HORIZONTAL; - wxValidator * _arg8 = (wxValidator *) &wxPyDefaultValidator; - char * _arg9 = (char *) "slider"; - PyObject * _argo0 = 0; - PyObject * _argo5 = 0; - PyObject * _argo6 = 0; - PyObject * _argo8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|OOlOs:new_wxSlider",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5,&_argo6,&_arg7,&_argo8,&_arg9)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSlider. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxSlider. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxSlider. Expected _wxSize_p."); - return NULL; - } - } - if (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSlider_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSlider_ClearSel(_swigobj) (_swigobj->ClearSel()) -static PyObject *_wrap_wxSlider_ClearSel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_ClearSel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_ClearTicks",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetLineSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetMax",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetMin",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetPageSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetSelEnd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetSelStart",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetThumbLength",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetTickFreq",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSlider_GetValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSlider_SetRange",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSlider_SetTickFreq",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetLineSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetPageSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSlider_SetSelection",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetThumbLength",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetTick",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSlider_SetValue",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxSlider_SetTick", _wrap_wxSlider_SetTick, METH_VARARGS }, - { "wxSlider_SetThumbLength", _wrap_wxSlider_SetThumbLength, METH_VARARGS }, - { "wxSlider_SetSelection", _wrap_wxSlider_SetSelection, METH_VARARGS }, - { "wxSlider_SetPageSize", _wrap_wxSlider_SetPageSize, METH_VARARGS }, - { "wxSlider_SetLineSize", _wrap_wxSlider_SetLineSize, METH_VARARGS }, - { "wxSlider_SetTickFreq", _wrap_wxSlider_SetTickFreq, METH_VARARGS }, - { "wxSlider_SetRange", _wrap_wxSlider_SetRange, METH_VARARGS }, - { "wxSlider_GetValue", _wrap_wxSlider_GetValue, METH_VARARGS }, - { "wxSlider_GetTickFreq", _wrap_wxSlider_GetTickFreq, METH_VARARGS }, - { "wxSlider_GetThumbLength", _wrap_wxSlider_GetThumbLength, METH_VARARGS }, - { "wxSlider_GetSelStart", _wrap_wxSlider_GetSelStart, METH_VARARGS }, - { "wxSlider_GetSelEnd", _wrap_wxSlider_GetSelEnd, METH_VARARGS }, - { "wxSlider_GetPageSize", _wrap_wxSlider_GetPageSize, METH_VARARGS }, - { "wxSlider_GetMin", _wrap_wxSlider_GetMin, METH_VARARGS }, - { "wxSlider_GetMax", _wrap_wxSlider_GetMax, METH_VARARGS }, - { "wxSlider_GetLineSize", _wrap_wxSlider_GetLineSize, METH_VARARGS }, - { "wxSlider_ClearTicks", _wrap_wxSlider_ClearTicks, METH_VARARGS }, - { "wxSlider_ClearSel", _wrap_wxSlider_ClearSel, METH_VARARGS }, - { "new_wxSlider", _wrap_new_wxSlider, METH_VARARGS }, - { "wxRadioButton_SetValue", _wrap_wxRadioButton_SetValue, METH_VARARGS }, - { "wxRadioButton_GetValue", _wrap_wxRadioButton_GetValue, METH_VARARGS }, - { "new_wxRadioButton", _wrap_new_wxRadioButton, METH_VARARGS }, - { "wxRadioBox_ShowItem", _wrap_wxRadioBox_ShowItem, METH_VARARGS }, - { "wxRadioBox_Show", _wrap_wxRadioBox_Show, METH_VARARGS }, - { "wxRadioBox_SetStringSelection", _wrap_wxRadioBox_SetStringSelection, METH_VARARGS }, - { "wxRadioBox_SetSelection", _wrap_wxRadioBox_SetSelection, METH_VARARGS }, - { "wxRadioBox_SetItemLabel", _wrap_wxRadioBox_SetItemLabel, METH_VARARGS }, - { "wxRadioBox_Number", _wrap_wxRadioBox_Number, METH_VARARGS }, - { "wxRadioBox_GetStringSelection", _wrap_wxRadioBox_GetStringSelection, METH_VARARGS }, - { "wxRadioBox_GetString", _wrap_wxRadioBox_GetString, METH_VARARGS }, - { "wxRadioBox_GetSelection", _wrap_wxRadioBox_GetSelection, METH_VARARGS }, - { "wxRadioBox_GetItemLabel", _wrap_wxRadioBox_GetItemLabel, METH_VARARGS }, - { "wxRadioBox_FindString", _wrap_wxRadioBox_FindString, METH_VARARGS }, - { "wxRadioBox_EnableItem", _wrap_wxRadioBox_EnableItem, METH_VARARGS }, - { "wxRadioBox_Enable", _wrap_wxRadioBox_Enable, METH_VARARGS }, - { "new_wxRadioBox", _wrap_new_wxRadioBox, METH_VARARGS }, - { "wxStaticBitmap_SetIcon", _wrap_wxStaticBitmap_SetIcon, METH_VARARGS }, - { "wxStaticBitmap_SetBitmap", _wrap_wxStaticBitmap_SetBitmap, METH_VARARGS }, - { "wxStaticBitmap_GetBitmap", _wrap_wxStaticBitmap_GetBitmap, METH_VARARGS }, - { "new_wxStaticBitmap", _wrap_new_wxStaticBitmap, METH_VARARGS }, - { "wxSpinButton_SetValue", _wrap_wxSpinButton_SetValue, METH_VARARGS }, - { "wxSpinButton_SetRange", _wrap_wxSpinButton_SetRange, METH_VARARGS }, - { "wxSpinButton_GetValue", _wrap_wxSpinButton_GetValue, METH_VARARGS }, - { "wxSpinButton_GetMin", _wrap_wxSpinButton_GetMin, METH_VARARGS }, - { "wxSpinButton_GetMax", _wrap_wxSpinButton_GetMax, METH_VARARGS }, - { "new_wxSpinButton", _wrap_new_wxSpinButton, METH_VARARGS }, - { "wxScrollBar_SetScrollbar", _wrap_wxScrollBar_SetScrollbar, METH_VARARGS }, - { "wxScrollBar_SetThumbPosition", _wrap_wxScrollBar_SetThumbPosition, METH_VARARGS }, - { "wxScrollBar_GetThumbSize", _wrap_wxScrollBar_GetThumbSize, METH_VARARGS }, - { "wxScrollBar_GetThumbPosition", _wrap_wxScrollBar_GetThumbPosition, METH_VARARGS }, - { "wxScrollBar_GetPageSize", _wrap_wxScrollBar_GetPageSize, METH_VARARGS }, - { "wxScrollBar_GetRange", _wrap_wxScrollBar_GetRange, METH_VARARGS }, - { "new_wxScrollBar", _wrap_new_wxScrollBar, METH_VARARGS }, - { "wxTextCtrl_IsEditable", _wrap_wxTextCtrl_IsEditable, METH_VARARGS }, - { "wxTextCtrl_GetSelection", _wrap_wxTextCtrl_GetSelection, METH_VARARGS }, - { "wxTextCtrl_CanUndo", _wrap_wxTextCtrl_CanUndo, METH_VARARGS }, - { "wxTextCtrl_CanRedo", _wrap_wxTextCtrl_CanRedo, METH_VARARGS }, - { "wxTextCtrl_CanPaste", _wrap_wxTextCtrl_CanPaste, METH_VARARGS }, - { "wxTextCtrl_CanCut", _wrap_wxTextCtrl_CanCut, METH_VARARGS }, - { "wxTextCtrl_CanCopy", _wrap_wxTextCtrl_CanCopy, METH_VARARGS }, - { "wxTextCtrl_XYToPosition", _wrap_wxTextCtrl_XYToPosition, METH_VARARGS }, - { "wxTextCtrl_AppendText", _wrap_wxTextCtrl_AppendText, METH_VARARGS }, - { "wxTextCtrl_WriteText", _wrap_wxTextCtrl_WriteText, METH_VARARGS }, - { "wxTextCtrl_ShowPosition", _wrap_wxTextCtrl_ShowPosition, METH_VARARGS }, - { "wxTextCtrl_SetValue", _wrap_wxTextCtrl_SetValue, METH_VARARGS }, - { "wxTextCtrl_SetSelection", _wrap_wxTextCtrl_SetSelection, METH_VARARGS }, - { "wxTextCtrl_SetInsertionPointEnd", _wrap_wxTextCtrl_SetInsertionPointEnd, METH_VARARGS }, - { "wxTextCtrl_SetInsertionPoint", _wrap_wxTextCtrl_SetInsertionPoint, METH_VARARGS }, - { "wxTextCtrl_SetEditable", _wrap_wxTextCtrl_SetEditable, METH_VARARGS }, - { "wxTextCtrl_SaveFile", _wrap_wxTextCtrl_SaveFile, METH_VARARGS }, - { "wxTextCtrl_Replace", _wrap_wxTextCtrl_Replace, METH_VARARGS }, - { "wxTextCtrl_Remove", _wrap_wxTextCtrl_Remove, METH_VARARGS }, - { "wxTextCtrl_PositionToXY", _wrap_wxTextCtrl_PositionToXY, METH_VARARGS }, - { "wxTextCtrl_Paste", _wrap_wxTextCtrl_Paste, METH_VARARGS }, - { "wxTextCtrl_LoadFile", _wrap_wxTextCtrl_LoadFile, METH_VARARGS }, - { "wxTextCtrl_IsModified", _wrap_wxTextCtrl_IsModified, METH_VARARGS }, - { "wxTextCtrl_GetValue", _wrap_wxTextCtrl_GetValue, METH_VARARGS }, - { "wxTextCtrl_GetNumberOfLines", _wrap_wxTextCtrl_GetNumberOfLines, METH_VARARGS }, - { "wxTextCtrl_GetLineText", _wrap_wxTextCtrl_GetLineText, METH_VARARGS }, - { "wxTextCtrl_GetLineLength", _wrap_wxTextCtrl_GetLineLength, METH_VARARGS }, - { "wxTextCtrl_GetLastPosition", _wrap_wxTextCtrl_GetLastPosition, METH_VARARGS }, - { "wxTextCtrl_GetInsertionPoint", _wrap_wxTextCtrl_GetInsertionPoint, METH_VARARGS }, - { "wxTextCtrl_DiscardEdits", _wrap_wxTextCtrl_DiscardEdits, METH_VARARGS }, - { "wxTextCtrl_Cut", _wrap_wxTextCtrl_Cut, METH_VARARGS }, - { "wxTextCtrl_Copy", _wrap_wxTextCtrl_Copy, METH_VARARGS }, - { "wxTextCtrl_Clear", _wrap_wxTextCtrl_Clear, METH_VARARGS }, - { "new_wxTextCtrl", _wrap_new_wxTextCtrl, METH_VARARGS }, - { "wxCheckListBox_GetItemHeight", _wrap_wxCheckListBox_GetItemHeight, METH_VARARGS }, - { "wxCheckListBox_Check", _wrap_wxCheckListBox_Check, METH_VARARGS }, - { "wxCheckListBox_IsChecked", _wrap_wxCheckListBox_IsChecked, METH_VARARGS }, - { "new_wxCheckListBox", _wrap_new_wxCheckListBox, METH_VARARGS }, - { "wxListBox_SetStringSelection", _wrap_wxListBox_SetStringSelection, METH_VARARGS }, - { "wxListBox_SetString", _wrap_wxListBox_SetString, METH_VARARGS }, - { "wxListBox_SetSelection", _wrap_wxListBox_SetSelection, METH_VARARGS }, - { "wxListBox_SetFirstItemStr", _wrap_wxListBox_SetFirstItemStr, METH_VARARGS }, - { "wxListBox_SetFirstItem", _wrap_wxListBox_SetFirstItem, METH_VARARGS }, - { "wxListBox_Set", _wrap_wxListBox_Set, METH_VARARGS }, - { "wxListBox_Selected", _wrap_wxListBox_Selected, METH_VARARGS }, - { "wxListBox_Number", _wrap_wxListBox_Number, METH_VARARGS }, - { "wxListBox_GetStringSelection", _wrap_wxListBox_GetStringSelection, METH_VARARGS }, - { "wxListBox_GetString", _wrap_wxListBox_GetString, METH_VARARGS }, - { "wxListBox_GetSelections", _wrap_wxListBox_GetSelections, METH_VARARGS }, - { "wxListBox_GetSelection", _wrap_wxListBox_GetSelection, METH_VARARGS }, - { "wxListBox_FindString", _wrap_wxListBox_FindString, METH_VARARGS }, - { "wxListBox_Deselect", _wrap_wxListBox_Deselect, METH_VARARGS }, - { "wxListBox_Delete", _wrap_wxListBox_Delete, METH_VARARGS }, - { "wxListBox_Clear", _wrap_wxListBox_Clear, METH_VARARGS }, - { "wxListBox_Append", _wrap_wxListBox_Append, METH_VARARGS }, - { "new_wxListBox", _wrap_new_wxListBox, METH_VARARGS }, - { "wxStaticText_SetLabel", _wrap_wxStaticText_SetLabel, METH_VARARGS }, - { "wxStaticText_GetLabel", _wrap_wxStaticText_GetLabel, METH_VARARGS }, - { "new_wxStaticText", _wrap_new_wxStaticText, METH_VARARGS }, - { "new_wxStaticLine", _wrap_new_wxStaticLine, METH_VARARGS }, - { "new_wxStaticBox", _wrap_new_wxStaticBox, METH_VARARGS }, - { "wxGauge_SetValue", _wrap_wxGauge_SetValue, METH_VARARGS }, - { "wxGauge_SetShadowWidth", _wrap_wxGauge_SetShadowWidth, METH_VARARGS }, - { "wxGauge_SetRange", _wrap_wxGauge_SetRange, METH_VARARGS }, - { "wxGauge_SetBezelFace", _wrap_wxGauge_SetBezelFace, METH_VARARGS }, - { "wxGauge_GetValue", _wrap_wxGauge_GetValue, METH_VARARGS }, - { "wxGauge_GetShadowWidth", _wrap_wxGauge_GetShadowWidth, METH_VARARGS }, - { "wxGauge_GetRange", _wrap_wxGauge_GetRange, METH_VARARGS }, - { "wxGauge_GetBezelFace", _wrap_wxGauge_GetBezelFace, METH_VARARGS }, - { "new_wxGauge", _wrap_new_wxGauge, METH_VARARGS }, - { "wxComboBox_SetValue", _wrap_wxComboBox_SetValue, METH_VARARGS }, - { "wxComboBox_SetMark", _wrap_wxComboBox_SetMark, METH_VARARGS }, - { "wxComboBox_SetSelection", _wrap_wxComboBox_SetSelection, METH_VARARGS }, - { "wxComboBox_SetInsertionPointEnd", _wrap_wxComboBox_SetInsertionPointEnd, METH_VARARGS }, - { "wxComboBox_SetInsertionPoint", _wrap_wxComboBox_SetInsertionPoint, METH_VARARGS }, - { "wxComboBox_Remove", _wrap_wxComboBox_Remove, METH_VARARGS }, - { "wxComboBox_Replace", _wrap_wxComboBox_Replace, METH_VARARGS }, - { "wxComboBox_Paste", _wrap_wxComboBox_Paste, METH_VARARGS }, - { "wxComboBox_Number", _wrap_wxComboBox_Number, METH_VARARGS }, - { "wxComboBox_GetValue", _wrap_wxComboBox_GetValue, METH_VARARGS }, - { "wxComboBox_GetStringSelection", _wrap_wxComboBox_GetStringSelection, METH_VARARGS }, - { "wxComboBox_GetString", _wrap_wxComboBox_GetString, METH_VARARGS }, - { "wxComboBox_GetSelection", _wrap_wxComboBox_GetSelection, METH_VARARGS }, - { "wxComboBox_GetLastPosition", _wrap_wxComboBox_GetLastPosition, METH_VARARGS }, - { "wxComboBox_GetInsertionPoint", _wrap_wxComboBox_GetInsertionPoint, METH_VARARGS }, - { "wxComboBox_FindString", _wrap_wxComboBox_FindString, METH_VARARGS }, - { "wxComboBox_Delete", _wrap_wxComboBox_Delete, METH_VARARGS }, - { "wxComboBox_Cut", _wrap_wxComboBox_Cut, METH_VARARGS }, - { "wxComboBox_Copy", _wrap_wxComboBox_Copy, METH_VARARGS }, - { "wxComboBox_Clear", _wrap_wxComboBox_Clear, METH_VARARGS }, - { "wxComboBox_Append", _wrap_wxComboBox_Append, METH_VARARGS }, - { "new_wxComboBox", _wrap_new_wxComboBox, METH_VARARGS }, - { "wxChoice_SetStringSelection", _wrap_wxChoice_SetStringSelection, METH_VARARGS }, - { "wxChoice_SetSelection", _wrap_wxChoice_SetSelection, METH_VARARGS }, - { "wxChoice_SetColumns", _wrap_wxChoice_SetColumns, METH_VARARGS }, - { "wxChoice_Number", _wrap_wxChoice_Number, METH_VARARGS }, - { "wxChoice_GetStringSelection", _wrap_wxChoice_GetStringSelection, METH_VARARGS }, - { "wxChoice_GetString", _wrap_wxChoice_GetString, METH_VARARGS }, - { "wxChoice_GetSelection", _wrap_wxChoice_GetSelection, METH_VARARGS }, - { "wxChoice_GetColumns", _wrap_wxChoice_GetColumns, METH_VARARGS }, - { "wxChoice_FindString", _wrap_wxChoice_FindString, METH_VARARGS }, - { "wxChoice_Clear", _wrap_wxChoice_Clear, METH_VARARGS }, - { "wxChoice_Append", _wrap_wxChoice_Append, METH_VARARGS }, - { "new_wxChoice", _wrap_new_wxChoice, METH_VARARGS }, - { "wxCheckBox_SetValue", _wrap_wxCheckBox_SetValue, METH_VARARGS }, - { "wxCheckBox_GetValue", _wrap_wxCheckBox_GetValue, METH_VARARGS }, - { "new_wxCheckBox", _wrap_new_wxCheckBox, METH_VARARGS }, - { "wxBitmapButton_SetBitmapLabel", _wrap_wxBitmapButton_SetBitmapLabel, METH_VARARGS }, - { "wxBitmapButton_SetBitmapSelected", _wrap_wxBitmapButton_SetBitmapSelected, METH_VARARGS }, - { "wxBitmapButton_SetBitmapFocus", _wrap_wxBitmapButton_SetBitmapFocus, METH_VARARGS }, - { "wxBitmapButton_SetBitmapDisabled", _wrap_wxBitmapButton_SetBitmapDisabled, METH_VARARGS }, - { "wxBitmapButton_GetBitmapSelected", _wrap_wxBitmapButton_GetBitmapSelected, METH_VARARGS }, - { "wxBitmapButton_GetBitmapFocus", _wrap_wxBitmapButton_GetBitmapFocus, METH_VARARGS }, - { "wxBitmapButton_GetBitmapDisabled", _wrap_wxBitmapButton_GetBitmapDisabled, METH_VARARGS }, - { "wxBitmapButton_GetBitmapLabel", _wrap_wxBitmapButton_GetBitmapLabel, METH_VARARGS }, - { "new_wxBitmapButton", _wrap_new_wxBitmapButton, METH_VARARGS }, - { "wxButton_SetDefault", _wrap_wxButton_SetDefault, METH_VARARGS }, - { "new_wxButton", _wrap_new_wxButton, METH_VARARGS }, - { "wxControl_SetLabel", _wrap_wxControl_SetLabel, METH_VARARGS }, - { "wxControl_GetLabel", _wrap_wxControl_GetLabel, METH_VARARGS }, - { "wxControl_Command", _wrap_wxControl_Command, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_class_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_class_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_wxChoice","_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_class_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow}, - { "_class_wxWindow","_wxSlider",SwigwxSliderTowxWindow}, - { "_class_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_class_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_class_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_class_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_class_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_class_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_class_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_class_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_class_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_class_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_class_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_class_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_class_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_class_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_class_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow}, - { "_class_wxWindow","_wxListBox",SwigwxListBoxTowxWindow}, - { "_class_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_class_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_class_wxWindow","_class_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_class_wxWindow","_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_class_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_class_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_class_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow}, - { "_class_wxWindow","_wxGauge",SwigwxGaugeTowxWindow}, - { "_class_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_class_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_class_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow}, - { "_class_wxWindow","_wxChoice",SwigwxChoiceTowxWindow}, - { "_class_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_class_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_class_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_class_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_class_wxWindow","_class_wxButton",SwigwxButtonTowxWindow}, - { "_class_wxWindow","_wxButton",SwigwxButtonTowxWindow}, - { "_class_wxWindow","_class_wxControl",SwigwxControlTowxWindow}, - { "_class_wxWindow","_wxControl",SwigwxControlTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxSlider",SwigwxSliderTowxControl}, - { "_wxControl","_wxSlider",SwigwxSliderTowxControl}, - { "_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_wxControl","_class_wxListBox",SwigwxListBoxTowxControl}, - { "_wxControl","_wxListBox",SwigwxListBoxTowxControl}, - { "_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl}, - { "_wxControl","_wxStaticText",SwigwxStaticTextTowxControl}, - { "_wxControl","_class_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_wxControl","_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_wxControl","_class_wxGauge",SwigwxGaugeTowxControl}, - { "_wxControl","_wxGauge",SwigwxGaugeTowxControl}, - { "_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl}, - { "_wxControl","_wxComboBox",SwigwxComboBoxTowxControl}, - { "_wxControl","_class_wxChoice",SwigwxChoiceTowxControl}, - { "_wxControl","_wxChoice",SwigwxChoiceTowxControl}, - { "_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_wxControl","_class_wxButton",SwigwxButtonTowxControl}, - { "_wxControl","_wxButton",SwigwxButtonTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_class_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_class_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_class_wxChoice","_wxComboBox",SwigwxComboBoxTowxChoice}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxSlider",SwigwxSliderTowxControl}, - { "_class_wxControl","_wxSlider",SwigwxSliderTowxControl}, - { "_class_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_class_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl}, - { "_class_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_class_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl}, - { "_class_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_class_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl}, - { "_class_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_class_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl}, - { "_class_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_class_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl}, - { "_class_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_class_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl}, - { "_class_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_class_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl}, - { "_class_wxControl","_class_wxListBox",SwigwxListBoxTowxControl}, - { "_class_wxControl","_wxListBox",SwigwxListBoxTowxControl}, - { "_class_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl}, - { "_class_wxControl","_wxStaticText",SwigwxStaticTextTowxControl}, - { "_class_wxControl","_class_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_class_wxControl","_wxStaticLine",SwigwxStaticLineTowxControl}, - { "_class_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_class_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl}, - { "_class_wxControl","_class_wxGauge",SwigwxGaugeTowxControl}, - { "_class_wxControl","_wxGauge",SwigwxGaugeTowxControl}, - { "_class_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl}, - { "_class_wxControl","_wxComboBox",SwigwxComboBoxTowxControl}, - { "_class_wxControl","_class_wxChoice",SwigwxChoiceTowxControl}, - { "_class_wxControl","_wxChoice",SwigwxChoiceTowxControl}, - { "_class_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_class_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl}, - { "_class_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_class_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl}, - { "_class_wxControl","_class_wxButton",SwigwxButtonTowxControl}, - { "_class_wxControl","_wxButton",SwigwxButtonTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler}, - { "_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler}, - { "_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticLine",SwigwxStaticLineTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler}, - { "_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler}, - { "_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler}, - { "_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler}, - { "_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler}, - { "_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler}, - { "_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow}, - { "_wxWindow","_wxSlider",SwigwxSliderTowxWindow}, - { "_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow}, - { "_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow}, - { "_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow}, - { "_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow}, - { "_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow}, - { "_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow}, - { "_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow}, - { "_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow}, - { "_wxWindow","_wxListBox",SwigwxListBoxTowxWindow}, - { "_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow}, - { "_wxWindow","_class_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_wxWindow","_wxStaticLine",SwigwxStaticLineTowxWindow}, - { "_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow}, - { "_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow}, - { "_wxWindow","_wxGauge",SwigwxGaugeTowxWindow}, - { "_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow}, - { "_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow}, - { "_wxWindow","_wxChoice",SwigwxChoiceTowxWindow}, - { "_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow}, - { "_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow}, - { "_wxWindow","_class_wxButton",SwigwxButtonTowxWindow}, - { "_wxWindow","_wxButton",SwigwxButtonTowxWindow}, - { "_wxWindow","_class_wxControl",SwigwxControlTowxWindow}, - { "_wxWindow","_wxControl",SwigwxControlTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/controls.py b/utils/wxPython/src/msw/controls.py deleted file mode 100644 index 51520b42f4..0000000000 --- a/utils/wxPython/src/msw/controls.py +++ /dev/null @@ -1,775 +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, *_args, **_kwargs): - val = apply(controlsc.wxControl_Command,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxControl_GetLabel,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxControl_SetLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(controlsc.wxButton_SetDefault,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxButton(wxButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxButton,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxBitmapButtonPtr(wxButtonPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmapLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapLabel,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetBitmapDisabled(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapDisabled,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetBitmapFocus(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapFocus,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetBitmapSelected(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_GetBitmapSelected,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def SetBitmapDisabled(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapDisabled,(self,) + _args, _kwargs) - return val - def SetBitmapFocus(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapFocus,(self,) + _args, _kwargs) - return val - def SetBitmapSelected(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapSelected,(self,) + _args, _kwargs) - return val - def SetBitmapLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxBitmapButton_SetBitmapLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxBitmapButton(wxBitmapButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxBitmapButton,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckBox_GetValue,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckBox_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxCheckBox(wxCheckBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxCheckBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxChoicePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_Append,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_Clear,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_FindString,(self,) + _args, _kwargs) - return val - def GetColumns(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetColumns,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_GetStringSelection,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_Number,(self,) + _args, _kwargs) - return val - def SetColumns(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_SetColumns,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_SetSelection,(self,) + _args, _kwargs) - return val - def SetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxChoice_SetStringSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxChoice(wxChoicePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxChoice,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxComboBoxPtr(wxChoicePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Append,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Clear,(self,) + _args, _kwargs) - return val - def Copy(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Copy,(self,) + _args, _kwargs) - return val - def Cut(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Cut,(self,) + _args, _kwargs) - return val - def Delete(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Delete,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_FindString,(self,) + _args, _kwargs) - return val - def GetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetInsertionPoint,(self,) + _args, _kwargs) - return val - def GetLastPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetLastPosition,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetStringSelection,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_GetValue,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Number,(self,) + _args, _kwargs) - return val - def Paste(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Paste,(self,) + _args, _kwargs) - return val - def Replace(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Replace,(self,) + _args, _kwargs) - return val - def Remove(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_Remove,(self,) + _args, _kwargs) - return val - def SetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetInsertionPoint,(self,) + _args, _kwargs) - return val - def SetInsertionPointEnd(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetInsertionPointEnd,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetSelection,(self,) + _args, _kwargs) - return val - def SetMark(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetMark,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxComboBox_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxComboBox(wxComboBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxComboBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxGaugePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBezelFace(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetBezelFace,(self,) + _args, _kwargs) - return val - def GetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetRange,(self,) + _args, _kwargs) - return val - def GetShadowWidth(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetShadowWidth,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_GetValue,(self,) + _args, _kwargs) - return val - def SetBezelFace(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetBezelFace,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetRange,(self,) + _args, _kwargs) - return val - def SetShadowWidth(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetShadowWidth,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxGauge_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxGauge(wxGaugePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxGauge,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxStaticBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxStaticBox(wxStaticBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticBox,_args,_kwargs) - self.thisown = 1 - - - - -class wxStaticLinePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxStaticLine(wxStaticLinePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticLine,_args,_kwargs) - self.thisown = 1 - - - - -class wxStaticTextPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticText_GetLabel,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticText_SetLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxStaticText(wxStaticTextPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticText,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxListBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Append,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Clear,(self,) + _args, _kwargs) - return val - def Delete(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Delete,(self,) + _args, _kwargs) - return val - def Deselect(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Deselect,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_FindString,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetSelection,(self,) + _args, _kwargs) - return val - def GetSelections(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetSelections,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_GetStringSelection,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Number,(self,) + _args, _kwargs) - return val - def Selected(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Selected,(self,) + _args, _kwargs) - return val - def Set(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_Set,(self,) + _args, _kwargs) - return val - def SetFirstItem(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetFirstItem,(self,) + _args, _kwargs) - return val - def SetFirstItemStr(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetFirstItemStr,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetSelection,(self,) + _args, _kwargs) - return val - def SetString(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetString,(self,) + _args, _kwargs) - return val - def SetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxListBox_SetStringSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxListBox(wxListBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxListBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckListBoxPtr(wxListBoxPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsChecked(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckListBox_IsChecked,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckListBox_Check,(self,) + _args, _kwargs) - return val - def GetItemHeight(self, *_args, **_kwargs): - val = apply(controlsc.wxCheckListBox_GetItemHeight,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxCheckListBox(wxCheckListBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxCheckListBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTextCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Clear(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Clear,(self,) + _args, _kwargs) - return val - def Copy(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Copy,(self,) + _args, _kwargs) - return val - def Cut(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Cut,(self,) + _args, _kwargs) - return val - def DiscardEdits(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_DiscardEdits,(self,) + _args, _kwargs) - return val - def GetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetInsertionPoint,(self,) + _args, _kwargs) - return val - def GetLastPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetLastPosition,(self,) + _args, _kwargs) - return val - def GetLineLength(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetLineLength,(self,) + _args, _kwargs) - return val - def GetLineText(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetLineText,(self,) + _args, _kwargs) - return val - def GetNumberOfLines(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetNumberOfLines,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetValue,(self,) + _args, _kwargs) - return val - def IsModified(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_IsModified,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_LoadFile,(self,) + _args, _kwargs) - return val - def Paste(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Paste,(self,) + _args, _kwargs) - return val - def PositionToXY(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_PositionToXY,(self,) + _args, _kwargs) - return val - def Remove(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Remove,(self,) + _args, _kwargs) - return val - def Replace(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_Replace,(self,) + _args, _kwargs) - return val - def SaveFile(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SaveFile,(self,) + _args, _kwargs) - return val - def SetEditable(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetEditable,(self,) + _args, _kwargs) - return val - def SetInsertionPoint(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetInsertionPoint,(self,) + _args, _kwargs) - return val - def SetInsertionPointEnd(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetInsertionPointEnd,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetSelection,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_SetValue,(self,) + _args, _kwargs) - return val - def ShowPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_ShowPosition,(self,) + _args, _kwargs) - return val - def WriteText(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_WriteText,(self,) + _args, _kwargs) - return val - def AppendText(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_AppendText,(self,) + _args, _kwargs) - return val - def XYToPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_XYToPosition,(self,) + _args, _kwargs) - return val - def CanCopy(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanCopy,(self,) + _args, _kwargs) - return val - def CanCut(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanCut,(self,) + _args, _kwargs) - return val - def CanPaste(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanPaste,(self,) + _args, _kwargs) - return val - def CanRedo(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanRedo,(self,) + _args, _kwargs) - return val - def CanUndo(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_CanUndo,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_GetSelection,(self,) + _args, _kwargs) - return val - def IsEditable(self, *_args, **_kwargs): - val = apply(controlsc.wxTextCtrl_IsEditable,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTextCtrl(wxTextCtrlPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxTextCtrl,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxScrollBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetRange,(self,) + _args, _kwargs) - return val - def GetPageSize(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetPageSize,(self,) + _args, _kwargs) - return val - def GetThumbPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetThumbPosition,(self,) + _args, _kwargs) - return val - def GetThumbSize(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_GetThumbSize,(self,) + _args, _kwargs) - return val - def SetThumbPosition(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_SetThumbPosition,(self,) + _args, _kwargs) - return val - def SetScrollbar(self, *_args, **_kwargs): - val = apply(controlsc.wxScrollBar_SetScrollbar,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxScrollBar(wxScrollBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxScrollBar,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSpinButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetMax(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_GetMax,(self,) + _args, _kwargs) - return val - def GetMin(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_GetMin,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_GetValue,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_SetRange,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSpinButton_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSpinButton(wxSpinButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxSpinButton,_args,_kwargs) - self.thisown = 1 - - - - -class wxStaticBitmapPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmap(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticBitmap_GetBitmap,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def SetBitmap(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticBitmap_SetBitmap,(self,) + _args, _kwargs) - return val - def SetIcon(self, *_args, **_kwargs): - val = apply(controlsc.wxStaticBitmap_SetIcon,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxStaticBitmap(wxStaticBitmapPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxStaticBitmap,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Enable(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_Enable,(self,) + _args, _kwargs) - return val - def EnableItem(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_EnableItem,(self,) + _args, _kwargs) - return val - def FindString(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_FindString,(self,) + _args, _kwargs) - return val - def GetItemLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetItemLabel,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetString,(self,) + _args, _kwargs) - return val - def GetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_GetStringSelection,(self,) + _args, _kwargs) - return val - def Number(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_Number,(self,) + _args, _kwargs) - return val - def SetItemLabel(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_SetItemLabel,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_SetSelection,(self,) + _args, _kwargs) - return val - def SetStringSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_SetStringSelection,(self,) + _args, _kwargs) - return val - def Show(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_Show,(self,) + _args, _kwargs) - return val - def ShowItem(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioBox_ShowItem,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRadioBox(wxRadioBoxPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxRadioBox,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioButton_GetValue,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxRadioButton_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRadioButton(wxRadioButtonPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxRadioButton,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSliderPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ClearSel(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_ClearSel,(self,) + _args, _kwargs) - return val - def ClearTicks(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_ClearTicks,(self,) + _args, _kwargs) - return val - def GetLineSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetLineSize,(self,) + _args, _kwargs) - return val - def GetMax(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetMax,(self,) + _args, _kwargs) - return val - def GetMin(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetMin,(self,) + _args, _kwargs) - return val - def GetPageSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetPageSize,(self,) + _args, _kwargs) - return val - def GetSelEnd(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetSelEnd,(self,) + _args, _kwargs) - return val - def GetSelStart(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetSelStart,(self,) + _args, _kwargs) - return val - def GetThumbLength(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetThumbLength,(self,) + _args, _kwargs) - return val - def GetTickFreq(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetTickFreq,(self,) + _args, _kwargs) - return val - def GetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_GetValue,(self,) + _args, _kwargs) - return val - def SetRange(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetRange,(self,) + _args, _kwargs) - return val - def SetTickFreq(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetTickFreq,(self,) + _args, _kwargs) - return val - def SetLineSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetLineSize,(self,) + _args, _kwargs) - return val - def SetPageSize(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetPageSize,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetSelection,(self,) + _args, _kwargs) - return val - def SetThumbLength(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetThumbLength,(self,) + _args, _kwargs) - return val - def SetTick(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetTick,(self,) + _args, _kwargs) - return val - def SetValue(self, *_args, **_kwargs): - val = apply(controlsc.wxSlider_SetValue,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSlider(wxSliderPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controlsc.new_wxSlider,_args,_kwargs) - 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 1e8dadad0d..0000000000 --- a/utils/wxPython/src/msw/controls2.cpp +++ /dev/null @@ -1,5982 +0,0 @@ -/* - * FILE : msw/controls2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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() { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); -#endif - Py_DECREF(m_obj); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif - } - - 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; -}; -#ifdef __cplusplus -extern "C" { -#endif -#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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_mask_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_mask_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_itemId_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_itemId_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_col_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_col_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_state_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_state_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_stateMask_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_stateMask_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListItem_m_text_set",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_text_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_image_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_image_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListItem_m_data_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_data_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_format_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_format_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListItem_m_width_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListItem_m_width_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxListItem(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxListItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxListItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListEvent_m_code_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_code_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListEvent_m_itemIndex_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_itemIndex_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListEvent_m_oldItemIndex_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_oldItemIndex_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListEvent_m_col_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_col_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListEvent_m_cancelled_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_cancelled_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListEvent_m_pointDrag_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_pointDrag_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_pointDrag_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListEvent_m_item_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_item_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListEvent_m_item_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxLC_ICON; - wxValidator * _arg5 = (wxValidator *) &wxPyDefaultValidator; - char * _arg6 = (char *) "listCtrl"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOlOs:new_wxListCtrl",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_argo5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxListCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (int ) (wxLIST_ALIGN_DEFAULT); - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxListCtrl_Arrange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_DeleteItem",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_DeleteAllItems",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_DeleteColumn",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_DeleteAllColumns",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_ClearAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_EditLabel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_EndEditLabel",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetEditControl",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_EnsureVisible",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - int tempbool3 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"OlO|i:wxListCtrl_FindItem",&_argo0,&_arg1,&_obj2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxListCtrl_FindItemData",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlOi:wxListCtrl_FindItemAtPos",&_argo0,&_arg1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItemAtPos. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxListCtrl_GetColumn",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_GetColumnWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetCountPerPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_GetImageList",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItemData",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItem",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItemPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (int ) (wxLIST_RECT_BOUNDS); - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|i:wxListCtrl_GetItemRect",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxListCtrl_GetItemState",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetItemCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxListCtrl_GetItemSpacing",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_GetItemText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) (wxLIST_NEXT_ALL); - int _arg3 = (int ) (wxLIST_STATE_DONTCARE); - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|ii:wxListCtrl_GetNextItem",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetSelectedItemCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_SetTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetTextColour. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxListCtrl_GetTopItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; -{ - _arg2 = &temp; -} - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_HitTest",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_HitTest. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_InsertColumnWith",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertColumnWith. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (int ) (wxLIST_FORMAT_LEFT); - int _arg4 = (int ) -1; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO|ii:wxListCtrl_InsertColumn",&_argo0,&_arg1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_InsertItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_InsertStringItem",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oli:wxListCtrl_InsertImageItem",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlOi:wxListCtrl_InsertImageStringItem",&_argo0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxListCtrl_ScrollList",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_SetBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetBackgroundColour. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxListCtrl_SetColumn",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxListCtrl_SetColumnWidth",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxListCtrl_SetImageList",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetImageList. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxListCtrl_SetItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) -1; - PyObject * _argo0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OliO|i:wxListCtrl_SetStringItem",&_argo0,&_arg1,&_arg2,&_obj3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxListCtrl_SetItemData",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Olii:wxListCtrl_SetItemImage",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_SetItemPosition",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemPosition. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Olll:wxListCtrl_SetItemState",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OlO:wxListCtrl_SetItemText",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|i:wxListCtrl_SetSingleStyle",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxListCtrl_SetWindowStyleFlag",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxTreeItemId(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxTreeItemId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxTreeItemId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeItemId_IsOk",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (PyObject *) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTreeItemData_GetData(_swigobj) (_swigobj->GetData()) -static PyObject *_wrap_wxTreeItemData_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPyTreeItemData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeItemData_GetData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeItemData_SetData",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeItemData_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeItemData_SetId",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_SetId. Expected _wxPyTreeItemData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 *SwigwxTreeEventTowxNotifyEvent(void *ptr) { - wxTreeEvent *src; - wxNotifyEvent *dest; - src = (wxTreeEvent *) ptr; - dest = (wxNotifyEvent *) src; - return (void *) dest; -} - -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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetOldItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxTreeEvent_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTreeEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeEvent_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetLabel. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxString & _result_ref = wxTreeEvent_GetLabel(_arg0); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - 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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT; - wxValidator * _arg5 = (wxValidator *) &wxPyDefaultValidator; - char * _arg6 = (char *) "wxTreeCtrl"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOlOs:new_wxTreeCtrl",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_argo5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTreeCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxTreeCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTreeCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTreeCtrl_GetCount(_swigobj) (_swigobj->GetCount()) -static PyObject *_wrap_wxTreeCtrl_GetCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - size_t _result; - wxTreeCtrl * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetIndent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxTreeCtrl_SetIndent",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTreeCtrl_GetStateImageList(_swigobj) (_swigobj->GetStateImageList()) -static PyObject *_wrap_wxTreeCtrl_GetStateImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxTreeCtrl * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetStateImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_SetImageList",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_SetStateImageList",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetStateImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemText",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemImage",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemSelectedImage",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_SetItemText",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxTreeCtrl_SetItemImage",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxTreeCtrl_SetItemSelectedImage",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxTreeCtrl_SetItemHasChildren",&_argo0,&_argo1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetItemData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_SetItemData",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemData. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetPyData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_SetPyData",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_ItemHasChildren",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsExpanded",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsExpanded. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsSelected",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsSelected. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetRootItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetParent",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetParent. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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_GetChildrenCount(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetChildrenCount(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_GetChildrenCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - size_t _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxTreeCtrl_GetChildrenCount",&_argo0,&_argo1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetChildrenCount. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetChildrenCount. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (size_t )wxTreeCtrl_GetChildrenCount(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_GetFirstChild",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetFirstChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxTreeCtrl_GetNextChild",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetNextSibling",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetPrevSibling",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetFirstVisibleItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetNextVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_GetPrevVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) -1; - int _arg3 = (int ) -1; - wxPyTreeItemData * _arg4 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO|iiO:wxTreeCtrl_AddRoot",&_argo0,&_obj1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 = (int ) -1; - int _arg4 = (int ) -1; - wxPyTreeItemData * _arg5 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|iiO:wxTreeCtrl_PrependItem",&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_PrependItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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 = (int ) -1; - int _arg5 = (int ) -1; - wxPyTreeItemData * _arg6 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - PyObject * _obj3 = 0; - PyObject * _argo6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOOO|iiO:wxTreeCtrl_InsertItem",&_argo0,&_argo1,&_argo2,&_obj3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_InsertItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_InsertItem. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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 = (int ) -1; - int _arg4 = (int ) -1; - wxPyTreeItemData * _arg5 = (wxPyTreeItemData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|iiO:wxTreeCtrl_AppendItem",&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_AppendItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Delete",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Delete. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_DeleteChildren",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_DeleteChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_DeleteAllItems",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Expand",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Expand. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Collapse",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Collapse. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_CollapseAndReset",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_CollapseAndReset. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_Toggle",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Toggle. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_Unselect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_UnselectAll(_swigobj) (_swigobj->UnselectAll()) -static PyObject *_wrap_wxTreeCtrl_UnselectAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_UnselectAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_UnselectAll. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_UnselectAll(_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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_SelectItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SelectItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_EnsureVisible",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EnsureVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_ScrollTo",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ScrollTo. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_EditLabel",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EditLabel. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxTreeCtrl_GetEditControl(_swigobj) (_swigobj->GetEditControl()) -static PyObject *_wrap_wxTreeCtrl_GetEditControl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxTreeCtrl * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTreeCtrl_GetEditControl",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (bool ) FALSE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool2 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxTreeCtrl_EndEditLabel",&_argo0,&_argo1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EndEditLabel. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxTreeCtrl_SetItemBold",&_argo0,&_argo1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_IsBold",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTreeCtrl_HitTest",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_HitTest. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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, METH_VARARGS }, - { "wxTreeCtrl_IsBold", _wrap_wxTreeCtrl_IsBold, METH_VARARGS }, - { "wxTreeCtrl_SetItemBold", _wrap_wxTreeCtrl_SetItemBold, METH_VARARGS }, - { "wxTreeCtrl_EndEditLabel", _wrap_wxTreeCtrl_EndEditLabel, METH_VARARGS }, - { "wxTreeCtrl_GetEditControl", _wrap_wxTreeCtrl_GetEditControl, METH_VARARGS }, - { "wxTreeCtrl_EditLabel", _wrap_wxTreeCtrl_EditLabel, METH_VARARGS }, - { "wxTreeCtrl_ScrollTo", _wrap_wxTreeCtrl_ScrollTo, METH_VARARGS }, - { "wxTreeCtrl_EnsureVisible", _wrap_wxTreeCtrl_EnsureVisible, METH_VARARGS }, - { "wxTreeCtrl_SelectItem", _wrap_wxTreeCtrl_SelectItem, METH_VARARGS }, - { "wxTreeCtrl_UnselectAll", _wrap_wxTreeCtrl_UnselectAll, METH_VARARGS }, - { "wxTreeCtrl_Unselect", _wrap_wxTreeCtrl_Unselect, METH_VARARGS }, - { "wxTreeCtrl_Toggle", _wrap_wxTreeCtrl_Toggle, METH_VARARGS }, - { "wxTreeCtrl_CollapseAndReset", _wrap_wxTreeCtrl_CollapseAndReset, METH_VARARGS }, - { "wxTreeCtrl_Collapse", _wrap_wxTreeCtrl_Collapse, METH_VARARGS }, - { "wxTreeCtrl_Expand", _wrap_wxTreeCtrl_Expand, METH_VARARGS }, - { "wxTreeCtrl_DeleteAllItems", _wrap_wxTreeCtrl_DeleteAllItems, METH_VARARGS }, - { "wxTreeCtrl_DeleteChildren", _wrap_wxTreeCtrl_DeleteChildren, METH_VARARGS }, - { "wxTreeCtrl_Delete", _wrap_wxTreeCtrl_Delete, METH_VARARGS }, - { "wxTreeCtrl_AppendItem", _wrap_wxTreeCtrl_AppendItem, METH_VARARGS }, - { "wxTreeCtrl_InsertItem", _wrap_wxTreeCtrl_InsertItem, METH_VARARGS }, - { "wxTreeCtrl_PrependItem", _wrap_wxTreeCtrl_PrependItem, METH_VARARGS }, - { "wxTreeCtrl_AddRoot", _wrap_wxTreeCtrl_AddRoot, METH_VARARGS }, - { "wxTreeCtrl_GetPrevVisible", _wrap_wxTreeCtrl_GetPrevVisible, METH_VARARGS }, - { "wxTreeCtrl_GetNextVisible", _wrap_wxTreeCtrl_GetNextVisible, METH_VARARGS }, - { "wxTreeCtrl_GetFirstVisibleItem", _wrap_wxTreeCtrl_GetFirstVisibleItem, METH_VARARGS }, - { "wxTreeCtrl_GetPrevSibling", _wrap_wxTreeCtrl_GetPrevSibling, METH_VARARGS }, - { "wxTreeCtrl_GetNextSibling", _wrap_wxTreeCtrl_GetNextSibling, METH_VARARGS }, - { "wxTreeCtrl_GetNextChild", _wrap_wxTreeCtrl_GetNextChild, METH_VARARGS }, - { "wxTreeCtrl_GetFirstChild", _wrap_wxTreeCtrl_GetFirstChild, METH_VARARGS }, - { "wxTreeCtrl_GetChildrenCount", _wrap_wxTreeCtrl_GetChildrenCount, METH_VARARGS }, - { "wxTreeCtrl_GetParent", _wrap_wxTreeCtrl_GetParent, METH_VARARGS }, - { "wxTreeCtrl_GetSelection", _wrap_wxTreeCtrl_GetSelection, METH_VARARGS }, - { "wxTreeCtrl_GetRootItem", _wrap_wxTreeCtrl_GetRootItem, METH_VARARGS }, - { "wxTreeCtrl_IsSelected", _wrap_wxTreeCtrl_IsSelected, METH_VARARGS }, - { "wxTreeCtrl_IsExpanded", _wrap_wxTreeCtrl_IsExpanded, METH_VARARGS }, - { "wxTreeCtrl_ItemHasChildren", _wrap_wxTreeCtrl_ItemHasChildren, METH_VARARGS }, - { "wxTreeCtrl_IsVisible", _wrap_wxTreeCtrl_IsVisible, METH_VARARGS }, - { "wxTreeCtrl_SetPyData", _wrap_wxTreeCtrl_SetPyData, METH_VARARGS }, - { "wxTreeCtrl_GetPyData", _wrap_wxTreeCtrl_GetPyData, METH_VARARGS }, - { "wxTreeCtrl_SetItemData", _wrap_wxTreeCtrl_SetItemData, METH_VARARGS }, - { "wxTreeCtrl_GetItemData", _wrap_wxTreeCtrl_GetItemData, METH_VARARGS }, - { "wxTreeCtrl_SetItemHasChildren", _wrap_wxTreeCtrl_SetItemHasChildren, METH_VARARGS }, - { "wxTreeCtrl_SetItemSelectedImage", _wrap_wxTreeCtrl_SetItemSelectedImage, METH_VARARGS }, - { "wxTreeCtrl_SetItemImage", _wrap_wxTreeCtrl_SetItemImage, METH_VARARGS }, - { "wxTreeCtrl_SetItemText", _wrap_wxTreeCtrl_SetItemText, METH_VARARGS }, - { "wxTreeCtrl_GetItemSelectedImage", _wrap_wxTreeCtrl_GetItemSelectedImage, METH_VARARGS }, - { "wxTreeCtrl_GetItemImage", _wrap_wxTreeCtrl_GetItemImage, METH_VARARGS }, - { "wxTreeCtrl_GetItemText", _wrap_wxTreeCtrl_GetItemText, METH_VARARGS }, - { "wxTreeCtrl_SetStateImageList", _wrap_wxTreeCtrl_SetStateImageList, METH_VARARGS }, - { "wxTreeCtrl_SetImageList", _wrap_wxTreeCtrl_SetImageList, METH_VARARGS }, - { "wxTreeCtrl_GetStateImageList", _wrap_wxTreeCtrl_GetStateImageList, METH_VARARGS }, - { "wxTreeCtrl_GetImageList", _wrap_wxTreeCtrl_GetImageList, METH_VARARGS }, - { "wxTreeCtrl_SetIndent", _wrap_wxTreeCtrl_SetIndent, METH_VARARGS }, - { "wxTreeCtrl_GetIndent", _wrap_wxTreeCtrl_GetIndent, METH_VARARGS }, - { "wxTreeCtrl_GetCount", _wrap_wxTreeCtrl_GetCount, METH_VARARGS }, - { "new_wxTreeCtrl", _wrap_new_wxTreeCtrl, METH_VARARGS }, - { "wxTreeEvent_GetLabel", _wrap_wxTreeEvent_GetLabel, METH_VARARGS }, - { "wxTreeEvent_GetCode", _wrap_wxTreeEvent_GetCode, METH_VARARGS }, - { "wxTreeEvent_GetPoint", _wrap_wxTreeEvent_GetPoint, METH_VARARGS }, - { "wxTreeEvent_GetOldItem", _wrap_wxTreeEvent_GetOldItem, METH_VARARGS }, - { "wxTreeEvent_GetItem", _wrap_wxTreeEvent_GetItem, METH_VARARGS }, - { "wxTreeItemData_SetId", _wrap_wxTreeItemData_SetId, METH_VARARGS }, - { "wxTreeItemData_GetId", _wrap_wxTreeItemData_GetId, METH_VARARGS }, - { "wxTreeItemData_SetData", _wrap_wxTreeItemData_SetData, METH_VARARGS }, - { "wxTreeItemData_GetData", _wrap_wxTreeItemData_GetData, METH_VARARGS }, - { "new_wxTreeItemData", _wrap_new_wxTreeItemData, METH_VARARGS }, - { "wxTreeItemId_IsOk", _wrap_wxTreeItemId_IsOk, METH_VARARGS }, - { "delete_wxTreeItemId", _wrap_delete_wxTreeItemId, METH_VARARGS }, - { "new_wxTreeItemId", _wrap_new_wxTreeItemId, METH_VARARGS }, - { "wxListCtrl_SetWindowStyleFlag", _wrap_wxListCtrl_SetWindowStyleFlag, METH_VARARGS }, - { "wxListCtrl_SetSingleStyle", _wrap_wxListCtrl_SetSingleStyle, METH_VARARGS }, - { "wxListCtrl_SetItemText", _wrap_wxListCtrl_SetItemText, METH_VARARGS }, - { "wxListCtrl_SetItemState", _wrap_wxListCtrl_SetItemState, METH_VARARGS }, - { "wxListCtrl_SetItemPosition", _wrap_wxListCtrl_SetItemPosition, METH_VARARGS }, - { "wxListCtrl_SetItemImage", _wrap_wxListCtrl_SetItemImage, METH_VARARGS }, - { "wxListCtrl_SetItemData", _wrap_wxListCtrl_SetItemData, METH_VARARGS }, - { "wxListCtrl_SetStringItem", _wrap_wxListCtrl_SetStringItem, METH_VARARGS }, - { "wxListCtrl_SetItem", _wrap_wxListCtrl_SetItem, METH_VARARGS }, - { "wxListCtrl_SetImageList", _wrap_wxListCtrl_SetImageList, METH_VARARGS }, - { "wxListCtrl_SetColumnWidth", _wrap_wxListCtrl_SetColumnWidth, METH_VARARGS }, - { "wxListCtrl_SetColumn", _wrap_wxListCtrl_SetColumn, METH_VARARGS }, - { "wxListCtrl_SetBackgroundColour", _wrap_wxListCtrl_SetBackgroundColour, METH_VARARGS }, - { "wxListCtrl_ScrollList", _wrap_wxListCtrl_ScrollList, METH_VARARGS }, - { "wxListCtrl_InsertImageStringItem", _wrap_wxListCtrl_InsertImageStringItem, METH_VARARGS }, - { "wxListCtrl_InsertImageItem", _wrap_wxListCtrl_InsertImageItem, METH_VARARGS }, - { "wxListCtrl_InsertStringItem", _wrap_wxListCtrl_InsertStringItem, METH_VARARGS }, - { "wxListCtrl_InsertItem", _wrap_wxListCtrl_InsertItem, METH_VARARGS }, - { "wxListCtrl_InsertColumn", _wrap_wxListCtrl_InsertColumn, METH_VARARGS }, - { "wxListCtrl_InsertColumnWith", _wrap_wxListCtrl_InsertColumnWith, METH_VARARGS }, - { "wxListCtrl_HitTest", _wrap_wxListCtrl_HitTest, METH_VARARGS }, - { "wxListCtrl_GetTopItem", _wrap_wxListCtrl_GetTopItem, METH_VARARGS }, - { "wxListCtrl_SetTextColour", _wrap_wxListCtrl_SetTextColour, METH_VARARGS }, - { "wxListCtrl_GetTextColour", _wrap_wxListCtrl_GetTextColour, METH_VARARGS }, - { "wxListCtrl_GetSelectedItemCount", _wrap_wxListCtrl_GetSelectedItemCount, METH_VARARGS }, - { "wxListCtrl_GetNextItem", _wrap_wxListCtrl_GetNextItem, METH_VARARGS }, - { "wxListCtrl_GetItemText", _wrap_wxListCtrl_GetItemText, METH_VARARGS }, - { "wxListCtrl_GetItemSpacing", _wrap_wxListCtrl_GetItemSpacing, METH_VARARGS }, - { "wxListCtrl_GetItemCount", _wrap_wxListCtrl_GetItemCount, METH_VARARGS }, - { "wxListCtrl_GetItemState", _wrap_wxListCtrl_GetItemState, METH_VARARGS }, - { "wxListCtrl_GetItemRect", _wrap_wxListCtrl_GetItemRect, METH_VARARGS }, - { "wxListCtrl_GetItemPosition", _wrap_wxListCtrl_GetItemPosition, METH_VARARGS }, - { "wxListCtrl_GetItem", _wrap_wxListCtrl_GetItem, METH_VARARGS }, - { "wxListCtrl_GetItemData", _wrap_wxListCtrl_GetItemData, METH_VARARGS }, - { "wxListCtrl_GetImageList", _wrap_wxListCtrl_GetImageList, METH_VARARGS }, - { "wxListCtrl_GetCountPerPage", _wrap_wxListCtrl_GetCountPerPage, METH_VARARGS }, - { "wxListCtrl_GetColumnWidth", _wrap_wxListCtrl_GetColumnWidth, METH_VARARGS }, - { "wxListCtrl_GetColumn", _wrap_wxListCtrl_GetColumn, METH_VARARGS }, - { "wxListCtrl_FindItemAtPos", _wrap_wxListCtrl_FindItemAtPos, METH_VARARGS }, - { "wxListCtrl_FindItemData", _wrap_wxListCtrl_FindItemData, METH_VARARGS }, - { "wxListCtrl_FindItem", _wrap_wxListCtrl_FindItem, METH_VARARGS }, - { "wxListCtrl_EnsureVisible", _wrap_wxListCtrl_EnsureVisible, METH_VARARGS }, - { "wxListCtrl_GetEditControl", _wrap_wxListCtrl_GetEditControl, METH_VARARGS }, - { "wxListCtrl_EndEditLabel", _wrap_wxListCtrl_EndEditLabel, METH_VARARGS }, - { "wxListCtrl_EditLabel", _wrap_wxListCtrl_EditLabel, METH_VARARGS }, - { "wxListCtrl_ClearAll", _wrap_wxListCtrl_ClearAll, METH_VARARGS }, - { "wxListCtrl_DeleteAllColumns", _wrap_wxListCtrl_DeleteAllColumns, METH_VARARGS }, - { "wxListCtrl_DeleteColumn", _wrap_wxListCtrl_DeleteColumn, METH_VARARGS }, - { "wxListCtrl_DeleteAllItems", _wrap_wxListCtrl_DeleteAllItems, METH_VARARGS }, - { "wxListCtrl_DeleteItem", _wrap_wxListCtrl_DeleteItem, METH_VARARGS }, - { "wxListCtrl_Arrange", _wrap_wxListCtrl_Arrange, METH_VARARGS }, - { "new_wxListCtrl", _wrap_new_wxListCtrl, METH_VARARGS }, - { "wxListEvent_m_item_get", _wrap_wxListEvent_m_item_get, METH_VARARGS }, - { "wxListEvent_m_item_set", _wrap_wxListEvent_m_item_set, METH_VARARGS }, - { "wxListEvent_m_pointDrag_get", _wrap_wxListEvent_m_pointDrag_get, METH_VARARGS }, - { "wxListEvent_m_pointDrag_set", _wrap_wxListEvent_m_pointDrag_set, METH_VARARGS }, - { "wxListEvent_m_cancelled_get", _wrap_wxListEvent_m_cancelled_get, METH_VARARGS }, - { "wxListEvent_m_cancelled_set", _wrap_wxListEvent_m_cancelled_set, METH_VARARGS }, - { "wxListEvent_m_col_get", _wrap_wxListEvent_m_col_get, METH_VARARGS }, - { "wxListEvent_m_col_set", _wrap_wxListEvent_m_col_set, METH_VARARGS }, - { "wxListEvent_m_oldItemIndex_get", _wrap_wxListEvent_m_oldItemIndex_get, METH_VARARGS }, - { "wxListEvent_m_oldItemIndex_set", _wrap_wxListEvent_m_oldItemIndex_set, METH_VARARGS }, - { "wxListEvent_m_itemIndex_get", _wrap_wxListEvent_m_itemIndex_get, METH_VARARGS }, - { "wxListEvent_m_itemIndex_set", _wrap_wxListEvent_m_itemIndex_set, METH_VARARGS }, - { "wxListEvent_m_code_get", _wrap_wxListEvent_m_code_get, METH_VARARGS }, - { "wxListEvent_m_code_set", _wrap_wxListEvent_m_code_set, METH_VARARGS }, - { "delete_wxListItem", _wrap_delete_wxListItem, METH_VARARGS }, - { "new_wxListItem", _wrap_new_wxListItem, METH_VARARGS }, - { "wxListItem_m_width_get", _wrap_wxListItem_m_width_get, METH_VARARGS }, - { "wxListItem_m_width_set", _wrap_wxListItem_m_width_set, METH_VARARGS }, - { "wxListItem_m_format_get", _wrap_wxListItem_m_format_get, METH_VARARGS }, - { "wxListItem_m_format_set", _wrap_wxListItem_m_format_set, METH_VARARGS }, - { "wxListItem_m_data_get", _wrap_wxListItem_m_data_get, METH_VARARGS }, - { "wxListItem_m_data_set", _wrap_wxListItem_m_data_set, METH_VARARGS }, - { "wxListItem_m_image_get", _wrap_wxListItem_m_image_get, METH_VARARGS }, - { "wxListItem_m_image_set", _wrap_wxListItem_m_image_set, METH_VARARGS }, - { "wxListItem_m_text_get", _wrap_wxListItem_m_text_get, METH_VARARGS }, - { "wxListItem_m_text_set", _wrap_wxListItem_m_text_set, METH_VARARGS }, - { "wxListItem_m_stateMask_get", _wrap_wxListItem_m_stateMask_get, METH_VARARGS }, - { "wxListItem_m_stateMask_set", _wrap_wxListItem_m_stateMask_set, METH_VARARGS }, - { "wxListItem_m_state_get", _wrap_wxListItem_m_state_get, METH_VARARGS }, - { "wxListItem_m_state_set", _wrap_wxListItem_m_state_set, METH_VARARGS }, - { "wxListItem_m_col_get", _wrap_wxListItem_m_col_get, METH_VARARGS }, - { "wxListItem_m_col_set", _wrap_wxListItem_m_col_set, METH_VARARGS }, - { "wxListItem_m_itemId_get", _wrap_wxListItem_m_itemId_get, METH_VARARGS }, - { "wxListItem_m_itemId_set", _wrap_wxListItem_m_itemId_set, METH_VARARGS }, - { "wxListItem_m_mask_get", _wrap_wxListItem_m_mask_get, METH_VARARGS }, - { "wxListItem_m_mask_set", _wrap_wxListItem_m_mask_set, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent}, - { "_wxEvent","_wxListEvent",SwigwxListEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxPyTreeItemData","_wxPyTreeItemData",0}, - { "_class_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_wxNotifyEvent","_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_class_wxTreeCtrl","_wxTreeCtrl",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxListEvent","_class_wxListEvent",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_class_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent}, - { "_class_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent}, - { "_class_wxEvent","_wxListEvent",SwigwxListEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_class_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxTreeEvent",SwigwxTreeEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxListItem","_class_wxListItem",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxTreeEvent","_wxTreeEvent",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_class_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_class_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_class_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxListCtrl","_class_wxListCtrl",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_wxTreeItemId","_class_wxTreeItemId",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxListItem","_wxListItem",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxListEvent","_wxListEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_wxPyTreeItemData","_class_wxPyTreeItemData",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxTreeItemId","_wxTreeItemId",0}, - { "_wxTreeCtrl","_class_wxTreeCtrl",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_class_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl}, - { "_class_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_class_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxListCtrl","_wxListCtrl",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxTreeEvent","_class_wxTreeEvent",0}, - { "_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow}, - { "_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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_MASK_STATE", PyInt_FromLong((long) wxLIST_MASK_STATE)); - 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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/controls2.py b/utils/wxPython/src/msw/controls2.py deleted file mode 100644 index fb88b400af..0000000000 --- a/utils/wxPython/src/msw/controls2.py +++ /dev/null @@ -1,651 +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,controls2c=controls2c): - if self.thisown == 1 : - controls2c.delete_wxListItem(self) - def __setattr__(self,name,value): - if name == "m_mask" : - controls2c.wxListItem_m_mask_set(self,value) - return - if name == "m_itemId" : - controls2c.wxListItem_m_itemId_set(self,value) - return - if name == "m_col" : - controls2c.wxListItem_m_col_set(self,value) - return - if name == "m_state" : - controls2c.wxListItem_m_state_set(self,value) - return - if name == "m_stateMask" : - controls2c.wxListItem_m_stateMask_set(self,value) - return - if name == "m_text" : - controls2c.wxListItem_m_text_set(self,value) - return - if name == "m_image" : - controls2c.wxListItem_m_image_set(self,value) - return - if name == "m_data" : - controls2c.wxListItem_m_data_set(self,value) - return - if name == "m_format" : - controls2c.wxListItem_m_format_set(self,value) - return - if name == "m_width" : - controls2c.wxListItem_m_width_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_mask" : - return controls2c.wxListItem_m_mask_get(self) - if name == "m_itemId" : - return controls2c.wxListItem_m_itemId_get(self) - if name == "m_col" : - return controls2c.wxListItem_m_col_get(self) - if name == "m_state" : - return controls2c.wxListItem_m_state_get(self) - if name == "m_stateMask" : - return controls2c.wxListItem_m_stateMask_get(self) - if name == "m_text" : - return controls2c.wxListItem_m_text_get(self) - if name == "m_image" : - return controls2c.wxListItem_m_image_get(self) - if name == "m_data" : - return controls2c.wxListItem_m_data_get(self) - if name == "m_format" : - return controls2c.wxListItem_m_format_get(self) - if name == "m_width" : - return controls2c.wxListItem_m_width_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxListItem(wxListItemPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxListItem,_args,_kwargs) - 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,value) - return - if name == "m_itemIndex" : - controls2c.wxListEvent_m_itemIndex_set(self,value) - return - if name == "m_oldItemIndex" : - controls2c.wxListEvent_m_oldItemIndex_set(self,value) - return - if name == "m_col" : - controls2c.wxListEvent_m_col_set(self,value) - return - if name == "m_cancelled" : - controls2c.wxListEvent_m_cancelled_set(self,value) - return - if name == "m_pointDrag" : - controls2c.wxListEvent_m_pointDrag_set(self,value.this) - return - if name == "m_item" : - controls2c.wxListEvent_m_item_set(self,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_code" : - return controls2c.wxListEvent_m_code_get(self) - if name == "m_itemIndex" : - return controls2c.wxListEvent_m_itemIndex_get(self) - if name == "m_oldItemIndex" : - return controls2c.wxListEvent_m_oldItemIndex_get(self) - if name == "m_col" : - return controls2c.wxListEvent_m_col_get(self) - if name == "m_cancelled" : - return controls2c.wxListEvent_m_cancelled_get(self) - if name == "m_pointDrag" : - return wxPointPtr(controls2c.wxListEvent_m_pointDrag_get(self)) - if name == "m_item" : - return wxListItemPtr(controls2c.wxListEvent_m_item_get(self)) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -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, **_kwargs): - val = apply(controls2c.wxListCtrl_Arrange,(self,) + _args, _kwargs) - return val - def DeleteItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteItem,(self,) + _args, _kwargs) - return val - def DeleteAllItems(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteAllItems,(self,) + _args, _kwargs) - return val - def DeleteColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteColumn,(self,) + _args, _kwargs) - return val - def DeleteAllColumns(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_DeleteAllColumns,(self,) + _args, _kwargs) - return val - def ClearAll(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_ClearAll,(self,) + _args, _kwargs) - return val - def EditLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_EditLabel,(self,) + _args, _kwargs) - if val: val = wxTextCtrlPtr(val) - return val - def EndEditLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_EndEditLabel,(self,) + _args, _kwargs) - return val - def GetEditControl(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetEditControl,(self,) + _args, _kwargs) - if val: val = wxTextCtrlPtr(val) - return val - def EnsureVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_EnsureVisible,(self,) + _args, _kwargs) - return val - def FindItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_FindItem,(self,) + _args, _kwargs) - return val - def FindItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_FindItemData,(self,) + _args, _kwargs) - return val - def FindItemAtPos(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_FindItemAtPos,(self,) + _args, _kwargs) - return val - def GetColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetColumn,(self,) + _args, _kwargs) - return val - def GetColumnWidth(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetColumnWidth,(self,) + _args, _kwargs) - return val - def GetCountPerPage(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetCountPerPage,(self,) + _args, _kwargs) - return val - def GetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def GetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemData,(self,) + _args, _kwargs) - return val - def GetItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItem,(self,) + _args, _kwargs) - if val: val = wxListItemPtr(val) ; val.thisown = 1 - return val - def GetItemPosition(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetItemRect(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetItemState(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemState,(self,) + _args, _kwargs) - return val - def GetItemCount(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemCount,(self,) + _args, _kwargs) - return val - def GetItemSpacing(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemSpacing,(self,) + _args, _kwargs) - return val - def GetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItemText,(self,) + _args, _kwargs) - return val - def GetNextItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetNextItem,(self,) + _args, _kwargs) - return val - def GetSelectedItemCount(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetSelectedItemCount,(self,) + _args, _kwargs) - return val - def GetTextColour(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def SetTextColour(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetTextColour,(self,) + _args, _kwargs) - return val - def GetTopItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetTopItem,(self,) + _args, _kwargs) - return val - def HitTest(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_HitTest,(self,) + _args, _kwargs) - return val - def InsertColumnWith(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertColumnWith,(self,) + _args, _kwargs) - return val - def InsertColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertColumn,(self,) + _args, _kwargs) - return val - def InsertItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertItem,(self,) + _args, _kwargs) - return val - def InsertStringItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertStringItem,(self,) + _args, _kwargs) - return val - def InsertImageItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertImageItem,(self,) + _args, _kwargs) - return val - def InsertImageStringItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_InsertImageStringItem,(self,) + _args, _kwargs) - return val - def ScrollList(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_ScrollList,(self,) + _args, _kwargs) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def SetColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetColumn,(self,) + _args, _kwargs) - return val - def SetColumnWidth(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetColumnWidth,(self,) + _args, _kwargs) - return val - def SetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetImageList,(self,) + _args, _kwargs) - return val - def SetItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItem,(self,) + _args, _kwargs) - return val - def SetStringItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetStringItem,(self,) + _args, _kwargs) - return val - def SetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemData,(self,) + _args, _kwargs) - return val - def SetItemImage(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemImage,(self,) + _args, _kwargs) - return val - def SetItemPosition(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemPosition,(self,) + _args, _kwargs) - return val - def SetItemState(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemState,(self,) + _args, _kwargs) - return val - def SetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetItemText,(self,) + _args, _kwargs) - return val - def SetSingleStyle(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetSingleStyle,(self,) + _args, _kwargs) - return val - def SetWindowStyleFlag(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_SetWindowStyleFlag,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxListCtrl(wxListCtrlPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxListCtrl,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTreeItemIdPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,controls2c=controls2c): - if self.thisown == 1 : - controls2c.delete_wxTreeItemId(self) - def IsOk(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemId_IsOk,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTreeItemId(wxTreeItemIdPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxTreeItemId,_args,_kwargs) - self.thisown = 1 - - - - -class wxTreeItemDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_GetData,(self,) + _args, _kwargs) - return val - def SetData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_SetData,(self,) + _args, _kwargs) - return val - def GetId(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_GetId,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) - return val - def SetId(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeItemData_SetId,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTreeItemData(wxTreeItemDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxTreeItemData,_args,_kwargs) - self.thisown = 1 - - - - -class wxTreeEventPtr(wxNotifyEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetOldItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetOldItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetPoint(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetPoint,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetCode(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetCode,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeEvent_GetLabel,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetCount,(self,) + _args, _kwargs) - return val - def GetIndent(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetIndent,(self,) + _args, _kwargs) - return val - def SetIndent(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetIndent,(self,) + _args, _kwargs) - return val - def GetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def GetStateImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetStateImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def SetImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetImageList,(self,) + _args, _kwargs) - return val - def SetStateImageList(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetStateImageList,(self,) + _args, _kwargs) - return val - def GetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemText,(self,) + _args, _kwargs) - return val - def GetItemImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemImage,(self,) + _args, _kwargs) - return val - def GetItemSelectedImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemSelectedImage,(self,) + _args, _kwargs) - return val - def SetItemText(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemText,(self,) + _args, _kwargs) - return val - def SetItemImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemImage,(self,) + _args, _kwargs) - return val - def SetItemSelectedImage(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemSelectedImage,(self,) + _args, _kwargs) - return val - def SetItemHasChildren(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemHasChildren,(self,) + _args, _kwargs) - return val - def GetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetItemData,(self,) + _args, _kwargs) - if val: val = wxTreeItemDataPtr(val) - return val - def SetItemData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemData,(self,) + _args, _kwargs) - return val - def GetPyData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetPyData,(self,) + _args, _kwargs) - return val - def SetPyData(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetPyData,(self,) + _args, _kwargs) - return val - def IsVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsVisible,(self,) + _args, _kwargs) - return val - def ItemHasChildren(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_ItemHasChildren,(self,) + _args, _kwargs) - return val - def IsExpanded(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsExpanded,(self,) + _args, _kwargs) - return val - def IsSelected(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsSelected,(self,) + _args, _kwargs) - return val - def GetRootItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetRootItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetSelection,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetParent(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetParent,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetChildrenCount(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetChildrenCount,(self,) + _args, _kwargs) - return val - def GetFirstChild(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetFirstChild,(self,) + _args, _kwargs) - return val - def GetNextChild(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetNextChild,(self,) + _args, _kwargs) - return val - def GetNextSibling(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetNextSibling,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetPrevSibling(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetPrevSibling,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetFirstVisibleItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetFirstVisibleItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetNextVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetNextVisible,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def GetPrevVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetPrevVisible,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def AddRoot(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_AddRoot,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def PrependItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_PrependItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def InsertItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_InsertItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def AppendItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_AppendItem,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def Delete(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Delete,(self,) + _args, _kwargs) - return val - def DeleteChildren(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_DeleteChildren,(self,) + _args, _kwargs) - return val - def DeleteAllItems(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_DeleteAllItems,(self,) + _args, _kwargs) - return val - def Expand(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Expand,(self,) + _args, _kwargs) - return val - def Collapse(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Collapse,(self,) + _args, _kwargs) - return val - def CollapseAndReset(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_CollapseAndReset,(self,) + _args, _kwargs) - return val - def Toggle(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Toggle,(self,) + _args, _kwargs) - return val - def Unselect(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_Unselect,(self,) + _args, _kwargs) - return val - def UnselectAll(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_UnselectAll,(self,) + _args, _kwargs) - return val - def SelectItem(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SelectItem,(self,) + _args, _kwargs) - return val - def EnsureVisible(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_EnsureVisible,(self,) + _args, _kwargs) - return val - def ScrollTo(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_ScrollTo,(self,) + _args, _kwargs) - return val - def EditLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_EditLabel,(self,) + _args, _kwargs) - if val: val = wxTextCtrlPtr(val) - return val - def GetEditControl(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_GetEditControl,(self,) + _args, _kwargs) - if val: val = wxTextCtrlPtr(val) - return val - def EndEditLabel(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_EndEditLabel,(self,) + _args, _kwargs) - return val - def SetItemBold(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_SetItemBold,(self,) + _args, _kwargs) - return val - def IsBold(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_IsBold,(self,) + _args, _kwargs) - return val - def HitTest(self, *_args, **_kwargs): - val = apply(controls2c.wxTreeCtrl_HitTest,(self,) + _args, _kwargs) - if val: val = wxTreeItemIdPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) - - # 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_GetNextChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) - -class wxTreeCtrl(wxTreeCtrlPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(controls2c.new_wxTreeCtrl,_args,_kwargs) - 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_MASK_STATE = controls2c.wxLIST_MASK_STATE -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 cebd498728..0000000000 --- a/utils/wxPython/src/msw/events.cpp +++ /dev/null @@ -1,3571 +0,0 @@ -/* - * FILE : msw/events.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -#define wxEvent_GetEventObject(_swigobj) (_swigobj->GetEventObject()) -static PyObject *_wrap_wxEvent_GetEventObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetEventObject",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxEvent_GetEventType(_swigobj) (_swigobj->GetEventType()) -static PyObject *_wrap_wxEvent_GetEventType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEventType _result; - wxEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetEventType",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetSkipped",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEvent_GetTimestamp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxEvent_SetEventObject",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetEventObject. Expected _wxEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxEvent_SetEventType",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxEvent_SetId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxEvent_SetTimestamp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxEvent_Skip",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSizeEvent_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCloseEvent_SetLoggingOff",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCloseEvent_GetLoggingOff",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxCloseEvent_Veto",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCloseEvent_CanVeto",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCloseEvent_GetVeto",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCloseEvent_SetCanVeto",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_Checked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetExtraLong",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetInt",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_GetString",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCommandEvent_IsSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollEvent_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrollEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_IsButton",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMouseEvent_ButtonDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMouseEvent_ButtonDClick",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMouseEvent_ButtonUp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMouseEvent_Button",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMouseEvent_ButtonIsDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_ControlDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MetaDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_AltDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_ShiftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftUp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleUp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightUp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftDClick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleDClick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightDClick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_LeftIsDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_MiddleIsDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_RightIsDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Dragging",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Moving",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Entering",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Leaving",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_Position",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMouseEvent_GetLogicalPosition",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetLogicalPosition. Expected _wxMouseEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMouseEvent_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_ControlDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_MetaDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_AltDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_ShiftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxKeyEvent_KeyCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMoveEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxEraseEvent_GetDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxActivateEvent_GetActive",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuEvent_GetMenuId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxShowEvent_SetShow",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxShowEvent_GetShow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetZPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetButtonState",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetButtonChange",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_GetJoystick",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetJoystick",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetButtonState",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetButtonChange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxJoystickEvent_SetPosition",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxJoystickEvent_SetZPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_IsButton",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_IsMove",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxJoystickEvent_IsZMove",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxJOY_BUTTON_ANY; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxJoystickEvent_ButtonDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxJOY_BUTTON_ANY; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxJoystickEvent_ButtonUp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxJOY_BUTTON_ANY; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxJoystickEvent_ButtonIsDown",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDropFilesEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDropFilesEvent_GetNumberOfFiles",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxIdleEvent_RequestMore",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIdleEvent_MoreRequested",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetChecked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetText",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetSetText",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetSetChecked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxUpdateUIEvent_GetSetEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxUpdateUIEvent_Check",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxUpdateUIEvent_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxUpdateUIEvent_SetText",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxEventType ) wxEVT_NULL; - PyObject * _arg1 = (PyObject *) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyEvent_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPyEvent(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPyEvent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyEvent_SetUserData",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyEvent_GetUserData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 void *SwigwxNotifyEventTowxCommandEvent(void *ptr) { - wxNotifyEvent *src; - wxCommandEvent *dest; - src = (wxNotifyEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxNotifyEventTowxEvent(void *ptr) { - wxNotifyEvent *src; - wxEvent *dest; - src = (wxNotifyEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxNotifyEvent_IsAllowed(_swigobj) (_swigobj->IsAllowed()) -static PyObject *_wrap_wxNotifyEvent_IsAllowed(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotifyEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotifyEvent_IsAllowed",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotifyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotifyEvent_IsAllowed. Expected _wxNotifyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotifyEvent_IsAllowed(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotifyEvent_Veto(_swigobj) (_swigobj->Veto()) -static PyObject *_wrap_wxNotifyEvent_Veto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotifyEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotifyEvent_Veto",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotifyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotifyEvent_Veto. Expected _wxNotifyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotifyEvent_Veto(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef eventscMethods[] = { - { "wxNotifyEvent_Veto", _wrap_wxNotifyEvent_Veto, METH_VARARGS }, - { "wxNotifyEvent_IsAllowed", _wrap_wxNotifyEvent_IsAllowed, METH_VARARGS }, - { "wxPyEvent_GetUserData", _wrap_wxPyEvent_GetUserData, METH_VARARGS }, - { "wxPyEvent_SetUserData", _wrap_wxPyEvent_SetUserData, METH_VARARGS }, - { "delete_wxPyEvent", _wrap_delete_wxPyEvent, METH_VARARGS }, - { "new_wxPyEvent", _wrap_new_wxPyEvent, METH_VARARGS }, - { "wxUpdateUIEvent_SetText", _wrap_wxUpdateUIEvent_SetText, METH_VARARGS }, - { "wxUpdateUIEvent_Enable", _wrap_wxUpdateUIEvent_Enable, METH_VARARGS }, - { "wxUpdateUIEvent_Check", _wrap_wxUpdateUIEvent_Check, METH_VARARGS }, - { "wxUpdateUIEvent_GetSetEnabled", _wrap_wxUpdateUIEvent_GetSetEnabled, METH_VARARGS }, - { "wxUpdateUIEvent_GetSetChecked", _wrap_wxUpdateUIEvent_GetSetChecked, METH_VARARGS }, - { "wxUpdateUIEvent_GetSetText", _wrap_wxUpdateUIEvent_GetSetText, METH_VARARGS }, - { "wxUpdateUIEvent_GetText", _wrap_wxUpdateUIEvent_GetText, METH_VARARGS }, - { "wxUpdateUIEvent_GetEnabled", _wrap_wxUpdateUIEvent_GetEnabled, METH_VARARGS }, - { "wxUpdateUIEvent_GetChecked", _wrap_wxUpdateUIEvent_GetChecked, METH_VARARGS }, - { "wxIdleEvent_MoreRequested", _wrap_wxIdleEvent_MoreRequested, METH_VARARGS }, - { "wxIdleEvent_RequestMore", _wrap_wxIdleEvent_RequestMore, METH_VARARGS }, - { "wxDropFilesEvent_GetFiles", _wrap_wxDropFilesEvent_GetFiles, METH_VARARGS }, - { "wxDropFilesEvent_GetNumberOfFiles", _wrap_wxDropFilesEvent_GetNumberOfFiles, METH_VARARGS }, - { "wxDropFilesEvent_GetPosition", _wrap_wxDropFilesEvent_GetPosition, METH_VARARGS }, - { "wxJoystickEvent_ButtonIsDown", _wrap_wxJoystickEvent_ButtonIsDown, METH_VARARGS }, - { "wxJoystickEvent_ButtonUp", _wrap_wxJoystickEvent_ButtonUp, METH_VARARGS }, - { "wxJoystickEvent_ButtonDown", _wrap_wxJoystickEvent_ButtonDown, METH_VARARGS }, - { "wxJoystickEvent_IsZMove", _wrap_wxJoystickEvent_IsZMove, METH_VARARGS }, - { "wxJoystickEvent_IsMove", _wrap_wxJoystickEvent_IsMove, METH_VARARGS }, - { "wxJoystickEvent_IsButton", _wrap_wxJoystickEvent_IsButton, METH_VARARGS }, - { "wxJoystickEvent_SetZPosition", _wrap_wxJoystickEvent_SetZPosition, METH_VARARGS }, - { "wxJoystickEvent_SetPosition", _wrap_wxJoystickEvent_SetPosition, METH_VARARGS }, - { "wxJoystickEvent_SetButtonChange", _wrap_wxJoystickEvent_SetButtonChange, METH_VARARGS }, - { "wxJoystickEvent_SetButtonState", _wrap_wxJoystickEvent_SetButtonState, METH_VARARGS }, - { "wxJoystickEvent_SetJoystick", _wrap_wxJoystickEvent_SetJoystick, METH_VARARGS }, - { "wxJoystickEvent_GetJoystick", _wrap_wxJoystickEvent_GetJoystick, METH_VARARGS }, - { "wxJoystickEvent_GetButtonChange", _wrap_wxJoystickEvent_GetButtonChange, METH_VARARGS }, - { "wxJoystickEvent_GetButtonState", _wrap_wxJoystickEvent_GetButtonState, METH_VARARGS }, - { "wxJoystickEvent_GetZPosition", _wrap_wxJoystickEvent_GetZPosition, METH_VARARGS }, - { "wxJoystickEvent_GetPosition", _wrap_wxJoystickEvent_GetPosition, METH_VARARGS }, - { "wxShowEvent_GetShow", _wrap_wxShowEvent_GetShow, METH_VARARGS }, - { "wxShowEvent_SetShow", _wrap_wxShowEvent_SetShow, METH_VARARGS }, - { "wxMenuEvent_GetMenuId", _wrap_wxMenuEvent_GetMenuId, METH_VARARGS }, - { "wxActivateEvent_GetActive", _wrap_wxActivateEvent_GetActive, METH_VARARGS }, - { "wxEraseEvent_GetDC", _wrap_wxEraseEvent_GetDC, METH_VARARGS }, - { "wxMoveEvent_GetPosition", _wrap_wxMoveEvent_GetPosition, METH_VARARGS }, - { "wxKeyEvent_KeyCode", _wrap_wxKeyEvent_KeyCode, METH_VARARGS }, - { "wxKeyEvent_ShiftDown", _wrap_wxKeyEvent_ShiftDown, METH_VARARGS }, - { "wxKeyEvent_AltDown", _wrap_wxKeyEvent_AltDown, METH_VARARGS }, - { "wxKeyEvent_MetaDown", _wrap_wxKeyEvent_MetaDown, METH_VARARGS }, - { "wxKeyEvent_ControlDown", _wrap_wxKeyEvent_ControlDown, METH_VARARGS }, - { "wxMouseEvent_GetY", _wrap_wxMouseEvent_GetY, METH_VARARGS }, - { "wxMouseEvent_GetX", _wrap_wxMouseEvent_GetX, METH_VARARGS }, - { "wxMouseEvent_GetLogicalPosition", _wrap_wxMouseEvent_GetLogicalPosition, METH_VARARGS }, - { "wxMouseEvent_GetPosition", _wrap_wxMouseEvent_GetPosition, METH_VARARGS }, - { "wxMouseEvent_Position", _wrap_wxMouseEvent_Position, METH_VARARGS }, - { "wxMouseEvent_Leaving", _wrap_wxMouseEvent_Leaving, METH_VARARGS }, - { "wxMouseEvent_Entering", _wrap_wxMouseEvent_Entering, METH_VARARGS }, - { "wxMouseEvent_Moving", _wrap_wxMouseEvent_Moving, METH_VARARGS }, - { "wxMouseEvent_Dragging", _wrap_wxMouseEvent_Dragging, METH_VARARGS }, - { "wxMouseEvent_RightIsDown", _wrap_wxMouseEvent_RightIsDown, METH_VARARGS }, - { "wxMouseEvent_MiddleIsDown", _wrap_wxMouseEvent_MiddleIsDown, METH_VARARGS }, - { "wxMouseEvent_LeftIsDown", _wrap_wxMouseEvent_LeftIsDown, METH_VARARGS }, - { "wxMouseEvent_RightDClick", _wrap_wxMouseEvent_RightDClick, METH_VARARGS }, - { "wxMouseEvent_MiddleDClick", _wrap_wxMouseEvent_MiddleDClick, METH_VARARGS }, - { "wxMouseEvent_LeftDClick", _wrap_wxMouseEvent_LeftDClick, METH_VARARGS }, - { "wxMouseEvent_RightUp", _wrap_wxMouseEvent_RightUp, METH_VARARGS }, - { "wxMouseEvent_MiddleUp", _wrap_wxMouseEvent_MiddleUp, METH_VARARGS }, - { "wxMouseEvent_LeftUp", _wrap_wxMouseEvent_LeftUp, METH_VARARGS }, - { "wxMouseEvent_RightDown", _wrap_wxMouseEvent_RightDown, METH_VARARGS }, - { "wxMouseEvent_MiddleDown", _wrap_wxMouseEvent_MiddleDown, METH_VARARGS }, - { "wxMouseEvent_LeftDown", _wrap_wxMouseEvent_LeftDown, METH_VARARGS }, - { "wxMouseEvent_ShiftDown", _wrap_wxMouseEvent_ShiftDown, METH_VARARGS }, - { "wxMouseEvent_AltDown", _wrap_wxMouseEvent_AltDown, METH_VARARGS }, - { "wxMouseEvent_MetaDown", _wrap_wxMouseEvent_MetaDown, METH_VARARGS }, - { "wxMouseEvent_ControlDown", _wrap_wxMouseEvent_ControlDown, METH_VARARGS }, - { "wxMouseEvent_ButtonIsDown", _wrap_wxMouseEvent_ButtonIsDown, METH_VARARGS }, - { "wxMouseEvent_Button", _wrap_wxMouseEvent_Button, METH_VARARGS }, - { "wxMouseEvent_ButtonUp", _wrap_wxMouseEvent_ButtonUp, METH_VARARGS }, - { "wxMouseEvent_ButtonDClick", _wrap_wxMouseEvent_ButtonDClick, METH_VARARGS }, - { "wxMouseEvent_ButtonDown", _wrap_wxMouseEvent_ButtonDown, METH_VARARGS }, - { "wxMouseEvent_IsButton", _wrap_wxMouseEvent_IsButton, METH_VARARGS }, - { "wxScrollEvent_GetPosition", _wrap_wxScrollEvent_GetPosition, METH_VARARGS }, - { "wxScrollEvent_GetOrientation", _wrap_wxScrollEvent_GetOrientation, METH_VARARGS }, - { "wxCommandEvent_IsSelection", _wrap_wxCommandEvent_IsSelection, METH_VARARGS }, - { "wxCommandEvent_GetString", _wrap_wxCommandEvent_GetString, METH_VARARGS }, - { "wxCommandEvent_GetSelection", _wrap_wxCommandEvent_GetSelection, METH_VARARGS }, - { "wxCommandEvent_GetInt", _wrap_wxCommandEvent_GetInt, METH_VARARGS }, - { "wxCommandEvent_GetExtraLong", _wrap_wxCommandEvent_GetExtraLong, METH_VARARGS }, - { "wxCommandEvent_Checked", _wrap_wxCommandEvent_Checked, METH_VARARGS }, - { "wxCloseEvent_SetCanVeto", _wrap_wxCloseEvent_SetCanVeto, METH_VARARGS }, - { "wxCloseEvent_GetVeto", _wrap_wxCloseEvent_GetVeto, METH_VARARGS }, - { "wxCloseEvent_CanVeto", _wrap_wxCloseEvent_CanVeto, METH_VARARGS }, - { "wxCloseEvent_Veto", _wrap_wxCloseEvent_Veto, METH_VARARGS }, - { "wxCloseEvent_GetLoggingOff", _wrap_wxCloseEvent_GetLoggingOff, METH_VARARGS }, - { "wxCloseEvent_SetLoggingOff", _wrap_wxCloseEvent_SetLoggingOff, METH_VARARGS }, - { "wxSizeEvent_GetSize", _wrap_wxSizeEvent_GetSize, METH_VARARGS }, - { "wxEvent_Skip", _wrap_wxEvent_Skip, METH_VARARGS }, - { "wxEvent_SetTimestamp", _wrap_wxEvent_SetTimestamp, METH_VARARGS }, - { "wxEvent_SetId", _wrap_wxEvent_SetId, METH_VARARGS }, - { "wxEvent_SetEventType", _wrap_wxEvent_SetEventType, METH_VARARGS }, - { "wxEvent_SetEventObject", _wrap_wxEvent_SetEventObject, METH_VARARGS }, - { "wxEvent_GetTimestamp", _wrap_wxEvent_GetTimestamp, METH_VARARGS }, - { "wxEvent_GetSkipped", _wrap_wxEvent_GetSkipped, METH_VARARGS }, - { "wxEvent_GetId", _wrap_wxEvent_GetId, METH_VARARGS }, - { "wxEvent_GetEventType", _wrap_wxEvent_GetEventType, METH_VARARGS }, - { "wxEvent_GetEventObject", _wrap_wxEvent_GetEventObject, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_wxEvent","_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_class_wxEvent","_wxNotifyEvent",SwigwxNotifyEventTowxEvent}, - { "_class_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_class_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent}, - { "_class_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_class_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent}, - { "_class_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_class_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent}, - { "_class_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_class_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent}, - { "_class_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_class_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent}, - { "_class_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_class_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent}, - { "_class_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_class_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent}, - { "_class_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_class_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent}, - { "_class_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_class_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent}, - { "_class_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_class_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent}, - { "_class_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_class_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent}, - { "_class_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_class_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent}, - { "_class_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_class_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent}, - { "_class_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_class_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent}, - { "_class_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_class_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent}, - { "_class_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_class_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent}, - { "_class_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_class_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent}, - { "_class_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_class_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent}, - { "_class_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_class_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent}, - { "_class_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_class_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent}, - { "_class_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_class_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent}, - { "_class_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_class_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent}, - { "_class_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_class_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_wxCommandEvent","_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_unsigned_char","_byte",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_class_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_class_wxCommandEvent","_class_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxNotifyEvent",SwigwxNotifyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/events.py b/utils/wxPython/src/msw/events.py deleted file mode 100644 index 39025e5429..0000000000 --- a/utils/wxPython/src/msw/events.py +++ /dev/null @@ -1,651 +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, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetEventObject,(self,) + _args, _kwargs) - return val - def GetEventType(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetEventType,(self,) + _args, _kwargs) - return val - def GetId(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetId,(self,) + _args, _kwargs) - return val - def GetSkipped(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetSkipped,(self,) + _args, _kwargs) - return val - def GetTimestamp(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_GetTimestamp,(self,) + _args, _kwargs) - return val - def SetEventObject(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetEventObject,(self,) + _args, _kwargs) - return val - def SetEventType(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetEventType,(self,) + _args, _kwargs) - return val - def SetId(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetId,(self,) + _args, _kwargs) - return val - def SetTimestamp(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_SetTimestamp,(self,) + _args, _kwargs) - return val - def Skip(self, *_args, **_kwargs): - val = apply(eventsc.wxEvent_Skip,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxSizeEvent_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_SetLoggingOff,(self,) + _args, _kwargs) - return val - def GetLoggingOff(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_GetLoggingOff,(self,) + _args, _kwargs) - return val - def Veto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_Veto,(self,) + _args, _kwargs) - return val - def CanVeto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_CanVeto,(self,) + _args, _kwargs) - return val - def GetVeto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_GetVeto,(self,) + _args, _kwargs) - return val - def SetCanVeto(self, *_args, **_kwargs): - val = apply(eventsc.wxCloseEvent_SetCanVeto,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_Checked,(self,) + _args, _kwargs) - return val - def GetExtraLong(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetExtraLong,(self,) + _args, _kwargs) - return val - def GetInt(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetInt,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetSelection,(self,) + _args, _kwargs) - return val - def GetString(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_GetString,(self,) + _args, _kwargs) - return val - def IsSelection(self, *_args, **_kwargs): - val = apply(eventsc.wxCommandEvent_IsSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxScrollEvent_GetOrientation,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxScrollEvent_GetPosition,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_IsButton,(self,) + _args, _kwargs) - return val - def ButtonDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonDown,(self,) + _args, _kwargs) - return val - def ButtonDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonDClick,(self,) + _args, _kwargs) - return val - def ButtonUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonUp,(self,) + _args, _kwargs) - return val - def Button(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Button,(self,) + _args, _kwargs) - return val - def ButtonIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ButtonIsDown,(self,) + _args, _kwargs) - return val - def ControlDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ControlDown,(self,) + _args, _kwargs) - return val - def MetaDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MetaDown,(self,) + _args, _kwargs) - return val - def AltDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_AltDown,(self,) + _args, _kwargs) - return val - def ShiftDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_ShiftDown,(self,) + _args, _kwargs) - return val - def LeftDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftDown,(self,) + _args, _kwargs) - return val - def MiddleDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleDown,(self,) + _args, _kwargs) - return val - def RightDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightDown,(self,) + _args, _kwargs) - return val - def LeftUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftUp,(self,) + _args, _kwargs) - return val - def MiddleUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleUp,(self,) + _args, _kwargs) - return val - def RightUp(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightUp,(self,) + _args, _kwargs) - return val - def LeftDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftDClick,(self,) + _args, _kwargs) - return val - def MiddleDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleDClick,(self,) + _args, _kwargs) - return val - def RightDClick(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightDClick,(self,) + _args, _kwargs) - return val - def LeftIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_LeftIsDown,(self,) + _args, _kwargs) - return val - def MiddleIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_MiddleIsDown,(self,) + _args, _kwargs) - return val - def RightIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_RightIsDown,(self,) + _args, _kwargs) - return val - def Dragging(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Dragging,(self,) + _args, _kwargs) - return val - def Moving(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Moving,(self,) + _args, _kwargs) - return val - def Entering(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Entering,(self,) + _args, _kwargs) - return val - def Leaving(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Leaving,(self,) + _args, _kwargs) - return val - def Position(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_Position,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetLogicalPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetLogicalPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetX(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(eventsc.wxMouseEvent_GetY,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_ControlDown,(self,) + _args, _kwargs) - return val - def MetaDown(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_MetaDown,(self,) + _args, _kwargs) - return val - def AltDown(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_AltDown,(self,) + _args, _kwargs) - return val - def ShiftDown(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_ShiftDown,(self,) + _args, _kwargs) - return val - def KeyCode(self, *_args, **_kwargs): - val = apply(eventsc.wxKeyEvent_KeyCode,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxMoveEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxEraseEvent_GetDC,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxActivateEvent_GetActive,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxMenuEvent_GetMenuId,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxShowEvent_SetShow,(self,) + _args, _kwargs) - return val - def GetShow(self, *_args, **_kwargs): - val = apply(eventsc.wxShowEvent_GetShow,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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 "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetZPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetZPosition,(self,) + _args, _kwargs) - return val - def GetButtonState(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetButtonState,(self,) + _args, _kwargs) - return val - def GetButtonChange(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetButtonChange,(self,) + _args, _kwargs) - return val - def GetJoystick(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_GetJoystick,(self,) + _args, _kwargs) - return val - def SetJoystick(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetJoystick,(self,) + _args, _kwargs) - return val - def SetButtonState(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetButtonState,(self,) + _args, _kwargs) - return val - def SetButtonChange(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetButtonChange,(self,) + _args, _kwargs) - return val - def SetPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetPosition,(self,) + _args, _kwargs) - return val - def SetZPosition(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_SetZPosition,(self,) + _args, _kwargs) - return val - def IsButton(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_IsButton,(self,) + _args, _kwargs) - return val - def IsMove(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_IsMove,(self,) + _args, _kwargs) - return val - def IsZMove(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_IsZMove,(self,) + _args, _kwargs) - return val - def ButtonDown(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_ButtonDown,(self,) + _args, _kwargs) - return val - def ButtonUp(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_ButtonUp,(self,) + _args, _kwargs) - return val - def ButtonIsDown(self, *_args, **_kwargs): - val = apply(eventsc.wxJoystickEvent_ButtonIsDown,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxDropFilesEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetNumberOfFiles(self, *_args, **_kwargs): - val = apply(eventsc.wxDropFilesEvent_GetNumberOfFiles,(self,) + _args, _kwargs) - return val - def GetFiles(self, *_args, **_kwargs): - val = apply(eventsc.wxDropFilesEvent_GetFiles,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, **_kwargs): - val = apply(eventsc.wxIdleEvent_RequestMore,(self,) + _args, _kwargs) - return val - def MoreRequested(self, *_args, **_kwargs): - val = apply(eventsc.wxIdleEvent_MoreRequested,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetChecked,(self,) + _args, _kwargs) - return val - def GetEnabled(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetEnabled,(self,) + _args, _kwargs) - return val - def GetText(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetText,(self,) + _args, _kwargs) - return val - def GetSetText(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetSetText,(self,) + _args, _kwargs) - return val - def GetSetChecked(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetSetChecked,(self,) + _args, _kwargs) - return val - def GetSetEnabled(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_GetSetEnabled,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_Check,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_Enable,(self,) + _args, _kwargs) - return val - def SetText(self, *_args, **_kwargs): - val = apply(eventsc.wxUpdateUIEvent_SetText,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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 "" % (self.this,) -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,eventsc=eventsc): - if self.thisown == 1 : - eventsc.delete_wxPyEvent(self) - def SetUserData(self, *_args, **_kwargs): - val = apply(eventsc.wxPyEvent_SetUserData,(self,) + _args, _kwargs) - return val - def GetUserData(self, *_args, **_kwargs): - val = apply(eventsc.wxPyEvent_GetUserData,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPyEvent(wxPyEventPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(eventsc.new_wxPyEvent,_args,_kwargs) - self.thisown = 1 - - - - -class wxNotifyEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsAllowed(self, *_args, **_kwargs): - val = apply(eventsc.wxNotifyEvent_IsAllowed,(self,) + _args, _kwargs) - return val - def Veto(self, *_args, **_kwargs): - val = apply(eventsc.wxNotifyEvent_Veto,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxNotifyEvent(wxNotifyEventPtr): - def __init__(self,this): - self.this = this - - - - - - -#-------------- 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 ab2d6cf2b9..0000000000 --- a/utils/wxPython/src/msw/frames.cpp +++ /dev/null @@ -1,1240 +0,0 @@ -/* - * FILE : msw/frames.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxFrame_Centre",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFrame_Command",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - long _arg2 = (long ) wxST_SIZEGRIP; - wxWindowID _arg3 = (wxWindowID ) -1; - char * _arg4 = (char *) "statusBar"; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|ilis:wxFrame_CreateStatusBar",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (long ) wxNO_BORDER|wxTB_HORIZONTAL|wxTB_FLAT; - wxWindowID _arg2 = (wxWindowID ) -1; - char * _arg3 = (char *) "toolBar"; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|lis:wxFrame_CreateToolBar",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFrame_GetMenuBar(_swigobj) (_swigobj->GetMenuBar()) -static PyObject *_wrap_wxFrame_GetMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - wxFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetMenuBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFrame_GetStatusBar(_swigobj) (_swigobj->GetStatusBar()) -static PyObject *_wrap_wxFrame_GetStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetStatusBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFrame_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxFrame_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFrame * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_GetToolBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFrame_Iconize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFrame_IsIconized",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFrame_Maximize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetAcceleratorTable",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetAcceleratorTable. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetIcon",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetIcon. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetMenuBar",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetMenuBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetStatusBar",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxFrame_SetStatusText",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetStatusWidths",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFrame_SetToolBar",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetToolBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxMiniFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMiniFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMiniFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static PyMethodDef framescMethods[] = { - { "new_wxMiniFrame", _wrap_new_wxMiniFrame, METH_VARARGS }, - { "wxFrame_SetToolBar", _wrap_wxFrame_SetToolBar, METH_VARARGS }, - { "wxFrame_SetTitle", _wrap_wxFrame_SetTitle, METH_VARARGS }, - { "wxFrame_SetStatusWidths", _wrap_wxFrame_SetStatusWidths, METH_VARARGS }, - { "wxFrame_SetStatusText", _wrap_wxFrame_SetStatusText, METH_VARARGS }, - { "wxFrame_SetStatusBar", _wrap_wxFrame_SetStatusBar, METH_VARARGS }, - { "wxFrame_SetMenuBar", _wrap_wxFrame_SetMenuBar, METH_VARARGS }, - { "wxFrame_SetIcon", _wrap_wxFrame_SetIcon, METH_VARARGS }, - { "wxFrame_SetAcceleratorTable", _wrap_wxFrame_SetAcceleratorTable, METH_VARARGS }, - { "wxFrame_Maximize", _wrap_wxFrame_Maximize, METH_VARARGS }, - { "wxFrame_IsIconized", _wrap_wxFrame_IsIconized, METH_VARARGS }, - { "wxFrame_Iconize", _wrap_wxFrame_Iconize, METH_VARARGS }, - { "wxFrame_GetToolBar", _wrap_wxFrame_GetToolBar, METH_VARARGS }, - { "wxFrame_GetTitle", _wrap_wxFrame_GetTitle, METH_VARARGS }, - { "wxFrame_GetStatusBar", _wrap_wxFrame_GetStatusBar, METH_VARARGS }, - { "wxFrame_GetMenuBar", _wrap_wxFrame_GetMenuBar, METH_VARARGS }, - { "wxFrame_CreateToolBar", _wrap_wxFrame_CreateToolBar, METH_VARARGS }, - { "wxFrame_CreateStatusBar", _wrap_wxFrame_CreateStatusBar, METH_VARARGS }, - { "wxFrame_Command", _wrap_wxFrame_Command, METH_VARARGS }, - { "wxFrame_Centre", _wrap_wxFrame_Centre, METH_VARARGS }, - { "new_wxFrame", _wrap_new_wxFrame, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_class_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_class_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow}, - { "_class_wxWindow","_wxFrame",SwigwxFrameTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow}, - { "_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow}, - { "_wxWindow","_wxFrame",SwigwxFrameTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_class_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/frames.py b/utils/wxPython/src/msw/frames.py deleted file mode 100644 index 5a7e4fca36..0000000000 --- a/utils/wxPython/src/msw/frames.py +++ /dev/null @@ -1,115 +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, **_kwargs): - val = apply(framesc.wxFrame_Centre,(self,) + _args, _kwargs) - return val - def Command(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_Command,(self,) + _args, _kwargs) - return val - def CreateStatusBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_CreateStatusBar,(self,) + _args, _kwargs) - if val: val = wxStatusBarPtr(val) - return val - def CreateToolBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_CreateToolBar,(self,) + _args, _kwargs) - if val: val = wxToolBarPtr(val) - return val - def GetMenuBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetMenuBar,(self,) + _args, _kwargs) - if val: val = wxMenuBarPtr(val) - return val - def GetStatusBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetStatusBar,(self,) + _args, _kwargs) - if val: val = wxStatusBarPtr(val) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetTitle,(self,) + _args, _kwargs) - return val - def GetToolBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_GetToolBar,(self,) + _args, _kwargs) - if val: val = wxToolBarPtr(val) - return val - def Iconize(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_Iconize,(self,) + _args, _kwargs) - return val - def IsIconized(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_IsIconized,(self,) + _args, _kwargs) - return val - def Maximize(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_Maximize,(self,) + _args, _kwargs) - return val - def SetAcceleratorTable(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetAcceleratorTable,(self,) + _args, _kwargs) - return val - def SetIcon(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetIcon,(self,) + _args, _kwargs) - return val - def SetMenuBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetMenuBar,(self,) + _args, _kwargs) - return val - def SetStatusBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetStatusBar,(self,) + _args, _kwargs) - return val - def SetStatusText(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetStatusText,(self,) + _args, _kwargs) - return val - def SetStatusWidths(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetStatusWidths,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetTitle,(self,) + _args, _kwargs) - return val - def SetToolBar(self, *_args, **_kwargs): - val = apply(framesc.wxFrame_SetToolBar,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFrame(wxFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(framesc.new_wxFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMiniFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxMiniFrame(wxMiniFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(framesc.new_wxMiniFrame,_args,_kwargs) - 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 df658b8553..0000000000 --- a/utils/wxPython/src/msw/gdi.cpp +++ /dev/null @@ -1,7165 +0,0 @@ -/* - * FILE : msw/gdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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); - } - -#ifdef __WXMSW__ - wxBitmap* wxBitmapFromData(char* data, long type, - int width, int height, int depth = 1) { - return new wxBitmap((void*)data, type, width, height, depth); - } -#endif - - 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 -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_wxEmptyBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - int _arg0; - int _arg1; - int _arg2 = (int ) -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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_wxBitmapFromData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - char * _arg0; - long _arg1; - int _arg2; - int _arg3; - int _arg4 = (int ) 1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"slii|i:wxBitmapFromData",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxBitmapFromData(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_wxMaskColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - wxColour * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMaskColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMaskColour. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxMemoryDCFromDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMemoryDCFromDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|i:wxBitmap_Create",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetDepth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetPalette",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmap_GetMask(_swigobj) (_swigobj->GetMask()) -static PyObject *_wrap_wxBitmap_GetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBitmap_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxBitmap_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOl:wxBitmap_LoadFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBitmap_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPalette *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi|O:wxBitmap_SaveFile",&_argo0,&_obj1,&_arg2,&_argo3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBitmap_SetDepth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBitmap_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmap_SetMask",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetMask. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBitmap_SetPalette",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetPalette. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBitmap_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxMask(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - int _arg3 = (int ) -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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxIcon",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_GetDepth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOl:wxIcon_LoadFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIcon_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIcon_SetDepth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIcon_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIcon_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg3 = (int ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxCursor",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCursor_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) FALSE; - char * _arg5 = (char *) ""; - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxFont_GetFaceName(_swigobj) (_swigobj->GetFaceName()) -static PyObject *_wrap_wxFont_GetFaceName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFont * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetFaceName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetFamily",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetFontId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetPointSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetUnderlined",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxFont_GetWeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxFont_SetFaceName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetFamily",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetPointSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetUnderlined",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxFont_SetWeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (unsigned char ) 0; - unsigned char _arg1 = (unsigned char ) 0; - unsigned char _arg2 = (unsigned char ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxColour(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Red",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Green",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Blue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Obbb:wxColour_Set",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxColour_Get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - int _arg2 = (int ) wxSOLID; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:new_wxPen",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPen_GetCap(_swigobj) (_swigobj->GetCap()) -static PyObject *_wrap_wxPen_GetCap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetCap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPen_GetJoin(_swigobj) (_swigobj->GetJoin()) -static PyObject *_wrap_wxPen_GetJoin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetJoin",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetCap",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPen_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetColour. Expected _wxPen_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetJoin",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPen_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPen_GetDashes",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetDashes. Expected _wxPen_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPen_GetStipple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPen_SetDashes",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPen_SetStipple",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetStipple. Expected _wxPen_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) wxSOLID; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:new_wxBrush",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBrush_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxBrush_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxBrush * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBrush_GetStipple(_swigobj) (_swigobj->GetStipple()) -static PyObject *_wrap_wxBrush_GetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBrush * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_GetStipple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxBrush_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxBrush_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBrush * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_GetStyle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxBrush_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBrush_SetColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetColour. Expected _wxBrush_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxBrush_SetStipple",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetStipple. Expected _wxBrush_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxBrush_SetStyle",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_BeginDrawing",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllllOlll:wxDC_Blit",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5,&_arg6,&_arg7,&_arg8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Blit. Expected _wxDC_p."); - return NULL; - } - } - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_CrossHair",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_DestroyClippingRegion",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalXRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_DeviceToLogicalYRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollllll:wxDC_DrawArc",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_DrawCircle(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DrawCircle(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_DrawCircle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Olll:wxDC_DrawCircle",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawCircle. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawCircle(_arg0,_arg1,_arg2,_arg3); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_DrawEllipse",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollllll:wxDC_DrawEllipticArc",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOll:wxDC_DrawIcon",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawIcon. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_DrawLine",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg4 = (long ) 0; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|ll:wxDC_DrawLines",&_argo0,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg4 = (long ) 0; - int _arg5 = (int ) wxODDEVEN_RULE; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|lli:wxDC_DrawPolygon",&_argo0,&_obj2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_DrawPoint",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_DrawRectangle",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 20; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll|l:wxDC_DrawRoundedRectangle",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_DrawSpline",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOll:wxDC_DrawText",&_argo0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_EndDoc",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_EndDrawing",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_EndPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxFLOOD_SURFACE; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OllO|i:wxDC_FloodFill",&_argo0,&_arg1,&_arg2,&_argo3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_FloodFill. Expected _wxDC_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetBackground",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetBrush(_swigobj) (_swigobj->GetBrush()) -static PyObject *_wrap_wxDC_GetBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetBrush",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetCharHeight(_swigobj) (_swigobj->GetCharHeight()) -static PyObject *_wrap_wxDC_GetCharHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetCharHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetCharWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} -{ - _arg3 = &temp1; -} -{ - _arg4 = &temp2; -} - if(!PyArg_ParseTuple(args,"O:wxDC_GetClippingBox",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetLogicalFunction(_swigobj) (_swigobj->GetLogicalFunction()) -static PyObject *_wrap_wxDC_GetLogicalFunction(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetLogicalFunction",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetMapMode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetOptimization",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetPen",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_GetPixel",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxDC_GetSizeTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_GetSizeTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxDC_GetSizeTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetSizeTuple. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_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 wxDC_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - _result = new wxSize (wxDC_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetTextBackground(_swigobj) (_swigobj->GetTextBackground()) -static PyObject *_wrap_wxDC_GetTextBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetTextBackground",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"OO:wxDC_GetTextExtent",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxFont *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"OO|O:wxDC_GetFullTextExtent",&_argo0,&_obj1,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_GetTextForeground",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceXRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxDC_LogicalToDeviceYRel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MaxX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MaxY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MinX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_MinY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxDC_SetDeviceOrigin",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetBackground",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetBackgroundMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ollll:wxDC_SetClippingRegion",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetPalette",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPalette. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetBrush",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBrush. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetFont. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetLogicalFunction",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetMapMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDC_SetOptimization",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetPen",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPen. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetTextBackground",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_SetTextForeground",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextForeground. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Odd:wxDC_SetUserScale",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDC_StartDoc",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDC_StartPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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); -#ifdef __WXMSW__ - if (swapPalette) - self->SetPalette(*bitmap.GetPalette()); -#endif - 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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - int tempbool4 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OOll|i:wxDC_DrawBitmap",&_argo0,&_argo1,&_arg2,&_arg3,&tempbool4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawBitmap. Expected _wxDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMemoryDC_SelectObject",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMemoryDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMemoryDC_SelectObject. Expected _wxMemoryDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScreenDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxScreenDC_StartDrawingOnTop",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTop. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxRect *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxScreenDC_StartDrawingOnTopRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTopRect. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScreenDC_EndDrawingOnTop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxClientDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxClientDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxPaintDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPaintDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxWindowDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindowDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (bool ) TRUE; - int _arg4 = (int ) wxPORTRAIT; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - int tempbool3 = (int) TRUE; - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrinterDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (wxString *) &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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFileDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMetaFileDC_Close",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFile_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPalette",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Obbb:wxPalette_GetPixel",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOOO:wxPalette_GetRGB",&_argo0,&_arg1,&_argo2,&_argo3,&_argo4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_GetRGB. Expected _wxPalette_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPalette_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - int _arg3 = (int ) 1; - int tempbool2 = (int) TRUE; - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxImageList(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxBitmap *) &wxNullBitmap; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxImageList_Add",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Add. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImageList_Add. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxImageList_AddWithColourMask",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_AddWithColourMask. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImageList_AddWithColourMask. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageList_AddIcon",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_AddIcon. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxBitmap *) &wxNullBitmap; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|O:wxImageList_Replace",&_argo0,&_arg1,&_argo2,&_argo3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Replace. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Replace. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxImageList_ReplaceIcon",&_argo0,&_arg1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_ReplaceIcon. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (int ) (wxIMAGELIST_DRAW_NORMAL); - bool _arg6 = (bool ) FALSE; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - int tempbool6 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"OiOii|ii:wxImageList_Draw",&_argo0,&_arg1,&_argo2,&_arg3,&_arg4,&_arg5,&tempbool6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Draw. Expected _wxImageList_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageList_GetImageCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxImageList_Remove",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageList_RemoveAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxImageList_Remove", _wrap_wxImageList_Remove, METH_VARARGS }, - { "wxImageList_GetImageCount", _wrap_wxImageList_GetImageCount, METH_VARARGS }, - { "wxImageList_Draw", _wrap_wxImageList_Draw, METH_VARARGS }, - { "wxImageList_ReplaceIcon", _wrap_wxImageList_ReplaceIcon, METH_VARARGS }, - { "wxImageList_Replace", _wrap_wxImageList_Replace, METH_VARARGS }, - { "wxImageList_AddIcon", _wrap_wxImageList_AddIcon, METH_VARARGS }, - { "wxImageList_AddWithColourMask", _wrap_wxImageList_AddWithColourMask, METH_VARARGS }, - { "wxImageList_Add", _wrap_wxImageList_Add, METH_VARARGS }, - { "delete_wxImageList", _wrap_delete_wxImageList, METH_VARARGS }, - { "new_wxImageList", _wrap_new_wxImageList, METH_VARARGS }, - { "wxPalette_Ok", _wrap_wxPalette_Ok, METH_VARARGS }, - { "wxPalette_GetRGB", _wrap_wxPalette_GetRGB, METH_VARARGS }, - { "wxPalette_GetPixel", _wrap_wxPalette_GetPixel, METH_VARARGS }, - { "delete_wxPalette", _wrap_delete_wxPalette, METH_VARARGS }, - { "new_wxPalette", _wrap_new_wxPalette, METH_VARARGS }, - { "wxMetaFileDC_Close", _wrap_wxMetaFileDC_Close, METH_VARARGS }, - { "new_wxMetaFileDC", _wrap_new_wxMetaFileDC, METH_VARARGS }, - { "new_wxPrinterDC", _wrap_new_wxPrinterDC, METH_VARARGS }, - { "new_wxWindowDC", _wrap_new_wxWindowDC, METH_VARARGS }, - { "new_wxPaintDC", _wrap_new_wxPaintDC, METH_VARARGS }, - { "new_wxClientDC", _wrap_new_wxClientDC, METH_VARARGS }, - { "wxScreenDC_EndDrawingOnTop", _wrap_wxScreenDC_EndDrawingOnTop, METH_VARARGS }, - { "wxScreenDC_StartDrawingOnTopRect", _wrap_wxScreenDC_StartDrawingOnTopRect, METH_VARARGS }, - { "wxScreenDC_StartDrawingOnTop", _wrap_wxScreenDC_StartDrawingOnTop, METH_VARARGS }, - { "new_wxScreenDC", _wrap_new_wxScreenDC, METH_VARARGS }, - { "wxMemoryDC_SelectObject", _wrap_wxMemoryDC_SelectObject, METH_VARARGS }, - { "new_wxMemoryDC", _wrap_new_wxMemoryDC, METH_VARARGS }, - { "wxDC_DrawBitmap", _wrap_wxDC_DrawBitmap, METH_VARARGS }, - { "wxDC_StartPage", _wrap_wxDC_StartPage, METH_VARARGS }, - { "wxDC_StartDoc", _wrap_wxDC_StartDoc, METH_VARARGS }, - { "wxDC_SetUserScale", _wrap_wxDC_SetUserScale, METH_VARARGS }, - { "wxDC_SetTextForeground", _wrap_wxDC_SetTextForeground, METH_VARARGS }, - { "wxDC_SetTextBackground", _wrap_wxDC_SetTextBackground, METH_VARARGS }, - { "wxDC_SetPen", _wrap_wxDC_SetPen, METH_VARARGS }, - { "wxDC_SetOptimization", _wrap_wxDC_SetOptimization, METH_VARARGS }, - { "wxDC_SetMapMode", _wrap_wxDC_SetMapMode, METH_VARARGS }, - { "wxDC_SetLogicalFunction", _wrap_wxDC_SetLogicalFunction, METH_VARARGS }, - { "wxDC_SetFont", _wrap_wxDC_SetFont, METH_VARARGS }, - { "wxDC_SetBrush", _wrap_wxDC_SetBrush, METH_VARARGS }, - { "wxDC_SetPalette", _wrap_wxDC_SetPalette, METH_VARARGS }, - { "wxDC_SetClippingRegion", _wrap_wxDC_SetClippingRegion, METH_VARARGS }, - { "wxDC_SetBackgroundMode", _wrap_wxDC_SetBackgroundMode, METH_VARARGS }, - { "wxDC_SetBackground", _wrap_wxDC_SetBackground, METH_VARARGS }, - { "wxDC_SetDeviceOrigin", _wrap_wxDC_SetDeviceOrigin, METH_VARARGS }, - { "wxDC_Ok", _wrap_wxDC_Ok, METH_VARARGS }, - { "wxDC_MinY", _wrap_wxDC_MinY, METH_VARARGS }, - { "wxDC_MinX", _wrap_wxDC_MinX, METH_VARARGS }, - { "wxDC_MaxY", _wrap_wxDC_MaxY, METH_VARARGS }, - { "wxDC_MaxX", _wrap_wxDC_MaxX, METH_VARARGS }, - { "wxDC_LogicalToDeviceYRel", _wrap_wxDC_LogicalToDeviceYRel, METH_VARARGS }, - { "wxDC_LogicalToDeviceY", _wrap_wxDC_LogicalToDeviceY, METH_VARARGS }, - { "wxDC_LogicalToDeviceXRel", _wrap_wxDC_LogicalToDeviceXRel, METH_VARARGS }, - { "wxDC_LogicalToDeviceX", _wrap_wxDC_LogicalToDeviceX, METH_VARARGS }, - { "wxDC_GetTextForeground", _wrap_wxDC_GetTextForeground, METH_VARARGS }, - { "wxDC_GetFullTextExtent", _wrap_wxDC_GetFullTextExtent, METH_VARARGS }, - { "wxDC_GetTextExtent", _wrap_wxDC_GetTextExtent, METH_VARARGS }, - { "wxDC_GetTextBackground", _wrap_wxDC_GetTextBackground, METH_VARARGS }, - { "wxDC_GetSize", _wrap_wxDC_GetSize, METH_VARARGS }, - { "wxDC_GetSizeTuple", _wrap_wxDC_GetSizeTuple, METH_VARARGS }, - { "wxDC_GetPixel", _wrap_wxDC_GetPixel, METH_VARARGS }, - { "wxDC_GetPen", _wrap_wxDC_GetPen, METH_VARARGS }, - { "wxDC_GetOptimization", _wrap_wxDC_GetOptimization, METH_VARARGS }, - { "wxDC_GetMapMode", _wrap_wxDC_GetMapMode, METH_VARARGS }, - { "wxDC_GetLogicalFunction", _wrap_wxDC_GetLogicalFunction, METH_VARARGS }, - { "wxDC_GetFont", _wrap_wxDC_GetFont, METH_VARARGS }, - { "wxDC_GetClippingBox", _wrap_wxDC_GetClippingBox, METH_VARARGS }, - { "wxDC_GetCharWidth", _wrap_wxDC_GetCharWidth, METH_VARARGS }, - { "wxDC_GetCharHeight", _wrap_wxDC_GetCharHeight, METH_VARARGS }, - { "wxDC_GetBrush", _wrap_wxDC_GetBrush, METH_VARARGS }, - { "wxDC_GetBackground", _wrap_wxDC_GetBackground, METH_VARARGS }, - { "wxDC_FloodFill", _wrap_wxDC_FloodFill, METH_VARARGS }, - { "wxDC_EndPage", _wrap_wxDC_EndPage, METH_VARARGS }, - { "wxDC_EndDrawing", _wrap_wxDC_EndDrawing, METH_VARARGS }, - { "wxDC_EndDoc", _wrap_wxDC_EndDoc, METH_VARARGS }, - { "wxDC_DrawText", _wrap_wxDC_DrawText, METH_VARARGS }, - { "wxDC_DrawSpline", _wrap_wxDC_DrawSpline, METH_VARARGS }, - { "wxDC_DrawRoundedRectangle", _wrap_wxDC_DrawRoundedRectangle, METH_VARARGS }, - { "wxDC_DrawRectangle", _wrap_wxDC_DrawRectangle, METH_VARARGS }, - { "wxDC_DrawPoint", _wrap_wxDC_DrawPoint, METH_VARARGS }, - { "wxDC_DrawPolygon", _wrap_wxDC_DrawPolygon, METH_VARARGS }, - { "wxDC_DrawLines", _wrap_wxDC_DrawLines, METH_VARARGS }, - { "wxDC_DrawLine", _wrap_wxDC_DrawLine, METH_VARARGS }, - { "wxDC_DrawIcon", _wrap_wxDC_DrawIcon, METH_VARARGS }, - { "wxDC_DrawEllipticArc", _wrap_wxDC_DrawEllipticArc, METH_VARARGS }, - { "wxDC_DrawEllipse", _wrap_wxDC_DrawEllipse, METH_VARARGS }, - { "wxDC_DrawCircle", _wrap_wxDC_DrawCircle, METH_VARARGS }, - { "wxDC_DrawArc", _wrap_wxDC_DrawArc, METH_VARARGS }, - { "wxDC_DeviceToLogicalYRel", _wrap_wxDC_DeviceToLogicalYRel, METH_VARARGS }, - { "wxDC_DeviceToLogicalY", _wrap_wxDC_DeviceToLogicalY, METH_VARARGS }, - { "wxDC_DeviceToLogicalXRel", _wrap_wxDC_DeviceToLogicalXRel, METH_VARARGS }, - { "wxDC_DeviceToLogicalX", _wrap_wxDC_DeviceToLogicalX, METH_VARARGS }, - { "wxDC_DestroyClippingRegion", _wrap_wxDC_DestroyClippingRegion, METH_VARARGS }, - { "wxDC_CrossHair", _wrap_wxDC_CrossHair, METH_VARARGS }, - { "wxDC_Clear", _wrap_wxDC_Clear, METH_VARARGS }, - { "wxDC_Blit", _wrap_wxDC_Blit, METH_VARARGS }, - { "wxDC_BeginDrawing", _wrap_wxDC_BeginDrawing, METH_VARARGS }, - { "delete_wxDC", _wrap_delete_wxDC, METH_VARARGS }, - { "wxBrush_SetStyle", _wrap_wxBrush_SetStyle, METH_VARARGS }, - { "wxBrush_SetStipple", _wrap_wxBrush_SetStipple, METH_VARARGS }, - { "wxBrush_SetColour", _wrap_wxBrush_SetColour, METH_VARARGS }, - { "wxBrush_Ok", _wrap_wxBrush_Ok, METH_VARARGS }, - { "wxBrush_GetStyle", _wrap_wxBrush_GetStyle, METH_VARARGS }, - { "wxBrush_GetStipple", _wrap_wxBrush_GetStipple, METH_VARARGS }, - { "wxBrush_GetColour", _wrap_wxBrush_GetColour, METH_VARARGS }, - { "new_wxBrush", _wrap_new_wxBrush, METH_VARARGS }, - { "wxPen_SetStipple", _wrap_wxPen_SetStipple, METH_VARARGS }, - { "wxPen_SetDashes", _wrap_wxPen_SetDashes, METH_VARARGS }, - { "wxPen_GetStipple", _wrap_wxPen_GetStipple, METH_VARARGS }, - { "wxPen_GetDashes", _wrap_wxPen_GetDashes, METH_VARARGS }, - { "wxPen_SetWidth", _wrap_wxPen_SetWidth, METH_VARARGS }, - { "wxPen_SetStyle", _wrap_wxPen_SetStyle, METH_VARARGS }, - { "wxPen_SetJoin", _wrap_wxPen_SetJoin, METH_VARARGS }, - { "wxPen_SetColour", _wrap_wxPen_SetColour, METH_VARARGS }, - { "wxPen_SetCap", _wrap_wxPen_SetCap, METH_VARARGS }, - { "wxPen_Ok", _wrap_wxPen_Ok, METH_VARARGS }, - { "wxPen_GetWidth", _wrap_wxPen_GetWidth, METH_VARARGS }, - { "wxPen_GetStyle", _wrap_wxPen_GetStyle, METH_VARARGS }, - { "wxPen_GetJoin", _wrap_wxPen_GetJoin, METH_VARARGS }, - { "wxPen_GetColour", _wrap_wxPen_GetColour, METH_VARARGS }, - { "wxPen_GetCap", _wrap_wxPen_GetCap, METH_VARARGS }, - { "new_wxPen", _wrap_new_wxPen, METH_VARARGS }, - { "wxColour_Get", _wrap_wxColour_Get, METH_VARARGS }, - { "wxColour_Set", _wrap_wxColour_Set, METH_VARARGS }, - { "wxColour_Ok", _wrap_wxColour_Ok, METH_VARARGS }, - { "wxColour_Blue", _wrap_wxColour_Blue, METH_VARARGS }, - { "wxColour_Green", _wrap_wxColour_Green, METH_VARARGS }, - { "wxColour_Red", _wrap_wxColour_Red, METH_VARARGS }, - { "delete_wxColour", _wrap_delete_wxColour, METH_VARARGS }, - { "new_wxColour", _wrap_new_wxColour, METH_VARARGS }, - { "wxFont_SetWeight", _wrap_wxFont_SetWeight, METH_VARARGS }, - { "wxFont_SetUnderlined", _wrap_wxFont_SetUnderlined, METH_VARARGS }, - { "wxFont_SetStyle", _wrap_wxFont_SetStyle, METH_VARARGS }, - { "wxFont_SetPointSize", _wrap_wxFont_SetPointSize, METH_VARARGS }, - { "wxFont_SetFamily", _wrap_wxFont_SetFamily, METH_VARARGS }, - { "wxFont_SetFaceName", _wrap_wxFont_SetFaceName, METH_VARARGS }, - { "wxFont_GetWeight", _wrap_wxFont_GetWeight, METH_VARARGS }, - { "wxFont_GetUnderlined", _wrap_wxFont_GetUnderlined, METH_VARARGS }, - { "wxFont_GetStyle", _wrap_wxFont_GetStyle, METH_VARARGS }, - { "wxFont_GetPointSize", _wrap_wxFont_GetPointSize, METH_VARARGS }, - { "wxFont_GetFontId", _wrap_wxFont_GetFontId, METH_VARARGS }, - { "wxFont_GetFamily", _wrap_wxFont_GetFamily, METH_VARARGS }, - { "wxFont_GetFaceName", _wrap_wxFont_GetFaceName, METH_VARARGS }, - { "new_wxFont", _wrap_new_wxFont, METH_VARARGS }, - { "wxCursor_Ok", _wrap_wxCursor_Ok, METH_VARARGS }, - { "delete_wxCursor", _wrap_delete_wxCursor, METH_VARARGS }, - { "new_wxCursor", _wrap_new_wxCursor, METH_VARARGS }, - { "wxIcon_SetWidth", _wrap_wxIcon_SetWidth, METH_VARARGS }, - { "wxIcon_SetHeight", _wrap_wxIcon_SetHeight, METH_VARARGS }, - { "wxIcon_SetDepth", _wrap_wxIcon_SetDepth, METH_VARARGS }, - { "wxIcon_Ok", _wrap_wxIcon_Ok, METH_VARARGS }, - { "wxIcon_LoadFile", _wrap_wxIcon_LoadFile, METH_VARARGS }, - { "wxIcon_GetWidth", _wrap_wxIcon_GetWidth, METH_VARARGS }, - { "wxIcon_GetHeight", _wrap_wxIcon_GetHeight, METH_VARARGS }, - { "wxIcon_GetDepth", _wrap_wxIcon_GetDepth, METH_VARARGS }, - { "delete_wxIcon", _wrap_delete_wxIcon, METH_VARARGS }, - { "new_wxIcon", _wrap_new_wxIcon, METH_VARARGS }, - { "delete_wxMask", _wrap_delete_wxMask, METH_VARARGS }, - { "new_wxMask", _wrap_new_wxMask, METH_VARARGS }, - { "wxBitmap_SetWidth", _wrap_wxBitmap_SetWidth, METH_VARARGS }, - { "wxBitmap_SetPalette", _wrap_wxBitmap_SetPalette, METH_VARARGS }, - { "wxBitmap_SetMask", _wrap_wxBitmap_SetMask, METH_VARARGS }, - { "wxBitmap_SetHeight", _wrap_wxBitmap_SetHeight, METH_VARARGS }, - { "wxBitmap_SetDepth", _wrap_wxBitmap_SetDepth, METH_VARARGS }, - { "wxBitmap_SaveFile", _wrap_wxBitmap_SaveFile, METH_VARARGS }, - { "wxBitmap_Ok", _wrap_wxBitmap_Ok, METH_VARARGS }, - { "wxBitmap_LoadFile", _wrap_wxBitmap_LoadFile, METH_VARARGS }, - { "wxBitmap_GetWidth", _wrap_wxBitmap_GetWidth, METH_VARARGS }, - { "wxBitmap_GetMask", _wrap_wxBitmap_GetMask, METH_VARARGS }, - { "wxBitmap_GetPalette", _wrap_wxBitmap_GetPalette, METH_VARARGS }, - { "wxBitmap_GetHeight", _wrap_wxBitmap_GetHeight, METH_VARARGS }, - { "wxBitmap_GetDepth", _wrap_wxBitmap_GetDepth, METH_VARARGS }, - { "wxBitmap_Create", _wrap_wxBitmap_Create, METH_VARARGS }, - { "delete_wxBitmap", _wrap_delete_wxBitmap, METH_VARARGS }, - { "new_wxBitmap", _wrap_new_wxBitmap, METH_VARARGS }, - { "wxMemoryDCFromDC", _wrap_wxMemoryDCFromDC, METH_VARARGS }, - { "wxNamedColour", _wrap_wxNamedColour, METH_VARARGS }, - { "wxStockCursor", _wrap_wxStockCursor, METH_VARARGS }, - { "wxMaskColour", _wrap_wxMaskColour, METH_VARARGS }, - { "wxBitmapFromData", _wrap_wxBitmapFromData, METH_VARARGS }, - { "wxNoRefBitmap", _wrap_wxNoRefBitmap, METH_VARARGS }, - { "wxEmptyBitmap", _wrap_wxEmptyBitmap, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxMetaFileDC",SwigwxMetaFileDCTowxDC}, - { "_wxDC","_wxMetaFileDC",SwigwxMetaFileDCTowxDC}, - { "_wxDC","_class_wxPrinterDC",SwigwxPrinterDCTowxDC}, - { "_wxDC","_wxPrinterDC",SwigwxPrinterDCTowxDC}, - { "_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC}, - { "_wxDC","_wxClientDC",SwigwxClientDCTowxDC}, - { "_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_wxDC","_class_wxDC",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMask","_wxMask",0}, - { "_wxColour","_class_wxColour",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap}, - { "_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap}, - { "_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap}, - { "_wxBitmap","_wxIcon",SwigwxIconTowxBitmap}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_class_wxMetaFileDC",SwigwxMetaFileDCTowxDC}, - { "_class_wxDC","_wxMetaFileDC",SwigwxMetaFileDCTowxDC}, - { "_class_wxDC","_class_wxPrinterDC",SwigwxPrinterDCTowxDC}, - { "_class_wxDC","_wxPrinterDC",SwigwxPrinterDCTowxDC}, - { "_class_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_class_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC}, - { "_class_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_class_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC}, - { "_class_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC}, - { "_class_wxDC","_wxClientDC",SwigwxClientDCTowxDC}, - { "_class_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_class_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC}, - { "_class_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_class_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap}, - { "_class_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap}, - { "_class_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap}, - { "_class_wxBitmap","_wxIcon",SwigwxIconTowxBitmap}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxPalette","_wxPalette",0}, -{0,0,0}}; - -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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/gdi.py b/utils/wxPython/src/msw/gdi.py deleted file mode 100644 index 053800cf1d..0000000000 --- a/utils/wxPython/src/msw/gdi.py +++ /dev/null @@ -1,836 +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,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxBitmap(self) - def Create(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_Create,(self,) + _args, _kwargs) - return val - def GetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetDepth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetHeight,(self,) + _args, _kwargs) - return val - def GetPalette(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetPalette,(self,) + _args, _kwargs) - if val: val = wxPalettePtr(val) - return val - def GetMask(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetMask,(self,) + _args, _kwargs) - if val: val = wxMaskPtr(val) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_GetWidth,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_LoadFile,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_Ok,(self,) + _args, _kwargs) - return val - def SaveFile(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SaveFile,(self,) + _args, _kwargs) - return val - def SetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetDepth,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetHeight,(self,) + _args, _kwargs) - return val - def SetMask(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetMask,(self,) + _args, _kwargs) - return val - def SetPalette(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetPalette,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxBitmap_SetWidth,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxBitmap(wxBitmapPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxBitmap,_args,_kwargs) - self.thisown = 1 - - - - -class wxMaskPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxMask(self) - def __repr__(self): - return "" % (self.this,) -class wxMask(wxMaskPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxMask,_args,_kwargs) - self.thisown = 1 - - - - -class wxIconPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxIcon(self) - def GetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_GetDepth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_GetHeight,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_GetWidth,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_LoadFile,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_Ok,(self,) + _args, _kwargs) - return val - def SetDepth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_SetDepth,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_SetHeight,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxIcon_SetWidth,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxIcon(wxIconPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxIcon,_args,_kwargs) - self.thisown = 1 - - - - -class wxCursorPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxCursor(self) - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxCursor_Ok,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxCursor(wxCursorPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxCursor,_args,_kwargs) - self.thisown = 1 - - - - -class wxFontPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFaceName(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetFaceName,(self,) + _args, _kwargs) - return val - def GetFamily(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetFamily,(self,) + _args, _kwargs) - return val - def GetFontId(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetFontId,(self,) + _args, _kwargs) - return val - def GetPointSize(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetPointSize,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetStyle,(self,) + _args, _kwargs) - return val - def GetUnderlined(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetUnderlined,(self,) + _args, _kwargs) - return val - def GetWeight(self, *_args, **_kwargs): - val = apply(gdic.wxFont_GetWeight,(self,) + _args, _kwargs) - return val - def SetFaceName(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetFaceName,(self,) + _args, _kwargs) - return val - def SetFamily(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetFamily,(self,) + _args, _kwargs) - return val - def SetPointSize(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetPointSize,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetStyle,(self,) + _args, _kwargs) - return val - def SetUnderlined(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetUnderlined,(self,) + _args, _kwargs) - return val - def SetWeight(self, *_args, **_kwargs): - val = apply(gdic.wxFont_SetWeight,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxFont(wxFontPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxFont,_args,_kwargs) - self.thisown = 1 - - - - -class wxColourPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxColour(self) - def Red(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Red,(self,) + _args, _kwargs) - return val - def Green(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Green,(self,) + _args, _kwargs) - return val - def Blue(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Blue,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Ok,(self,) + _args, _kwargs) - return val - def Set(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Set,(self,) + _args, _kwargs) - return val - def Get(self, *_args, **_kwargs): - val = apply(gdic.wxColour_Get,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxColour(wxColourPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxColour,_args,_kwargs) - self.thisown = 1 - - - - -class wxPenPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCap(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetCap,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetJoin(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetJoin,(self,) + _args, _kwargs) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetStyle,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetWidth,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxPen_Ok,(self,) + _args, _kwargs) - return val - def SetCap(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetCap,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetColour,(self,) + _args, _kwargs) - return val - def SetJoin(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetJoin,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetStyle,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetWidth,(self,) + _args, _kwargs) - return val - def GetDashes(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetDashes,(self,) + _args, _kwargs) - return val - def GetStipple(self, *_args, **_kwargs): - val = apply(gdic.wxPen_GetStipple,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def SetDashes(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetDashes,(self,) + _args, _kwargs) - return val - def SetStipple(self, *_args, **_kwargs): - val = apply(gdic.wxPen_SetStipple,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPen(wxPenPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPen,_args,_kwargs) - self.thisown = 1 - - - - -class wxBrushPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColour(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_GetColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetStipple(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_GetStipple,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def GetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_GetStyle,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_Ok,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_SetColour,(self,) + _args, _kwargs) - return val - def SetStipple(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_SetStipple,(self,) + _args, _kwargs) - return val - def SetStyle(self, *_args, **_kwargs): - val = apply(gdic.wxBrush_SetStyle,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxBrush(wxBrushPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxBrush,_args,_kwargs) - self.thisown = 1 - - - - -class wxDCPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxDC(self) - def BeginDrawing(self, *_args, **_kwargs): - val = apply(gdic.wxDC_BeginDrawing,(self,) + _args, _kwargs) - return val - def Blit(self, *_args, **_kwargs): - val = apply(gdic.wxDC_Blit,(self,) + _args, _kwargs) - return val - def Clear(self, *_args, **_kwargs): - val = apply(gdic.wxDC_Clear,(self,) + _args, _kwargs) - return val - def CrossHair(self, *_args, **_kwargs): - val = apply(gdic.wxDC_CrossHair,(self,) + _args, _kwargs) - return val - def DestroyClippingRegion(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DestroyClippingRegion,(self,) + _args, _kwargs) - return val - def DeviceToLogicalX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalX,(self,) + _args, _kwargs) - return val - def DeviceToLogicalXRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalXRel,(self,) + _args, _kwargs) - return val - def DeviceToLogicalY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalY,(self,) + _args, _kwargs) - return val - def DeviceToLogicalYRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DeviceToLogicalYRel,(self,) + _args, _kwargs) - return val - def DrawArc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawArc,(self,) + _args, _kwargs) - return val - def DrawCircle(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawCircle,(self,) + _args, _kwargs) - return val - def DrawEllipse(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawEllipse,(self,) + _args, _kwargs) - return val - def DrawEllipticArc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawEllipticArc,(self,) + _args, _kwargs) - return val - def DrawIcon(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawIcon,(self,) + _args, _kwargs) - return val - def DrawLine(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawLine,(self,) + _args, _kwargs) - return val - def DrawLines(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawLines,(self,) + _args, _kwargs) - return val - def DrawPolygon(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawPolygon,(self,) + _args, _kwargs) - return val - def DrawPoint(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawPoint,(self,) + _args, _kwargs) - return val - def DrawRectangle(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawRectangle,(self,) + _args, _kwargs) - return val - def DrawRoundedRectangle(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawRoundedRectangle,(self,) + _args, _kwargs) - return val - def DrawSpline(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawSpline,(self,) + _args, _kwargs) - return val - def DrawText(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawText,(self,) + _args, _kwargs) - return val - def EndDoc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_EndDoc,(self,) + _args, _kwargs) - return val - def EndDrawing(self, *_args, **_kwargs): - val = apply(gdic.wxDC_EndDrawing,(self,) + _args, _kwargs) - return val - def EndPage(self, *_args, **_kwargs): - val = apply(gdic.wxDC_EndPage,(self,) + _args, _kwargs) - return val - def FloodFill(self, *_args, **_kwargs): - val = apply(gdic.wxDC_FloodFill,(self,) + _args, _kwargs) - return val - def GetBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetBackground,(self,) + _args, _kwargs) - if val: val = wxBrushPtr(val) - return val - def GetBrush(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetBrush,(self,) + _args, _kwargs) - if val: val = wxBrushPtr(val) - return val - def GetCharHeight(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetCharHeight,(self,) + _args, _kwargs) - return val - def GetCharWidth(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetCharWidth,(self,) + _args, _kwargs) - return val - def GetClippingBox(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetClippingBox,(self,) + _args, _kwargs) - return val - def GetFont(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetLogicalFunction(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetLogicalFunction,(self,) + _args, _kwargs) - return val - def GetMapMode(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetMapMode,(self,) + _args, _kwargs) - return val - def GetOptimization(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetOptimization,(self,) + _args, _kwargs) - return val - def GetPen(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetPen,(self,) + _args, _kwargs) - if val: val = wxPenPtr(val) - return val - def GetPixel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetPixel,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetSizeTuple(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetSizeTuple,(self,) + _args, _kwargs) - return val - def GetSize(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetTextBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetTextBackground,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetTextExtent(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetTextExtent,(self,) + _args, _kwargs) - return val - def GetFullTextExtent(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetFullTextExtent,(self,) + _args, _kwargs) - return val - def GetTextForeground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_GetTextForeground,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def LogicalToDeviceX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceX,(self,) + _args, _kwargs) - return val - def LogicalToDeviceXRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceXRel,(self,) + _args, _kwargs) - return val - def LogicalToDeviceY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceY,(self,) + _args, _kwargs) - return val - def LogicalToDeviceYRel(self, *_args, **_kwargs): - val = apply(gdic.wxDC_LogicalToDeviceYRel,(self,) + _args, _kwargs) - return val - def MaxX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MaxX,(self,) + _args, _kwargs) - return val - def MaxY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MaxY,(self,) + _args, _kwargs) - return val - def MinX(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MinX,(self,) + _args, _kwargs) - return val - def MinY(self, *_args, **_kwargs): - val = apply(gdic.wxDC_MinY,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxDC_Ok,(self,) + _args, _kwargs) - return val - def SetDeviceOrigin(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetDeviceOrigin,(self,) + _args, _kwargs) - return val - def SetBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetBackground,(self,) + _args, _kwargs) - return val - def SetBackgroundMode(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetBackgroundMode,(self,) + _args, _kwargs) - return val - def SetClippingRegion(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetClippingRegion,(self,) + _args, _kwargs) - return val - def SetPalette(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetPalette,(self,) + _args, _kwargs) - return val - def SetBrush(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetBrush,(self,) + _args, _kwargs) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetFont,(self,) + _args, _kwargs) - return val - def SetLogicalFunction(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetLogicalFunction,(self,) + _args, _kwargs) - return val - def SetMapMode(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetMapMode,(self,) + _args, _kwargs) - return val - def SetOptimization(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetOptimization,(self,) + _args, _kwargs) - return val - def SetPen(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetPen,(self,) + _args, _kwargs) - return val - def SetTextBackground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetTextBackground,(self,) + _args, _kwargs) - return val - def SetTextForeground(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetTextForeground,(self,) + _args, _kwargs) - return val - def SetUserScale(self, *_args, **_kwargs): - val = apply(gdic.wxDC_SetUserScale,(self,) + _args, _kwargs) - return val - def StartDoc(self, *_args, **_kwargs): - val = apply(gdic.wxDC_StartDoc,(self,) + _args, _kwargs) - return val - def StartPage(self, *_args, **_kwargs): - val = apply(gdic.wxDC_StartPage,(self,) + _args, _kwargs) - return val - def DrawBitmap(self, *_args, **_kwargs): - val = apply(gdic.wxDC_DrawBitmap,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(gdic.wxMemoryDC_SelectObject,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMemoryDC(wxMemoryDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxMemoryDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxScreenDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def StartDrawingOnTop(self, *_args, **_kwargs): - val = apply(gdic.wxScreenDC_StartDrawingOnTop,(self,) + _args, _kwargs) - return val - def StartDrawingOnTopRect(self, *_args, **_kwargs): - val = apply(gdic.wxScreenDC_StartDrawingOnTopRect,(self,) + _args, _kwargs) - return val - def EndDrawingOnTop(self, *_args, **_kwargs): - val = apply(gdic.wxScreenDC_EndDrawingOnTop,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxScreenDC(wxScreenDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxScreenDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxClientDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxClientDC(wxClientDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxClientDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxPaintDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxPaintDC(wxPaintDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPaintDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxWindowDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxWindowDC(wxWindowDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxWindowDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxPrinterDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxPrinterDC(wxPrinterDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPrinterDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxMetaFileDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Close(self, *_args, **_kwargs): - val = apply(gdic.wxMetaFileDC_Close,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMetaFileDC(wxMetaFileDCPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxMetaFileDC,_args,_kwargs) - self.thisown = 1 - - - - -class wxPalettePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxPalette(self) - def GetPixel(self, *_args, **_kwargs): - val = apply(gdic.wxPalette_GetPixel,(self,) + _args, _kwargs) - return val - def GetRGB(self, *_args, **_kwargs): - val = apply(gdic.wxPalette_GetRGB,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(gdic.wxPalette_Ok,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPalette(wxPalettePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxPalette,_args,_kwargs) - self.thisown = 1 - - - - -class wxImageListPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,gdic=gdic): - if self.thisown == 1 : - gdic.delete_wxImageList(self) - def Add(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Add,(self,) + _args, _kwargs) - return val - def AddWithColourMask(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_AddWithColourMask,(self,) + _args, _kwargs) - return val - def AddIcon(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_AddIcon,(self,) + _args, _kwargs) - return val - def Replace(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Replace,(self,) + _args, _kwargs) - return val - def ReplaceIcon(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_ReplaceIcon,(self,) + _args, _kwargs) - return val - def Draw(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Draw,(self,) + _args, _kwargs) - return val - def GetImageCount(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_GetImageCount,(self,) + _args, _kwargs) - return val - def Remove(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_Remove,(self,) + _args, _kwargs) - return val - def RemoveAll(self, *_args, **_kwargs): - val = apply(gdic.wxImageList_RemoveAll,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxImageList(wxImageListPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(gdic.new_wxImageList,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxEmptyBitmap(*_args, **_kwargs): - val = apply(gdic.wxEmptyBitmap,_args,_kwargs) - if val: val = wxBitmapPtr(val); val.thisown = 1 - return val - -def wxNoRefBitmap(*_args, **_kwargs): - val = apply(gdic.wxNoRefBitmap,_args,_kwargs) - if val: val = wxBitmapPtr(val) - return val - -def wxBitmapFromData(*_args, **_kwargs): - val = apply(gdic.wxBitmapFromData,_args,_kwargs) - if val: val = wxBitmapPtr(val); val.thisown = 1 - return val - -def wxMaskColour(*_args, **_kwargs): - val = apply(gdic.wxMaskColour,_args,_kwargs) - if val: val = wxMaskPtr(val); val.thisown = 1 - return val - -def wxStockCursor(*_args, **_kwargs): - val = apply(gdic.wxStockCursor,_args,_kwargs) - if val: val = wxCursorPtr(val); val.thisown = 1 - return val - -def wxNamedColour(*_args, **_kwargs): - val = apply(gdic.wxNamedColour,_args,_kwargs) - if val: val = wxColourPtr(val); val.thisown = 1 - return val - -def wxMemoryDCFromDC(*_args, **_kwargs): - val = apply(gdic.wxMemoryDCFromDC,_args,_kwargs) - if val: 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 5a6e137741..0000000000 --- a/utils/wxPython/src/msw/glcanvas.cpp +++ /dev/null @@ -1,9963 +0,0 @@ -/* - * FILE : msw/glcanvas.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; - -#if defined(SEPARATE) && defined(__WXMSW__) - static wxString wxPyEmptyStr(""); - static wxPoint wxPyDefaultPosition(-1, -1); - static wxSize wxPyDefaultSize(-1, -1); -#endif -#ifdef __cplusplus -extern "C" { -#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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glColorPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glEdgeFlagPointerEXT",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPointervEXT",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glIndexPointerEXT",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glNormalPointerEXT",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glTexCoordPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glVertexPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiO:glColorSubtableEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiO:glColorTableEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glGetColorTableEXT",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetColorTableParamaterfvEXT",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetColorTavleParameterivEXT",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glCullParameterdvSGI",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glCullParameterfvSGI",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iOO:glAreTexturesResident",&_arg0,&_argo1,&_argo2)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glAreTexturesResident. Expected _GLuint_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiffffO:glBitmap",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glCallLists",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glClipPlane",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3bv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3ubv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3uiv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor3usv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4bv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4ubv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4uiv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glColor4usv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glColorPointer",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glDeleteTextures",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glDrawElements",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glDrawPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glEdgeFlagPointer",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEdgeFlagv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord1dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord1fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glEvalCoord2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glFeedbackBuffer",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glFogfv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glFogiv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGenTextures",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetBooleanv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetClipPlane",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetDoublev",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetFloatv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetIntegerv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetLightfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetLightiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMapdv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMapfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMapiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMaterialfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetMaterialiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPixelMapfv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPixelMapuiv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPixelMapusv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glGetPointerv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glGetPolygonStipple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_GLubyte_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_glGetTexEnvfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexEnvfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexEnviv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexGendv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexGenfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexGeniv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiO:glGetTexImage",&_arg0,&_arg1,&_arg2,&_arg3,&_argo4)) - return NULL; - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glGetTexLevelParameterfv",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glGetTexLevelParameteriv",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexParameterfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glGetTexParameteriv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glIndexPointer",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexdv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexfv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexiv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexsv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glIndexubv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glInterleavedArrays",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glLightModelfv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glLightModeliv",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glLightfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glLightiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glLoadMatrixd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glLoadMatrixf",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiiO:glMap1d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiiO:glMap1f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5)) - return NULL; - if (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; - PyObject * _argo9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiiddiiO:glMap2d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argo9)) - return NULL; - if (_argo9) { - if (_argo9 == Py_None) { _arg9 = NULL; } - else if (SWIG_GetPtrObj(_argo9,(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; - PyObject * _argo9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiiffiiO:glMap2f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argo9)) - return NULL; - if (_argo9) { - if (_argo9 == Py_None) { _arg9 = NULL; } - else if (SWIG_GetPtrObj(_argo9,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glMaterialfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glMaterialiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glMultMatrixd",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glMultMatrixf",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3bv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glNormal3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glNormalPointer",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glPixelMapfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glPixelMapuiv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glPixelMapusv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glPolygonStipple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iOO:glPrioritizeTextures",&_arg0,&_argo1,&_argo2)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glPrioritizeTextures. Expected _GLuint_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos2sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glRasterPos4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiO:glReadPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectdv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectdv. Expected _GLdouble_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectfv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectfv. Expected _GLfloat_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectiv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectiv. Expected _GLint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:glRectsv",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectsv. Expected _GLshort_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iO:glSelectBuffer",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord1sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord2sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glTexCoord4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glTexCoordPointer",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexEnvfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexEnviv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexGendv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexGenfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexGeniv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo7 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiO:glTexImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_argo7)) - return NULL; - if (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; - PyObject * _argo8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiiO:glTexImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argo8)) - return NULL; - if (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexParameterfv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiO:glTexParameteriv",&_arg0,&_arg1,&_argo2)) - return NULL; - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiO:glTexSubImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiiO:glTexSubImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argo8)) - return NULL; - if (_argo8) { - if (_argo8 == Py_None) { _arg8 = NULL; } - else if (SWIG_GetPtrObj(_argo8,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex2sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex3sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4dv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4fv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4iv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:glVertex4sv",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiO:glVertexPointer",&_arg0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - wxGLCanvas * _arg1; - wxPalette * _arg2 = (wxPalette *) &wxNullPalette; - int tempbool0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"iO|O:new_wxGLContext",&tempbool0,&_argo1,&_argo2)) - return NULL; - _arg0 = (bool ) tempbool0; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxGLContext. Expected _wxGLCanvas_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxGLContext(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGLContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxGLContext",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_SetCurrent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Os:wxGLContext_SetColour",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_SwapBuffers",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_GetWindow(_swigobj) (_swigobj->GetWindow()) -static PyObject *_wrap_wxGLContext_GetWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxGLContext * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLContext_GetWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static void *SwigwxGLCanvasTowxScrolledWindow(void *ptr) { - wxGLCanvas *src; - wxScrolledWindow *dest; - src = (wxGLCanvas *) ptr; - dest = (wxScrolledWindow *) src; - return (void *) dest; -} - -static void *SwigwxGLCanvasTowxPanel(void *ptr) { - wxGLCanvas *src; - wxPanel *dest; - src = (wxGLCanvas *) ptr; - dest = (wxPanel *) 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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "GLCanvas"; - int * _arg6 = (int *) 0; - wxPalette * _arg7 = (wxPalette *) &wxNullPalette; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo6 = 0; - PyObject * _argo7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOlsOO:new_wxGLCanvas",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5,&_argo6,&_argo7)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGLCanvas. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGLCanvas. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGLCanvas. Expected _wxSize_p."); - return NULL; - } - } - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_int_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxGLCanvas. Expected _int_p."); - return NULL; - } - } - if (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLCanvas_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGLCanvas_SetCurrent(_swigobj) (_swigobj->SetCurrent()) -static PyObject *_wrap_wxGLCanvas_SetCurrent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLCanvas_SetCurrent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Os:wxGLCanvas_SetColour",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLCanvas_SwapBuffers",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGLCanvas_GetContext",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyMethodDef glcanvascMethods[] = { - { "wxGLCanvas_GetContext", _wrap_wxGLCanvas_GetContext, METH_VARARGS }, - { "wxGLCanvas_SwapBuffers", _wrap_wxGLCanvas_SwapBuffers, METH_VARARGS }, - { "wxGLCanvas_SetColour", _wrap_wxGLCanvas_SetColour, METH_VARARGS }, - { "wxGLCanvas_SetCurrent", _wrap_wxGLCanvas_SetCurrent, METH_VARARGS }, - { "new_wxGLCanvas", _wrap_new_wxGLCanvas, METH_VARARGS }, - { "wxGLContext_GetWindow", _wrap_wxGLContext_GetWindow, METH_VARARGS }, - { "wxGLContext_SwapBuffers", _wrap_wxGLContext_SwapBuffers, METH_VARARGS }, - { "wxGLContext_SetColour", _wrap_wxGLContext_SetColour, METH_VARARGS }, - { "wxGLContext_SetCurrent", _wrap_wxGLContext_SetCurrent, METH_VARARGS }, - { "delete_wxGLContext", _wrap_delete_wxGLContext, METH_VARARGS }, - { "new_wxGLContext", _wrap_new_wxGLContext, METH_VARARGS }, - { "glViewport", _wrap_glViewport, METH_VARARGS }, - { "glVertexPointer", _wrap_glVertexPointer, METH_VARARGS }, - { "glVertex4sv", _wrap_glVertex4sv, METH_VARARGS }, - { "glVertex4s", _wrap_glVertex4s, METH_VARARGS }, - { "glVertex4iv", _wrap_glVertex4iv, METH_VARARGS }, - { "glVertex4i", _wrap_glVertex4i, METH_VARARGS }, - { "glVertex4fv", _wrap_glVertex4fv, METH_VARARGS }, - { "glVertex4f", _wrap_glVertex4f, METH_VARARGS }, - { "glVertex4dv", _wrap_glVertex4dv, METH_VARARGS }, - { "glVertex4d", _wrap_glVertex4d, METH_VARARGS }, - { "glVertex3sv", _wrap_glVertex3sv, METH_VARARGS }, - { "glVertex3s", _wrap_glVertex3s, METH_VARARGS }, - { "glVertex3iv", _wrap_glVertex3iv, METH_VARARGS }, - { "glVertex3i", _wrap_glVertex3i, METH_VARARGS }, - { "glVertex3fv", _wrap_glVertex3fv, METH_VARARGS }, - { "glVertex3f", _wrap_glVertex3f, METH_VARARGS }, - { "glVertex3dv", _wrap_glVertex3dv, METH_VARARGS }, - { "glVertex3d", _wrap_glVertex3d, METH_VARARGS }, - { "glVertex2sv", _wrap_glVertex2sv, METH_VARARGS }, - { "glVertex2s", _wrap_glVertex2s, METH_VARARGS }, - { "glVertex2iv", _wrap_glVertex2iv, METH_VARARGS }, - { "glVertex2i", _wrap_glVertex2i, METH_VARARGS }, - { "glVertex2fv", _wrap_glVertex2fv, METH_VARARGS }, - { "glVertex2f", _wrap_glVertex2f, METH_VARARGS }, - { "glVertex2dv", _wrap_glVertex2dv, METH_VARARGS }, - { "glVertex2d", _wrap_glVertex2d, METH_VARARGS }, - { "glTranslatef", _wrap_glTranslatef, METH_VARARGS }, - { "glTranslated", _wrap_glTranslated, METH_VARARGS }, - { "glTexSubImage2D", _wrap_glTexSubImage2D, METH_VARARGS }, - { "glTexSubImage1D", _wrap_glTexSubImage1D, METH_VARARGS }, - { "glTexParameteriv", _wrap_glTexParameteriv, METH_VARARGS }, - { "glTexParameteri", _wrap_glTexParameteri, METH_VARARGS }, - { "glTexParameterfv", _wrap_glTexParameterfv, METH_VARARGS }, - { "glTexParameterf", _wrap_glTexParameterf, METH_VARARGS }, - { "glTexImage2D", _wrap_glTexImage2D, METH_VARARGS }, - { "glTexImage1D", _wrap_glTexImage1D, METH_VARARGS }, - { "glTexGeniv", _wrap_glTexGeniv, METH_VARARGS }, - { "glTexGeni", _wrap_glTexGeni, METH_VARARGS }, - { "glTexGenfv", _wrap_glTexGenfv, METH_VARARGS }, - { "glTexGenf", _wrap_glTexGenf, METH_VARARGS }, - { "glTexGendv", _wrap_glTexGendv, METH_VARARGS }, - { "glTexGend", _wrap_glTexGend, METH_VARARGS }, - { "glTexEnviv", _wrap_glTexEnviv, METH_VARARGS }, - { "glTexEnvi", _wrap_glTexEnvi, METH_VARARGS }, - { "glTexEnvfv", _wrap_glTexEnvfv, METH_VARARGS }, - { "glTexEnvf", _wrap_glTexEnvf, METH_VARARGS }, - { "glTexCoordPointer", _wrap_glTexCoordPointer, METH_VARARGS }, - { "glTexCoord4sv", _wrap_glTexCoord4sv, METH_VARARGS }, - { "glTexCoord4s", _wrap_glTexCoord4s, METH_VARARGS }, - { "glTexCoord4iv", _wrap_glTexCoord4iv, METH_VARARGS }, - { "glTexCoord4i", _wrap_glTexCoord4i, METH_VARARGS }, - { "glTexCoord4fv", _wrap_glTexCoord4fv, METH_VARARGS }, - { "glTexCoord4f", _wrap_glTexCoord4f, METH_VARARGS }, - { "glTexCoord4dv", _wrap_glTexCoord4dv, METH_VARARGS }, - { "glTexCoord4d", _wrap_glTexCoord4d, METH_VARARGS }, - { "glTexCoord3sv", _wrap_glTexCoord3sv, METH_VARARGS }, - { "glTexCoord3s", _wrap_glTexCoord3s, METH_VARARGS }, - { "glTexCoord3iv", _wrap_glTexCoord3iv, METH_VARARGS }, - { "glTexCoord3i", _wrap_glTexCoord3i, METH_VARARGS }, - { "glTexCoord3fv", _wrap_glTexCoord3fv, METH_VARARGS }, - { "glTexCoord3f", _wrap_glTexCoord3f, METH_VARARGS }, - { "glTexCoord3dv", _wrap_glTexCoord3dv, METH_VARARGS }, - { "glTexCoord3d", _wrap_glTexCoord3d, METH_VARARGS }, - { "glTexCoord2sv", _wrap_glTexCoord2sv, METH_VARARGS }, - { "glTexCoord2s", _wrap_glTexCoord2s, METH_VARARGS }, - { "glTexCoord2iv", _wrap_glTexCoord2iv, METH_VARARGS }, - { "glTexCoord2i", _wrap_glTexCoord2i, METH_VARARGS }, - { "glTexCoord2fv", _wrap_glTexCoord2fv, METH_VARARGS }, - { "glTexCoord2f", _wrap_glTexCoord2f, METH_VARARGS }, - { "glTexCoord2dv", _wrap_glTexCoord2dv, METH_VARARGS }, - { "glTexCoord2d", _wrap_glTexCoord2d, METH_VARARGS }, - { "glTexCoord1sv", _wrap_glTexCoord1sv, METH_VARARGS }, - { "glTexCoord1s", _wrap_glTexCoord1s, METH_VARARGS }, - { "glTexCoord1iv", _wrap_glTexCoord1iv, METH_VARARGS }, - { "glTexCoord1i", _wrap_glTexCoord1i, METH_VARARGS }, - { "glTexCoord1fv", _wrap_glTexCoord1fv, METH_VARARGS }, - { "glTexCoord1f", _wrap_glTexCoord1f, METH_VARARGS }, - { "glTexCoord1dv", _wrap_glTexCoord1dv, METH_VARARGS }, - { "glTexCoord1d", _wrap_glTexCoord1d, METH_VARARGS }, - { "glStencilOp", _wrap_glStencilOp, METH_VARARGS }, - { "glStencilMask", _wrap_glStencilMask, METH_VARARGS }, - { "glStencilFunc", _wrap_glStencilFunc, METH_VARARGS }, - { "glShadeModel", _wrap_glShadeModel, METH_VARARGS }, - { "glSelectBuffer", _wrap_glSelectBuffer, METH_VARARGS }, - { "glScissor", _wrap_glScissor, METH_VARARGS }, - { "glScalef", _wrap_glScalef, METH_VARARGS }, - { "glScaled", _wrap_glScaled, METH_VARARGS }, - { "glRotatef", _wrap_glRotatef, METH_VARARGS }, - { "glRotated", _wrap_glRotated, METH_VARARGS }, - { "glRenderMode", _wrap_glRenderMode, METH_VARARGS }, - { "glRectsv", _wrap_glRectsv, METH_VARARGS }, - { "glRects", _wrap_glRects, METH_VARARGS }, - { "glRectiv", _wrap_glRectiv, METH_VARARGS }, - { "glRecti", _wrap_glRecti, METH_VARARGS }, - { "glRectfv", _wrap_glRectfv, METH_VARARGS }, - { "glRectf", _wrap_glRectf, METH_VARARGS }, - { "glRectdv", _wrap_glRectdv, METH_VARARGS }, - { "glRectd", _wrap_glRectd, METH_VARARGS }, - { "glReadPixels", _wrap_glReadPixels, METH_VARARGS }, - { "glReadBuffer", _wrap_glReadBuffer, METH_VARARGS }, - { "glRasterPos4sv", _wrap_glRasterPos4sv, METH_VARARGS }, - { "glRasterPos4s", _wrap_glRasterPos4s, METH_VARARGS }, - { "glRasterPos4iv", _wrap_glRasterPos4iv, METH_VARARGS }, - { "glRasterPos4i", _wrap_glRasterPos4i, METH_VARARGS }, - { "glRasterPos4fv", _wrap_glRasterPos4fv, METH_VARARGS }, - { "glRasterPos4f", _wrap_glRasterPos4f, METH_VARARGS }, - { "glRasterPos4dv", _wrap_glRasterPos4dv, METH_VARARGS }, - { "glRasterPos4d", _wrap_glRasterPos4d, METH_VARARGS }, - { "glRasterPos3sv", _wrap_glRasterPos3sv, METH_VARARGS }, - { "glRasterPos3s", _wrap_glRasterPos3s, METH_VARARGS }, - { "glRasterPos3iv", _wrap_glRasterPos3iv, METH_VARARGS }, - { "glRasterPos3i", _wrap_glRasterPos3i, METH_VARARGS }, - { "glRasterPos3fv", _wrap_glRasterPos3fv, METH_VARARGS }, - { "glRasterPos3f", _wrap_glRasterPos3f, METH_VARARGS }, - { "glRasterPos3dv", _wrap_glRasterPos3dv, METH_VARARGS }, - { "glRasterPos3d", _wrap_glRasterPos3d, METH_VARARGS }, - { "glRasterPos2sv", _wrap_glRasterPos2sv, METH_VARARGS }, - { "glRasterPos2s", _wrap_glRasterPos2s, METH_VARARGS }, - { "glRasterPos2iv", _wrap_glRasterPos2iv, METH_VARARGS }, - { "glRasterPos2i", _wrap_glRasterPos2i, METH_VARARGS }, - { "glRasterPos2fv", _wrap_glRasterPos2fv, METH_VARARGS }, - { "glRasterPos2f", _wrap_glRasterPos2f, METH_VARARGS }, - { "glRasterPos2dv", _wrap_glRasterPos2dv, METH_VARARGS }, - { "glRasterPos2d", _wrap_glRasterPos2d, METH_VARARGS }, - { "glPushName", _wrap_glPushName, METH_VARARGS }, - { "glPushMatrix", _wrap_glPushMatrix, METH_VARARGS }, - { "glPushClientAttrib", _wrap_glPushClientAttrib, METH_VARARGS }, - { "glPushAttrib", _wrap_glPushAttrib, METH_VARARGS }, - { "glPrioritizeTextures", _wrap_glPrioritizeTextures, METH_VARARGS }, - { "glPopName", _wrap_glPopName, METH_VARARGS }, - { "glPopMatrix", _wrap_glPopMatrix, METH_VARARGS }, - { "glPopClientAttrib", _wrap_glPopClientAttrib, METH_VARARGS }, - { "glPopAttrib", _wrap_glPopAttrib, METH_VARARGS }, - { "glPolygonStipple", _wrap_glPolygonStipple, METH_VARARGS }, - { "glPolygonOffset", _wrap_glPolygonOffset, METH_VARARGS }, - { "glPolygonMode", _wrap_glPolygonMode, METH_VARARGS }, - { "glPointSize", _wrap_glPointSize, METH_VARARGS }, - { "glPixelZoom", _wrap_glPixelZoom, METH_VARARGS }, - { "glPixelTransferi", _wrap_glPixelTransferi, METH_VARARGS }, - { "glPixelTransferf", _wrap_glPixelTransferf, METH_VARARGS }, - { "glPixelStorei", _wrap_glPixelStorei, METH_VARARGS }, - { "glPixelStoref", _wrap_glPixelStoref, METH_VARARGS }, - { "glPixelMapusv", _wrap_glPixelMapusv, METH_VARARGS }, - { "glPixelMapuiv", _wrap_glPixelMapuiv, METH_VARARGS }, - { "glPixelMapfv", _wrap_glPixelMapfv, METH_VARARGS }, - { "glPassThrough", _wrap_glPassThrough, METH_VARARGS }, - { "glOrtho", _wrap_glOrtho, METH_VARARGS }, - { "glNormalPointer", _wrap_glNormalPointer, METH_VARARGS }, - { "glNormal3sv", _wrap_glNormal3sv, METH_VARARGS }, - { "glNormal3s", _wrap_glNormal3s, METH_VARARGS }, - { "glNormal3iv", _wrap_glNormal3iv, METH_VARARGS }, - { "glNormal3i", _wrap_glNormal3i, METH_VARARGS }, - { "glNormal3fv", _wrap_glNormal3fv, METH_VARARGS }, - { "glNormal3f", _wrap_glNormal3f, METH_VARARGS }, - { "glNormal3dv", _wrap_glNormal3dv, METH_VARARGS }, - { "glNormal3d", _wrap_glNormal3d, METH_VARARGS }, - { "glNormal3bv", _wrap_glNormal3bv, METH_VARARGS }, - { "glNormal3b", _wrap_glNormal3b, METH_VARARGS }, - { "glNewList", _wrap_glNewList, METH_VARARGS }, - { "glMultMatrixf", _wrap_glMultMatrixf, METH_VARARGS }, - { "glMultMatrixd", _wrap_glMultMatrixd, METH_VARARGS }, - { "glMatrixMode", _wrap_glMatrixMode, METH_VARARGS }, - { "glMaterialiv", _wrap_glMaterialiv, METH_VARARGS }, - { "glMateriali", _wrap_glMateriali, METH_VARARGS }, - { "glMaterialfv", _wrap_glMaterialfv, METH_VARARGS }, - { "glMaterialf", _wrap_glMaterialf, METH_VARARGS }, - { "glMapGrid2f", _wrap_glMapGrid2f, METH_VARARGS }, - { "glMapGrid2d", _wrap_glMapGrid2d, METH_VARARGS }, - { "glMapGrid1f", _wrap_glMapGrid1f, METH_VARARGS }, - { "glMapGrid1d", _wrap_glMapGrid1d, METH_VARARGS }, - { "glMap2f", _wrap_glMap2f, METH_VARARGS }, - { "glMap2d", _wrap_glMap2d, METH_VARARGS }, - { "glMap1f", _wrap_glMap1f, METH_VARARGS }, - { "glMap1d", _wrap_glMap1d, METH_VARARGS }, - { "glLogicOp", _wrap_glLogicOp, METH_VARARGS }, - { "glLoadName", _wrap_glLoadName, METH_VARARGS }, - { "glLoadMatrixf", _wrap_glLoadMatrixf, METH_VARARGS }, - { "glLoadMatrixd", _wrap_glLoadMatrixd, METH_VARARGS }, - { "glLoadIdentity", _wrap_glLoadIdentity, METH_VARARGS }, - { "glListBase", _wrap_glListBase, METH_VARARGS }, - { "glLineWidth", _wrap_glLineWidth, METH_VARARGS }, - { "glLineStipple", _wrap_glLineStipple, METH_VARARGS }, - { "glLightiv", _wrap_glLightiv, METH_VARARGS }, - { "glLighti", _wrap_glLighti, METH_VARARGS }, - { "glLightfv", _wrap_glLightfv, METH_VARARGS }, - { "glLightf", _wrap_glLightf, METH_VARARGS }, - { "glLightModeliv", _wrap_glLightModeliv, METH_VARARGS }, - { "glLightModeli", _wrap_glLightModeli, METH_VARARGS }, - { "glLightModelfv", _wrap_glLightModelfv, METH_VARARGS }, - { "glLightModelf", _wrap_glLightModelf, METH_VARARGS }, - { "glIsTexture", _wrap_glIsTexture, METH_VARARGS }, - { "glIsList", _wrap_glIsList, METH_VARARGS }, - { "glIsEnabled", _wrap_glIsEnabled, METH_VARARGS }, - { "glInterleavedArrays", _wrap_glInterleavedArrays, METH_VARARGS }, - { "glInitNames", _wrap_glInitNames, METH_VARARGS }, - { "glIndexubv", _wrap_glIndexubv, METH_VARARGS }, - { "glIndexub", _wrap_glIndexub, METH_VARARGS }, - { "glIndexsv", _wrap_glIndexsv, METH_VARARGS }, - { "glIndexs", _wrap_glIndexs, METH_VARARGS }, - { "glIndexiv", _wrap_glIndexiv, METH_VARARGS }, - { "glIndexi", _wrap_glIndexi, METH_VARARGS }, - { "glIndexfv", _wrap_glIndexfv, METH_VARARGS }, - { "glIndexf", _wrap_glIndexf, METH_VARARGS }, - { "glIndexdv", _wrap_glIndexdv, METH_VARARGS }, - { "glIndexd", _wrap_glIndexd, METH_VARARGS }, - { "glIndexPointer", _wrap_glIndexPointer, METH_VARARGS }, - { "glIndexMask", _wrap_glIndexMask, METH_VARARGS }, - { "glHint", _wrap_glHint, METH_VARARGS }, - { "glGetTexParameteriv", _wrap_glGetTexParameteriv, METH_VARARGS }, - { "glGetTexParameterfv", _wrap_glGetTexParameterfv, METH_VARARGS }, - { "glGetTexLevelParameteriv", _wrap_glGetTexLevelParameteriv, METH_VARARGS }, - { "glGetTexLevelParameterfv", _wrap_glGetTexLevelParameterfv, METH_VARARGS }, - { "glGetTexImage", _wrap_glGetTexImage, METH_VARARGS }, - { "glGetTexGeniv", _wrap_glGetTexGeniv, METH_VARARGS }, - { "glGetTexGenfv", _wrap_glGetTexGenfv, METH_VARARGS }, - { "glGetTexGendv", _wrap_glGetTexGendv, METH_VARARGS }, - { "glGetTexEnviv", _wrap_glGetTexEnviv, METH_VARARGS }, - { "glGetTexEnvfv", _wrap_glGetTexEnvfv, METH_VARARGS }, - { "glGetString", _wrap_glGetString, METH_VARARGS }, - { "glGetPolygonStipple", _wrap_glGetPolygonStipple, METH_VARARGS }, - { "glGetPointerv", _wrap_glGetPointerv, METH_VARARGS }, - { "glGetPixelMapusv", _wrap_glGetPixelMapusv, METH_VARARGS }, - { "glGetPixelMapuiv", _wrap_glGetPixelMapuiv, METH_VARARGS }, - { "glGetPixelMapfv", _wrap_glGetPixelMapfv, METH_VARARGS }, - { "glGetMaterialiv", _wrap_glGetMaterialiv, METH_VARARGS }, - { "glGetMaterialfv", _wrap_glGetMaterialfv, METH_VARARGS }, - { "glGetMapiv", _wrap_glGetMapiv, METH_VARARGS }, - { "glGetMapfv", _wrap_glGetMapfv, METH_VARARGS }, - { "glGetMapdv", _wrap_glGetMapdv, METH_VARARGS }, - { "glGetLightiv", _wrap_glGetLightiv, METH_VARARGS }, - { "glGetLightfv", _wrap_glGetLightfv, METH_VARARGS }, - { "glGetIntegerv", _wrap_glGetIntegerv, METH_VARARGS }, - { "glGetFloatv", _wrap_glGetFloatv, METH_VARARGS }, - { "glGetError", _wrap_glGetError, METH_VARARGS }, - { "glGetDoublev", _wrap_glGetDoublev, METH_VARARGS }, - { "glGetClipPlane", _wrap_glGetClipPlane, METH_VARARGS }, - { "glGetBooleanv", _wrap_glGetBooleanv, METH_VARARGS }, - { "glGenTextures", _wrap_glGenTextures, METH_VARARGS }, - { "glGenLists", _wrap_glGenLists, METH_VARARGS }, - { "glFrustum", _wrap_glFrustum, METH_VARARGS }, - { "glFrontFace", _wrap_glFrontFace, METH_VARARGS }, - { "glFogiv", _wrap_glFogiv, METH_VARARGS }, - { "glFogi", _wrap_glFogi, METH_VARARGS }, - { "glFogfv", _wrap_glFogfv, METH_VARARGS }, - { "glFogf", _wrap_glFogf, METH_VARARGS }, - { "glFlush", _wrap_glFlush, METH_VARARGS }, - { "glFinish", _wrap_glFinish, METH_VARARGS }, - { "glFeedbackBuffer", _wrap_glFeedbackBuffer, METH_VARARGS }, - { "glEvalPoint2", _wrap_glEvalPoint2, METH_VARARGS }, - { "glEvalPoint1", _wrap_glEvalPoint1, METH_VARARGS }, - { "glEvalMesh2", _wrap_glEvalMesh2, METH_VARARGS }, - { "glEvalMesh1", _wrap_glEvalMesh1, METH_VARARGS }, - { "glEvalCoord2fv", _wrap_glEvalCoord2fv, METH_VARARGS }, - { "glEvalCoord2f", _wrap_glEvalCoord2f, METH_VARARGS }, - { "glEvalCoord2dv", _wrap_glEvalCoord2dv, METH_VARARGS }, - { "glEvalCoord2d", _wrap_glEvalCoord2d, METH_VARARGS }, - { "glEvalCoord1fv", _wrap_glEvalCoord1fv, METH_VARARGS }, - { "glEvalCoord1f", _wrap_glEvalCoord1f, METH_VARARGS }, - { "glEvalCoord1dv", _wrap_glEvalCoord1dv, METH_VARARGS }, - { "glEvalCoord1d", _wrap_glEvalCoord1d, METH_VARARGS }, - { "glEndList", _wrap_glEndList, METH_VARARGS }, - { "glEnd", _wrap_glEnd, METH_VARARGS }, - { "glEnableClientState", _wrap_glEnableClientState, METH_VARARGS }, - { "glEnable", _wrap_glEnable, METH_VARARGS }, - { "glEdgeFlagv", _wrap_glEdgeFlagv, METH_VARARGS }, - { "glEdgeFlagPointer", _wrap_glEdgeFlagPointer, METH_VARARGS }, - { "glEdgeFlag", _wrap_glEdgeFlag, METH_VARARGS }, - { "glDrawPixels", _wrap_glDrawPixels, METH_VARARGS }, - { "glDrawElements", _wrap_glDrawElements, METH_VARARGS }, - { "glDrawBuffer", _wrap_glDrawBuffer, METH_VARARGS }, - { "glDrawArrays", _wrap_glDrawArrays, METH_VARARGS }, - { "glDisableClientState", _wrap_glDisableClientState, METH_VARARGS }, - { "glDisable", _wrap_glDisable, METH_VARARGS }, - { "glDepthRange", _wrap_glDepthRange, METH_VARARGS }, - { "glDepthMask", _wrap_glDepthMask, METH_VARARGS }, - { "glDepthFunc", _wrap_glDepthFunc, METH_VARARGS }, - { "glDeleteTextures", _wrap_glDeleteTextures, METH_VARARGS }, - { "glDeleteLists", _wrap_glDeleteLists, METH_VARARGS }, - { "glCullFace", _wrap_glCullFace, METH_VARARGS }, - { "glCopyTexSubImage2D", _wrap_glCopyTexSubImage2D, METH_VARARGS }, - { "glCopyTexSubImage1D", _wrap_glCopyTexSubImage1D, METH_VARARGS }, - { "glCopyTexImage2D", _wrap_glCopyTexImage2D, METH_VARARGS }, - { "glCopyTexImage1D", _wrap_glCopyTexImage1D, METH_VARARGS }, - { "glCopyPixels", _wrap_glCopyPixels, METH_VARARGS }, - { "glColorPointer", _wrap_glColorPointer, METH_VARARGS }, - { "glColorMaterial", _wrap_glColorMaterial, METH_VARARGS }, - { "glColorMask", _wrap_glColorMask, METH_VARARGS }, - { "glColor4usv", _wrap_glColor4usv, METH_VARARGS }, - { "glColor4us", _wrap_glColor4us, METH_VARARGS }, - { "glColor4uiv", _wrap_glColor4uiv, METH_VARARGS }, - { "glColor4ui", _wrap_glColor4ui, METH_VARARGS }, - { "glColor4ubv", _wrap_glColor4ubv, METH_VARARGS }, - { "glColor4ub", _wrap_glColor4ub, METH_VARARGS }, - { "glColor4sv", _wrap_glColor4sv, METH_VARARGS }, - { "glColor4s", _wrap_glColor4s, METH_VARARGS }, - { "glColor4iv", _wrap_glColor4iv, METH_VARARGS }, - { "glColor4i", _wrap_glColor4i, METH_VARARGS }, - { "glColor4fv", _wrap_glColor4fv, METH_VARARGS }, - { "glColor4f", _wrap_glColor4f, METH_VARARGS }, - { "glColor4dv", _wrap_glColor4dv, METH_VARARGS }, - { "glColor4d", _wrap_glColor4d, METH_VARARGS }, - { "glColor4bv", _wrap_glColor4bv, METH_VARARGS }, - { "glColor4b", _wrap_glColor4b, METH_VARARGS }, - { "glColor3usv", _wrap_glColor3usv, METH_VARARGS }, - { "glColor3us", _wrap_glColor3us, METH_VARARGS }, - { "glColor3uiv", _wrap_glColor3uiv, METH_VARARGS }, - { "glColor3ui", _wrap_glColor3ui, METH_VARARGS }, - { "glColor3ubv", _wrap_glColor3ubv, METH_VARARGS }, - { "glColor3ub", _wrap_glColor3ub, METH_VARARGS }, - { "glColor3sv", _wrap_glColor3sv, METH_VARARGS }, - { "glColor3s", _wrap_glColor3s, METH_VARARGS }, - { "glColor3iv", _wrap_glColor3iv, METH_VARARGS }, - { "glColor3i", _wrap_glColor3i, METH_VARARGS }, - { "glColor3fv", _wrap_glColor3fv, METH_VARARGS }, - { "glColor3f", _wrap_glColor3f, METH_VARARGS }, - { "glColor3dv", _wrap_glColor3dv, METH_VARARGS }, - { "glColor3d", _wrap_glColor3d, METH_VARARGS }, - { "glColor3bv", _wrap_glColor3bv, METH_VARARGS }, - { "glColor3b", _wrap_glColor3b, METH_VARARGS }, - { "glClipPlane", _wrap_glClipPlane, METH_VARARGS }, - { "glClearStencil", _wrap_glClearStencil, METH_VARARGS }, - { "glClearIndex", _wrap_glClearIndex, METH_VARARGS }, - { "glClearDepth", _wrap_glClearDepth, METH_VARARGS }, - { "glClearColor", _wrap_glClearColor, METH_VARARGS }, - { "glClearAccum", _wrap_glClearAccum, METH_VARARGS }, - { "glClear", _wrap_glClear, METH_VARARGS }, - { "glCallLists", _wrap_glCallLists, METH_VARARGS }, - { "glCallList", _wrap_glCallList, METH_VARARGS }, - { "glBlendFunc", _wrap_glBlendFunc, METH_VARARGS }, - { "glBitmap", _wrap_glBitmap, METH_VARARGS }, - { "glBindTexture", _wrap_glBindTexture, METH_VARARGS }, - { "glBegin", _wrap_glBegin, METH_VARARGS }, - { "glArrayElement", _wrap_glArrayElement, METH_VARARGS }, - { "glAreTexturesResident", _wrap_glAreTexturesResident, METH_VARARGS }, - { "glAlphaFunc", _wrap_glAlphaFunc, METH_VARARGS }, - { "glAccum", _wrap_glAccum, METH_VARARGS }, - { "glAddSwapHintRectWin", _wrap_glAddSwapHintRectWin, METH_VARARGS }, - { "glIndexMaterialSGI", _wrap_glIndexMaterialSGI, METH_VARARGS }, - { "glIndexFuncSGI", _wrap_glIndexFuncSGI, METH_VARARGS }, - { "glCullParameterfvSGI", _wrap_glCullParameterfvSGI, METH_VARARGS }, - { "glCullParameterdvSGI", _wrap_glCullParameterdvSGI, METH_VARARGS }, - { "glUnlockArraysSGI", _wrap_glUnlockArraysSGI, METH_VARARGS }, - { "glLockArraysSGI", _wrap_glLockArraysSGI, METH_VARARGS }, - { "glGetColorTavleParameterivEXT", _wrap_glGetColorTavleParameterivEXT, METH_VARARGS }, - { "glGetColorTableParamaterfvEXT", _wrap_glGetColorTableParamaterfvEXT, METH_VARARGS }, - { "glGetColorTableEXT", _wrap_glGetColorTableEXT, METH_VARARGS }, - { "glCopyColorTableEXT", _wrap_glCopyColorTableEXT, METH_VARARGS }, - { "glColorTableEXT", _wrap_glColorTableEXT, METH_VARARGS }, - { "glColorSubtableEXT", _wrap_glColorSubtableEXT, METH_VARARGS }, - { "glVertexPointerEXT", _wrap_glVertexPointerEXT, METH_VARARGS }, - { "glTexCoordPointerEXT", _wrap_glTexCoordPointerEXT, METH_VARARGS }, - { "glNormalPointerEXT", _wrap_glNormalPointerEXT, METH_VARARGS }, - { "glIndexPointerEXT", _wrap_glIndexPointerEXT, METH_VARARGS }, - { "glGetPointervEXT", _wrap_glGetPointervEXT, METH_VARARGS }, - { "glEdgeFlagPointerEXT", _wrap_glEdgeFlagPointerEXT, METH_VARARGS }, - { "glDrawArraysEXT", _wrap_glDrawArraysEXT, METH_VARARGS }, - { "glColorPointerEXT", _wrap_glColorPointerEXT, METH_VARARGS }, - { "glArrayElementEXT", _wrap_glArrayElementEXT, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_GLfloat","_GLclampf",0}, - { "_GLfloat","_float",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_class_wxJPEGHandler","_wxJPEGHandler",0}, - { "_wxBMPHandler","_class_wxBMPHandler",0}, - { "_wxImage","_class_wxImage",0}, - { "_double","_GLclampd",0}, - { "_double","_GLdouble",0}, - { "_wxPrintQuality","_GLuint",0}, - { "_wxPrintQuality","_GLsizei",0}, - { "_wxPrintQuality","_GLint",0}, - { "_wxPrintQuality","_GLbitfield",0}, - { "_wxPrintQuality","_GLenum",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "___wxPyCleanup","_class___wxPyCleanup",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxPyTreeItemData","_wxPyTreeItemData",0}, - { "_class_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_class_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxGIFHandler","_class_wxGIFHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxImageHandler","_class_wxImageHandler",0}, - { "_GLsizei","_GLuint",0}, - { "_GLsizei","_int",0}, - { "_GLsizei","_signed_int",0}, - { "_GLsizei","_unsigned_int",0}, - { "_GLsizei","_wxWindowID",0}, - { "_GLsizei","_uint",0}, - { "_GLsizei","_EBool",0}, - { "_GLsizei","_size_t",0}, - { "_GLsizei","_wxPrintQuality",0}, - { "_GLsizei","_GLenum",0}, - { "_GLsizei","_GLbitfield",0}, - { "_GLsizei","_GLint",0}, - { "_class_wxTreeCtrl","_wxTreeCtrl",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxToolTip","_class_wxToolTip",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPNGHandler","_class_wxPNGHandler",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0}, - { "_wxPrinter","_class_wxPrinter",0}, - { "_GLbyte","_signed_char",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_GLubyte",0}, - { "_byte","_GLboolean",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_wxPyPrintout","_class_wxPyPrintout",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_wxSashWindow","_class_wxSashWindow",0}, - { "_GLenum","_GLuint",0}, - { "_GLenum","_GLsizei",0}, - { "_GLenum","_GLint",0}, - { "_GLenum","_GLbitfield",0}, - { "_GLenum","_unsigned_int",0}, - { "_GLenum","_int",0}, - { "_GLenum","_wxWindowID",0}, - { "_GLenum","_uint",0}, - { "_GLenum","_size_t",0}, - { "_GLenum","_wxPrintQuality",0}, - { "_class_wxPrintDialogData","_wxPrintDialogData",0}, - { "_wxGLContext","_class_wxGLContext",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_class_wxSashEvent","_wxSashEvent",0}, - { "_float","_GLclampf",0}, - { "_float","_GLfloat",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxListEvent","_class_wxListEvent",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_class_wxBMPHandler","_wxBMPHandler",0}, - { "_wxPrintPreview","_class_wxPrintPreview",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0}, - { "_size_t","_GLuint",0}, - { "_size_t","_GLsizei",0}, - { "_size_t","_GLint",0}, - { "_size_t","_GLbitfield",0}, - { "_size_t","_GLenum",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxGIFHandler","_wxGIFHandler",0}, - { "_wxPanel","_class_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_wxPanel","_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_signed_char","_GLbyte",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxToolTip","_wxToolTip",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_class_wxPNGHandler","_wxPNGHandler",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxPageSetupDialog","_class_wxPageSetupDialog",0}, - { "_class_wxPrinter","_wxPrinter",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_class_wxPyPrintout","_wxPyPrintout",0}, - { "_class_wxSashWindow","_wxSashWindow",0}, - { "_GLuint","_unsigned_int",0}, - { "_GLuint","_int",0}, - { "_GLuint","_wxWindowID",0}, - { "_GLuint","_uint",0}, - { "_GLuint","_size_t",0}, - { "_GLuint","_wxPrintQuality",0}, - { "_GLuint","_GLenum",0}, - { "_GLuint","_GLbitfield",0}, - { "_GLuint","_GLint",0}, - { "_GLuint","_GLsizei",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_GLuint",0}, - { "_uint","_GLsizei",0}, - { "_uint","_GLint",0}, - { "_uint","_GLbitfield",0}, - { "_uint","_GLenum",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_class_wxImage","_wxImage",0}, - { "_GLclampd","_double",0}, - { "_GLclampd","_GLdouble",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_class___wxPyCleanup","___wxPyCleanup",0}, - { "_GLclampf","_float",0}, - { "_GLclampf","_GLfloat",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxTaskBarIcon","_class_wxTaskBarIcon",0}, - { "_wxPrintDialog","_class_wxPrintDialog",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_wxPrintData","_class_wxPrintData",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_GLbitfield","_GLuint",0}, - { "_GLbitfield","_GLsizei",0}, - { "_GLbitfield","_GLint",0}, - { "_GLbitfield","_unsigned_int",0}, - { "_GLbitfield","_int",0}, - { "_GLbitfield","_wxWindowID",0}, - { "_GLbitfield","_uint",0}, - { "_GLbitfield","_size_t",0}, - { "_GLbitfield","_wxPrintQuality",0}, - { "_GLbitfield","_GLenum",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_wxListItem","_class_wxListItem",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0}, - { "_EBool","_GLsizei",0}, - { "_EBool","_GLint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_class_wxPreviewFrame","_wxPreviewFrame",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_wxPyApp","_class_wxPyApp",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxTreeEvent","_wxTreeEvent",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_class_wxPanel","_wxGLCanvas",SwigwxGLCanvasTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_GLsizei",0}, - { "_signed_int","_GLint",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_GLboolean","_GLubyte",0}, - { "_GLboolean","_unsigned_char",0}, - { "_GLboolean","_byte",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_GLushort",0}, - { "_WXTYPE","_GLshort",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_GLshort","_GLushort",0}, - { "_GLshort","_short",0}, - { "_GLshort","_signed_short",0}, - { "_GLshort","_unsigned_short",0}, - { "_GLshort","_WXTYPE",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_GLushort",0}, - { "_unsigned_short","_GLshort",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_class_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_wxPrintDialogData","_class_wxPrintDialogData",0}, - { "_GLushort","_unsigned_short",0}, - { "_GLushort","_short",0}, - { "_GLushort","_WXTYPE",0}, - { "_GLushort","_GLshort",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_wxSashEvent","_class_wxSashEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxListCtrl","_class_wxListCtrl",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_wxGLCanvas","_class_wxGLCanvas",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_GLshort",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxTaskBarIcon","_wxTaskBarIcon",0}, - { "_class_wxPrintDialog","_wxPrintDialog",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_class_wxImageHandler","_wxImageHandler",0}, - { "_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_wxTreeItemId","_class_wxTreeItemId",0}, - { "_unsigned_char","_GLubyte",0}, - { "_unsigned_char","_GLboolean",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_GLuint",0}, - { "_unsigned_int","_GLsizei",0}, - { "_unsigned_int","_GLint",0}, - { "_unsigned_int","_GLbitfield",0}, - { "_unsigned_int","_GLenum",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxListItem","_wxListItem",0}, - { "_GLdouble","_GLclampd",0}, - { "_GLdouble","_double",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0}, - { "_short","_GLushort",0}, - { "_short","_GLshort",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxFrame",0}, - { "_class_wxGLContext","_wxGLContext",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxJPEGHandler","_class_wxJPEGHandler",0}, - { "_wxWindowID","_GLuint",0}, - { "_wxWindowID","_GLsizei",0}, - { "_wxWindowID","_GLint",0}, - { "_wxWindowID","_GLbitfield",0}, - { "_wxWindowID","_GLenum",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_GLuint",0}, - { "_int","_GLsizei",0}, - { "_int","_GLint",0}, - { "_int","_GLbitfield",0}, - { "_int","_GLenum",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxListEvent","_wxListEvent",0}, - { "_class_wxPrintPreview","_wxPrintPreview",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_class_wxPyApp","_wxPyApp",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_wxPyTreeItemData","_class_wxPyTreeItemData",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxTreeItemId","_wxTreeItemId",0}, - { "_wxTreeCtrl","_class_wxTreeCtrl",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_class_wxPageSetupDialog","_wxPageSetupDialog",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_wxPreviewFrame","_class_wxPreviewFrame",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_GLint","_GLuint",0}, - { "_GLint","_GLsizei",0}, - { "_GLint","_int",0}, - { "_GLint","_signed_int",0}, - { "_GLint","_unsigned_int",0}, - { "_GLint","_wxWindowID",0}, - { "_GLint","_uint",0}, - { "_GLint","_EBool",0}, - { "_GLint","_size_t",0}, - { "_GLint","_wxPrintQuality",0}, - { "_GLint","_GLenum",0}, - { "_GLint","_GLbitfield",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_GLubyte","_unsigned_char",0}, - { "_GLubyte","_byte",0}, - { "_GLubyte","_GLboolean",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxListCtrl","_wxListCtrl",0}, - { "_class_wxGLCanvas","_wxGLCanvas",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxTreeEvent","_class_wxTreeEvent",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_class_wxPrintData","_wxPrintData",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_class_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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)); - - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/glcanvas.py b/utils/wxPython/src/msw/glcanvas.py deleted file mode 100644 index 3486f97bf6..0000000000 --- a/utils/wxPython/src/msw/glcanvas.py +++ /dev/null @@ -1,1395 +0,0 @@ -# This file was created automatically by SWIG. -import glcanvasc - -from misc import * - -from misc2 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 * - -from printfw import * -import wx -class wxGLContextPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,glcanvasc=glcanvasc): - if self.thisown == 1 : - glcanvasc.delete_wxGLContext(self) - def SetCurrent(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SetCurrent,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SetColour,(self,) + _args, _kwargs) - return val - def SwapBuffers(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_SwapBuffers,(self,) + _args, _kwargs) - return val - def GetWindow(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLContext_GetWindow,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxGLContext(wxGLContextPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(glcanvasc.new_wxGLContext,_args,_kwargs) - self.thisown = 1 - - - - -class wxGLCanvasPtr(wxScrolledWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetCurrent(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_SetCurrent,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_SetColour,(self,) + _args, _kwargs) - return val - def SwapBuffers(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_SwapBuffers,(self,) + _args, _kwargs) - return val - def GetContext(self, *_args, **_kwargs): - val = apply(glcanvasc.wxGLCanvas_GetContext,(self,) + _args, _kwargs) - if val: val = wxGLContextPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxGLCanvas(wxGLCanvasPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(glcanvasc.new_wxGLCanvas,_args,_kwargs) - 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 cf5d867ca0..0000000000 --- a/utils/wxPython/src/msw/image.cpp +++ /dev/null @@ -1,1745 +0,0 @@ -/* - * FILE : msw/image.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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); - } -#ifdef __cplusplus -extern "C" { -#endif -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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyObject *_wrap_wxImageFromBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxBitmap * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageFromBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_wxImage_AddHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_AddHandler",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxImageHandler_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxImageHandler_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetExtension",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetType",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImageHandler_GetMimeType",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageHandler_SetName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageHandler_SetExtension",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxImageHandler_SetType",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageHandler_SetMimeType",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPNGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxJPEGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBMPHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGIFHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxImage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_ConvertToBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_Create",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_Destroy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_Scale",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_Rescale(_swigobj,_swigarg0,_swigarg1) (_swigobj->Rescale(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_Rescale(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - int _arg1; - int _arg2; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_Rescale",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Rescale. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_Rescale(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiibbb:wxImage_SetRGB",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_GetRed",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_GetGreen",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxImage_GetBlue",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) wxBITMAP_TYPE_PNG; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|l:wxImage_LoadFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxImage_LoadMimeFile",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxImage_SaveFile",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxImage_SaveMimeFile",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -static PyObject * wxImage_GetData(wxImage *self) { - unsigned char* data = self->GetData(); - int len = self->GetWidth() * self->GetHeight() * 3; - return PyString_FromStringAndSize((char*)data, len); - } -static PyObject *_wrap_wxImage_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxImage * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (PyObject *)wxImage_GetData(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static void wxImage_SetData(wxImage *self,PyObject * data) { - unsigned char* dataPtr; - - if (! PyString_Check(data)) { - PyErr_SetString(PyExc_TypeError, "Expected string object"); - return /* NULL */ ; - } - dataPtr = (unsigned char*)PyString_AsString(data); - self->SetData(dataPtr); - } -static PyObject *_wrap_wxImage_SetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - PyObject * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImage_SetData",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetData. Expected _wxImage_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Obbb:wxImage_SetMaskColour",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetMaskRed",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetMaskGreen",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_GetMaskBlue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxImage_SetMask",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxImage_HasMask",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxImage_SetMask", _wrap_wxImage_SetMask, METH_VARARGS }, - { "wxImage_GetMaskBlue", _wrap_wxImage_GetMaskBlue, METH_VARARGS }, - { "wxImage_GetMaskGreen", _wrap_wxImage_GetMaskGreen, METH_VARARGS }, - { "wxImage_GetMaskRed", _wrap_wxImage_GetMaskRed, METH_VARARGS }, - { "wxImage_SetMaskColour", _wrap_wxImage_SetMaskColour, METH_VARARGS }, - { "wxImage_SetData", _wrap_wxImage_SetData, METH_VARARGS }, - { "wxImage_GetData", _wrap_wxImage_GetData, METH_VARARGS }, - { "wxImage_GetHeight", _wrap_wxImage_GetHeight, METH_VARARGS }, - { "wxImage_GetWidth", _wrap_wxImage_GetWidth, METH_VARARGS }, - { "wxImage_Ok", _wrap_wxImage_Ok, METH_VARARGS }, - { "wxImage_SaveMimeFile", _wrap_wxImage_SaveMimeFile, METH_VARARGS }, - { "wxImage_SaveFile", _wrap_wxImage_SaveFile, METH_VARARGS }, - { "wxImage_LoadMimeFile", _wrap_wxImage_LoadMimeFile, METH_VARARGS }, - { "wxImage_LoadFile", _wrap_wxImage_LoadFile, METH_VARARGS }, - { "wxImage_GetBlue", _wrap_wxImage_GetBlue, METH_VARARGS }, - { "wxImage_GetGreen", _wrap_wxImage_GetGreen, METH_VARARGS }, - { "wxImage_GetRed", _wrap_wxImage_GetRed, METH_VARARGS }, - { "wxImage_SetRGB", _wrap_wxImage_SetRGB, METH_VARARGS }, - { "wxImage_Rescale", _wrap_wxImage_Rescale, METH_VARARGS }, - { "wxImage_Scale", _wrap_wxImage_Scale, METH_VARARGS }, - { "wxImage_Destroy", _wrap_wxImage_Destroy, METH_VARARGS }, - { "wxImage_Create", _wrap_wxImage_Create, METH_VARARGS }, - { "wxImage_ConvertToBitmap", _wrap_wxImage_ConvertToBitmap, METH_VARARGS }, - { "delete_wxImage", _wrap_delete_wxImage, METH_VARARGS }, - { "new_wxImage", _wrap_new_wxImage, METH_VARARGS }, - { "new_wxGIFHandler", _wrap_new_wxGIFHandler, METH_VARARGS }, - { "new_wxBMPHandler", _wrap_new_wxBMPHandler, METH_VARARGS }, - { "new_wxJPEGHandler", _wrap_new_wxJPEGHandler, METH_VARARGS }, - { "new_wxPNGHandler", _wrap_new_wxPNGHandler, METH_VARARGS }, - { "wxImageHandler_SetMimeType", _wrap_wxImageHandler_SetMimeType, METH_VARARGS }, - { "wxImageHandler_SetType", _wrap_wxImageHandler_SetType, METH_VARARGS }, - { "wxImageHandler_SetExtension", _wrap_wxImageHandler_SetExtension, METH_VARARGS }, - { "wxImageHandler_SetName", _wrap_wxImageHandler_SetName, METH_VARARGS }, - { "wxImageHandler_GetMimeType", _wrap_wxImageHandler_GetMimeType, METH_VARARGS }, - { "wxImageHandler_GetType", _wrap_wxImageHandler_GetType, METH_VARARGS }, - { "wxImageHandler_GetExtension", _wrap_wxImageHandler_GetExtension, METH_VARARGS }, - { "wxImageHandler_GetName", _wrap_wxImageHandler_GetName, METH_VARARGS }, - { "new_wxImageHandler", _wrap_new_wxImageHandler, METH_VARARGS }, - { "wxImage_AddHandler", _wrap_wxImage_AddHandler, METH_VARARGS }, - { "wxImageFromBitmap", _wrap_wxImageFromBitmap, METH_VARARGS }, - { "wxImageFromMime", _wrap_wxImageFromMime, METH_VARARGS }, - { "wxEmptyImage", _wrap_wxEmptyImage, METH_VARARGS }, - { "wxNullImage", _wrap_wxNullImage, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_class_wxJPEGHandler","_wxJPEGHandler",0}, - { "_wxBMPHandler","_class_wxBMPHandler",0}, - { "_wxImage","_class_wxImage",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxGIFHandler","_class_wxGIFHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_wxImageHandler","_class_wxImageHandler",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPNGHandler","_class_wxPNGHandler",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxDC",0}, - { "_class_wxBMPHandler","_wxBMPHandler",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxGIFHandler","_wxGIFHandler",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxPNGHandler","_wxPNGHandler",0}, - { "_wxColour","_class_wxColour",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_class_wxImage","_wxImage",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_class_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler}, - { "_class_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler}, - { "_class_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler}, - { "_class_wxImageHandler","_wxImageHandler",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxJPEGHandler","_class_wxJPEGHandler",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxPalette","_wxPalette",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/image.py b/utils/wxPython/src/msw/image.py deleted file mode 100644 index d2b4c89599..0000000000 --- a/utils/wxPython/src/msw/image.py +++ /dev/null @@ -1,221 +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, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetName,(self,) + _args, _kwargs) - return val - def GetExtension(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetExtension,(self,) + _args, _kwargs) - return val - def GetType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetType,(self,) + _args, _kwargs) - return val - def GetMimeType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_GetMimeType,(self,) + _args, _kwargs) - return val - def SetName(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetName,(self,) + _args, _kwargs) - return val - def SetExtension(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetExtension,(self,) + _args, _kwargs) - return val - def SetType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetType,(self,) + _args, _kwargs) - return val - def SetMimeType(self, *_args, **_kwargs): - val = apply(imagec.wxImageHandler_SetMimeType,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxImageHandler(wxImageHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxImageHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxPNGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxPNGHandler(wxPNGHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxPNGHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxJPEGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxJPEGHandler(wxJPEGHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxJPEGHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxBMPHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxBMPHandler(wxBMPHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxBMPHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxGIFHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxGIFHandler(wxGIFHandlerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxGIFHandler,_args,_kwargs) - self.thisown = 1 - - - - -class wxImagePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,imagec=imagec): - if self.thisown == 1 : - imagec.delete_wxImage(self) - def ConvertToBitmap(self, *_args, **_kwargs): - val = apply(imagec.wxImage_ConvertToBitmap,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) ; val.thisown = 1 - return val - def Create(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Create,(self,) + _args, _kwargs) - return val - def Destroy(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Destroy,(self,) + _args, _kwargs) - return val - def Scale(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Scale,(self,) + _args, _kwargs) - if val: val = wxImagePtr(val) ; val.thisown = 1 - return val - def Rescale(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Rescale,(self,) + _args, _kwargs) - return val - def SetRGB(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetRGB,(self,) + _args, _kwargs) - return val - def GetRed(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetRed,(self,) + _args, _kwargs) - return val - def GetGreen(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetGreen,(self,) + _args, _kwargs) - return val - def GetBlue(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetBlue,(self,) + _args, _kwargs) - return val - def LoadFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_LoadFile,(self,) + _args, _kwargs) - return val - def LoadMimeFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_LoadMimeFile,(self,) + _args, _kwargs) - return val - def SaveFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SaveFile,(self,) + _args, _kwargs) - return val - def SaveMimeFile(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SaveMimeFile,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(imagec.wxImage_Ok,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetWidth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetHeight,(self,) + _args, _kwargs) - return val - def GetData(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetData,(self,) + _args, _kwargs) - return val - def SetData(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetData,(self,) + _args, _kwargs) - return val - def SetMaskColour(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetMaskColour,(self,) + _args, _kwargs) - return val - def GetMaskRed(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetMaskRed,(self,) + _args, _kwargs) - return val - def GetMaskGreen(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetMaskGreen,(self,) + _args, _kwargs) - return val - def GetMaskBlue(self, *_args, **_kwargs): - val = apply(imagec.wxImage_GetMaskBlue,(self,) + _args, _kwargs) - return val - def SetMask(self, *_args, **_kwargs): - val = apply(imagec.wxImage_SetMask,(self,) + _args, _kwargs) - return val - def HasMask(self, *_args, **_kwargs): - val = apply(imagec.wxImage_HasMask,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxImage(wxImagePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(imagec.new_wxImage,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxNullImage(*_args, **_kwargs): - val = apply(imagec.wxNullImage,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -def wxEmptyImage(*_args, **_kwargs): - val = apply(imagec.wxEmptyImage,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -def wxImageFromMime(*_args, **_kwargs): - val = apply(imagec.wxImageFromMime,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -def wxImageFromBitmap(*_args, **_kwargs): - val = apply(imagec.wxImageFromBitmap,_args,_kwargs) - if val: val = wxImagePtr(val); val.thisown = 1 - return val - -wxImage_AddHandler = imagec.wxImage_AddHandler - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/mdi.cpp b/utils/wxPython/src/msw/mdi.cpp deleted file mode 100644 index aab8bf8657..0000000000 --- a/utils/wxPython/src/msw/mdi.cpp +++ /dev/null @@ -1,1012 +0,0 @@ -/* - * FILE : msw/mdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE|wxVSCROLL|wxHSCROLL; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxMDIParentFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIParentFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIParentFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_ActivateNext",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_ActivatePrevious",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_ArrangeIcons",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_Cascade",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_GetActiveChild",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMDIParentFrame_GetClientWindow(_swigobj) (_swigobj->GetClientWindow()) -static PyObject *_wrap_wxMDIParentFrame_GetClientWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIClientWindow * _result; - wxMDIParentFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_GetClientWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMDIParentFrame_GetToolBar(_swigobj) (_swigobj->GetToolBar()) -static PyObject *_wrap_wxMDIParentFrame_GetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxMDIParentFrame * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_GetToolBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMDIParentFrame_SetToolBar",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_SetToolBar. Expected _wxMDIParentFrame_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIParentFrame_Tile",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxMDIChildFrame",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIChildFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIChildFrame_Activate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMDIChildFrame_Maximize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMDIChildFrame_Restore",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|l:new_wxMDIClientWindow",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyMethodDef mdicMethods[] = { - { "new_wxMDIClientWindow", _wrap_new_wxMDIClientWindow, METH_VARARGS }, - { "wxMDIChildFrame_Restore", _wrap_wxMDIChildFrame_Restore, METH_VARARGS }, - { "wxMDIChildFrame_Maximize", _wrap_wxMDIChildFrame_Maximize, METH_VARARGS }, - { "wxMDIChildFrame_Activate", _wrap_wxMDIChildFrame_Activate, METH_VARARGS }, - { "new_wxMDIChildFrame", _wrap_new_wxMDIChildFrame, METH_VARARGS }, - { "wxMDIParentFrame_Tile", _wrap_wxMDIParentFrame_Tile, METH_VARARGS }, - { "wxMDIParentFrame_SetToolBar", _wrap_wxMDIParentFrame_SetToolBar, METH_VARARGS }, - { "wxMDIParentFrame_GetToolBar", _wrap_wxMDIParentFrame_GetToolBar, METH_VARARGS }, - { "wxMDIParentFrame_GetClientWindow", _wrap_wxMDIParentFrame_GetClientWindow, METH_VARARGS }, - { "wxMDIParentFrame_GetActiveChild", _wrap_wxMDIParentFrame_GetActiveChild, METH_VARARGS }, - { "wxMDIParentFrame_Cascade", _wrap_wxMDIParentFrame_Cascade, METH_VARARGS }, - { "wxMDIParentFrame_ArrangeIcons", _wrap_wxMDIParentFrame_ArrangeIcons, METH_VARARGS }, - { "wxMDIParentFrame_ActivatePrevious", _wrap_wxMDIParentFrame_ActivatePrevious, METH_VARARGS }, - { "wxMDIParentFrame_ActivateNext", _wrap_wxMDIParentFrame_ActivateNext, METH_VARARGS }, - { "new_wxMDIParentFrame", _wrap_new_wxMDIParentFrame, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_class_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_class_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_class_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_class_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_class_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow}, - { "_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow}, - { "_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_class_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame}, - { "_class_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_class_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/mdi.py b/utils/wxPython/src/msw/mdi.py deleted file mode 100644 index e2bbea43bd..0000000000 --- a/utils/wxPython/src/msw/mdi.py +++ /dev/null @@ -1,110 +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, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_ActivateNext,(self,) + _args, _kwargs) - return val - def ActivatePrevious(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_ActivatePrevious,(self,) + _args, _kwargs) - return val - def ArrangeIcons(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_ArrangeIcons,(self,) + _args, _kwargs) - return val - def Cascade(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_Cascade,(self,) + _args, _kwargs) - return val - def GetActiveChild(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_GetActiveChild,(self,) + _args, _kwargs) - if val: val = wxMDIChildFramePtr(val) - return val - def GetClientWindow(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_GetClientWindow,(self,) + _args, _kwargs) - if val: val = wxMDIClientWindowPtr(val) - return val - def GetToolBar(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_GetToolBar,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def SetToolBar(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_SetToolBar,(self,) + _args, _kwargs) - return val - def Tile(self, *_args, **_kwargs): - val = apply(mdic.wxMDIParentFrame_Tile,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMDIParentFrame(wxMDIParentFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(mdic.new_wxMDIParentFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIChildFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Activate(self, *_args, **_kwargs): - val = apply(mdic.wxMDIChildFrame_Activate,(self,) + _args, _kwargs) - return val - def Maximize(self, *_args, **_kwargs): - val = apply(mdic.wxMDIChildFrame_Maximize,(self,) + _args, _kwargs) - return val - def Restore(self, *_args, **_kwargs): - val = apply(mdic.wxMDIChildFrame_Restore,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMDIChildFrame(wxMDIChildFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(mdic.new_wxMDIChildFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIClientWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxMDIClientWindow(wxMDIClientWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(mdic.new_wxMDIClientWindow,_args,_kwargs) - 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 8daa610a09..0000000000 --- a/utils/wxPython/src/msw/misc.cpp +++ /dev/null @@ -1,4773 +0,0 @@ -/* - * FILE : msw/misc.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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; - } - - - wxColour wxSystemSettings_GetSystemColour(int index) { - return wxSystemSettings::GetSystemColour(index); - } - - wxFont wxSystemSettings_GetSystemFont(int index) { - return wxSystemSettings::GetSystemFont(index); - } - - int wxSystemSettings_GetSystemMetric(int index) { - return wxSystemSettings::GetSystemMetric(index); - } -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_wxFileSelector(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - char * _arg0; - char * _arg1 = (char *) NULL; - char * _arg2 = (char *) NULL; - char * _arg3 = (char *) NULL; - char * _arg4 = (char *) "*.*"; - int _arg5 = (int ) 0; - wxWindow * _arg6 = (wxWindow *) NULL; - int _arg7 = (int ) -1; - int _arg8 = (int ) -1; - PyObject * _argo6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssssiOii:wxFileSelector",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6,&_arg7,&_arg8)) - return NULL; - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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 = (wxString *) &wxPyEmptyStr; - wxString * _arg2 = (wxString *) &wxPyEmptyStr; - wxWindow * _arg3 = (wxWindow *) NULL; - int _arg4 = (int ) -1; - int _arg5 = (int ) -1; - bool _arg6 = (bool ) TRUE; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - int tempbool6 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|OOOiii:wxGetTextFromUser",&_obj0,&_obj1,&_obj2,&_argo3,&_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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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 = (wxWindow *) NULL; - int _arg5 = (int ) -1; - int _arg6 = (int ) -1; - bool _arg7 = (bool ) TRUE; - int _arg8 = (int ) 150; - int _arg9 = (int ) 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - PyObject * _argo4 = 0; - int tempbool7 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|Oiiiii:wxGetSingleChoice",&_obj0,&_obj1,&_obj3,&_argo4,&_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 (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 = (wxWindow *) NULL; - int _arg5 = (int ) -1; - int _arg6 = (int ) -1; - bool _arg7 = (bool ) TRUE; - int _arg8 = (int ) 150; - int _arg9 = (int ) 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - PyObject * _argo4 = 0; - int tempbool7 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|Oiiiii:wxGetSingleChoiceIndex",&_obj0,&_obj1,&_obj3,&_argo4,&_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 (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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 = (wxString *) &wxPyEmptyStr; - int _arg2 = (int ) wxOK|wxCENTRE; - wxWindow * _arg3 = (wxWindow *) NULL; - int _arg4 = (int ) -1; - int _arg5 = (int ) -1; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|OiOii:wxMessageBox",&_obj0,&_obj1,&_arg2,&_argo3,&_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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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_wxGetNumberFromUser(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxString * _arg0; - wxString * _arg1; - wxString * _arg2; - long _arg3; - long _arg4 = (long ) 0; - long _arg5 = (long ) 100; - wxWindow * _arg6 = (wxWindow *) NULL; - wxPoint * _arg7 = (wxPoint *) &wxPyDefaultPosition; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo6 = 0; - PyObject * _argo7 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOOl|llOO:wxGetNumberFromUser",&_obj0,&_obj1,&_obj2,&_arg3,&_arg4,&_arg5,&_argo6,&_argo7)) - 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)); -} - if (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxGetNumberFromUser. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo7) { - if (_argo7 == Py_None) { _arg7 = NULL; } - else if (SWIG_GetPtrObj(_argo7,(void **) &_arg7,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of wxGetNumberFromUser. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxGetNumberFromUser(*_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6,*_arg7); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSetCursor",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxCursor *) wxHOURGLASS_CURSOR; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"|O:wxBeginBusyCursor",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _obj0 = 0; - int tempbool1 = (int) FALSE; - - 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_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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject *_wrap_wxGetElapsedTime(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - bool _arg0 = (bool ) TRUE; - int tempbool0 = (int) TRUE; - - 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 = (wxString *) &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_wxSleep(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSleep",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSleep(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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_wxEnableTopLevelWindows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _arg0; - int tempbool0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxEnableTopLevelWindows",&tempbool0)) - return NULL; - _arg0 = (bool ) tempbool0; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEnableTopLevelWindows(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxGetResource(PyObject *self, PyObject *args) { - PyObject * _resultobj; - char * _result; - char * _arg0; - char * _arg1; - char * _arg2 = (char *) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxResourceTable *) NULL; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|O:wxResourceParseData",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxResourceTable *) NULL; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|O:wxResourceParseFile",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxResourceTable *) NULL; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|O:wxResourceParseString",&_arg0,&_argo1)) - return NULL; - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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_wxSystemSettings_GetSystemColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - int _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSystemSettings_GetSystemColour",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxSystemSettings_GetSystemColour(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxSystemSettings_GetSystemFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - int _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSystemSettings_GetSystemFont",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxFont (wxSystemSettings_GetSystemFont(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxSystemSettings_GetSystemMetric(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - int _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxSystemSettings_GetSystemMetric",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSystemSettings_GetSystemMetric(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg1 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxSize(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxSize_Set",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxSize_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxSize_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetWidth. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxSize_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetHeight. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxSize_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - long _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_SetWidth. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSize_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxSize_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - long _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxSize_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_SetHeight. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSize_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSize_asTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Od:wxRealPoint_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRealPoint_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Od:wxRealPoint_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRealPoint_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (double ) 0.0; - double _arg1 = (double ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRealPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRealPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRealPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRealPoint * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRealPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxPoint_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPoint_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxPoint_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPoint_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg1 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPoint",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxPoint_Set",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPoint_asTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - long _arg1 = (long ) 0; - long _arg2 = (long ) 0; - long _arg3 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRect(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_SetHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetLeft",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetTop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetBottom",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_GetRight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_width_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_width_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxRect_height_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_height_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRect_asTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTimer_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPyTimer(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyTimer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPyTimer",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyTimer_Interval",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) -1; - int _arg2 = (int ) FALSE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:wxPyTimer_Start",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyTimer_Stop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_Above",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Above. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxIndividualLayoutConstraint_Absolute",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIndividualLayoutConstraint_AsIs",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_Below",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Below. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxIndividualLayoutConstraint_Unconstrained",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_LeftOf",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_LeftOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxIndividualLayoutConstraint_PercentOf",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_PercentOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxIndividualLayoutConstraint_RightOf",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_RightOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi|i:wxIndividualLayoutConstraint_SameAs",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_SameAs. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) 0; - int _arg5 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOi|ii:wxIndividualLayoutConstraint_Set",&_argo0,&_arg1,&_argo2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Set. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_bottom_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_centreX_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_centreY_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_height_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_left_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_right_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_top_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxLayoutConstraints_width_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegion_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRegion(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRegion",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegion_Clear",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxRegion_Contains",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_ContainsPoint",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsPoint. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_ContainsRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsRect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegion_GetBox",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Intersect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Intersect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegion_IsEmpty",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Subtract",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Subtract. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Union",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Union. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxRegion_Xor",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Xor. Expected _wxRegion_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxRegionIterator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegionIterator_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxRegionIterator(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegionIterator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxRegionIterator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetW",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetH",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_GetRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_HaveRects",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_Reset",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxRegionIterator_Next",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg1 = (int ) 0; - int _arg2 = (int ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorEntry_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiii:wxAcceleratorEntry_Set",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxAcceleratorEntry_GetFlags",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxAcceleratorEntry_GetKeyCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxAcceleratorEntry_GetCommand",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorTable_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - delete [] _arg1; -} - return _resultobj; -} - -static PyMethodDef misccMethods[] = { - { "new_wxAcceleratorTable", _wrap_new_wxAcceleratorTable, METH_VARARGS }, - { "wxAcceleratorEntry_GetCommand", _wrap_wxAcceleratorEntry_GetCommand, METH_VARARGS }, - { "wxAcceleratorEntry_GetKeyCode", _wrap_wxAcceleratorEntry_GetKeyCode, METH_VARARGS }, - { "wxAcceleratorEntry_GetFlags", _wrap_wxAcceleratorEntry_GetFlags, METH_VARARGS }, - { "wxAcceleratorEntry_Set", _wrap_wxAcceleratorEntry_Set, METH_VARARGS }, - { "new_wxAcceleratorEntry", _wrap_new_wxAcceleratorEntry, METH_VARARGS }, - { "wxRegionIterator_Next", _wrap_wxRegionIterator_Next, METH_VARARGS }, - { "wxRegionIterator_Reset", _wrap_wxRegionIterator_Reset, METH_VARARGS }, - { "wxRegionIterator_HaveRects", _wrap_wxRegionIterator_HaveRects, METH_VARARGS }, - { "wxRegionIterator_GetRect", _wrap_wxRegionIterator_GetRect, METH_VARARGS }, - { "wxRegionIterator_GetHeight", _wrap_wxRegionIterator_GetHeight, METH_VARARGS }, - { "wxRegionIterator_GetH", _wrap_wxRegionIterator_GetH, METH_VARARGS }, - { "wxRegionIterator_GetWidth", _wrap_wxRegionIterator_GetWidth, METH_VARARGS }, - { "wxRegionIterator_GetW", _wrap_wxRegionIterator_GetW, METH_VARARGS }, - { "wxRegionIterator_GetY", _wrap_wxRegionIterator_GetY, METH_VARARGS }, - { "wxRegionIterator_GetX", _wrap_wxRegionIterator_GetX, METH_VARARGS }, - { "delete_wxRegionIterator", _wrap_delete_wxRegionIterator, METH_VARARGS }, - { "new_wxRegionIterator", _wrap_new_wxRegionIterator, METH_VARARGS }, - { "wxRegion_Xor", _wrap_wxRegion_Xor, METH_VARARGS }, - { "wxRegion_Union", _wrap_wxRegion_Union, METH_VARARGS }, - { "wxRegion_Subtract", _wrap_wxRegion_Subtract, METH_VARARGS }, - { "wxRegion_IsEmpty", _wrap_wxRegion_IsEmpty, METH_VARARGS }, - { "wxRegion_Intersect", _wrap_wxRegion_Intersect, METH_VARARGS }, - { "wxRegion_GetBox", _wrap_wxRegion_GetBox, METH_VARARGS }, - { "wxRegion_ContainsRect", _wrap_wxRegion_ContainsRect, METH_VARARGS }, - { "wxRegion_ContainsPoint", _wrap_wxRegion_ContainsPoint, METH_VARARGS }, - { "wxRegion_Contains", _wrap_wxRegion_Contains, METH_VARARGS }, - { "wxRegion_Clear", _wrap_wxRegion_Clear, METH_VARARGS }, - { "delete_wxRegion", _wrap_delete_wxRegion, METH_VARARGS }, - { "new_wxRegion", _wrap_new_wxRegion, METH_VARARGS }, - { "wxLayoutConstraints_width_get", _wrap_wxLayoutConstraints_width_get, METH_VARARGS }, - { "wxLayoutConstraints_top_get", _wrap_wxLayoutConstraints_top_get, METH_VARARGS }, - { "wxLayoutConstraints_right_get", _wrap_wxLayoutConstraints_right_get, METH_VARARGS }, - { "wxLayoutConstraints_left_get", _wrap_wxLayoutConstraints_left_get, METH_VARARGS }, - { "wxLayoutConstraints_height_get", _wrap_wxLayoutConstraints_height_get, METH_VARARGS }, - { "wxLayoutConstraints_centreY_get", _wrap_wxLayoutConstraints_centreY_get, METH_VARARGS }, - { "wxLayoutConstraints_centreX_get", _wrap_wxLayoutConstraints_centreX_get, METH_VARARGS }, - { "wxLayoutConstraints_bottom_get", _wrap_wxLayoutConstraints_bottom_get, METH_VARARGS }, - { "new_wxLayoutConstraints", _wrap_new_wxLayoutConstraints, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Set", _wrap_wxIndividualLayoutConstraint_Set, METH_VARARGS }, - { "wxIndividualLayoutConstraint_SameAs", _wrap_wxIndividualLayoutConstraint_SameAs, METH_VARARGS }, - { "wxIndividualLayoutConstraint_RightOf", _wrap_wxIndividualLayoutConstraint_RightOf, METH_VARARGS }, - { "wxIndividualLayoutConstraint_PercentOf", _wrap_wxIndividualLayoutConstraint_PercentOf, METH_VARARGS }, - { "wxIndividualLayoutConstraint_LeftOf", _wrap_wxIndividualLayoutConstraint_LeftOf, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Unconstrained", _wrap_wxIndividualLayoutConstraint_Unconstrained, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Below", _wrap_wxIndividualLayoutConstraint_Below, METH_VARARGS }, - { "wxIndividualLayoutConstraint_AsIs", _wrap_wxIndividualLayoutConstraint_AsIs, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Absolute", _wrap_wxIndividualLayoutConstraint_Absolute, METH_VARARGS }, - { "wxIndividualLayoutConstraint_Above", _wrap_wxIndividualLayoutConstraint_Above, METH_VARARGS }, - { "wxPyTimer_Stop", _wrap_wxPyTimer_Stop, METH_VARARGS }, - { "wxPyTimer_Start", _wrap_wxPyTimer_Start, METH_VARARGS }, - { "wxPyTimer_Interval", _wrap_wxPyTimer_Interval, METH_VARARGS }, - { "delete_wxPyTimer", _wrap_delete_wxPyTimer, METH_VARARGS }, - { "new_wxPyTimer", _wrap_new_wxPyTimer, METH_VARARGS }, - { "wxRect_asTuple", _wrap_wxRect_asTuple, METH_VARARGS }, - { "wxRect_height_get", _wrap_wxRect_height_get, METH_VARARGS }, - { "wxRect_height_set", _wrap_wxRect_height_set, METH_VARARGS }, - { "wxRect_width_get", _wrap_wxRect_width_get, METH_VARARGS }, - { "wxRect_width_set", _wrap_wxRect_width_set, METH_VARARGS }, - { "wxRect_y_get", _wrap_wxRect_y_get, METH_VARARGS }, - { "wxRect_y_set", _wrap_wxRect_y_set, METH_VARARGS }, - { "wxRect_x_get", _wrap_wxRect_x_get, METH_VARARGS }, - { "wxRect_x_set", _wrap_wxRect_x_set, METH_VARARGS }, - { "wxRect_GetRight", _wrap_wxRect_GetRight, METH_VARARGS }, - { "wxRect_GetBottom", _wrap_wxRect_GetBottom, METH_VARARGS }, - { "wxRect_GetTop", _wrap_wxRect_GetTop, METH_VARARGS }, - { "wxRect_GetLeft", _wrap_wxRect_GetLeft, METH_VARARGS }, - { "wxRect_GetSize", _wrap_wxRect_GetSize, METH_VARARGS }, - { "wxRect_GetPosition", _wrap_wxRect_GetPosition, METH_VARARGS }, - { "wxRect_SetHeight", _wrap_wxRect_SetHeight, METH_VARARGS }, - { "wxRect_GetHeight", _wrap_wxRect_GetHeight, METH_VARARGS }, - { "wxRect_SetWidth", _wrap_wxRect_SetWidth, METH_VARARGS }, - { "wxRect_GetWidth", _wrap_wxRect_GetWidth, METH_VARARGS }, - { "wxRect_SetY", _wrap_wxRect_SetY, METH_VARARGS }, - { "wxRect_GetY", _wrap_wxRect_GetY, METH_VARARGS }, - { "wxRect_SetX", _wrap_wxRect_SetX, METH_VARARGS }, - { "wxRect_GetX", _wrap_wxRect_GetX, METH_VARARGS }, - { "delete_wxRect", _wrap_delete_wxRect, METH_VARARGS }, - { "new_wxRect", _wrap_new_wxRect, METH_VARARGS }, - { "wxPoint_asTuple", _wrap_wxPoint_asTuple, METH_VARARGS }, - { "wxPoint_Set", _wrap_wxPoint_Set, METH_VARARGS }, - { "delete_wxPoint", _wrap_delete_wxPoint, METH_VARARGS }, - { "new_wxPoint", _wrap_new_wxPoint, METH_VARARGS }, - { "wxPoint_y_get", _wrap_wxPoint_y_get, METH_VARARGS }, - { "wxPoint_y_set", _wrap_wxPoint_y_set, METH_VARARGS }, - { "wxPoint_x_get", _wrap_wxPoint_x_get, METH_VARARGS }, - { "wxPoint_x_set", _wrap_wxPoint_x_set, METH_VARARGS }, - { "delete_wxRealPoint", _wrap_delete_wxRealPoint, METH_VARARGS }, - { "new_wxRealPoint", _wrap_new_wxRealPoint, METH_VARARGS }, - { "wxRealPoint_y_get", _wrap_wxRealPoint_y_get, METH_VARARGS }, - { "wxRealPoint_y_set", _wrap_wxRealPoint_y_set, METH_VARARGS }, - { "wxRealPoint_x_get", _wrap_wxRealPoint_x_get, METH_VARARGS }, - { "wxRealPoint_x_set", _wrap_wxRealPoint_x_set, METH_VARARGS }, - { "wxSize_asTuple", _wrap_wxSize_asTuple, METH_VARARGS }, - { "wxSize_SetHeight", _wrap_wxSize_SetHeight, METH_VARARGS }, - { "wxSize_SetWidth", _wrap_wxSize_SetWidth, METH_VARARGS }, - { "wxSize_GetHeight", _wrap_wxSize_GetHeight, METH_VARARGS }, - { "wxSize_GetWidth", _wrap_wxSize_GetWidth, METH_VARARGS }, - { "wxSize_GetY", _wrap_wxSize_GetY, METH_VARARGS }, - { "wxSize_GetX", _wrap_wxSize_GetX, METH_VARARGS }, - { "wxSize_Set", _wrap_wxSize_Set, METH_VARARGS }, - { "delete_wxSize", _wrap_delete_wxSize, METH_VARARGS }, - { "new_wxSize", _wrap_new_wxSize, METH_VARARGS }, - { "wxSize_height_get", _wrap_wxSize_y_get, METH_VARARGS }, - { "wxSize_height_set", _wrap_wxSize_y_set, METH_VARARGS }, - { "wxSize_width_get", _wrap_wxSize_x_get, METH_VARARGS }, - { "wxSize_width_set", _wrap_wxSize_x_set, METH_VARARGS }, - { "wxSize_y_get", _wrap_wxSize_y_get, METH_VARARGS }, - { "wxSize_y_set", _wrap_wxSize_y_set, METH_VARARGS }, - { "wxSize_x_get", _wrap_wxSize_x_get, METH_VARARGS }, - { "wxSize_x_set", _wrap_wxSize_x_set, METH_VARARGS }, - { "wxSystemSettings_GetSystemMetric", _wrap_wxSystemSettings_GetSystemMetric, METH_VARARGS }, - { "wxSystemSettings_GetSystemFont", _wrap_wxSystemSettings_GetSystemFont, METH_VARARGS }, - { "wxSystemSettings_GetSystemColour", _wrap_wxSystemSettings_GetSystemColour, METH_VARARGS }, - { "wxResourceParseString", _wrap_wxResourceParseString, METH_VARARGS }, - { "wxResourceParseFile", _wrap_wxResourceParseFile, METH_VARARGS }, - { "wxResourceParseData", _wrap_wxResourceParseData, METH_VARARGS }, - { "wxResourceGetIdentifier", _wrap_wxResourceGetIdentifier, METH_VARARGS }, - { "wxResourceCreateMenuBar", _wrap_wxResourceCreateMenuBar, METH_VARARGS }, - { "wxResourceCreateIcon", _wrap_wxResourceCreateIcon, METH_VARARGS }, - { "wxResourceCreateBitmap", _wrap_wxResourceCreateBitmap, METH_VARARGS }, - { "wxResourceClear", _wrap_wxResourceClear, METH_VARARGS }, - { "wxResourceAddIdentifier", _wrap_wxResourceAddIdentifier, METH_VARARGS }, - { "wxGetResource", _wrap_wxGetResource, METH_VARARGS }, - { "wxEnableTopLevelWindows", _wrap_wxEnableTopLevelWindows, METH_VARARGS }, - { "wxSafeYield", _wrap_wxSafeYield, METH_VARARGS }, - { "wxYield", _wrap_wxYield, METH_VARARGS }, - { "wxSleep", _wrap_wxSleep, METH_VARARGS }, - { "wxGetOsVersion", _wrap_wxGetOsVersion, METH_VARARGS }, - { "wxStartTimer", _wrap_wxStartTimer, METH_VARARGS }, - { "wxShell", _wrap_wxShell, METH_VARARGS }, - { "wxNow", _wrap_wxNow, METH_VARARGS }, - { "wxIsBusy", _wrap_wxIsBusy, METH_VARARGS }, - { "wxGetMousePosition", _wrap_wxGetMousePosition, METH_VARARGS }, - { "wxGetFreeMemory", _wrap_wxGetFreeMemory, METH_VARARGS }, - { "wxGetElapsedTime", _wrap_wxGetElapsedTime, METH_VARARGS }, - { "wxGetActiveWindow", _wrap_wxGetActiveWindow, METH_VARARGS }, - { "wxExecute", _wrap_wxExecute, METH_VARARGS }, - { "wxEndBusyCursor", _wrap_wxEndBusyCursor, METH_VARARGS }, - { "wxDisplaySize", _wrap_wxDisplaySize, METH_VARARGS }, - { "wxBell", _wrap_wxBell, METH_VARARGS }, - { "wxBeginBusyCursor", _wrap_wxBeginBusyCursor, METH_VARARGS }, - { "RegisterId", _wrap_RegisterId, METH_VARARGS }, - { "NewId", _wrap_NewId, METH_VARARGS }, - { "wxRegisterId", _wrap_wxRegisterId, METH_VARARGS }, - { "wxNewId", _wrap_wxNewId, METH_VARARGS }, - { "wxSetCursor", _wrap_wxSetCursor, METH_VARARGS }, - { "wxDisplayDepth", _wrap_wxDisplayDepth, METH_VARARGS }, - { "wxColourDisplay", _wrap_wxColourDisplay, METH_VARARGS }, - { "wxGetNumberFromUser", _wrap_wxGetNumberFromUser, METH_VARARGS }, - { "wxMessageBox", _wrap_wxMessageBox, METH_VARARGS }, - { "wxGetSingleChoiceIndex", _wrap_wxGetSingleChoiceIndex, METH_VARARGS }, - { "wxGetSingleChoice", _wrap_wxGetSingleChoice, METH_VARARGS }, - { "wxGetTextFromUser", _wrap_wxGetTextFromUser, METH_VARARGS }, - { "wxFileSelector", _wrap_wxFileSelector, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_byte","_unsigned_char",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_unsigned_char","_byte",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSize","_wxSize",0}, -{0,0,0}}; - -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)); - PyDict_SetItemString(d,"wxSYS_WHITE_BRUSH", PyInt_FromLong((long) wxSYS_WHITE_BRUSH)); - PyDict_SetItemString(d,"wxSYS_LTGRAY_BRUSH", PyInt_FromLong((long) wxSYS_LTGRAY_BRUSH)); - PyDict_SetItemString(d,"wxSYS_GRAY_BRUSH", PyInt_FromLong((long) wxSYS_GRAY_BRUSH)); - PyDict_SetItemString(d,"wxSYS_DKGRAY_BRUSH", PyInt_FromLong((long) wxSYS_DKGRAY_BRUSH)); - PyDict_SetItemString(d,"wxSYS_BLACK_BRUSH", PyInt_FromLong((long) wxSYS_BLACK_BRUSH)); - PyDict_SetItemString(d,"wxSYS_NULL_BRUSH", PyInt_FromLong((long) wxSYS_NULL_BRUSH)); - PyDict_SetItemString(d,"wxSYS_HOLLOW_BRUSH", PyInt_FromLong((long) wxSYS_HOLLOW_BRUSH)); - PyDict_SetItemString(d,"wxSYS_WHITE_PEN", PyInt_FromLong((long) wxSYS_WHITE_PEN)); - PyDict_SetItemString(d,"wxSYS_BLACK_PEN", PyInt_FromLong((long) wxSYS_BLACK_PEN)); - PyDict_SetItemString(d,"wxSYS_NULL_PEN", PyInt_FromLong((long) wxSYS_NULL_PEN)); - PyDict_SetItemString(d,"wxSYS_OEM_FIXED_FONT", PyInt_FromLong((long) wxSYS_OEM_FIXED_FONT)); - PyDict_SetItemString(d,"wxSYS_ANSI_FIXED_FONT", PyInt_FromLong((long) wxSYS_ANSI_FIXED_FONT)); - PyDict_SetItemString(d,"wxSYS_ANSI_VAR_FONT", PyInt_FromLong((long) wxSYS_ANSI_VAR_FONT)); - PyDict_SetItemString(d,"wxSYS_SYSTEM_FONT", PyInt_FromLong((long) wxSYS_SYSTEM_FONT)); - PyDict_SetItemString(d,"wxSYS_DEVICE_DEFAULT_FONT", PyInt_FromLong((long) wxSYS_DEVICE_DEFAULT_FONT)); - PyDict_SetItemString(d,"wxSYS_DEFAULT_PALETTE", PyInt_FromLong((long) wxSYS_DEFAULT_PALETTE)); - PyDict_SetItemString(d,"wxSYS_SYSTEM_FIXED_FONT", PyInt_FromLong((long) wxSYS_SYSTEM_FIXED_FONT)); - PyDict_SetItemString(d,"wxSYS_DEFAULT_GUI_FONT", PyInt_FromLong((long) wxSYS_DEFAULT_GUI_FONT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_SCROLLBAR", PyInt_FromLong((long) wxSYS_COLOUR_SCROLLBAR)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BACKGROUND", PyInt_FromLong((long) wxSYS_COLOUR_BACKGROUND)); - PyDict_SetItemString(d,"wxSYS_COLOUR_ACTIVECAPTION", PyInt_FromLong((long) wxSYS_COLOUR_ACTIVECAPTION)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INACTIVECAPTION", PyInt_FromLong((long) wxSYS_COLOUR_INACTIVECAPTION)); - PyDict_SetItemString(d,"wxSYS_COLOUR_MENU", PyInt_FromLong((long) wxSYS_COLOUR_MENU)); - PyDict_SetItemString(d,"wxSYS_COLOUR_WINDOW", PyInt_FromLong((long) wxSYS_COLOUR_WINDOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_WINDOWFRAME", PyInt_FromLong((long) wxSYS_COLOUR_WINDOWFRAME)); - PyDict_SetItemString(d,"wxSYS_COLOUR_MENUTEXT", PyInt_FromLong((long) wxSYS_COLOUR_MENUTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_WINDOWTEXT", PyInt_FromLong((long) wxSYS_COLOUR_WINDOWTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_CAPTIONTEXT", PyInt_FromLong((long) wxSYS_COLOUR_CAPTIONTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_ACTIVEBORDER", PyInt_FromLong((long) wxSYS_COLOUR_ACTIVEBORDER)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INACTIVEBORDER", PyInt_FromLong((long) wxSYS_COLOUR_INACTIVEBORDER)); - PyDict_SetItemString(d,"wxSYS_COLOUR_APPWORKSPACE", PyInt_FromLong((long) wxSYS_COLOUR_APPWORKSPACE)); - PyDict_SetItemString(d,"wxSYS_COLOUR_HIGHLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_HIGHLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_HIGHLIGHTTEXT", PyInt_FromLong((long) wxSYS_COLOUR_HIGHLIGHTTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNFACE", PyInt_FromLong((long) wxSYS_COLOUR_BTNFACE)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNSHADOW", PyInt_FromLong((long) wxSYS_COLOUR_BTNSHADOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_GRAYTEXT", PyInt_FromLong((long) wxSYS_COLOUR_GRAYTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNTEXT", PyInt_FromLong((long) wxSYS_COLOUR_BTNTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INACTIVECAPTIONTEXT", PyInt_FromLong((long) wxSYS_COLOUR_INACTIVECAPTIONTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNHIGHLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_BTNHIGHLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DDKSHADOW", PyInt_FromLong((long) wxSYS_COLOUR_3DDKSHADOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_3DLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INFOTEXT", PyInt_FromLong((long) wxSYS_COLOUR_INFOTEXT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_INFOBK", PyInt_FromLong((long) wxSYS_COLOUR_INFOBK)); - PyDict_SetItemString(d,"wxSYS_COLOUR_DESKTOP", PyInt_FromLong((long) wxSYS_COLOUR_DESKTOP)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DFACE", PyInt_FromLong((long) wxSYS_COLOUR_3DFACE)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DSHADOW", PyInt_FromLong((long) wxSYS_COLOUR_3DSHADOW)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DHIGHLIGHT", PyInt_FromLong((long) wxSYS_COLOUR_3DHIGHLIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_3DHILIGHT", PyInt_FromLong((long) wxSYS_COLOUR_3DHILIGHT)); - PyDict_SetItemString(d,"wxSYS_COLOUR_BTNHILIGHT", PyInt_FromLong((long) wxSYS_COLOUR_BTNHILIGHT)); - PyDict_SetItemString(d,"wxSYS_MOUSE_BUTTONS", PyInt_FromLong((long) wxSYS_MOUSE_BUTTONS)); - PyDict_SetItemString(d,"wxSYS_BORDER_X", PyInt_FromLong((long) wxSYS_BORDER_X)); - PyDict_SetItemString(d,"wxSYS_BORDER_Y", PyInt_FromLong((long) wxSYS_BORDER_Y)); - PyDict_SetItemString(d,"wxSYS_CURSOR_X", PyInt_FromLong((long) wxSYS_CURSOR_X)); - PyDict_SetItemString(d,"wxSYS_CURSOR_Y", PyInt_FromLong((long) wxSYS_CURSOR_Y)); - PyDict_SetItemString(d,"wxSYS_DCLICK_X", PyInt_FromLong((long) wxSYS_DCLICK_X)); - PyDict_SetItemString(d,"wxSYS_DCLICK_Y", PyInt_FromLong((long) wxSYS_DCLICK_Y)); - PyDict_SetItemString(d,"wxSYS_DRAG_X", PyInt_FromLong((long) wxSYS_DRAG_X)); - PyDict_SetItemString(d,"wxSYS_DRAG_Y", PyInt_FromLong((long) wxSYS_DRAG_Y)); - PyDict_SetItemString(d,"wxSYS_EDGE_X", PyInt_FromLong((long) wxSYS_EDGE_X)); - PyDict_SetItemString(d,"wxSYS_EDGE_Y", PyInt_FromLong((long) wxSYS_EDGE_Y)); - PyDict_SetItemString(d,"wxSYS_HSCROLL_ARROW_X", PyInt_FromLong((long) wxSYS_HSCROLL_ARROW_X)); - PyDict_SetItemString(d,"wxSYS_HSCROLL_ARROW_Y", PyInt_FromLong((long) wxSYS_HSCROLL_ARROW_Y)); - PyDict_SetItemString(d,"wxSYS_HTHUMB_X", PyInt_FromLong((long) wxSYS_HTHUMB_X)); - PyDict_SetItemString(d,"wxSYS_ICON_X", PyInt_FromLong((long) wxSYS_ICON_X)); - PyDict_SetItemString(d,"wxSYS_ICON_Y", PyInt_FromLong((long) wxSYS_ICON_Y)); - PyDict_SetItemString(d,"wxSYS_ICONSPACING_X", PyInt_FromLong((long) wxSYS_ICONSPACING_X)); - PyDict_SetItemString(d,"wxSYS_ICONSPACING_Y", PyInt_FromLong((long) wxSYS_ICONSPACING_Y)); - PyDict_SetItemString(d,"wxSYS_WINDOWMIN_X", PyInt_FromLong((long) wxSYS_WINDOWMIN_X)); - PyDict_SetItemString(d,"wxSYS_WINDOWMIN_Y", PyInt_FromLong((long) wxSYS_WINDOWMIN_Y)); - PyDict_SetItemString(d,"wxSYS_SCREEN_X", PyInt_FromLong((long) wxSYS_SCREEN_X)); - PyDict_SetItemString(d,"wxSYS_SCREEN_Y", PyInt_FromLong((long) wxSYS_SCREEN_Y)); - PyDict_SetItemString(d,"wxSYS_FRAMESIZE_X", PyInt_FromLong((long) wxSYS_FRAMESIZE_X)); - PyDict_SetItemString(d,"wxSYS_FRAMESIZE_Y", PyInt_FromLong((long) wxSYS_FRAMESIZE_Y)); - PyDict_SetItemString(d,"wxSYS_SMALLICON_X", PyInt_FromLong((long) wxSYS_SMALLICON_X)); - PyDict_SetItemString(d,"wxSYS_SMALLICON_Y", PyInt_FromLong((long) wxSYS_SMALLICON_Y)); - PyDict_SetItemString(d,"wxSYS_HSCROLL_Y", PyInt_FromLong((long) wxSYS_HSCROLL_Y)); - PyDict_SetItemString(d,"wxSYS_VSCROLL_X", PyInt_FromLong((long) wxSYS_VSCROLL_X)); - PyDict_SetItemString(d,"wxSYS_VSCROLL_ARROW_X", PyInt_FromLong((long) wxSYS_VSCROLL_ARROW_X)); - PyDict_SetItemString(d,"wxSYS_VSCROLL_ARROW_Y", PyInt_FromLong((long) wxSYS_VSCROLL_ARROW_Y)); - PyDict_SetItemString(d,"wxSYS_VTHUMB_Y", PyInt_FromLong((long) wxSYS_VTHUMB_Y)); - PyDict_SetItemString(d,"wxSYS_CAPTION_Y", PyInt_FromLong((long) wxSYS_CAPTION_Y)); - PyDict_SetItemString(d,"wxSYS_MENU_Y", PyInt_FromLong((long) wxSYS_MENU_Y)); - PyDict_SetItemString(d,"wxSYS_NETWORK_PRESENT", PyInt_FromLong((long) wxSYS_NETWORK_PRESENT)); - PyDict_SetItemString(d,"wxSYS_PENWINDOWS_PRESENT", PyInt_FromLong((long) wxSYS_PENWINDOWS_PRESENT)); - PyDict_SetItemString(d,"wxSYS_SHOW_SOUNDS", PyInt_FromLong((long) wxSYS_SHOW_SOUNDS)); - PyDict_SetItemString(d,"wxSYS_SWAP_BUTTONS", PyInt_FromLong((long) wxSYS_SWAP_BUTTONS)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/misc.py b/utils/wxPython/src/msw/misc.py deleted file mode 100644 index 7aa83f61a3..0000000000 --- a/utils/wxPython/src/msw/misc.py +++ /dev/null @@ -1,714 +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,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxSize(self) - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxSize_Set,(self,) + _args, _kwargs) - return val - def GetX(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetY,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetWidth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxSize_GetHeight,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxSize_SetWidth,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxSize_SetHeight,(self,) + _args, _kwargs) - return val - def asTuple(self, *_args, **_kwargs): - val = apply(miscc.wxSize_asTuple,(self,) + _args, _kwargs) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxSize_x_set(self,value) - return - if name == "y" : - miscc.wxSize_y_set(self,value) - return - if name == "width" : - miscc.wxSize_width_set(self,value) - return - if name == "height" : - miscc.wxSize_height_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxSize_x_get(self) - if name == "y" : - return miscc.wxSize_y_get(self) - if name == "width" : - return miscc.wxSize_width_get(self) - if name == "height" : - return miscc.wxSize_height_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxSize(wxSizePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxSize,_args,_kwargs) - self.thisown = 1 - - - - -class wxRealPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRealPoint(self) - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRealPoint_x_set(self,value) - return - if name == "y" : - miscc.wxRealPoint_y_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRealPoint_x_get(self) - if name == "y" : - return miscc.wxRealPoint_y_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxRealPoint(wxRealPointPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRealPoint,_args,_kwargs) - self.thisown = 1 - - - - -class wxPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxPoint(self) - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxPoint_Set,(self,) + _args, _kwargs) - return val - def asTuple(self, *_args, **_kwargs): - val = apply(miscc.wxPoint_asTuple,(self,) + _args, _kwargs) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxPoint_x_set(self,value) - return - if name == "y" : - miscc.wxPoint_y_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxPoint_x_get(self) - if name == "y" : - return miscc.wxPoint_y_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxPoint(wxPointPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxPoint,_args,_kwargs) - self.thisown = 1 - - - - -class wxRectPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRect(self) - def GetX(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetX,(self,) + _args, _kwargs) - return val - def SetX(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetY,(self,) + _args, _kwargs) - return val - def SetY(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetY,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetWidth,(self,) + _args, _kwargs) - return val - def SetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetWidth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetHeight,(self,) + _args, _kwargs) - return val - def SetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxRect_SetHeight,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetSize(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetLeft(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetLeft,(self,) + _args, _kwargs) - return val - def GetTop(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetTop,(self,) + _args, _kwargs) - return val - def GetBottom(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetBottom,(self,) + _args, _kwargs) - return val - def GetRight(self, *_args, **_kwargs): - val = apply(miscc.wxRect_GetRight,(self,) + _args, _kwargs) - return val - def asTuple(self, *_args, **_kwargs): - val = apply(miscc.wxRect_asTuple,(self,) + _args, _kwargs) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRect_x_set(self,value) - return - if name == "y" : - miscc.wxRect_y_set(self,value) - return - if name == "width" : - miscc.wxRect_width_set(self,value) - return - if name == "height" : - miscc.wxRect_height_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRect_x_get(self) - if name == "y" : - return miscc.wxRect_y_get(self) - if name == "width" : - return miscc.wxRect_width_get(self) - if name == "height" : - return miscc.wxRect_height_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxRect(wxRectPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRect,_args,_kwargs) - self.thisown = 1 - - - - -class wxPyTimerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxPyTimer(self) - def Interval(self, *_args, **_kwargs): - val = apply(miscc.wxPyTimer_Interval,(self,) + _args, _kwargs) - return val - def Start(self, *_args, **_kwargs): - val = apply(miscc.wxPyTimer_Start,(self,) + _args, _kwargs) - return val - def Stop(self, *_args, **_kwargs): - val = apply(miscc.wxPyTimer_Stop,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPyTimer(wxPyTimerPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxPyTimer,_args,_kwargs) - self.thisown = 1 - - - - -class wxIndividualLayoutConstraintPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Above(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Above,(self,) + _args, _kwargs) - return val - def Absolute(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Absolute,(self,) + _args, _kwargs) - return val - def AsIs(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_AsIs,(self,) + _args, _kwargs) - return val - def Below(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Below,(self,) + _args, _kwargs) - return val - def Unconstrained(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Unconstrained,(self,) + _args, _kwargs) - return val - def LeftOf(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_LeftOf,(self,) + _args, _kwargs) - return val - def PercentOf(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_PercentOf,(self,) + _args, _kwargs) - return val - def RightOf(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_RightOf,(self,) + _args, _kwargs) - return val - def SameAs(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_SameAs,(self,) + _args, _kwargs) - return val - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxIndividualLayoutConstraint_Set,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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,value.this) - return - if name == "centreX" : - miscc.wxLayoutConstraints_centreX_set(self,value.this) - return - if name == "centreY" : - miscc.wxLayoutConstraints_centreY_set(self,value.this) - return - if name == "height" : - miscc.wxLayoutConstraints_height_set(self,value.this) - return - if name == "left" : - miscc.wxLayoutConstraints_left_set(self,value.this) - return - if name == "right" : - miscc.wxLayoutConstraints_right_set(self,value.this) - return - if name == "top" : - miscc.wxLayoutConstraints_top_set(self,value.this) - return - if name == "width" : - miscc.wxLayoutConstraints_width_set(self,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "bottom" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_bottom_get(self)) - if name == "centreX" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreX_get(self)) - if name == "centreY" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreY_get(self)) - if name == "height" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_height_get(self)) - if name == "left" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_left_get(self)) - if name == "right" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_right_get(self)) - if name == "top" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_top_get(self)) - if name == "width" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_width_get(self)) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxLayoutConstraints(wxLayoutConstraintsPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxLayoutConstraints,_args,_kwargs) - self.thisown = 1 - - - - -class wxRegionPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRegion(self) - def Clear(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Clear,(self,) + _args, _kwargs) - return val - def Contains(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Contains,(self,) + _args, _kwargs) - return val - def ContainsPoint(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_ContainsPoint,(self,) + _args, _kwargs) - return val - def ContainsRect(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_ContainsRect,(self,) + _args, _kwargs) - return val - def GetBox(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_GetBox,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def Intersect(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Intersect,(self,) + _args, _kwargs) - return val - def IsEmpty(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_IsEmpty,(self,) + _args, _kwargs) - return val - def Subtract(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Subtract,(self,) + _args, _kwargs) - return val - def Union(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Union,(self,) + _args, _kwargs) - return val - def Xor(self, *_args, **_kwargs): - val = apply(miscc.wxRegion_Xor,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRegion(wxRegionPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRegion,_args,_kwargs) - self.thisown = 1 - - - - -class wxRegionIteratorPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,miscc=miscc): - if self.thisown == 1 : - miscc.delete_wxRegionIterator(self) - def GetX(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetY,(self,) + _args, _kwargs) - return val - def GetW(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetW,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetWidth,(self,) + _args, _kwargs) - return val - def GetH(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetH,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetHeight,(self,) + _args, _kwargs) - return val - def GetRect(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_GetRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def HaveRects(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_HaveRects,(self,) + _args, _kwargs) - return val - def Reset(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_Reset,(self,) + _args, _kwargs) - return val - def Next(self, *_args, **_kwargs): - val = apply(miscc.wxRegionIterator_Next,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxRegionIterator(wxRegionIteratorPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxRegionIterator,_args,_kwargs) - self.thisown = 1 - - - - -class wxAcceleratorEntryPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Set(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_Set,(self,) + _args, _kwargs) - return val - def GetFlags(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_GetFlags,(self,) + _args, _kwargs) - return val - def GetKeyCode(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_GetKeyCode,(self,) + _args, _kwargs) - return val - def GetCommand(self, *_args, **_kwargs): - val = apply(miscc.wxAcceleratorEntry_GetCommand,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxAcceleratorEntry(wxAcceleratorEntryPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxAcceleratorEntry,_args,_kwargs) - self.thisown = 1 - - - - -class wxAcceleratorTablePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" % (self.this,) -class wxAcceleratorTable(wxAcceleratorTablePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(miscc.new_wxAcceleratorTable,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -wxFileSelector = miscc.wxFileSelector - -wxGetTextFromUser = miscc.wxGetTextFromUser - -wxGetSingleChoice = miscc.wxGetSingleChoice - -wxGetSingleChoiceIndex = miscc.wxGetSingleChoiceIndex - -wxMessageBox = miscc.wxMessageBox - -wxGetNumberFromUser = miscc.wxGetNumberFromUser - -wxColourDisplay = miscc.wxColourDisplay - -wxDisplayDepth = miscc.wxDisplayDepth - -wxSetCursor = miscc.wxSetCursor - -wxNewId = miscc.wxNewId - -wxRegisterId = miscc.wxRegisterId - -NewId = miscc.NewId - -RegisterId = miscc.RegisterId - -wxBeginBusyCursor = miscc.wxBeginBusyCursor - -wxBell = miscc.wxBell - -wxDisplaySize = miscc.wxDisplaySize - -wxEndBusyCursor = miscc.wxEndBusyCursor - -wxExecute = miscc.wxExecute - -def wxGetActiveWindow(*_args, **_kwargs): - val = apply(miscc.wxGetActiveWindow,_args,_kwargs) - if val: 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 - -wxSleep = miscc.wxSleep - -wxYield = miscc.wxYield - -wxSafeYield = miscc.wxSafeYield - -wxEnableTopLevelWindows = miscc.wxEnableTopLevelWindows - -wxGetResource = miscc.wxGetResource - -wxResourceAddIdentifier = miscc.wxResourceAddIdentifier - -wxResourceClear = miscc.wxResourceClear - -def wxResourceCreateBitmap(*_args, **_kwargs): - val = apply(miscc.wxResourceCreateBitmap,_args,_kwargs) - if val: val = wxBitmapPtr(val); val.thisown = 1 - return val - -def wxResourceCreateIcon(*_args, **_kwargs): - val = apply(miscc.wxResourceCreateIcon,_args,_kwargs) - if val: val = wxIconPtr(val); val.thisown = 1 - return val - -def wxResourceCreateMenuBar(*_args, **_kwargs): - val = apply(miscc.wxResourceCreateMenuBar,_args,_kwargs) - if val: val = wxMenuBarPtr(val) - return val - -wxResourceGetIdentifier = miscc.wxResourceGetIdentifier - -wxResourceParseData = miscc.wxResourceParseData - -wxResourceParseFile = miscc.wxResourceParseFile - -wxResourceParseString = miscc.wxResourceParseString - -def wxSystemSettings_GetSystemColour(*_args, **_kwargs): - val = apply(miscc.wxSystemSettings_GetSystemColour,_args,_kwargs) - if val: val = wxColourPtr(val); val.thisown = 1 - return val - -def wxSystemSettings_GetSystemFont(*_args, **_kwargs): - val = apply(miscc.wxSystemSettings_GetSystemFont,_args,_kwargs) - if val: val = wxFontPtr(val); val.thisown = 1 - return val - -wxSystemSettings_GetSystemMetric = miscc.wxSystemSettings_GetSystemMetric - - - -#-------------- 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 -wxSYS_WHITE_BRUSH = miscc.wxSYS_WHITE_BRUSH -wxSYS_LTGRAY_BRUSH = miscc.wxSYS_LTGRAY_BRUSH -wxSYS_GRAY_BRUSH = miscc.wxSYS_GRAY_BRUSH -wxSYS_DKGRAY_BRUSH = miscc.wxSYS_DKGRAY_BRUSH -wxSYS_BLACK_BRUSH = miscc.wxSYS_BLACK_BRUSH -wxSYS_NULL_BRUSH = miscc.wxSYS_NULL_BRUSH -wxSYS_HOLLOW_BRUSH = miscc.wxSYS_HOLLOW_BRUSH -wxSYS_WHITE_PEN = miscc.wxSYS_WHITE_PEN -wxSYS_BLACK_PEN = miscc.wxSYS_BLACK_PEN -wxSYS_NULL_PEN = miscc.wxSYS_NULL_PEN -wxSYS_OEM_FIXED_FONT = miscc.wxSYS_OEM_FIXED_FONT -wxSYS_ANSI_FIXED_FONT = miscc.wxSYS_ANSI_FIXED_FONT -wxSYS_ANSI_VAR_FONT = miscc.wxSYS_ANSI_VAR_FONT -wxSYS_SYSTEM_FONT = miscc.wxSYS_SYSTEM_FONT -wxSYS_DEVICE_DEFAULT_FONT = miscc.wxSYS_DEVICE_DEFAULT_FONT -wxSYS_DEFAULT_PALETTE = miscc.wxSYS_DEFAULT_PALETTE -wxSYS_SYSTEM_FIXED_FONT = miscc.wxSYS_SYSTEM_FIXED_FONT -wxSYS_DEFAULT_GUI_FONT = miscc.wxSYS_DEFAULT_GUI_FONT -wxSYS_COLOUR_SCROLLBAR = miscc.wxSYS_COLOUR_SCROLLBAR -wxSYS_COLOUR_BACKGROUND = miscc.wxSYS_COLOUR_BACKGROUND -wxSYS_COLOUR_ACTIVECAPTION = miscc.wxSYS_COLOUR_ACTIVECAPTION -wxSYS_COLOUR_INACTIVECAPTION = miscc.wxSYS_COLOUR_INACTIVECAPTION -wxSYS_COLOUR_MENU = miscc.wxSYS_COLOUR_MENU -wxSYS_COLOUR_WINDOW = miscc.wxSYS_COLOUR_WINDOW -wxSYS_COLOUR_WINDOWFRAME = miscc.wxSYS_COLOUR_WINDOWFRAME -wxSYS_COLOUR_MENUTEXT = miscc.wxSYS_COLOUR_MENUTEXT -wxSYS_COLOUR_WINDOWTEXT = miscc.wxSYS_COLOUR_WINDOWTEXT -wxSYS_COLOUR_CAPTIONTEXT = miscc.wxSYS_COLOUR_CAPTIONTEXT -wxSYS_COLOUR_ACTIVEBORDER = miscc.wxSYS_COLOUR_ACTIVEBORDER -wxSYS_COLOUR_INACTIVEBORDER = miscc.wxSYS_COLOUR_INACTIVEBORDER -wxSYS_COLOUR_APPWORKSPACE = miscc.wxSYS_COLOUR_APPWORKSPACE -wxSYS_COLOUR_HIGHLIGHT = miscc.wxSYS_COLOUR_HIGHLIGHT -wxSYS_COLOUR_HIGHLIGHTTEXT = miscc.wxSYS_COLOUR_HIGHLIGHTTEXT -wxSYS_COLOUR_BTNFACE = miscc.wxSYS_COLOUR_BTNFACE -wxSYS_COLOUR_BTNSHADOW = miscc.wxSYS_COLOUR_BTNSHADOW -wxSYS_COLOUR_GRAYTEXT = miscc.wxSYS_COLOUR_GRAYTEXT -wxSYS_COLOUR_BTNTEXT = miscc.wxSYS_COLOUR_BTNTEXT -wxSYS_COLOUR_INACTIVECAPTIONTEXT = miscc.wxSYS_COLOUR_INACTIVECAPTIONTEXT -wxSYS_COLOUR_BTNHIGHLIGHT = miscc.wxSYS_COLOUR_BTNHIGHLIGHT -wxSYS_COLOUR_3DDKSHADOW = miscc.wxSYS_COLOUR_3DDKSHADOW -wxSYS_COLOUR_3DLIGHT = miscc.wxSYS_COLOUR_3DLIGHT -wxSYS_COLOUR_INFOTEXT = miscc.wxSYS_COLOUR_INFOTEXT -wxSYS_COLOUR_INFOBK = miscc.wxSYS_COLOUR_INFOBK -wxSYS_COLOUR_DESKTOP = miscc.wxSYS_COLOUR_DESKTOP -wxSYS_COLOUR_3DFACE = miscc.wxSYS_COLOUR_3DFACE -wxSYS_COLOUR_3DSHADOW = miscc.wxSYS_COLOUR_3DSHADOW -wxSYS_COLOUR_3DHIGHLIGHT = miscc.wxSYS_COLOUR_3DHIGHLIGHT -wxSYS_COLOUR_3DHILIGHT = miscc.wxSYS_COLOUR_3DHILIGHT -wxSYS_COLOUR_BTNHILIGHT = miscc.wxSYS_COLOUR_BTNHILIGHT -wxSYS_MOUSE_BUTTONS = miscc.wxSYS_MOUSE_BUTTONS -wxSYS_BORDER_X = miscc.wxSYS_BORDER_X -wxSYS_BORDER_Y = miscc.wxSYS_BORDER_Y -wxSYS_CURSOR_X = miscc.wxSYS_CURSOR_X -wxSYS_CURSOR_Y = miscc.wxSYS_CURSOR_Y -wxSYS_DCLICK_X = miscc.wxSYS_DCLICK_X -wxSYS_DCLICK_Y = miscc.wxSYS_DCLICK_Y -wxSYS_DRAG_X = miscc.wxSYS_DRAG_X -wxSYS_DRAG_Y = miscc.wxSYS_DRAG_Y -wxSYS_EDGE_X = miscc.wxSYS_EDGE_X -wxSYS_EDGE_Y = miscc.wxSYS_EDGE_Y -wxSYS_HSCROLL_ARROW_X = miscc.wxSYS_HSCROLL_ARROW_X -wxSYS_HSCROLL_ARROW_Y = miscc.wxSYS_HSCROLL_ARROW_Y -wxSYS_HTHUMB_X = miscc.wxSYS_HTHUMB_X -wxSYS_ICON_X = miscc.wxSYS_ICON_X -wxSYS_ICON_Y = miscc.wxSYS_ICON_Y -wxSYS_ICONSPACING_X = miscc.wxSYS_ICONSPACING_X -wxSYS_ICONSPACING_Y = miscc.wxSYS_ICONSPACING_Y -wxSYS_WINDOWMIN_X = miscc.wxSYS_WINDOWMIN_X -wxSYS_WINDOWMIN_Y = miscc.wxSYS_WINDOWMIN_Y -wxSYS_SCREEN_X = miscc.wxSYS_SCREEN_X -wxSYS_SCREEN_Y = miscc.wxSYS_SCREEN_Y -wxSYS_FRAMESIZE_X = miscc.wxSYS_FRAMESIZE_X -wxSYS_FRAMESIZE_Y = miscc.wxSYS_FRAMESIZE_Y -wxSYS_SMALLICON_X = miscc.wxSYS_SMALLICON_X -wxSYS_SMALLICON_Y = miscc.wxSYS_SMALLICON_Y -wxSYS_HSCROLL_Y = miscc.wxSYS_HSCROLL_Y -wxSYS_VSCROLL_X = miscc.wxSYS_VSCROLL_X -wxSYS_VSCROLL_ARROW_X = miscc.wxSYS_VSCROLL_ARROW_X -wxSYS_VSCROLL_ARROW_Y = miscc.wxSYS_VSCROLL_ARROW_Y -wxSYS_VTHUMB_Y = miscc.wxSYS_VTHUMB_Y -wxSYS_CAPTION_Y = miscc.wxSYS_CAPTION_Y -wxSYS_MENU_Y = miscc.wxSYS_MENU_Y -wxSYS_NETWORK_PRESENT = miscc.wxSYS_NETWORK_PRESENT -wxSYS_PENWINDOWS_PRESENT = miscc.wxSYS_PENWINDOWS_PRESENT -wxSYS_SHOW_SOUNDS = miscc.wxSYS_SHOW_SOUNDS -wxSYS_SWAP_BUTTONS = miscc.wxSYS_SWAP_BUTTONS diff --git a/utils/wxPython/src/msw/misc2.cpp b/utils/wxPython/src/msw/misc2.cpp deleted file mode 100644 index 7812aef78a..0000000000 --- a/utils/wxPython/src/msw/misc2.cpp +++ /dev/null @@ -1,570 +0,0 @@ -/* - * FILE : msw/misc2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif -#define SWIG_init initmisc2c - -#define SWIG_name "misc2c" - -#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"; - - void wxToolTip_Enable(bool flag) { - wxToolTip::Enable(flag); - } - - void wxToolTip_SetDelay(long milliseconds) { - wxToolTip::SetDelay(milliseconds); - } -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_wxFindWindowByLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = (wxWindow *) NULL; - PyObject * _obj0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxFindWindowByLabel",&_obj0,&_argo1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxFindWindowByName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = (wxWindow *) NULL; - PyObject * _obj0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxFindWindowByName",&_obj0,&_argo1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj0) - delete _arg0; -} - 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 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolTip_SetTip",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolTip_GetTip",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolTip_GetWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyMethodDef misc2cMethods[] = { - { "wxToolTip_GetWindow", _wrap_wxToolTip_GetWindow, METH_VARARGS }, - { "wxToolTip_GetTip", _wrap_wxToolTip_GetTip, METH_VARARGS }, - { "wxToolTip_SetTip", _wrap_wxToolTip_SetTip, METH_VARARGS }, - { "new_wxToolTip", _wrap_new_wxToolTip, METH_VARARGS }, - { "wxToolTip_SetDelay", _wrap_wxToolTip_SetDelay, METH_VARARGS }, - { "wxToolTip_Enable", _wrap_wxToolTip_Enable, METH_VARARGS }, - { "wxFindWindowByName", _wrap_wxFindWindowByName, METH_VARARGS }, - { "wxFindWindowByLabel", _wrap_wxFindWindowByLabel, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxToolTip","_class_wxToolTip",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxDC",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxToolTip","_wxToolTip",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void) initmisc2c() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("misc2c", misc2cMethods); - d = PyModule_GetDict(m); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/misc2.py b/utils/wxPython/src/msw/misc2.py deleted file mode 100644 index 7ffd3c947f..0000000000 --- a/utils/wxPython/src/msw/misc2.py +++ /dev/null @@ -1,54 +0,0 @@ -# This file was created automatically by SWIG. -import misc2c - -from windows import * - -from misc import * - -from gdi import * -class wxToolTipPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetTip(self, *_args, **_kwargs): - val = apply(misc2c.wxToolTip_SetTip,(self,) + _args, _kwargs) - return val - def GetTip(self, *_args, **_kwargs): - val = apply(misc2c.wxToolTip_GetTip,(self,) + _args, _kwargs) - return val - def GetWindow(self, *_args, **_kwargs): - val = apply(misc2c.wxToolTip_GetWindow,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxToolTip(wxToolTipPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(misc2c.new_wxToolTip,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxFindWindowByLabel(*_args, **_kwargs): - val = apply(misc2c.wxFindWindowByLabel,_args,_kwargs) - if val: val = wxWindowPtr(val) - return val - -def wxFindWindowByName(*_args, **_kwargs): - val = apply(misc2c.wxFindWindowByName,_args,_kwargs) - if val: val = wxWindowPtr(val) - return val - -wxToolTip_Enable = misc2c.wxToolTip_Enable - -wxToolTip_SetDelay = misc2c.wxToolTip_SetDelay - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/printfw.cpp b/utils/wxPython/src/msw/printfw.cpp deleted file mode 100644 index f363d2bb11..0000000000 --- a/utils/wxPython/src/msw/printfw.cpp +++ /dev/null @@ -1,4576 +0,0 @@ -/* - * FILE : msw/printfw.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif -#define SWIG_init initprintfwc - -#define SWIG_name "printfwc" - -#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"; - -class wxPyPrintout : public wxPrintout { -public: - wxPyPrintout(const wxString& title) : wxPrintout(title) {} - - PYCALLBACK_BOOL_INTINT(wxPrintout, OnBeginDocument); - PYCALLBACK__(wxPrintout, OnEndDocument); - PYCALLBACK__(wxPrintout, OnBeginPrinting); - PYCALLBACK__(wxPrintout, OnEndPrinting); - PYCALLBACK__(wxPrintout, OnPreparePrinting); - PYCALLBACK_BOOL_INT_pure(wxPrintout, OnPrintPage); - PYCALLBACK_BOOL_INT(wxPrintout, HasPage); - - - // Since this one would be tough and ugly to do with the Macros... - void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { - bool hadErr = false; - - if (m_myInst.findCallback("GetPageInfo")) { - PyObject* result = m_myInst.callCallbackObj(Py_BuildValue("()")); - if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) { - PyObject* val; - - val = PyTuple_GetItem(result, 0); - if (PyInt_Check(val)) *minPage = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 1); - if (PyInt_Check(val)) *maxPage = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 2); - if (PyInt_Check(val)) *pageFrom = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 3); - if (PyInt_Check(val)) *pageTo = PyInt_AsLong(val); - else hadErr = true; - } - else - hadErr = true; - - if (hadErr) { - PyErr_SetString(PyExc_TypeError, "GetPageInfo should return a tuple of 4 integers."); - PyErr_Print(); - } - Py_DECREF(result); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif - } - else - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); - } - void base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); - } - - PYPRIVATE; -}; -#ifdef __cplusplus -extern "C" { -#endif -#define new_wxPrintData() (new wxPrintData()) -static PyObject *_wrap_new_wxPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPrintData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintData *)new_wxPrintData(); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPrintData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPrintData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPrintData. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPrintData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_GetNoCopies(_swigobj) (_swigobj->GetNoCopies()) -static PyObject *_wrap_wxPrintData_GetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetNoCopies",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetNoCopies. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintData_GetNoCopies(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetCollate(_swigobj) (_swigobj->GetCollate()) -static PyObject *_wrap_wxPrintData_GetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetCollate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetCollate. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintData_GetCollate(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxPrintData_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetOrientation. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintData_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetPrinterName(_swigobj) (_swigobj->GetPrinterName()) -static PyObject *_wrap_wxPrintData_GetPrinterName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetPrinterName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetPrinterName. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxString & _result_ref = wxPrintData_GetPrinterName(_arg0); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxPrintData_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxPrintData_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetColour. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintData_GetColour(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetDuplex(_swigobj) (_swigobj->GetDuplex()) -static PyObject *_wrap_wxPrintData_GetDuplex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDuplexMode _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetDuplex",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetDuplex. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDuplexMode )wxPrintData_GetDuplex(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetPaperId(_swigobj) (_swigobj->GetPaperId()) -static PyObject *_wrap_wxPrintData_GetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPaperSize _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetPaperId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetPaperId. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPaperSize )wxPrintData_GetPaperId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_GetPaperSize(_swigobj) (_swigobj->GetPaperSize()) -static PyObject *_wrap_wxPrintData_GetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetPaperSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetPaperSize. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxSize & _result_ref = wxPrintData_GetPaperSize(_arg0); - _result = (wxSize *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintData_GetQuality(_swigobj) (_swigobj->GetQuality()) -static PyObject *_wrap_wxPrintData_GetQuality(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintQuality _result; - wxPrintData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintData_GetQuality",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_GetQuality. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintQuality )wxPrintData_GetQuality(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintData_SetNoCopies(_swigobj,_swigarg0) (_swigobj->SetNoCopies(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetNoCopies",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetNoCopies. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetNoCopies(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetCollate(_swigobj,_swigarg0) (_swigobj->SetCollate(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - bool _arg1; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetCollate",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetCollate. Expected _wxPrintData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetCollate(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetOrientation(_swigobj,_swigarg0) (_swigobj->SetOrientation(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetOrientation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetOrientation. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetPrinterName(_swigobj,_swigarg0) (_swigobj->SetPrinterName(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetPrinterName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxString * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintData_SetPrinterName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetPrinterName. Expected _wxPrintData_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; - wxPrintData_SetPrinterName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPrintData_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - bool _arg1; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetColour",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetColour. Expected _wxPrintData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetColour(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetDuplex(_swigobj,_swigarg0) (_swigobj->SetDuplex(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetDuplex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxDuplexMode _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetDuplex",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetDuplex. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetDuplex(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetPaperId(_swigobj,_swigarg0) (_swigobj->SetPaperId(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxPaperSize _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetPaperId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetPaperId. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetPaperId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetPaperSize(_swigobj,_swigarg0) (_swigobj->SetPaperSize(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxSize * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintData_SetPaperSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetPaperSize. Expected _wxPrintData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintData_SetPaperSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetPaperSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintData_SetQuality(_swigobj,_swigarg0) (_swigobj->SetQuality(_swigarg0)) -static PyObject *_wrap_wxPrintData_SetQuality(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _arg0; - wxPrintQuality _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintData_SetQuality",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintData_SetQuality. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData_SetQuality(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPageSetupDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPageSetupDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPageSetupDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnableHelp",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnableMargins",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnableOrientation",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnablePaper",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_EnablePrinter",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetDefaultMinMargins",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnableMargins",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnableOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnablePaper",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnablePrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetEnableHelp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetDefaultInfo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMarginTopLeft",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMarginBottomRight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMinMarginTopLeft",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetMinMarginBottomRight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetPaperId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetPaperSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -static wxPrintData * wxPageSetupDialogData_GetPrintData(wxPageSetupDialogData *self) { - return new wxPrintData(self->GetPrintData()); // force a copy - } -static PyObject *_wrap_wxPageSetupDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPageSetupDialogData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialogData_GetPrintData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - _result = (wxPrintData *)wxPageSetupDialogData_GetPrintData(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_SetDefaultInfo",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPageSetupDialogData_SetDefaultMinMargins",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMarginTopLeft",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMarginBottomRight",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMinMarginTopLeft",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetMinMarginBottomRight",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetPaperId",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperId. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetPaperSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperSize. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPageSetupDialogData_SetPrintData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPrintData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPageSetupDialogData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxPageSetupDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPageSetupDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPageSetupDialog_GetPageSetupData(_swigobj) (_swigobj->GetPageSetupData()) -static PyObject *_wrap_wxPageSetupDialog_GetPageSetupData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _result; - wxPageSetupDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialog_GetPageSetupData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPageSetupDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPageSetupDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPageSetupDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPageSetupDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPrintDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnableHelp",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnablePageNumbers",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnablePrintToFile",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_EnableSelection",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetAllPages",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetCollate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetFromPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetMaxPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetMinPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetNoCopies",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -static wxPrintData * wxPrintDialogData_GetPrintData(wxPrintDialogData *self) { - return new wxPrintData(self->GetPrintData()); // force a copy - } -static PyObject *_wrap_wxPrintDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPrintDialogData * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetPrintData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - _result = (wxPrintData *)wxPrintDialogData_GetPrintData(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialogData_GetPrintToFile(_swigobj) (_swigobj->GetPrintToFile()) -static PyObject *_wrap_wxPrintDialogData_GetPrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetPrintToFile",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialogData_GetToPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetCollate",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetFromPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetMaxPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetMinPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetNoCopies",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintDialogData_SetPrintData",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetPrintData. Expected _wxPrintDialogData_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetPrintToFile",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetSetupDialog",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintDialogData_SetToPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPrintDialogData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:new_wxPrintDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrintDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialog_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrintDialog_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrintDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialog_GetPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialog_GetPrintDC(_swigobj) (_swigobj->GetPrintDC()) -static PyObject *_wrap_wxPrintDialog_GetPrintDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPrintDialog * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialog_GetPrintDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPrintDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialog * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define new_wxPrintout(_swigarg0) (new wxPyPrintout(_swigarg0)) -static PyObject *_wrap_new_wxPrintout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _result; - char * _arg0 = (char *) "Printout"; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|s:new_wxPrintout",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyPrintout *)new_wxPrintout(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyPrintout_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintout__setSelf(_swigobj,_swigarg0) (_swigobj->_setSelf(_swigarg0)) -static PyObject *_wrap_wxPrintout__setSelf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintout__setSelf",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout__setSelf. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout__setSelf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxPyPrintout_Destroy(wxPyPrintout *self) { - delete self; - } -static PyObject *_wrap_wxPrintout_Destroy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_Destroy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_Destroy. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyPrintout_Destroy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_GetDC(_swigobj) (_swigobj->GetDC()) -static PyObject *_wrap_wxPrintout_GetDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetDC",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetDC. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxPrintout_GetDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintout_GetPageSizeMM(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPageSizeMM(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPageSizeMM(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPageSizeMM",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPageSizeMM. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPageSizeMM(_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 wxPrintout_GetPageSizePixels(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPageSizePixels(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPageSizePixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPageSizePixels",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPageSizePixels. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPageSizePixels(_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 wxPrintout_GetPPIPrinter(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPPIPrinter(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPPIPrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPPIPrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPPIPrinter. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPPIPrinter(_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 wxPrintout_GetPPIScreen(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPPIScreen(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_GetPPIScreen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_GetPPIScreen",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_GetPPIScreen. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_GetPPIScreen(_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 wxPrintout_IsPreview(_swigobj) (_swigobj->IsPreview()) -static PyObject *_wrap_wxPrintout_IsPreview(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_IsPreview",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_IsPreview. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintout_IsPreview(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintout_base_OnBeginDocument(_swigobj,_swigarg0,_swigarg1) (_swigobj->base_OnBeginDocument(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrintout_base_OnBeginDocument(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyPrintout * _arg0; - int _arg1; - int _arg2; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxPrintout_base_OnBeginDocument",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnBeginDocument. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintout_base_OnBeginDocument(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintout_base_OnEndDocument(_swigobj) (_swigobj->base_OnEndDocument()) -static PyObject *_wrap_wxPrintout_base_OnEndDocument(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnEndDocument",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnEndDocument. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnEndDocument(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_OnBeginPrinting(_swigobj) (_swigobj->base_OnBeginPrinting()) -static PyObject *_wrap_wxPrintout_base_OnBeginPrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnBeginPrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnBeginPrinting. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnBeginPrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_OnEndPrinting(_swigobj) (_swigobj->base_OnEndPrinting()) -static PyObject *_wrap_wxPrintout_base_OnEndPrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnEndPrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnEndPrinting. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnEndPrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_OnPreparePrinting(_swigobj) (_swigobj->base_OnPreparePrinting()) -static PyObject *_wrap_wxPrintout_base_OnPreparePrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_OnPreparePrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_OnPreparePrinting. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_OnPreparePrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintout_base_GetPageInfo(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->base_GetPageInfo(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxPrintout_base_GetPageInfo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - int * _arg3; - int temp1; - int * _arg4; - int temp2; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} -{ - _arg3 = &temp1; -} -{ - _arg4 = &temp2; -} - if(!PyArg_ParseTuple(args,"O:wxPrintout_base_GetPageInfo",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_GetPageInfo. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintout_base_GetPageInfo(_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 wxPrintout_base_HasPage(_swigobj,_swigarg0) (_swigobj->base_HasPage(_swigarg0)) -static PyObject *_wrap_wxPrintout_base_HasPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyPrintout * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintout_base_HasPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintout_base_HasPage. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintout_base_HasPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPrinter(_swigarg0) (new wxPrinter(_swigarg0)) -static PyObject *_wrap_new_wxPrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _result; - wxPrintDialogData * _arg0 = (wxPrintDialogData *) NULL; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|O:new_wxPrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrinter. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrinter *)new_wxPrinter(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrinter_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPrinter(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPrinter",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPrinter. Expected _wxPrinter_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPrinter(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrinter_CreateAbortWindow(_swigobj,_swigarg0,_swigarg1) (_swigobj->CreateAbortWindow(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPrinter_CreateAbortWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _arg0; - wxWindow * _arg1; - wxPyPrintout * _arg2; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxPrinter_CreateAbortWindow",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_CreateAbortWindow. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_CreateAbortWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPrinter_CreateAbortWindow. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrinter_CreateAbortWindow(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrinter_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrinter_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrinter * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrinter_GetPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_GetPrintDialogData. Expected _wxPrinter_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData & _result_ref = wxPrinter_GetPrintDialogData(_arg0); - _result = (wxPrintDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrinter_Print(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Print(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxPrinter_Print(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrinter * _arg0; - wxWindow * _arg1; - wxPyPrintout * _arg2; - int _arg3 = (int ) TRUE; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|i:wxPrinter_Print",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_Print. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_Print. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPrinter_Print. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrinter_Print(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrinter_PrintDialog(_swigobj,_swigarg0) (_swigobj->PrintDialog(_swigarg0)) -static PyObject *_wrap_wxPrinter_PrintDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPrinter * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrinter_PrintDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_PrintDialog. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_PrintDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxPrinter_PrintDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrinter_ReportError(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->ReportError(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxPrinter_ReportError(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinter * _arg0; - wxWindow * _arg1; - wxPyPrintout * _arg2; - char * _arg3; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOOs:wxPrinter_ReportError",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_ReportError. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_ReportError. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPrinter_ReportError. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrinter_ReportError(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrinter_Setup(_swigobj,_swigarg0) (_swigobj->Setup(_swigarg0)) -static PyObject *_wrap_wxPrinter_Setup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrinter * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrinter_Setup",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrinter_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrinter_Setup. Expected _wxPrinter_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrinter_Setup. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrinter_Setup(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPrintPreview(_swigarg0,_swigarg1,_swigarg2) (new wxPrintPreview(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxPrintPreview(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _result; - wxPyPrintout * _arg0; - wxPyPrintout * _arg1; - wxPrintData * _arg2 = (wxPrintData *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:new_wxPrintPreview",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrintPreview. Expected _wxPyPrintout_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPrintPreview. Expected _wxPyPrintout_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPrintPreview. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintPreview *)new_wxPrintPreview(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintPreview_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetCanvas(_swigobj) (_swigobj->GetCanvas()) -static PyObject *_wrap_wxPrintPreview_GetCanvas(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetCanvas",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetCanvas. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxPrintPreview_GetCanvas(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetCurrentPage(_swigobj) (_swigobj->GetCurrentPage()) -static PyObject *_wrap_wxPrintPreview_GetCurrentPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetCurrentPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetCurrentPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetCurrentPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_GetFrame(_swigobj) (_swigobj->GetFrame()) -static PyObject *_wrap_wxPrintPreview_GetFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetFrame",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetFrame. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFrame *)wxPrintPreview_GetFrame(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetMaxPage(_swigobj) (_swigobj->GetMaxPage()) -static PyObject *_wrap_wxPrintPreview_GetMaxPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetMaxPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetMaxPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetMaxPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_GetMinPage(_swigobj) (_swigobj->GetMinPage()) -static PyObject *_wrap_wxPrintPreview_GetMinPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetMinPage",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetMinPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetMinPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrintPreview_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetPrintDialogData",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetPrintDialogData. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData & _result_ref = wxPrintPreview_GetPrintDialogData(_arg0); - _result = (wxPrintDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetPrintout(_swigobj) (_swigobj->GetPrintout()) -static PyObject *_wrap_wxPrintPreview_GetPrintout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetPrintout",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetPrintout. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyPrintout *)wxPrintPreview_GetPrintout(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyPrintout_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetPrintoutForPrinting(_swigobj) (_swigobj->GetPrintoutForPrinting()) -static PyObject *_wrap_wxPrintPreview_GetPrintoutForPrinting(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyPrintout * _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetPrintoutForPrinting",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetPrintoutForPrinting. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyPrintout *)wxPrintPreview_GetPrintoutForPrinting(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyPrintout_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPrintPreview_GetZoom(_swigobj) (_swigobj->GetZoom()) -static PyObject *_wrap_wxPrintPreview_GetZoom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_GetZoom",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_GetZoom. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintPreview_GetZoom(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxPrintPreview_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintPreview * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPrintPreview_Ok",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_Ok. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintPreview_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_Print(_swigobj,_swigarg0) (_swigobj->Print(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_Print(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintPreview * _arg0; - bool _arg1; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintPreview_Print",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_Print. Expected _wxPrintPreview_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintPreview_Print(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintPreview_SetCanvas(_swigobj,_swigarg0) (_swigobj->SetCanvas(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetCanvas(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintPreview_SetCanvas",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetCanvas. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintPreview_SetCanvas. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetCanvas(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetCurrentPage(_swigobj,_swigarg0) (_swigobj->SetCurrentPage(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetCurrentPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintPreview_SetCurrentPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetCurrentPage. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetCurrentPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetFrame(_swigobj,_swigarg0) (_swigobj->SetFrame(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - wxFrame * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintPreview_SetFrame",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetFrame. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintPreview_SetFrame. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetFrame(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetPrintout(_swigobj,_swigarg0) (_swigobj->SetPrintout(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetPrintout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - wxPyPrintout * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPrintPreview_SetPrintout",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetPrintout. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyPrintout_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintPreview_SetPrintout. Expected _wxPyPrintout_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetPrintout(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintPreview_SetZoom(_swigobj,_swigarg0) (_swigobj->SetZoom(_swigarg0)) -static PyObject *_wrap_wxPrintPreview_SetZoom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintPreview * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPrintPreview_SetZoom",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintPreview_SetZoom. Expected _wxPrintPreview_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintPreview_SetZoom(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxPreviewFrameTowxFrame(void *ptr) { - wxPreviewFrame *src; - wxFrame *dest; - src = (wxPreviewFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxPreviewFrameTowxWindow(void *ptr) { - wxPreviewFrame *src; - wxWindow *dest; - src = (wxPreviewFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPreviewFrameTowxEvtHandler(void *ptr) { - wxPreviewFrame *src; - wxEvtHandler *dest; - src = (wxPreviewFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPreviewFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxPreviewFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxPreviewFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPreviewFrame * _result; - wxPrintPreview * _arg0; - wxFrame * _arg1; - wxString * _arg2; - wxPoint * _arg3 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_FRAME_STYLE; - char * _arg6 = (char *) "frame"; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|OOls:new_wxPreviewFrame",&_argo0,&_argo1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPrintPreview_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPreviewFrame. Expected _wxPrintPreview_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPreviewFrame. Expected _wxFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxPreviewFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxPreviewFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPreviewFrame *)new_wxPreviewFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPreviewFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxPreviewFrame_Initialize(_swigobj) (_swigobj->Initialize()) -static PyObject *_wrap_wxPreviewFrame_Initialize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPreviewFrame * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPreviewFrame_Initialize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPreviewFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPreviewFrame_Initialize. Expected _wxPreviewFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPreviewFrame_Initialize(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef printfwcMethods[] = { - { "wxPreviewFrame_Initialize", _wrap_wxPreviewFrame_Initialize, METH_VARARGS }, - { "new_wxPreviewFrame", _wrap_new_wxPreviewFrame, METH_VARARGS }, - { "wxPrintPreview_SetZoom", _wrap_wxPrintPreview_SetZoom, METH_VARARGS }, - { "wxPrintPreview_SetPrintout", _wrap_wxPrintPreview_SetPrintout, METH_VARARGS }, - { "wxPrintPreview_SetFrame", _wrap_wxPrintPreview_SetFrame, METH_VARARGS }, - { "wxPrintPreview_SetCurrentPage", _wrap_wxPrintPreview_SetCurrentPage, METH_VARARGS }, - { "wxPrintPreview_SetCanvas", _wrap_wxPrintPreview_SetCanvas, METH_VARARGS }, - { "wxPrintPreview_Print", _wrap_wxPrintPreview_Print, METH_VARARGS }, - { "wxPrintPreview_Ok", _wrap_wxPrintPreview_Ok, METH_VARARGS }, - { "wxPrintPreview_GetZoom", _wrap_wxPrintPreview_GetZoom, METH_VARARGS }, - { "wxPrintPreview_GetPrintoutForPrinting", _wrap_wxPrintPreview_GetPrintoutForPrinting, METH_VARARGS }, - { "wxPrintPreview_GetPrintout", _wrap_wxPrintPreview_GetPrintout, METH_VARARGS }, - { "wxPrintPreview_GetPrintDialogData", _wrap_wxPrintPreview_GetPrintDialogData, METH_VARARGS }, - { "wxPrintPreview_GetMinPage", _wrap_wxPrintPreview_GetMinPage, METH_VARARGS }, - { "wxPrintPreview_GetMaxPage", _wrap_wxPrintPreview_GetMaxPage, METH_VARARGS }, - { "wxPrintPreview_GetFrame", _wrap_wxPrintPreview_GetFrame, METH_VARARGS }, - { "wxPrintPreview_GetCurrentPage", _wrap_wxPrintPreview_GetCurrentPage, METH_VARARGS }, - { "wxPrintPreview_GetCanvas", _wrap_wxPrintPreview_GetCanvas, METH_VARARGS }, - { "new_wxPrintPreview", _wrap_new_wxPrintPreview, METH_VARARGS }, - { "wxPrinter_Setup", _wrap_wxPrinter_Setup, METH_VARARGS }, - { "wxPrinter_ReportError", _wrap_wxPrinter_ReportError, METH_VARARGS }, - { "wxPrinter_PrintDialog", _wrap_wxPrinter_PrintDialog, METH_VARARGS }, - { "wxPrinter_Print", _wrap_wxPrinter_Print, METH_VARARGS }, - { "wxPrinter_GetPrintDialogData", _wrap_wxPrinter_GetPrintDialogData, METH_VARARGS }, - { "wxPrinter_CreateAbortWindow", _wrap_wxPrinter_CreateAbortWindow, METH_VARARGS }, - { "delete_wxPrinter", _wrap_delete_wxPrinter, METH_VARARGS }, - { "new_wxPrinter", _wrap_new_wxPrinter, METH_VARARGS }, - { "wxPrintout_base_HasPage", _wrap_wxPrintout_base_HasPage, METH_VARARGS }, - { "wxPrintout_base_GetPageInfo", _wrap_wxPrintout_base_GetPageInfo, METH_VARARGS }, - { "wxPrintout_base_OnPreparePrinting", _wrap_wxPrintout_base_OnPreparePrinting, METH_VARARGS }, - { "wxPrintout_base_OnEndPrinting", _wrap_wxPrintout_base_OnEndPrinting, METH_VARARGS }, - { "wxPrintout_base_OnBeginPrinting", _wrap_wxPrintout_base_OnBeginPrinting, METH_VARARGS }, - { "wxPrintout_base_OnEndDocument", _wrap_wxPrintout_base_OnEndDocument, METH_VARARGS }, - { "wxPrintout_base_OnBeginDocument", _wrap_wxPrintout_base_OnBeginDocument, METH_VARARGS }, - { "wxPrintout_IsPreview", _wrap_wxPrintout_IsPreview, METH_VARARGS }, - { "wxPrintout_GetPPIScreen", _wrap_wxPrintout_GetPPIScreen, METH_VARARGS }, - { "wxPrintout_GetPPIPrinter", _wrap_wxPrintout_GetPPIPrinter, METH_VARARGS }, - { "wxPrintout_GetPageSizePixels", _wrap_wxPrintout_GetPageSizePixels, METH_VARARGS }, - { "wxPrintout_GetPageSizeMM", _wrap_wxPrintout_GetPageSizeMM, METH_VARARGS }, - { "wxPrintout_GetDC", _wrap_wxPrintout_GetDC, METH_VARARGS }, - { "wxPrintout_Destroy", _wrap_wxPrintout_Destroy, METH_VARARGS }, - { "wxPrintout__setSelf", _wrap_wxPrintout__setSelf, METH_VARARGS }, - { "new_wxPrintout", _wrap_new_wxPrintout, METH_VARARGS }, - { "wxPrintDialog_ShowModal", _wrap_wxPrintDialog_ShowModal, METH_VARARGS }, - { "wxPrintDialog_GetPrintDC", _wrap_wxPrintDialog_GetPrintDC, METH_VARARGS }, - { "wxPrintDialog_GetPrintDialogData", _wrap_wxPrintDialog_GetPrintDialogData, METH_VARARGS }, - { "new_wxPrintDialog", _wrap_new_wxPrintDialog, METH_VARARGS }, - { "wxPrintDialogData_SetToPage", _wrap_wxPrintDialogData_SetToPage, METH_VARARGS }, - { "wxPrintDialogData_SetSetupDialog", _wrap_wxPrintDialogData_SetSetupDialog, METH_VARARGS }, - { "wxPrintDialogData_SetPrintToFile", _wrap_wxPrintDialogData_SetPrintToFile, METH_VARARGS }, - { "wxPrintDialogData_SetPrintData", _wrap_wxPrintDialogData_SetPrintData, METH_VARARGS }, - { "wxPrintDialogData_SetNoCopies", _wrap_wxPrintDialogData_SetNoCopies, METH_VARARGS }, - { "wxPrintDialogData_SetMinPage", _wrap_wxPrintDialogData_SetMinPage, METH_VARARGS }, - { "wxPrintDialogData_SetMaxPage", _wrap_wxPrintDialogData_SetMaxPage, METH_VARARGS }, - { "wxPrintDialogData_SetFromPage", _wrap_wxPrintDialogData_SetFromPage, METH_VARARGS }, - { "wxPrintDialogData_SetCollate", _wrap_wxPrintDialogData_SetCollate, METH_VARARGS }, - { "wxPrintDialogData_GetToPage", _wrap_wxPrintDialogData_GetToPage, METH_VARARGS }, - { "wxPrintDialogData_GetPrintToFile", _wrap_wxPrintDialogData_GetPrintToFile, METH_VARARGS }, - { "wxPrintDialogData_GetPrintData", _wrap_wxPrintDialogData_GetPrintData, METH_VARARGS }, - { "wxPrintDialogData_GetNoCopies", _wrap_wxPrintDialogData_GetNoCopies, METH_VARARGS }, - { "wxPrintDialogData_GetMinPage", _wrap_wxPrintDialogData_GetMinPage, METH_VARARGS }, - { "wxPrintDialogData_GetMaxPage", _wrap_wxPrintDialogData_GetMaxPage, METH_VARARGS }, - { "wxPrintDialogData_GetFromPage", _wrap_wxPrintDialogData_GetFromPage, METH_VARARGS }, - { "wxPrintDialogData_GetCollate", _wrap_wxPrintDialogData_GetCollate, METH_VARARGS }, - { "wxPrintDialogData_GetAllPages", _wrap_wxPrintDialogData_GetAllPages, METH_VARARGS }, - { "wxPrintDialogData_EnableSelection", _wrap_wxPrintDialogData_EnableSelection, METH_VARARGS }, - { "wxPrintDialogData_EnablePrintToFile", _wrap_wxPrintDialogData_EnablePrintToFile, METH_VARARGS }, - { "wxPrintDialogData_EnablePageNumbers", _wrap_wxPrintDialogData_EnablePageNumbers, METH_VARARGS }, - { "wxPrintDialogData_EnableHelp", _wrap_wxPrintDialogData_EnableHelp, METH_VARARGS }, - { "delete_wxPrintDialogData", _wrap_delete_wxPrintDialogData, METH_VARARGS }, - { "new_wxPrintDialogData", _wrap_new_wxPrintDialogData, METH_VARARGS }, - { "wxPageSetupDialog_ShowModal", _wrap_wxPageSetupDialog_ShowModal, METH_VARARGS }, - { "wxPageSetupDialog_GetPageSetupData", _wrap_wxPageSetupDialog_GetPageSetupData, METH_VARARGS }, - { "new_wxPageSetupDialog", _wrap_new_wxPageSetupDialog, METH_VARARGS }, - { "wxPageSetupDialogData_SetPrintData", _wrap_wxPageSetupDialogData_SetPrintData, METH_VARARGS }, - { "wxPageSetupDialogData_SetPaperSize", _wrap_wxPageSetupDialogData_SetPaperSize, METH_VARARGS }, - { "wxPageSetupDialogData_SetPaperId", _wrap_wxPageSetupDialogData_SetPaperId, METH_VARARGS }, - { "wxPageSetupDialogData_SetMinMarginBottomRight", _wrap_wxPageSetupDialogData_SetMinMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_SetMinMarginTopLeft", _wrap_wxPageSetupDialogData_SetMinMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_SetMarginBottomRight", _wrap_wxPageSetupDialogData_SetMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_SetMarginTopLeft", _wrap_wxPageSetupDialogData_SetMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_SetDefaultMinMargins", _wrap_wxPageSetupDialogData_SetDefaultMinMargins, METH_VARARGS }, - { "wxPageSetupDialogData_SetDefaultInfo", _wrap_wxPageSetupDialogData_SetDefaultInfo, METH_VARARGS }, - { "wxPageSetupDialogData_GetPrintData", _wrap_wxPageSetupDialogData_GetPrintData, METH_VARARGS }, - { "wxPageSetupDialogData_GetPaperSize", _wrap_wxPageSetupDialogData_GetPaperSize, METH_VARARGS }, - { "wxPageSetupDialogData_GetPaperId", _wrap_wxPageSetupDialogData_GetPaperId, METH_VARARGS }, - { "wxPageSetupDialogData_GetMinMarginBottomRight", _wrap_wxPageSetupDialogData_GetMinMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_GetMinMarginTopLeft", _wrap_wxPageSetupDialogData_GetMinMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_GetMarginBottomRight", _wrap_wxPageSetupDialogData_GetMarginBottomRight, METH_VARARGS }, - { "wxPageSetupDialogData_GetMarginTopLeft", _wrap_wxPageSetupDialogData_GetMarginTopLeft, METH_VARARGS }, - { "wxPageSetupDialogData_GetDefaultInfo", _wrap_wxPageSetupDialogData_GetDefaultInfo, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnableHelp", _wrap_wxPageSetupDialogData_GetEnableHelp, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnablePrinter", _wrap_wxPageSetupDialogData_GetEnablePrinter, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnablePaper", _wrap_wxPageSetupDialogData_GetEnablePaper, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnableOrientation", _wrap_wxPageSetupDialogData_GetEnableOrientation, METH_VARARGS }, - { "wxPageSetupDialogData_GetEnableMargins", _wrap_wxPageSetupDialogData_GetEnableMargins, METH_VARARGS }, - { "wxPageSetupDialogData_GetDefaultMinMargins", _wrap_wxPageSetupDialogData_GetDefaultMinMargins, METH_VARARGS }, - { "wxPageSetupDialogData_EnablePrinter", _wrap_wxPageSetupDialogData_EnablePrinter, METH_VARARGS }, - { "wxPageSetupDialogData_EnablePaper", _wrap_wxPageSetupDialogData_EnablePaper, METH_VARARGS }, - { "wxPageSetupDialogData_EnableOrientation", _wrap_wxPageSetupDialogData_EnableOrientation, METH_VARARGS }, - { "wxPageSetupDialogData_EnableMargins", _wrap_wxPageSetupDialogData_EnableMargins, METH_VARARGS }, - { "wxPageSetupDialogData_EnableHelp", _wrap_wxPageSetupDialogData_EnableHelp, METH_VARARGS }, - { "delete_wxPageSetupDialogData", _wrap_delete_wxPageSetupDialogData, METH_VARARGS }, - { "new_wxPageSetupDialogData", _wrap_new_wxPageSetupDialogData, METH_VARARGS }, - { "wxPrintData_SetQuality", _wrap_wxPrintData_SetQuality, METH_VARARGS }, - { "wxPrintData_SetPaperSize", _wrap_wxPrintData_SetPaperSize, METH_VARARGS }, - { "wxPrintData_SetPaperId", _wrap_wxPrintData_SetPaperId, METH_VARARGS }, - { "wxPrintData_SetDuplex", _wrap_wxPrintData_SetDuplex, METH_VARARGS }, - { "wxPrintData_SetColour", _wrap_wxPrintData_SetColour, METH_VARARGS }, - { "wxPrintData_SetPrinterName", _wrap_wxPrintData_SetPrinterName, METH_VARARGS }, - { "wxPrintData_SetOrientation", _wrap_wxPrintData_SetOrientation, METH_VARARGS }, - { "wxPrintData_SetCollate", _wrap_wxPrintData_SetCollate, METH_VARARGS }, - { "wxPrintData_SetNoCopies", _wrap_wxPrintData_SetNoCopies, METH_VARARGS }, - { "wxPrintData_GetQuality", _wrap_wxPrintData_GetQuality, METH_VARARGS }, - { "wxPrintData_GetPaperSize", _wrap_wxPrintData_GetPaperSize, METH_VARARGS }, - { "wxPrintData_GetPaperId", _wrap_wxPrintData_GetPaperId, METH_VARARGS }, - { "wxPrintData_GetDuplex", _wrap_wxPrintData_GetDuplex, METH_VARARGS }, - { "wxPrintData_GetColour", _wrap_wxPrintData_GetColour, METH_VARARGS }, - { "wxPrintData_GetPrinterName", _wrap_wxPrintData_GetPrinterName, METH_VARARGS }, - { "wxPrintData_GetOrientation", _wrap_wxPrintData_GetOrientation, METH_VARARGS }, - { "wxPrintData_GetCollate", _wrap_wxPrintData_GetCollate, METH_VARARGS }, - { "wxPrintData_GetNoCopies", _wrap_wxPrintData_GetNoCopies, METH_VARARGS }, - { "delete_wxPrintData", _wrap_delete_wxPrintData, METH_VARARGS }, - { "new_wxPrintData", _wrap_new_wxPrintData, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0}, - { "_wxPrinter","_class_wxPrinter",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxPyPrintout","_class_wxPyPrintout",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxPrintDialogData","_wxPrintDialogData",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_wxPrintPreview","_class_wxPrintPreview",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_class_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_class_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_class_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxPageSetupDialog","_class_wxPageSetupDialog",0}, - { "_class_wxPrinter","_wxPrinter",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxPyPrintout","_wxPyPrintout",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPrintDialog","_class_wxPrintDialog",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_wxPrintData","_class_wxPrintData",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_class_wxPreviewFrame","_wxPreviewFrame",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_class_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel}, - { "_class_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_class_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_class_wxWindow","_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_class_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_class_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_class_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_class_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_wxPrintDialogData","_class_wxPrintDialogData",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxPrintDialog","_wxPrintDialog",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog}, - { "_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_wxFrame","_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_wxFrame","_class_wxFrame",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxPrintPreview","_wxPrintPreview",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_class_wxPageSetupDialog","_wxPageSetupDialog",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_wxPreviewFrame","_class_wxPreviewFrame",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_wxEvtHandler","_wxPreviewFrame",SwigwxPreviewFrameTowxEvtHandler}, - { "_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_class_wxPrintData","_wxPrintData",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_wxWindow","_wxPreviewFrame",SwigwxPreviewFrameTowxWindow}, - { "_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow}, - { "_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_class_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_class_wxFrame","_wxPreviewFrame",SwigwxPreviewFrameTowxFrame}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void) initprintfwc() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("printfwc", printfwcMethods); - d = PyModule_GetDict(m); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/printfw.py b/utils/wxPython/src/msw/printfw.py deleted file mode 100644 index df3356033f..0000000000 --- a/utils/wxPython/src/msw/printfw.py +++ /dev/null @@ -1,521 +0,0 @@ -# This file was created automatically by SWIG. -import printfwc - -from misc import * - -from windows import * - -from gdi import * - -from cmndlgs import * - -from frames import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxPrintDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPrintData(self) - def GetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetNoCopies,(self,) + _args, _kwargs) - return val - def GetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetCollate,(self,) + _args, _kwargs) - return val - def GetOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetOrientation,(self,) + _args, _kwargs) - return val - def GetPrinterName(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetPrinterName,(self,) + _args, _kwargs) - return val - def GetColour(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetColour,(self,) + _args, _kwargs) - return val - def GetDuplex(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetDuplex,(self,) + _args, _kwargs) - return val - def GetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetPaperId,(self,) + _args, _kwargs) - return val - def GetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetPaperSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) - return val - def GetQuality(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_GetQuality,(self,) + _args, _kwargs) - return val - def SetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetNoCopies,(self,) + _args, _kwargs) - return val - def SetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetCollate,(self,) + _args, _kwargs) - return val - def SetOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetOrientation,(self,) + _args, _kwargs) - return val - def SetPrinterName(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetPrinterName,(self,) + _args, _kwargs) - return val - def SetColour(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetColour,(self,) + _args, _kwargs) - return val - def SetDuplex(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetDuplex,(self,) + _args, _kwargs) - return val - def SetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetPaperId,(self,) + _args, _kwargs) - return val - def SetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetPaperSize,(self,) + _args, _kwargs) - return val - def SetQuality(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintData_SetQuality,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintData(wxPrintDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintData,_args,_kwargs) - self.thisown = 1 - - - - -class wxPageSetupDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPageSetupDialogData(self) - def EnableHelp(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnableHelp,(self,) + _args, _kwargs) - return val - def EnableMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnableMargins,(self,) + _args, _kwargs) - return val - def EnableOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnableOrientation,(self,) + _args, _kwargs) - return val - def EnablePaper(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnablePaper,(self,) + _args, _kwargs) - return val - def EnablePrinter(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_EnablePrinter,(self,) + _args, _kwargs) - return val - def GetDefaultMinMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetDefaultMinMargins,(self,) + _args, _kwargs) - return val - def GetEnableMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnableMargins,(self,) + _args, _kwargs) - return val - def GetEnableOrientation(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnableOrientation,(self,) + _args, _kwargs) - return val - def GetEnablePaper(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnablePaper,(self,) + _args, _kwargs) - return val - def GetEnablePrinter(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnablePrinter,(self,) + _args, _kwargs) - return val - def GetEnableHelp(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetEnableHelp,(self,) + _args, _kwargs) - return val - def GetDefaultInfo(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetDefaultInfo,(self,) + _args, _kwargs) - return val - def GetMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMarginTopLeft,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMarginBottomRight,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetMinMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMinMarginTopLeft,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetMinMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetMinMarginBottomRight,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetPaperId,(self,) + _args, _kwargs) - return val - def GetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetPaperSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_GetPrintData,(self,) + _args, _kwargs) - if val: val = wxPrintDataPtr(val) ; val.thisown = 1 - return val - def SetDefaultInfo(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetDefaultInfo,(self,) + _args, _kwargs) - return val - def SetDefaultMinMargins(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetDefaultMinMargins,(self,) + _args, _kwargs) - return val - def SetMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMarginTopLeft,(self,) + _args, _kwargs) - return val - def SetMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMarginBottomRight,(self,) + _args, _kwargs) - return val - def SetMinMarginTopLeft(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMinMarginTopLeft,(self,) + _args, _kwargs) - return val - def SetMinMarginBottomRight(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetMinMarginBottomRight,(self,) + _args, _kwargs) - return val - def SetPaperId(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetPaperId,(self,) + _args, _kwargs) - return val - def SetPaperSize(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetPaperSize,(self,) + _args, _kwargs) - return val - def SetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialogData_SetPrintData,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPageSetupDialogData(wxPageSetupDialogDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPageSetupDialogData,_args,_kwargs) - self.thisown = 1 - - - - -class wxPageSetupDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPageSetupData(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialog_GetPageSetupData,(self,) + _args, _kwargs) - if val: val = wxPageSetupDialogDataPtr(val) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(printfwc.wxPageSetupDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPageSetupDialog(wxPageSetupDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPageSetupDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPrintDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPrintDialogData(self) - def EnableHelp(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnableHelp,(self,) + _args, _kwargs) - return val - def EnablePageNumbers(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnablePageNumbers,(self,) + _args, _kwargs) - return val - def EnablePrintToFile(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnablePrintToFile,(self,) + _args, _kwargs) - return val - def EnableSelection(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_EnableSelection,(self,) + _args, _kwargs) - return val - def GetAllPages(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetAllPages,(self,) + _args, _kwargs) - return val - def GetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetCollate,(self,) + _args, _kwargs) - return val - def GetFromPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetFromPage,(self,) + _args, _kwargs) - return val - def GetMaxPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetMaxPage,(self,) + _args, _kwargs) - return val - def GetMinPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetMinPage,(self,) + _args, _kwargs) - return val - def GetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetNoCopies,(self,) + _args, _kwargs) - return val - def GetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetPrintData,(self,) + _args, _kwargs) - if val: val = wxPrintDataPtr(val) ; val.thisown = 1 - return val - def GetPrintToFile(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetPrintToFile,(self,) + _args, _kwargs) - return val - def GetToPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_GetToPage,(self,) + _args, _kwargs) - return val - def SetCollate(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetCollate,(self,) + _args, _kwargs) - return val - def SetFromPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetFromPage,(self,) + _args, _kwargs) - return val - def SetMaxPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetMaxPage,(self,) + _args, _kwargs) - return val - def SetMinPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetMinPage,(self,) + _args, _kwargs) - return val - def SetNoCopies(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetNoCopies,(self,) + _args, _kwargs) - return val - def SetPrintData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetPrintData,(self,) + _args, _kwargs) - return val - def SetPrintToFile(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetPrintToFile,(self,) + _args, _kwargs) - return val - def SetSetupDialog(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetSetupDialog,(self,) + _args, _kwargs) - return val - def SetToPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialogData_SetToPage,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintDialogData(wxPrintDialogDataPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintDialogData,_args,_kwargs) - self.thisown = 1 - - - - -class wxPrintDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPrintDialogData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialog_GetPrintDialogData,(self,) + _args, _kwargs) - if val: val = wxPrintDialogDataPtr(val) - return val - def GetPrintDC(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialog_GetPrintDC,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) ; val.thisown = 1 - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintDialog_ShowModal,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintDialog(wxPrintDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPrintoutPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def _setSelf(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout__setSelf,(self,) + _args, _kwargs) - return val - def Destroy(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_Destroy,(self,) + _args, _kwargs) - return val - def GetDC(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetDC,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) - return val - def GetPageSizeMM(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPageSizeMM,(self,) + _args, _kwargs) - return val - def GetPageSizePixels(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPageSizePixels,(self,) + _args, _kwargs) - return val - def GetPPIPrinter(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPPIPrinter,(self,) + _args, _kwargs) - return val - def GetPPIScreen(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_GetPPIScreen,(self,) + _args, _kwargs) - return val - def IsPreview(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_IsPreview,(self,) + _args, _kwargs) - return val - def base_OnBeginDocument(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnBeginDocument,(self,) + _args, _kwargs) - return val - def base_OnEndDocument(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnEndDocument,(self,) + _args, _kwargs) - return val - def base_OnBeginPrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnBeginPrinting,(self,) + _args, _kwargs) - return val - def base_OnEndPrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnEndPrinting,(self,) + _args, _kwargs) - return val - def base_OnPreparePrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_OnPreparePrinting,(self,) + _args, _kwargs) - return val - def base_GetPageInfo(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_GetPageInfo,(self,) + _args, _kwargs) - return val - def base_HasPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintout_base_HasPage,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintout(wxPrintoutPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintout,_args,_kwargs) - self.thisown = 1 - self._setSelf(self) - - - - -class wxPrinterPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,printfwc=printfwc): - if self.thisown == 1 : - printfwc.delete_wxPrinter(self) - def CreateAbortWindow(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_CreateAbortWindow,(self,) + _args, _kwargs) - return val - def GetPrintDialogData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_GetPrintDialogData,(self,) + _args, _kwargs) - if val: val = wxPrintDialogDataPtr(val) - return val - def Print(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_Print,(self,) + _args, _kwargs) - return val - def PrintDialog(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_PrintDialog,(self,) + _args, _kwargs) - if val: val = wxDCPtr(val) - return val - def ReportError(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_ReportError,(self,) + _args, _kwargs) - return val - def Setup(self, *_args, **_kwargs): - val = apply(printfwc.wxPrinter_Setup,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrinter(wxPrinterPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrinter,_args,_kwargs) - self.thisown = 1 - - - - -class wxPrintPreviewPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCanvas(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetCanvas,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetCurrentPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetCurrentPage,(self,) + _args, _kwargs) - return val - def GetFrame(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetFrame,(self,) + _args, _kwargs) - if val: val = wxFramePtr(val) - return val - def GetMaxPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetMaxPage,(self,) + _args, _kwargs) - return val - def GetMinPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetMinPage,(self,) + _args, _kwargs) - return val - def GetPrintDialogData(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetPrintDialogData,(self,) + _args, _kwargs) - if val: val = wxPrintDialogDataPtr(val) - return val - def GetPrintout(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetPrintout,(self,) + _args, _kwargs) - if val: val = wxPrintoutPtr(val) - return val - def GetPrintoutForPrinting(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetPrintoutForPrinting,(self,) + _args, _kwargs) - if val: val = wxPrintoutPtr(val) - return val - def GetZoom(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_GetZoom,(self,) + _args, _kwargs) - return val - def Ok(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_Ok,(self,) + _args, _kwargs) - return val - def Print(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_Print,(self,) + _args, _kwargs) - return val - def SetCanvas(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetCanvas,(self,) + _args, _kwargs) - return val - def SetCurrentPage(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetCurrentPage,(self,) + _args, _kwargs) - return val - def SetFrame(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetFrame,(self,) + _args, _kwargs) - return val - def SetPrintout(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetPrintout,(self,) + _args, _kwargs) - return val - def SetZoom(self, *_args, **_kwargs): - val = apply(printfwc.wxPrintPreview_SetZoom,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPrintPreview(wxPrintPreviewPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPrintPreview,_args,_kwargs) - self.thisown = 1 - - - - -class wxPreviewFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Initialize(self, *_args, **_kwargs): - val = apply(printfwc.wxPreviewFrame_Initialize,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxPreviewFrame(wxPreviewFramePtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(printfwc.new_wxPreviewFrame,_args,_kwargs) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/stattool.cpp b/utils/wxPython/src/msw/stattool.cpp deleted file mode 100644 index 85a959ef04..0000000000 --- a/utils/wxPython/src/msw/stattool.cpp +++ /dev/null @@ -1,2779 +0,0 @@ -/* - * FILE : msw/stattool.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxST_SIZEGRIP; - char * _arg5 = (char *) "statusBar"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxStatusBar",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStatusBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStatusBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxStatusBar_GetFieldRect",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxStatusBar_GetFieldsCount(_swigobj) (_swigobj->GetFieldsCount()) -static PyObject *_wrap_wxStatusBar_GetFieldsCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxStatusBar * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStatusBar_GetFieldsCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxStatusBar_GetStatusText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxStatusBar_DrawField",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawField. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOi:wxStatusBar_DrawFieldText",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawFieldText. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxStatusBar_InitColours",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxStatusBar_SetFieldsCount",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxStatusBar_SetStatusText",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxStatusBar_SetStatusWidths",&_argo0,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxToolBarTool(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxToolBarTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxToolBarTool",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oll:wxToolBarTool_SetSize",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_GetWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_GetHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_toolStyle_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_toolStyle_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_clientData_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_clientData_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_clientData_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_index_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_index_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxToolBarTool_m_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxToolBarTool_m_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxToolBarTool_m_width_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_width_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxToolBarTool_m_height_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_height_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_toggleState_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_toggleState_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_isToggle_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_isToggle_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_deleteSecondBitmap_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_deleteSecondBitmap_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_enabled_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_enabled_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_bitmap1_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap1_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_bitmap1_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_bitmap2_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap2_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_bitmap2_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBarTool_m_isMenuCommand_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_isMenuCommand_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_shortHelpString_set",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_shortHelpString_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBarTool_m_longHelpString_set",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBarTool_m_longHelpString_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxTB_HORIZONTAL|wxNO_BORDER; - char * _arg5 = (char *) "toolBar"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxToolBar",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxToolBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxToolBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxToolBar_AddSeparator(_swigobj) (_swigobj->AddSeparator()) -static PyObject *_wrap_wxToolBar_AddSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_AddSeparator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxBitmap *) &wxNullBitmap; - int _arg4 = (int ) FALSE; - long _arg5 = (long ) -1; - long _arg6 = (long ) -1; - wxString * _arg7 = (wxString *) &wxPyEmptyStr; - wxString * _arg8 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj7 = 0; - PyObject * _obj8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OillOO:wxToolBar_AddTool",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5,&_arg6,&_obj7,&_obj8)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxToolBar_AddTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (wxString *) &wxPyEmptyStr; - wxString * _arg4 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _obj3 = 0; - PyObject * _obj4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OO:wxToolBar_AddSimpleTool",&_argo0,&_arg1,&_argo2,&_obj3,&_obj4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddSimpleTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxToolBar_EnableTool",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Off:wxToolBar_FindToolForPosition",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxToolBar_GetToolSize(_swigobj) (_swigobj->GetToolSize()) -static PyObject *_wrap_wxToolBar_GetToolSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxToolBar * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_GetToolSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_GetToolBitmapSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBar_SetToolBitmapSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolBitmapSize. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_GetMaxSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolEnabled",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolLongHelp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_GetToolPacking",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_GetToolSeparation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolShortHelp",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_GetToolState",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxToolBar_Realize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxToolBar_SetToolLongHelp",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxToolBar_SetToolShortHelp",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxToolBar_SetMargins",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetMargins. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_SetToolPacking",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxToolBar_SetToolSeparation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxToolBar_ToggleTool",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxToolBar_SetToolSeparation", _wrap_wxToolBar_SetToolSeparation, METH_VARARGS }, - { "wxToolBar_SetToolPacking", _wrap_wxToolBar_SetToolPacking, METH_VARARGS }, - { "wxToolBar_SetMargins", _wrap_wxToolBar_SetMargins, METH_VARARGS }, - { "wxToolBar_SetToolShortHelp", _wrap_wxToolBar_SetToolShortHelp, METH_VARARGS }, - { "wxToolBar_SetToolLongHelp", _wrap_wxToolBar_SetToolLongHelp, METH_VARARGS }, - { "wxToolBar_Realize", _wrap_wxToolBar_Realize, METH_VARARGS }, - { "wxToolBar_GetToolState", _wrap_wxToolBar_GetToolState, METH_VARARGS }, - { "wxToolBar_GetToolShortHelp", _wrap_wxToolBar_GetToolShortHelp, METH_VARARGS }, - { "wxToolBar_GetToolSeparation", _wrap_wxToolBar_GetToolSeparation, METH_VARARGS }, - { "wxToolBar_GetToolPacking", _wrap_wxToolBar_GetToolPacking, METH_VARARGS }, - { "wxToolBar_GetToolLongHelp", _wrap_wxToolBar_GetToolLongHelp, METH_VARARGS }, - { "wxToolBar_GetToolEnabled", _wrap_wxToolBar_GetToolEnabled, METH_VARARGS }, - { "wxToolBar_GetMaxSize", _wrap_wxToolBar_GetMaxSize, METH_VARARGS }, - { "wxToolBar_SetToolBitmapSize", _wrap_wxToolBar_SetToolBitmapSize, METH_VARARGS }, - { "wxToolBar_GetToolBitmapSize", _wrap_wxToolBar_GetToolBitmapSize, METH_VARARGS }, - { "wxToolBar_GetToolSize", _wrap_wxToolBar_GetToolSize, METH_VARARGS }, - { "wxToolBar_FindToolForPosition", _wrap_wxToolBar_FindToolForPosition, METH_VARARGS }, - { "wxToolBar_EnableTool", _wrap_wxToolBar_EnableTool, METH_VARARGS }, - { "wxToolBar_AddSimpleTool", _wrap_wxToolBar_AddSimpleTool, METH_VARARGS }, - { "wxToolBar_AddTool", _wrap_wxToolBar_AddTool, METH_VARARGS }, - { "wxToolBar_AddSeparator", _wrap_wxToolBar_AddSeparator, METH_VARARGS }, - { "new_wxToolBar", _wrap_new_wxToolBar, METH_VARARGS }, - { "wxToolBarTool_m_longHelpString_get", _wrap_wxToolBarTool_m_longHelpString_get, METH_VARARGS }, - { "wxToolBarTool_m_longHelpString_set", _wrap_wxToolBarTool_m_longHelpString_set, METH_VARARGS }, - { "wxToolBarTool_m_shortHelpString_get", _wrap_wxToolBarTool_m_shortHelpString_get, METH_VARARGS }, - { "wxToolBarTool_m_shortHelpString_set", _wrap_wxToolBarTool_m_shortHelpString_set, METH_VARARGS }, - { "wxToolBarTool_m_isMenuCommand_get", _wrap_wxToolBarTool_m_isMenuCommand_get, METH_VARARGS }, - { "wxToolBarTool_m_isMenuCommand_set", _wrap_wxToolBarTool_m_isMenuCommand_set, METH_VARARGS }, - { "wxToolBarTool_m_bitmap2_get", _wrap_wxToolBarTool_m_bitmap2_get, METH_VARARGS }, - { "wxToolBarTool_m_bitmap2_set", _wrap_wxToolBarTool_m_bitmap2_set, METH_VARARGS }, - { "wxToolBarTool_m_bitmap1_get", _wrap_wxToolBarTool_m_bitmap1_get, METH_VARARGS }, - { "wxToolBarTool_m_bitmap1_set", _wrap_wxToolBarTool_m_bitmap1_set, METH_VARARGS }, - { "wxToolBarTool_m_enabled_get", _wrap_wxToolBarTool_m_enabled_get, METH_VARARGS }, - { "wxToolBarTool_m_enabled_set", _wrap_wxToolBarTool_m_enabled_set, METH_VARARGS }, - { "wxToolBarTool_m_deleteSecondBitmap_get", _wrap_wxToolBarTool_m_deleteSecondBitmap_get, METH_VARARGS }, - { "wxToolBarTool_m_deleteSecondBitmap_set", _wrap_wxToolBarTool_m_deleteSecondBitmap_set, METH_VARARGS }, - { "wxToolBarTool_m_isToggle_get", _wrap_wxToolBarTool_m_isToggle_get, METH_VARARGS }, - { "wxToolBarTool_m_isToggle_set", _wrap_wxToolBarTool_m_isToggle_set, METH_VARARGS }, - { "wxToolBarTool_m_toggleState_get", _wrap_wxToolBarTool_m_toggleState_get, METH_VARARGS }, - { "wxToolBarTool_m_toggleState_set", _wrap_wxToolBarTool_m_toggleState_set, METH_VARARGS }, - { "wxToolBarTool_m_height_get", _wrap_wxToolBarTool_m_height_get, METH_VARARGS }, - { "wxToolBarTool_m_height_set", _wrap_wxToolBarTool_m_height_set, METH_VARARGS }, - { "wxToolBarTool_m_width_get", _wrap_wxToolBarTool_m_width_get, METH_VARARGS }, - { "wxToolBarTool_m_width_set", _wrap_wxToolBarTool_m_width_set, METH_VARARGS }, - { "wxToolBarTool_m_y_get", _wrap_wxToolBarTool_m_y_get, METH_VARARGS }, - { "wxToolBarTool_m_y_set", _wrap_wxToolBarTool_m_y_set, METH_VARARGS }, - { "wxToolBarTool_m_x_get", _wrap_wxToolBarTool_m_x_get, METH_VARARGS }, - { "wxToolBarTool_m_x_set", _wrap_wxToolBarTool_m_x_set, METH_VARARGS }, - { "wxToolBarTool_m_index_get", _wrap_wxToolBarTool_m_index_get, METH_VARARGS }, - { "wxToolBarTool_m_index_set", _wrap_wxToolBarTool_m_index_set, METH_VARARGS }, - { "wxToolBarTool_m_clientData_get", _wrap_wxToolBarTool_m_clientData_get, METH_VARARGS }, - { "wxToolBarTool_m_clientData_set", _wrap_wxToolBarTool_m_clientData_set, METH_VARARGS }, - { "wxToolBarTool_m_toolStyle_get", _wrap_wxToolBarTool_m_toolStyle_get, METH_VARARGS }, - { "wxToolBarTool_m_toolStyle_set", _wrap_wxToolBarTool_m_toolStyle_set, METH_VARARGS }, - { "wxToolBarTool_GetHeight", _wrap_wxToolBarTool_GetHeight, METH_VARARGS }, - { "wxToolBarTool_GetWidth", _wrap_wxToolBarTool_GetWidth, METH_VARARGS }, - { "wxToolBarTool_SetSize", _wrap_wxToolBarTool_SetSize, METH_VARARGS }, - { "delete_wxToolBarTool", _wrap_delete_wxToolBarTool, METH_VARARGS }, - { "new_wxToolBarTool", _wrap_new_wxToolBarTool, METH_VARARGS }, - { "wxStatusBar_SetStatusWidths", _wrap_wxStatusBar_SetStatusWidths, METH_VARARGS }, - { "wxStatusBar_SetStatusText", _wrap_wxStatusBar_SetStatusText, METH_VARARGS }, - { "wxStatusBar_SetFieldsCount", _wrap_wxStatusBar_SetFieldsCount, METH_VARARGS }, - { "wxStatusBar_InitColours", _wrap_wxStatusBar_InitColours, METH_VARARGS }, - { "wxStatusBar_DrawFieldText", _wrap_wxStatusBar_DrawFieldText, METH_VARARGS }, - { "wxStatusBar_DrawField", _wrap_wxStatusBar_DrawField, METH_VARARGS }, - { "wxStatusBar_GetStatusText", _wrap_wxStatusBar_GetStatusText, METH_VARARGS }, - { "wxStatusBar_GetFieldsCount", _wrap_wxStatusBar_GetFieldsCount, METH_VARARGS }, - { "wxStatusBar_GetFieldRect", _wrap_wxStatusBar_GetFieldRect, METH_VARARGS }, - { "new_wxStatusBar", _wrap_new_wxStatusBar, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow}, - { "_class_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow}, - { "_class_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_class_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl}, - { "_wxControl","_wxToolBar",SwigwxToolBarTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl}, - { "_class_wxControl","_wxToolBar",SwigwxToolBarTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow}, - { "_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow}, - { "_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/stattool.py b/utils/wxPython/src/msw/stattool.py deleted file mode 100644 index 35d725612d..0000000000 --- a/utils/wxPython/src/msw/stattool.py +++ /dev/null @@ -1,261 +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, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_GetFieldRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetFieldsCount(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_GetFieldsCount,(self,) + _args, _kwargs) - return val - def GetStatusText(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_GetStatusText,(self,) + _args, _kwargs) - return val - def DrawField(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_DrawField,(self,) + _args, _kwargs) - return val - def DrawFieldText(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_DrawFieldText,(self,) + _args, _kwargs) - return val - def InitColours(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_InitColours,(self,) + _args, _kwargs) - return val - def SetFieldsCount(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_SetFieldsCount,(self,) + _args, _kwargs) - return val - def SetStatusText(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_SetStatusText,(self,) + _args, _kwargs) - return val - def SetStatusWidths(self, *_args, **_kwargs): - val = apply(stattoolc.wxStatusBar_SetStatusWidths,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxStatusBar(wxStatusBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(stattoolc.new_wxStatusBar,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxToolBarToolPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,stattoolc=stattoolc): - if self.thisown == 1 : - stattoolc.delete_wxToolBarTool(self) - def SetSize(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarTool_SetSize,(self,) + _args, _kwargs) - return val - def GetWidth(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarTool_GetWidth,(self,) + _args, _kwargs) - return val - def GetHeight(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBarTool_GetHeight,(self,) + _args, _kwargs) - return val - def __setattr__(self,name,value): - if name == "m_toolStyle" : - stattoolc.wxToolBarTool_m_toolStyle_set(self,value) - return - if name == "m_clientData" : - stattoolc.wxToolBarTool_m_clientData_set(self,value) - return - if name == "m_index" : - stattoolc.wxToolBarTool_m_index_set(self,value) - return - if name == "m_x" : - stattoolc.wxToolBarTool_m_x_set(self,value) - return - if name == "m_y" : - stattoolc.wxToolBarTool_m_y_set(self,value) - return - if name == "m_width" : - stattoolc.wxToolBarTool_m_width_set(self,value) - return - if name == "m_height" : - stattoolc.wxToolBarTool_m_height_set(self,value) - return - if name == "m_toggleState" : - stattoolc.wxToolBarTool_m_toggleState_set(self,value) - return - if name == "m_isToggle" : - stattoolc.wxToolBarTool_m_isToggle_set(self,value) - return - if name == "m_deleteSecondBitmap" : - stattoolc.wxToolBarTool_m_deleteSecondBitmap_set(self,value) - return - if name == "m_enabled" : - stattoolc.wxToolBarTool_m_enabled_set(self,value) - return - if name == "m_bitmap1" : - stattoolc.wxToolBarTool_m_bitmap1_set(self,value.this) - return - if name == "m_bitmap2" : - stattoolc.wxToolBarTool_m_bitmap2_set(self,value.this) - return - if name == "m_isMenuCommand" : - stattoolc.wxToolBarTool_m_isMenuCommand_set(self,value) - return - if name == "m_shortHelpString" : - stattoolc.wxToolBarTool_m_shortHelpString_set(self,value) - return - if name == "m_longHelpString" : - stattoolc.wxToolBarTool_m_longHelpString_set(self,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_toolStyle" : - return stattoolc.wxToolBarTool_m_toolStyle_get(self) - if name == "m_clientData" : - return stattoolc.wxToolBarTool_m_clientData_get(self) - if name == "m_index" : - return stattoolc.wxToolBarTool_m_index_get(self) - if name == "m_x" : - return stattoolc.wxToolBarTool_m_x_get(self) - if name == "m_y" : - return stattoolc.wxToolBarTool_m_y_get(self) - if name == "m_width" : - return stattoolc.wxToolBarTool_m_width_get(self) - if name == "m_height" : - return stattoolc.wxToolBarTool_m_height_get(self) - if name == "m_toggleState" : - return stattoolc.wxToolBarTool_m_toggleState_get(self) - if name == "m_isToggle" : - return stattoolc.wxToolBarTool_m_isToggle_get(self) - if name == "m_deleteSecondBitmap" : - return stattoolc.wxToolBarTool_m_deleteSecondBitmap_get(self) - if name == "m_enabled" : - return stattoolc.wxToolBarTool_m_enabled_get(self) - if name == "m_bitmap1" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap1_get(self)) - if name == "m_bitmap2" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap2_get(self)) - if name == "m_isMenuCommand" : - return stattoolc.wxToolBarTool_m_isMenuCommand_get(self) - if name == "m_shortHelpString" : - return stattoolc.wxToolBarTool_m_shortHelpString_get(self) - if name == "m_longHelpString" : - return stattoolc.wxToolBarTool_m_longHelpString_get(self) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxToolBarTool(wxToolBarToolPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(stattoolc.new_wxToolBarTool,_args,_kwargs) - self.thisown = 1 - - - - -class wxToolBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AddSeparator(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_AddSeparator,(self,) + _args, _kwargs) - return val - def AddTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_AddTool,(self,) + _args, _kwargs) - if val: val = wxToolBarToolPtr(val) - return val - def AddSimpleTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_AddSimpleTool,(self,) + _args, _kwargs) - if val: val = wxToolBarToolPtr(val) - return val - def EnableTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_EnableTool,(self,) + _args, _kwargs) - return val - def FindToolForPosition(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_FindToolForPosition,(self,) + _args, _kwargs) - if val: val = wxToolBarToolPtr(val) - return val - def GetToolSize(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetToolBitmapSize(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolBitmapSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def SetToolBitmapSize(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolBitmapSize,(self,) + _args, _kwargs) - return val - def GetMaxSize(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetMaxSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetToolEnabled(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolEnabled,(self,) + _args, _kwargs) - return val - def GetToolLongHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolLongHelp,(self,) + _args, _kwargs) - return val - def GetToolPacking(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolPacking,(self,) + _args, _kwargs) - return val - def GetToolSeparation(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolSeparation,(self,) + _args, _kwargs) - return val - def GetToolShortHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolShortHelp,(self,) + _args, _kwargs) - return val - def GetToolState(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_GetToolState,(self,) + _args, _kwargs) - return val - def Realize(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_Realize,(self,) + _args, _kwargs) - return val - def SetToolLongHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolLongHelp,(self,) + _args, _kwargs) - return val - def SetToolShortHelp(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolShortHelp,(self,) + _args, _kwargs) - return val - def SetMargins(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetMargins,(self,) + _args, _kwargs) - return val - def SetToolPacking(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolPacking,(self,) + _args, _kwargs) - return val - def SetToolSeparation(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_SetToolSeparation,(self,) + _args, _kwargs) - return val - def ToggleTool(self, *_args, **_kwargs): - val = apply(stattoolc.wxToolBar_ToggleTool,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxToolBar(wxToolBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(stattoolc.new_wxToolBar,_args,_kwargs) - 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 739ee9841c..0000000000 --- a/utils/wxPython/src/msw/utils.cpp +++ /dev/null @@ -1,1306 +0,0 @@ -/* - * FILE : msw/utils.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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; - } -#ifdef __cplusplus -extern "C" { -#endif -#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 = (wxString *) &wxPyEmptyStr; - wxString * _arg1 = (wxString *) &wxPyEmptyStr; - wxString * _arg2 = (wxString *) &wxPyEmptyStr; - wxString * _arg3 = (wxString *) &wxPyEmptyStr; - long _arg4 = (long ) 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxConfig_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxConfig",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_DontCreateOnDemand",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_DeleteAll",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"OO|i:wxConfig_DeleteEntry",&_argo0,&_obj1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_DeleteGroup",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_Exists",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - int tempbool1 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_Flush",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetAppName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetFirstGroup",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetFirstEntry",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxConfig_GetNextGroup",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxConfig_GetNextEntry",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - int tempbool1 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_GetNumberOfEntries",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) FALSE; - PyObject * _argo0 = 0; - int tempbool1 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_GetNumberOfGroups",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetPath",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_GetVendorName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_HasEntry",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_HasGroup",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_IsExpandingEnvVars",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxConfig_IsRecordingDefaults",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxConfig_Read",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (long ) 0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|l:wxConfig_ReadInt",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (double ) 0.0; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|d:wxConfig_ReadFloat",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_SetExpandEnvVars",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxConfig_SetPath",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxConfig_SetRecordDefaults",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxConfig_Write",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOl:wxConfig_WriteInt",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOd:wxConfig_WriteFloat",&_argo0,&_obj1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxConfig_WriteInt", _wrap_wxConfig_WriteInt, METH_VARARGS }, - { "wxConfig_Write", _wrap_wxConfig_Write, METH_VARARGS }, - { "wxConfig_SetRecordDefaults", _wrap_wxConfig_SetRecordDefaults, METH_VARARGS }, - { "wxConfig_SetPath", _wrap_wxConfig_SetPath, METH_VARARGS }, - { "wxConfig_SetExpandEnvVars", _wrap_wxConfig_SetExpandEnvVars, METH_VARARGS }, - { "wxConfig_ReadFloat", _wrap_wxConfig_ReadFloat, METH_VARARGS }, - { "wxConfig_ReadInt", _wrap_wxConfig_ReadInt, METH_VARARGS }, - { "wxConfig_Read", _wrap_wxConfig_Read, METH_VARARGS }, - { "wxConfig_IsRecordingDefaults", _wrap_wxConfig_IsRecordingDefaults, METH_VARARGS }, - { "wxConfig_IsExpandingEnvVars", _wrap_wxConfig_IsExpandingEnvVars, METH_VARARGS }, - { "wxConfig_HasGroup", _wrap_wxConfig_HasGroup, METH_VARARGS }, - { "wxConfig_HasEntry", _wrap_wxConfig_HasEntry, METH_VARARGS }, - { "wxConfig_GetVendorName", _wrap_wxConfig_GetVendorName, METH_VARARGS }, - { "wxConfig_GetPath", _wrap_wxConfig_GetPath, METH_VARARGS }, - { "wxConfig_GetNumberOfGroups", _wrap_wxConfig_GetNumberOfGroups, METH_VARARGS }, - { "wxConfig_GetNumberOfEntries", _wrap_wxConfig_GetNumberOfEntries, METH_VARARGS }, - { "wxConfig_GetNextEntry", _wrap_wxConfig_GetNextEntry, METH_VARARGS }, - { "wxConfig_GetNextGroup", _wrap_wxConfig_GetNextGroup, METH_VARARGS }, - { "wxConfig_GetFirstEntry", _wrap_wxConfig_GetFirstEntry, METH_VARARGS }, - { "wxConfig_GetFirstGroup", _wrap_wxConfig_GetFirstGroup, METH_VARARGS }, - { "wxConfig_GetAppName", _wrap_wxConfig_GetAppName, METH_VARARGS }, - { "wxConfig_Flush", _wrap_wxConfig_Flush, METH_VARARGS }, - { "wxConfig_Exists", _wrap_wxConfig_Exists, METH_VARARGS }, - { "wxConfig_DeleteGroup", _wrap_wxConfig_DeleteGroup, METH_VARARGS }, - { "wxConfig_DeleteEntry", _wrap_wxConfig_DeleteEntry, METH_VARARGS }, - { "wxConfig_DeleteAll", _wrap_wxConfig_DeleteAll, METH_VARARGS }, - { "wxConfig_DontCreateOnDemand", _wrap_wxConfig_DontCreateOnDemand, METH_VARARGS }, - { "delete_wxConfig", _wrap_delete_wxConfig, METH_VARARGS }, - { "new_wxConfig", _wrap_new_wxConfig, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_signed_long","_long",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxConfig","_class_wxConfig",0}, - { "_unsigned_long","_long",0}, - { "_signed_int","_int",0}, - { "_unsigned_short","_short",0}, - { "_signed_short","_short",0}, - { "_unsigned_int","_int",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxConfig","_wxConfig",0}, -{0,0,0}}; - -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); - - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/utils.py b/utils/wxPython/src/msw/utils.py deleted file mode 100644 index 86f4d662d1..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,utilsc=utilsc): - if self.thisown == 1 : - utilsc.delete_wxConfig(self) - def DontCreateOnDemand(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DontCreateOnDemand,(self,) + _args, _kwargs) - return val - def DeleteAll(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DeleteAll,(self,) + _args, _kwargs) - return val - def DeleteEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DeleteEntry,(self,) + _args, _kwargs) - return val - def DeleteGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_DeleteGroup,(self,) + _args, _kwargs) - return val - def Exists(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Exists,(self,) + _args, _kwargs) - return val - def Flush(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Flush,(self,) + _args, _kwargs) - return val - def GetAppName(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetAppName,(self,) + _args, _kwargs) - return val - def GetFirstGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetFirstGroup,(self,) + _args, _kwargs) - return val - def GetFirstEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetFirstEntry,(self,) + _args, _kwargs) - return val - def GetNextGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNextGroup,(self,) + _args, _kwargs) - return val - def GetNextEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNextEntry,(self,) + _args, _kwargs) - return val - def GetNumberOfEntries(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNumberOfEntries,(self,) + _args, _kwargs) - return val - def GetNumberOfGroups(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetNumberOfGroups,(self,) + _args, _kwargs) - return val - def GetPath(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetPath,(self,) + _args, _kwargs) - return val - def GetVendorName(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_GetVendorName,(self,) + _args, _kwargs) - return val - def HasEntry(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_HasEntry,(self,) + _args, _kwargs) - return val - def HasGroup(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_HasGroup,(self,) + _args, _kwargs) - return val - def IsExpandingEnvVars(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_IsExpandingEnvVars,(self,) + _args, _kwargs) - return val - def IsRecordingDefaults(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_IsRecordingDefaults,(self,) + _args, _kwargs) - return val - def Read(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Read,(self,) + _args, _kwargs) - return val - def ReadInt(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_ReadInt,(self,) + _args, _kwargs) - return val - def ReadFloat(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_ReadFloat,(self,) + _args, _kwargs) - return val - def SetExpandEnvVars(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_SetExpandEnvVars,(self,) + _args, _kwargs) - return val - def SetPath(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_SetPath,(self,) + _args, _kwargs) - return val - def SetRecordDefaults(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_SetRecordDefaults,(self,) + _args, _kwargs) - return val - def Write(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_Write,(self,) + _args, _kwargs) - return val - def WriteInt(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_WriteInt,(self,) + _args, _kwargs) - return val - def WriteFloat(self, *_args, **_kwargs): - val = apply(utilsc.wxConfig_WriteFloat,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxConfig(wxConfigPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(utilsc.new_wxConfig,_args,_kwargs) - 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 54c3ce3c15..0000000000 --- a/utils/wxPython/src/msw/windows.cpp +++ /dev/null @@ -1,6853 +0,0 @@ -/* - * FILE : msw/windows.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; - - wxWindow* wxWindow_FindFocus() { - return wxWindow::FindFocus(); - } - -wxWindow* wxWindow_FromHWND(unsigned long hWnd) { - wxWindow* win = new wxWindow; - win->SetHWND(hWnd); - win->SubclassWin(hWnd); - return win; -} -#ifdef __cplusplus -extern "C" { -#endif -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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxEvtHandler_ProcessEvent",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvtHandler_ProcessEvent. Expected _wxEvtHandler_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiiiO:wxEvtHandler_Connect",&_argo0,&_arg1,&_arg2,&_arg3,&_obj4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "panel"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_CaptureMouse(_swigobj) (_swigobj->CaptureMouse()) -static PyObject *_wrap_wxWindow_CaptureMouse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_CaptureMouse",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_Center",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_Centre",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_CentreOnParent(_swigobj,_swigarg0) (_swigobj->CentreOnParent(_swigarg0)) -static PyObject *_wrap_wxWindow_CentreOnParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_CentreOnParent",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_CentreOnParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_CentreOnParent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_CenterOnParent(_swigobj,_swigarg0) (_swigobj->CenterOnParent(_swigarg0)) -static PyObject *_wrap_wxWindow_CenterOnParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_CenterOnParent",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_CenterOnParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_CenterOnParent(_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; - PyObject * _argo0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxWindow_ClientToScreenXY",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ClientToScreen",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ClientToScreen. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) FALSE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxWindow_Close",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Destroy",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_DestroyChildren",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_DragAcceptFiles",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:wxWindow_FindWindowById",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_FindWindowByName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Fit",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetCharHeight",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetCharWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxWindow_GetClientSizeTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetClientSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetConstraints",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxWindow_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_GetForegroundColour(_swigobj) (_swigobj->GetForegroundColour()) -static PyObject *_wrap_wxWindow_GetForegroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetForegroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetGrandParent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxWindow_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxWindow_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetLabel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxWindow_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetLabel",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetLabel. 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_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxWindow_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetParent",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxWindow_GetPositionTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_GetScrollThumb",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_GetScrollPos",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_GetScrollRange",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxWindow_GetSizeTuple",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"OO:wxWindow_GetTextExtent",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxFont *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _argo6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"OO|O:wxWindow_GetFullTextExtent",&_argo0,&_obj1,&_argo6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo6) { - if (_argo6 == Py_None) { _arg6 = NULL; } - else if (SWIG_GetPtrObj(_argo6,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_GetUpdateRegion(_swigobj) (_swigobj->GetUpdateRegion()) -static PyObject *_wrap_wxWindow_GetUpdateRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetUpdateRegion",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetUpdateRegion. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRegion (wxWindow_GetUpdateRegion(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRegion_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetWindowStyleFlag(_swigobj) (_swigobj->GetWindowStyleFlag()) -static PyObject *_wrap_wxWindow_GetWindowStyleFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetWindowStyleFlag",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_Hide(_swigobj) (_swigobj->Hide()) -static PyObject *_wrap_wxWindow_Hide(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Hide",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Hide. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Hide(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxWindow_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_InitDialog",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsRetained",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsShown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_IsTopLevel(_swigobj) (_swigobj->IsTopLevel()) -static PyObject *_wrap_wxWindow_IsTopLevel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_IsTopLevel",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsTopLevel. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsTopLevel(_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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Layout",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxResourceTable *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|O:wxWindow_LoadFromResource",&_argo0,&_argo1,&_obj2,&_argo3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_LoadFromResource. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Lower",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_MakeModal",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxWindow_MoveXY",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_Move",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Move. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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_PopupMenuXY(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PopupMenu(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_PopupMenuXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxMenu * _arg1; - int _arg2; - int _arg3; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxWindow_PopupMenuXY",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_PopupMenuXY. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_PopupMenuXY. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_PopupMenuXY(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_PopupMenu(_swigobj,_swigarg0,_swigarg1) (_swigobj->PopupMenu(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_PopupMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxMenu * _arg1; - wxPoint * _arg2; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxWindow_PopupMenu",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_PopupMenu. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_PopupMenu. Expected _wxMenu_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxWindow_PopupMenu. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_PopupMenu(_arg0,_arg1,*_arg2); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Raise",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - wxRect * _arg2 = (wxRect *) NULL; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|iO:wxWindow_Refresh",&_argo0,&tempbool1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_ReleaseMouse",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_Reparent(_swigobj,_swigarg0) (_swigobj->Reparent(_swigarg0)) -static PyObject *_wrap_wxWindow_Reparent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxWindow * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_Reparent",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Reparent. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_Reparent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Reparent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - 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; - PyObject * _argo0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxWindow_ScreenToClientXY",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ScreenToClient",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScreenToClient. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxRect *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|O:wxWindow_ScrollWindow",&_argo0,&_arg1,&_arg2,&_argo3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScrollWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetAcceleratorTable",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetAcceleratorTable. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_SetAutoLayout",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetBackgroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetConstraints",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetConstraints. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_SetFocus",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetFont. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetForegroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetForegroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_SetId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool5 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|i:wxWindow_SetScrollbar",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|i:wxWindow_SetScrollPos",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) wxSIZE_AUTO; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|i:wxWindow_SetDimensions",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetPosition",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetPosition. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (int ) -1; - int _arg2 = (int ) -1; - int _arg3 = (int ) -1; - int _arg4 = (int ) -1; - int _arg5 = (int ) -1; - int _arg6 = (int ) -1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|iiiiii:wxWindow_SetSizeHints",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxWindow_SetClientSizeWH",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetClientSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetClientSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetCursor",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetCursor. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxWindow_Show",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_TransferDataFromWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_TransferDataToWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_Validate",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxWindow_WarpPointer",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertDialogPointToPixels",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogPointToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertDialogSizeToPixels",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogSizeToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertPixelPointToDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelPointToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_ConvertPixelSizeToDialog",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelSizeToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetToolTipString",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxWindow_SetToolTip",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetToolTip. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxWindow_GetToolTip",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxTAB_TRAVERSAL; - char * _arg5 = (char *) "panel"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxPanel",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPanel. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPanel. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPanel_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPanel_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxPanel_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPanel_InitDialog",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxPanel_GetDefaultItem(_swigobj) (_swigobj->GetDefaultItem()) -static PyObject *_wrap_wxPanel_GetDefaultItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxButton * _result; - wxPanel * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPanel_GetDefaultItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPanel_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPanel_GetDefaultItem. Expected _wxPanel_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxButton *)wxPanel_GetDefaultItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPanel_SetDefaultItem(_swigobj,_swigarg0) (_swigobj->SetDefaultItem(_swigarg0)) -static PyObject *_wrap_wxPanel_SetDefaultItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _arg0; - wxButton * _arg1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPanel_SetDefaultItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPanel_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPanel_SetDefaultItem. Expected _wxPanel_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPanel_SetDefaultItem. Expected _wxButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPanel_SetDefaultItem(_arg0,_arg1); - - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg4 = (wxSize *) &wxPyDefaultSize; - long _arg5 = (long ) wxDEFAULT_DIALOG_STYLE; - char * _arg6 = (char *) "dialogBox"; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _argo4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|OOls:new_wxDialog",&_argo0,&_arg1,&_obj2,&_argo3,&_argo4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxDialog. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo4) { - if (_argo4 == Py_None) { _arg4 = NULL; } - else if (SWIG_GetPtrObj(_argo4,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (int ) wxBOTH; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxDialog_Centre",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_EndModal",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_Iconize",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_IsIconized",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_SetModal",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_IsModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxDialog_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_Show",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_ShowModal",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxDialog_GetReturnCode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxDialog_SetReturnCode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 *SwigwxScrolledWindowTowxPanel(void *ptr) { - wxScrolledWindow *src; - wxPanel *dest; - src = (wxScrolledWindow *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -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 = (wxWindowID ) -1; - wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxHSCROLL|wxVSCROLL; - char * _arg5 = (char *) "scrolledWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|iOOls:new_wxScrolledWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrolledWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrolledWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrolledWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool1; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxScrolledWindow_EnableScrolling",&_argo0,&tempbool1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_GetScrollPixelsPerUnit",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_GetVirtualSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_IsRetained",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxScrolledWindow_PrepareDC",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_PrepareDC. Expected _wxScrolledWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxScrolledWindow_Scroll",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg6 = (int ) 0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiiii|ii:wxScrolledWindow_SetScrollbars",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"O:wxScrolledWindow_ViewStart",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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,_swigarg1) (new wxMenu(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxString * _arg0 = (wxString *) &wxPyEmptyStr; - long _arg1 = (long ) 0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|Ol:new_wxMenu",&_obj0,&_arg1)) - 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,_arg1); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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 = (wxString *) &wxPyEmptyStr; - int _arg4 = (int ) FALSE; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO|Oi:wxMenu_Append",&_argo0,&_arg1,&_obj2,&_obj3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxString *) &wxPyEmptyStr; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _argo3 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOO|O:wxMenu_AppendMenu",&_argo0,&_arg1,&_obj2,&_argo3,&_obj4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenu_AppendItem",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_AppendItem. Expected _wxMenu_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenu_AppendSeparator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenu_Break",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenu_Check",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenu_Enable",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenu_FindItem",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenu_GetTitle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenu_SetTitle",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_FindItemForId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_GetHelpString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_GetLabel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxMenu_SetHelpString",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_IsChecked",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenu_IsEnabled",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxMenu_SetLabel",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxMenu_UpdateUI(_swigobj,_swigarg0) (_swigobj->UpdateUI(_swigarg0)) -static PyObject *_wrap_wxMenu_UpdateUI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - wxEvtHandler * _arg1 = (wxEvtHandler *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxMenu_UpdateUI",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_UpdateUI. Expected _wxMenu_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenu_UpdateUI. Expected _wxEvtHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_UpdateUI(_arg0,_arg1); - - 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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxMenuBar_Append",&_argo0,&_argo1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Append. Expected _wxMenuBar_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenuBar_Check",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_Checked",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenuBar_Enable",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_Enabled",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:wxMenuBar_FindMenuItem",&_argo0,&_obj1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_FindItemForId",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxMenuBar_EnableTop",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_GetHelpString",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_GetLabel",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxMenuBar_SetHelpString",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxMenuBar_SetLabel",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_GetLabelTop",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxMenuBar_SetLabelTop",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuBar_GetMenuCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuBar_GetMenu",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (wxMenu *) NULL; - int _arg1 = (int ) ID_SEPARATOR; - wxString * _arg2 = (wxString *) &wxPyEmptyStr; - wxString * _arg3 = (wxString *) &wxPyEmptyStr; - bool _arg4 = (bool ) FALSE; - wxMenu * _arg5 = (wxMenu *) NULL; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - int tempbool4 = (int) FALSE; - PyObject * _argo5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|OiOOiO:new_wxMenuItem",&_argo0,&_arg1,&_obj2,&_obj3,&tempbool4,&_argo5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 (_argo5) { - if (_argo5 == Py_None) { _arg5 = NULL; } - else if (SWIG_GetPtrObj(_argo5,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } -{ - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsSeparator",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsEnabled",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsChecked",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_IsCheckable",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetId",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetSubMenu",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenuItem_SetName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetHelp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenuItem_SetHelp",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMenuItem_Enable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMenuItem_Check",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxMenuItem_GetBitmap",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxMenuItem_GetMarginWidth(_swigobj) (_swigobj->GetMarginWidth()) -static PyObject *_wrap_wxMenuItem_GetMarginWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuItem * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetMarginWidth",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_GetTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenuItem_SetBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetBackgroundColour. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxBitmap *) &wxNullBitmap; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxMenuItem_SetBitmaps",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetBitmaps. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenuItem_SetBitmaps. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenuItem_SetFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetFont. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxMenuItem_SetMarginWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxMenuItem_SetTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetTextColour. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxMenuItem_DeleteSubMenu",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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, METH_VARARGS }, - { "wxMenuItem_SetTextColour", _wrap_wxMenuItem_SetTextColour, METH_VARARGS }, - { "wxMenuItem_SetMarginWidth", _wrap_wxMenuItem_SetMarginWidth, METH_VARARGS }, - { "wxMenuItem_SetFont", _wrap_wxMenuItem_SetFont, METH_VARARGS }, - { "wxMenuItem_SetBitmaps", _wrap_wxMenuItem_SetBitmaps, METH_VARARGS }, - { "wxMenuItem_SetBackgroundColour", _wrap_wxMenuItem_SetBackgroundColour, METH_VARARGS }, - { "wxMenuItem_GetTextColour", _wrap_wxMenuItem_GetTextColour, METH_VARARGS }, - { "wxMenuItem_GetMarginWidth", _wrap_wxMenuItem_GetMarginWidth, METH_VARARGS }, - { "wxMenuItem_GetFont", _wrap_wxMenuItem_GetFont, METH_VARARGS }, - { "wxMenuItem_GetBitmap", _wrap_wxMenuItem_GetBitmap, METH_VARARGS }, - { "wxMenuItem_GetBackgroundColour", _wrap_wxMenuItem_GetBackgroundColour, METH_VARARGS }, - { "wxMenuItem_Check", _wrap_wxMenuItem_Check, METH_VARARGS }, - { "wxMenuItem_Enable", _wrap_wxMenuItem_Enable, METH_VARARGS }, - { "wxMenuItem_SetHelp", _wrap_wxMenuItem_SetHelp, METH_VARARGS }, - { "wxMenuItem_GetHelp", _wrap_wxMenuItem_GetHelp, METH_VARARGS }, - { "wxMenuItem_GetName", _wrap_wxMenuItem_GetName, METH_VARARGS }, - { "wxMenuItem_SetName", _wrap_wxMenuItem_SetName, METH_VARARGS }, - { "wxMenuItem_GetSubMenu", _wrap_wxMenuItem_GetSubMenu, METH_VARARGS }, - { "wxMenuItem_GetId", _wrap_wxMenuItem_GetId, METH_VARARGS }, - { "wxMenuItem_IsCheckable", _wrap_wxMenuItem_IsCheckable, METH_VARARGS }, - { "wxMenuItem_IsChecked", _wrap_wxMenuItem_IsChecked, METH_VARARGS }, - { "wxMenuItem_IsEnabled", _wrap_wxMenuItem_IsEnabled, METH_VARARGS }, - { "wxMenuItem_IsSeparator", _wrap_wxMenuItem_IsSeparator, METH_VARARGS }, - { "new_wxMenuItem", _wrap_new_wxMenuItem, METH_VARARGS }, - { "wxMenuBar_GetMenu", _wrap_wxMenuBar_GetMenu, METH_VARARGS }, - { "wxMenuBar_GetMenuCount", _wrap_wxMenuBar_GetMenuCount, METH_VARARGS }, - { "wxMenuBar_SetLabelTop", _wrap_wxMenuBar_SetLabelTop, METH_VARARGS }, - { "wxMenuBar_GetLabelTop", _wrap_wxMenuBar_GetLabelTop, METH_VARARGS }, - { "wxMenuBar_SetLabel", _wrap_wxMenuBar_SetLabel, METH_VARARGS }, - { "wxMenuBar_SetHelpString", _wrap_wxMenuBar_SetHelpString, METH_VARARGS }, - { "wxMenuBar_GetLabel", _wrap_wxMenuBar_GetLabel, METH_VARARGS }, - { "wxMenuBar_GetHelpString", _wrap_wxMenuBar_GetHelpString, METH_VARARGS }, - { "wxMenuBar_EnableTop", _wrap_wxMenuBar_EnableTop, METH_VARARGS }, - { "wxMenuBar_FindItemForId", _wrap_wxMenuBar_FindItemForId, METH_VARARGS }, - { "wxMenuBar_FindMenuItem", _wrap_wxMenuBar_FindMenuItem, METH_VARARGS }, - { "wxMenuBar_Enabled", _wrap_wxMenuBar_Enabled, METH_VARARGS }, - { "wxMenuBar_Enable", _wrap_wxMenuBar_Enable, METH_VARARGS }, - { "wxMenuBar_Checked", _wrap_wxMenuBar_Checked, METH_VARARGS }, - { "wxMenuBar_Check", _wrap_wxMenuBar_Check, METH_VARARGS }, - { "wxMenuBar_Append", _wrap_wxMenuBar_Append, METH_VARARGS }, - { "new_wxMenuBar", _wrap_new_wxMenuBar, METH_VARARGS }, - { "wxMenu_UpdateUI", _wrap_wxMenu_UpdateUI, METH_VARARGS }, - { "wxMenu_SetLabel", _wrap_wxMenu_SetLabel, METH_VARARGS }, - { "wxMenu_IsEnabled", _wrap_wxMenu_IsEnabled, METH_VARARGS }, - { "wxMenu_IsChecked", _wrap_wxMenu_IsChecked, METH_VARARGS }, - { "wxMenu_SetHelpString", _wrap_wxMenu_SetHelpString, METH_VARARGS }, - { "wxMenu_GetLabel", _wrap_wxMenu_GetLabel, METH_VARARGS }, - { "wxMenu_GetHelpString", _wrap_wxMenu_GetHelpString, METH_VARARGS }, - { "wxMenu_FindItemForId", _wrap_wxMenu_FindItemForId, METH_VARARGS }, - { "wxMenu_SetTitle", _wrap_wxMenu_SetTitle, METH_VARARGS }, - { "wxMenu_GetTitle", _wrap_wxMenu_GetTitle, METH_VARARGS }, - { "wxMenu_FindItem", _wrap_wxMenu_FindItem, METH_VARARGS }, - { "wxMenu_Enable", _wrap_wxMenu_Enable, METH_VARARGS }, - { "wxMenu_Check", _wrap_wxMenu_Check, METH_VARARGS }, - { "wxMenu_Break", _wrap_wxMenu_Break, METH_VARARGS }, - { "wxMenu_AppendSeparator", _wrap_wxMenu_AppendSeparator, METH_VARARGS }, - { "wxMenu_AppendItem", _wrap_wxMenu_AppendItem, METH_VARARGS }, - { "wxMenu_AppendMenu", _wrap_wxMenu_AppendMenu, METH_VARARGS }, - { "wxMenu_Append", _wrap_wxMenu_Append, METH_VARARGS }, - { "new_wxMenu", _wrap_new_wxMenu, METH_VARARGS }, - { "wxScrolledWindow_ViewStart", _wrap_wxScrolledWindow_ViewStart, METH_VARARGS }, - { "wxScrolledWindow_SetScrollbars", _wrap_wxScrolledWindow_SetScrollbars, METH_VARARGS }, - { "wxScrolledWindow_Scroll", _wrap_wxScrolledWindow_Scroll, METH_VARARGS }, - { "wxScrolledWindow_PrepareDC", _wrap_wxScrolledWindow_PrepareDC, METH_VARARGS }, - { "wxScrolledWindow_IsRetained", _wrap_wxScrolledWindow_IsRetained, METH_VARARGS }, - { "wxScrolledWindow_GetVirtualSize", _wrap_wxScrolledWindow_GetVirtualSize, METH_VARARGS }, - { "wxScrolledWindow_GetScrollPixelsPerUnit", _wrap_wxScrolledWindow_GetScrollPixelsPerUnit, METH_VARARGS }, - { "wxScrolledWindow_EnableScrolling", _wrap_wxScrolledWindow_EnableScrolling, METH_VARARGS }, - { "new_wxScrolledWindow", _wrap_new_wxScrolledWindow, METH_VARARGS }, - { "wxDialog_SetReturnCode", _wrap_wxDialog_SetReturnCode, METH_VARARGS }, - { "wxDialog_GetReturnCode", _wrap_wxDialog_GetReturnCode, METH_VARARGS }, - { "wxDialog_ShowModal", _wrap_wxDialog_ShowModal, METH_VARARGS }, - { "wxDialog_Show", _wrap_wxDialog_Show, METH_VARARGS }, - { "wxDialog_SetTitle", _wrap_wxDialog_SetTitle, METH_VARARGS }, - { "wxDialog_IsModal", _wrap_wxDialog_IsModal, METH_VARARGS }, - { "wxDialog_SetModal", _wrap_wxDialog_SetModal, METH_VARARGS }, - { "wxDialog_IsIconized", _wrap_wxDialog_IsIconized, METH_VARARGS }, - { "wxDialog_Iconize", _wrap_wxDialog_Iconize, METH_VARARGS }, - { "wxDialog_GetTitle", _wrap_wxDialog_GetTitle, METH_VARARGS }, - { "wxDialog_EndModal", _wrap_wxDialog_EndModal, METH_VARARGS }, - { "wxDialog_Centre", _wrap_wxDialog_Centre, METH_VARARGS }, - { "new_wxDialog", _wrap_new_wxDialog, METH_VARARGS }, - { "wxPanel_SetDefaultItem", _wrap_wxPanel_SetDefaultItem, METH_VARARGS }, - { "wxPanel_GetDefaultItem", _wrap_wxPanel_GetDefaultItem, METH_VARARGS }, - { "wxPanel_InitDialog", _wrap_wxPanel_InitDialog, METH_VARARGS }, - { "new_wxPanel", _wrap_new_wxPanel, METH_VARARGS }, - { "wxWindow_GetToolTip", _wrap_wxWindow_GetToolTip, METH_VARARGS }, - { "wxWindow_SetToolTip", _wrap_wxWindow_SetToolTip, METH_VARARGS }, - { "wxWindow_SetToolTipString", _wrap_wxWindow_SetToolTipString, METH_VARARGS }, - { "wxWindow_ConvertPixelSizeToDialog", _wrap_wxWindow_ConvertPixelSizeToDialog, METH_VARARGS }, - { "wxWindow_ConvertPixelPointToDialog", _wrap_wxWindow_ConvertPixelPointToDialog, METH_VARARGS }, - { "wxWindow_DLG_SZE", _wrap_wxWindow_ConvertDialogSizeToPixels, METH_VARARGS }, - { "wxWindow_DLG_PNT", _wrap_wxWindow_ConvertDialogPointToPixels, METH_VARARGS }, - { "wxWindow_ConvertDialogSizeToPixels", _wrap_wxWindow_ConvertDialogSizeToPixels, METH_VARARGS }, - { "wxWindow_ConvertDialogPointToPixels", _wrap_wxWindow_ConvertDialogPointToPixels, METH_VARARGS }, - { "wxWindow_WarpPointer", _wrap_wxWindow_WarpPointer, METH_VARARGS }, - { "wxWindow_Validate", _wrap_wxWindow_Validate, METH_VARARGS }, - { "wxWindow_TransferDataToWindow", _wrap_wxWindow_TransferDataToWindow, METH_VARARGS }, - { "wxWindow_TransferDataFromWindow", _wrap_wxWindow_TransferDataFromWindow, METH_VARARGS }, - { "wxWindow_Show", _wrap_wxWindow_Show, METH_VARARGS }, - { "wxWindow_SetTitle", _wrap_wxWindow_SetTitle, METH_VARARGS }, - { "wxWindow_SetCursor", _wrap_wxWindow_SetCursor, METH_VARARGS }, - { "wxWindow_SetClientSize", _wrap_wxWindow_SetClientSize, METH_VARARGS }, - { "wxWindow_SetClientSizeWH", _wrap_wxWindow_SetClientSizeWH, METH_VARARGS }, - { "wxWindow_SetSizeHints", _wrap_wxWindow_SetSizeHints, METH_VARARGS }, - { "wxWindow_SetPosition", _wrap_wxWindow_SetPosition, METH_VARARGS }, - { "wxWindow_SetSize", _wrap_wxWindow_SetSize, METH_VARARGS }, - { "wxWindow_SetDimensions", _wrap_wxWindow_SetDimensions, METH_VARARGS }, - { "wxWindow_SetScrollPos", _wrap_wxWindow_SetScrollPos, METH_VARARGS }, - { "wxWindow_SetScrollbar", _wrap_wxWindow_SetScrollbar, METH_VARARGS }, - { "wxWindow_SetName", _wrap_wxWindow_SetName, METH_VARARGS }, - { "wxWindow_SetId", _wrap_wxWindow_SetId, METH_VARARGS }, - { "wxWindow_SetForegroundColour", _wrap_wxWindow_SetForegroundColour, METH_VARARGS }, - { "wxWindow_SetFont", _wrap_wxWindow_SetFont, METH_VARARGS }, - { "wxWindow_SetFocus", _wrap_wxWindow_SetFocus, METH_VARARGS }, - { "wxWindow_SetConstraints", _wrap_wxWindow_SetConstraints, METH_VARARGS }, - { "wxWindow_SetBackgroundColour", _wrap_wxWindow_SetBackgroundColour, METH_VARARGS }, - { "wxWindow_SetAutoLayout", _wrap_wxWindow_SetAutoLayout, METH_VARARGS }, - { "wxWindow_SetAcceleratorTable", _wrap_wxWindow_SetAcceleratorTable, METH_VARARGS }, - { "wxWindow_ScrollWindow", _wrap_wxWindow_ScrollWindow, METH_VARARGS }, - { "wxWindow_ScreenToClient", _wrap_wxWindow_ScreenToClient, METH_VARARGS }, - { "wxWindow_ScreenToClientXY", _wrap_wxWindow_ScreenToClientXY, METH_VARARGS }, - { "wxWindow_Reparent", _wrap_wxWindow_Reparent, METH_VARARGS }, - { "wxWindow_ReleaseMouse", _wrap_wxWindow_ReleaseMouse, METH_VARARGS }, - { "wxWindow_Refresh", _wrap_wxWindow_Refresh, METH_VARARGS }, - { "wxWindow_Raise", _wrap_wxWindow_Raise, METH_VARARGS }, - { "wxWindow_PopupMenu", _wrap_wxWindow_PopupMenu, METH_VARARGS }, - { "wxWindow_PopupMenuXY", _wrap_wxWindow_PopupMenuXY, METH_VARARGS }, - { "wxWindow_Move", _wrap_wxWindow_Move, METH_VARARGS }, - { "wxWindow_MoveXY", _wrap_wxWindow_MoveXY, METH_VARARGS }, - { "wxWindow_MakeModal", _wrap_wxWindow_MakeModal, METH_VARARGS }, - { "wxWindow_Lower", _wrap_wxWindow_Lower, METH_VARARGS }, - { "wxWindow_LoadFromResource", _wrap_wxWindow_LoadFromResource, METH_VARARGS }, - { "wxWindow_Layout", _wrap_wxWindow_Layout, METH_VARARGS }, - { "wxWindow_IsTopLevel", _wrap_wxWindow_IsTopLevel, METH_VARARGS }, - { "wxWindow_IsShown", _wrap_wxWindow_IsShown, METH_VARARGS }, - { "wxWindow_IsRetained", _wrap_wxWindow_IsRetained, METH_VARARGS }, - { "wxWindow_IsEnabled", _wrap_wxWindow_IsEnabled, METH_VARARGS }, - { "wxWindow_InitDialog", _wrap_wxWindow_InitDialog, METH_VARARGS }, - { "wxWindow_Hide", _wrap_wxWindow_Hide, METH_VARARGS }, - { "wxWindow_GetWindowStyleFlag", _wrap_wxWindow_GetWindowStyleFlag, METH_VARARGS }, - { "wxWindow_GetUpdateRegion", _wrap_wxWindow_GetUpdateRegion, METH_VARARGS }, - { "wxWindow_GetTitle", _wrap_wxWindow_GetTitle, METH_VARARGS }, - { "wxWindow_GetFullTextExtent", _wrap_wxWindow_GetFullTextExtent, METH_VARARGS }, - { "wxWindow_GetTextExtent", _wrap_wxWindow_GetTextExtent, METH_VARARGS }, - { "wxWindow_GetSize", _wrap_wxWindow_GetSize, METH_VARARGS }, - { "wxWindow_GetSizeTuple", _wrap_wxWindow_GetSizeTuple, METH_VARARGS }, - { "wxWindow_GetScrollRange", _wrap_wxWindow_GetScrollRange, METH_VARARGS }, - { "wxWindow_GetScrollPos", _wrap_wxWindow_GetScrollPos, METH_VARARGS }, - { "wxWindow_GetScrollThumb", _wrap_wxWindow_GetScrollThumb, METH_VARARGS }, - { "wxWindow_GetRect", _wrap_wxWindow_GetRect, METH_VARARGS }, - { "wxWindow_GetPosition", _wrap_wxWindow_GetPosition, METH_VARARGS }, - { "wxWindow_GetPositionTuple", _wrap_wxWindow_GetPositionTuple, METH_VARARGS }, - { "wxWindow_GetParent", _wrap_wxWindow_GetParent, METH_VARARGS }, - { "wxWindow_GetName", _wrap_wxWindow_GetName, METH_VARARGS }, - { "wxWindow_SetLabel", _wrap_wxWindow_SetLabel, METH_VARARGS }, - { "wxWindow_GetLabel", _wrap_wxWindow_GetLabel, METH_VARARGS }, - { "wxWindow_GetId", _wrap_wxWindow_GetId, METH_VARARGS }, - { "wxWindow_GetGrandParent", _wrap_wxWindow_GetGrandParent, METH_VARARGS }, - { "wxWindow_GetForegroundColour", _wrap_wxWindow_GetForegroundColour, METH_VARARGS }, - { "wxWindow_GetFont", _wrap_wxWindow_GetFont, METH_VARARGS }, - { "wxWindow_GetConstraints", _wrap_wxWindow_GetConstraints, METH_VARARGS }, - { "wxWindow_GetClientSize", _wrap_wxWindow_GetClientSize, METH_VARARGS }, - { "wxWindow_GetClientSizeTuple", _wrap_wxWindow_GetClientSizeTuple, METH_VARARGS }, - { "wxWindow_GetCharWidth", _wrap_wxWindow_GetCharWidth, METH_VARARGS }, - { "wxWindow_GetCharHeight", _wrap_wxWindow_GetCharHeight, METH_VARARGS }, - { "wxWindow_GetBackgroundColour", _wrap_wxWindow_GetBackgroundColour, METH_VARARGS }, - { "wxWindow_Fit", _wrap_wxWindow_Fit, METH_VARARGS }, - { "wxWindow_FindWindowByName", _wrap_wxWindow_FindWindowByName, METH_VARARGS }, - { "wxWindow_FindWindowById", _wrap_wxWindow_FindWindowById, METH_VARARGS }, - { "wxWindow_Enable", _wrap_wxWindow_Enable, METH_VARARGS }, - { "wxWindow_DragAcceptFiles", _wrap_wxWindow_DragAcceptFiles, METH_VARARGS }, - { "wxWindow_DestroyChildren", _wrap_wxWindow_DestroyChildren, METH_VARARGS }, - { "wxWindow_Destroy", _wrap_wxWindow_Destroy, METH_VARARGS }, - { "wxWindow_Close", _wrap_wxWindow_Close, METH_VARARGS }, - { "wxWindow_ClientToScreen", _wrap_wxWindow_ClientToScreen, METH_VARARGS }, - { "wxWindow_ClientToScreenXY", _wrap_wxWindow_ClientToScreenXY, METH_VARARGS }, - { "wxWindow_CenterOnParent", _wrap_wxWindow_CenterOnParent, METH_VARARGS }, - { "wxWindow_CentreOnParent", _wrap_wxWindow_CentreOnParent, METH_VARARGS }, - { "wxWindow_Centre", _wrap_wxWindow_Centre, METH_VARARGS }, - { "wxWindow_Center", _wrap_wxWindow_Center, METH_VARARGS }, - { "wxWindow_CaptureMouse", _wrap_wxWindow_CaptureMouse, METH_VARARGS }, - { "new_wxWindow", _wrap_new_wxWindow, METH_VARARGS }, - { "wxEvtHandler_Connect", _wrap_wxEvtHandler_Connect, METH_VARARGS }, - { "wxEvtHandler_ProcessEvent", _wrap_wxEvtHandler_ProcessEvent, METH_VARARGS }, - { "wxWindow_FromHWND", _wrap_wxWindow_FromHWND, METH_VARARGS }, - { "wxWindow_FindFocus", _wrap_wxWindow_FindFocus, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_signed_long","_long",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_class_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxPen","_class_wxPen",0}, - { "_byte","_unsigned_char",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_wxDC","_class_wxDC",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_wxPanel","_class_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_wxPanel","_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel}, - { "_wxPanel","_wxDialog",SwigwxDialogTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_class_wxMask","_wxMask",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_wxFont","_class_wxFont",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_class_wxPanel","_wxScrolledWindow",SwigwxScrolledWindowTowxPanel}, - { "_class_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel}, - { "_class_wxPanel","_wxDialog",SwigwxDialogTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_class_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_class_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow}, - { "_class_wxWindow","_wxDialog",SwigwxDialogTowxWindow}, - { "_class_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow}, - { "_class_wxWindow","_wxPanel",SwigwxPanelTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_class_wxFont","_wxFont",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler}, - { "_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler}, - { "_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler}, - { "_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler}, - { "_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow}, - { "_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow}, - { "_wxWindow","_wxDialog",SwigwxDialogTowxWindow}, - { "_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow}, - { "_wxWindow","_wxPanel",SwigwxPanelTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/windows.py b/utils/wxPython/src/msw/windows.py deleted file mode 100644 index 8ae94d6bb0..0000000000 --- a/utils/wxPython/src/msw/windows.py +++ /dev/null @@ -1,726 +0,0 @@ -# This file was created automatically by SWIG. -import windowsc - -from misc import * - -from gdi import * -import wx - -def wxDLG_PNT(win, point_or_x, y=None): - if y is None: - return win.ConvertDialogPointToPixels(point_or_x) - else: - return win.ConvertDialogPointToPixels(wxPoint(point_or_x, y)) - -def wxDLG_SZE(win, size_width, height=None): - if height is None: - return win.ConvertDialogSizeToPixels(size_width) - else: - return win.ConvertDialogSizeToPixels(wxSize(size_width, height)) - -class wxEvtHandlerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def ProcessEvent(self, *_args, **_kwargs): - val = apply(windowsc.wxEvtHandler_ProcessEvent,(self,) + _args, _kwargs) - return val - def Connect(self, *_args, **_kwargs): - val = apply(windowsc.wxEvtHandler_Connect,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windowsc.wxWindow_CaptureMouse,(self,) + _args, _kwargs) - return val - def Center(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Center,(self,) + _args, _kwargs) - return val - def Centre(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Centre,(self,) + _args, _kwargs) - return val - def CentreOnParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_CentreOnParent,(self,) + _args, _kwargs) - return val - def CenterOnParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_CenterOnParent,(self,) + _args, _kwargs) - return val - def ClientToScreenXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ClientToScreenXY,(self,) + _args, _kwargs) - return val - def ClientToScreen(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ClientToScreen,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def Close(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Close,(self,) + _args, _kwargs) - return val - def Destroy(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Destroy,(self,) + _args, _kwargs) - return val - def DestroyChildren(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_DestroyChildren,(self,) + _args, _kwargs) - return val - def DragAcceptFiles(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_DragAcceptFiles,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Enable,(self,) + _args, _kwargs) - return val - def FindWindowById(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_FindWindowById,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def FindWindowByName(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_FindWindowByName,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def Fit(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Fit,(self,) + _args, _kwargs) - return val - def GetBackgroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetCharHeight(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetCharHeight,(self,) + _args, _kwargs) - return val - def GetCharWidth(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetCharWidth,(self,) + _args, _kwargs) - return val - def GetClientSizeTuple(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetClientSizeTuple,(self,) + _args, _kwargs) - return val - def GetClientSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetClientSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetConstraints(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetConstraints,(self,) + _args, _kwargs) - if val: val = wxLayoutConstraintsPtr(val) - return val - def GetFont(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetForegroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetForegroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) ; val.thisown = 1 - return val - def GetGrandParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetGrandParent,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetId(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetId,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetLabel,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetLabel,(self,) + _args, _kwargs) - return val - def GetName(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetName,(self,) + _args, _kwargs) - return val - def GetParent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetParent,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetPositionTuple(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetPositionTuple,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def GetRect(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetScrollThumb(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetScrollThumb,(self,) + _args, _kwargs) - return val - def GetScrollPos(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetScrollPos,(self,) + _args, _kwargs) - return val - def GetScrollRange(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetScrollRange,(self,) + _args, _kwargs) - return val - def GetSizeTuple(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetSizeTuple,(self,) + _args, _kwargs) - return val - def GetSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def GetTextExtent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetTextExtent,(self,) + _args, _kwargs) - return val - def GetFullTextExtent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetFullTextExtent,(self,) + _args, _kwargs) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetTitle,(self,) + _args, _kwargs) - return val - def GetUpdateRegion(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetUpdateRegion,(self,) + _args, _kwargs) - if val: val = wxRegionPtr(val) ; val.thisown = 1 - return val - def GetWindowStyleFlag(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetWindowStyleFlag,(self,) + _args, _kwargs) - return val - def Hide(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Hide,(self,) + _args, _kwargs) - return val - def InitDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_InitDialog,(self,) + _args, _kwargs) - return val - def IsEnabled(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsEnabled,(self,) + _args, _kwargs) - return val - def IsRetained(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsRetained,(self,) + _args, _kwargs) - return val - def IsShown(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsShown,(self,) + _args, _kwargs) - return val - def IsTopLevel(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_IsTopLevel,(self,) + _args, _kwargs) - return val - def Layout(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Layout,(self,) + _args, _kwargs) - return val - def LoadFromResource(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_LoadFromResource,(self,) + _args, _kwargs) - return val - def Lower(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Lower,(self,) + _args, _kwargs) - return val - def MakeModal(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_MakeModal,(self,) + _args, _kwargs) - return val - def MoveXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_MoveXY,(self,) + _args, _kwargs) - return val - def Move(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Move,(self,) + _args, _kwargs) - return val - def PopupMenuXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_PopupMenuXY,(self,) + _args, _kwargs) - return val - def PopupMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_PopupMenu,(self,) + _args, _kwargs) - return val - def Raise(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Raise,(self,) + _args, _kwargs) - return val - def Refresh(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Refresh,(self,) + _args, _kwargs) - return val - def ReleaseMouse(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ReleaseMouse,(self,) + _args, _kwargs) - return val - def Reparent(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Reparent,(self,) + _args, _kwargs) - return val - def ScreenToClientXY(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ScreenToClientXY,(self,) + _args, _kwargs) - return val - def ScreenToClient(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ScreenToClient,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ScrollWindow(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ScrollWindow,(self,) + _args, _kwargs) - return val - def SetAcceleratorTable(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetAcceleratorTable,(self,) + _args, _kwargs) - return val - def SetAutoLayout(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetAutoLayout,(self,) + _args, _kwargs) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def SetConstraints(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetConstraints,(self,) + _args, _kwargs) - return val - def SetFocus(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetFocus,(self,) + _args, _kwargs) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetFont,(self,) + _args, _kwargs) - return val - def SetForegroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetForegroundColour,(self,) + _args, _kwargs) - return val - def SetId(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetId,(self,) + _args, _kwargs) - return val - def SetName(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetName,(self,) + _args, _kwargs) - return val - def SetScrollbar(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetScrollbar,(self,) + _args, _kwargs) - return val - def SetScrollPos(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetScrollPos,(self,) + _args, _kwargs) - return val - def SetDimensions(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetDimensions,(self,) + _args, _kwargs) - return val - def SetSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetSize,(self,) + _args, _kwargs) - return val - def SetPosition(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetPosition,(self,) + _args, _kwargs) - return val - def SetSizeHints(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetSizeHints,(self,) + _args, _kwargs) - return val - def SetClientSizeWH(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetClientSizeWH,(self,) + _args, _kwargs) - return val - def SetClientSize(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetClientSize,(self,) + _args, _kwargs) - return val - def SetCursor(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetCursor,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetTitle,(self,) + _args, _kwargs) - return val - def Show(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Show,(self,) + _args, _kwargs) - return val - def TransferDataFromWindow(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_TransferDataFromWindow,(self,) + _args, _kwargs) - return val - def TransferDataToWindow(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_TransferDataToWindow,(self,) + _args, _kwargs) - return val - def Validate(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_Validate,(self,) + _args, _kwargs) - return val - def WarpPointer(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_WarpPointer,(self,) + _args, _kwargs) - return val - def ConvertDialogPointToPixels(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertDialogPointToPixels,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ConvertDialogSizeToPixels(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertDialogSizeToPixels,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def DLG_PNT(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_DLG_PNT,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def DLG_SZE(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_DLG_SZE,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def ConvertPixelPointToDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertPixelPointToDialog,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ConvertPixelSizeToDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_ConvertPixelSizeToDialog,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def SetToolTipString(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetToolTipString,(self,) + _args, _kwargs) - return val - def SetToolTip(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_SetToolTip,(self,) + _args, _kwargs) - return val - def GetToolTip(self, *_args, **_kwargs): - val = apply(windowsc.wxWindow_GetToolTip,(self,) + _args, _kwargs) - if val: val = wxToolTipPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxWindow(wxWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxWindow,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxPanelPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def InitDialog(self, *_args, **_kwargs): - val = apply(windowsc.wxPanel_InitDialog,(self,) + _args, _kwargs) - return val - def GetDefaultItem(self, *_args, **_kwargs): - val = apply(windowsc.wxPanel_GetDefaultItem,(self,) + _args, _kwargs) - if val: val = wxButtonPtr(val) - return val - def SetDefaultItem(self, *_args, **_kwargs): - val = apply(windowsc.wxPanel_SetDefaultItem,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) - - def GetDefaultItem(self): - import controls - val = windowsc.wxPanel_GetDefaultItem(self.this) - val = controls.wxButtonPtr(val) - return val - -class wxPanel(wxPanelPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxPanel,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxDialogPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Centre(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_Centre,(self,) + _args, _kwargs) - return val - def EndModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_EndModal,(self,) + _args, _kwargs) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_GetTitle,(self,) + _args, _kwargs) - return val - def Iconize(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_Iconize,(self,) + _args, _kwargs) - return val - def IsIconized(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_IsIconized,(self,) + _args, _kwargs) - return val - def SetModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_SetModal,(self,) + _args, _kwargs) - return val - def IsModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_IsModal,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_SetTitle,(self,) + _args, _kwargs) - return val - def Show(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_Show,(self,) + _args, _kwargs) - return val - def ShowModal(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_ShowModal,(self,) + _args, _kwargs) - return val - def GetReturnCode(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_GetReturnCode,(self,) + _args, _kwargs) - return val - def SetReturnCode(self, *_args, **_kwargs): - val = apply(windowsc.wxDialog_SetReturnCode,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxDialog(wxDialogPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxDialog,_args,_kwargs) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxScrolledWindowPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def EnableScrolling(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_EnableScrolling,(self,) + _args, _kwargs) - return val - def GetScrollPixelsPerUnit(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_GetScrollPixelsPerUnit,(self,) + _args, _kwargs) - return val - def GetVirtualSize(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_GetVirtualSize,(self,) + _args, _kwargs) - return val - def IsRetained(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_IsRetained,(self,) + _args, _kwargs) - return val - def PrepareDC(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_PrepareDC,(self,) + _args, _kwargs) - return val - def Scroll(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_Scroll,(self,) + _args, _kwargs) - return val - def SetScrollbars(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_SetScrollbars,(self,) + _args, _kwargs) - return val - def ViewStart(self, *_args, **_kwargs): - val = apply(windowsc.wxScrolledWindow_ViewStart,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxScrolledWindow(wxScrolledWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxScrolledWindow,_args,_kwargs) - 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, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Append,(self,) + _args, _kwargs) - return val - def AppendMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_AppendMenu,(self,) + _args, _kwargs) - return val - def AppendItem(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_AppendItem,(self,) + _args, _kwargs) - return val - def AppendSeparator(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_AppendSeparator,(self,) + _args, _kwargs) - return val - def Break(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Break,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Check,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_Enable,(self,) + _args, _kwargs) - return val - def FindItem(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_FindItem,(self,) + _args, _kwargs) - return val - def GetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_GetTitle,(self,) + _args, _kwargs) - return val - def SetTitle(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_SetTitle,(self,) + _args, _kwargs) - return val - def FindItemForId(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_FindItemForId,(self,) + _args, _kwargs) - if val: val = wxMenuItemPtr(val) - return val - def GetHelpString(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_GetHelpString,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_GetLabel,(self,) + _args, _kwargs) - return val - def SetHelpString(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_SetHelpString,(self,) + _args, _kwargs) - return val - def IsChecked(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_IsChecked,(self,) + _args, _kwargs) - return val - def IsEnabled(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_IsEnabled,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_SetLabel,(self,) + _args, _kwargs) - return val - def UpdateUI(self, *_args, **_kwargs): - val = apply(windowsc.wxMenu_UpdateUI,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMenu(wxMenuPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxMenu,_args,_kwargs) - self.thisown = 1 - - - - -class wxMenuBarPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Append,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Check,(self,) + _args, _kwargs) - return val - def Checked(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Checked,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Enable,(self,) + _args, _kwargs) - return val - def Enabled(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_Enabled,(self,) + _args, _kwargs) - return val - def FindMenuItem(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_FindMenuItem,(self,) + _args, _kwargs) - return val - def FindItemForId(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_FindItemForId,(self,) + _args, _kwargs) - if val: val = wxMenuItemPtr(val) - return val - def EnableTop(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_EnableTop,(self,) + _args, _kwargs) - return val - def GetHelpString(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_GetHelpString,(self,) + _args, _kwargs) - return val - def GetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_GetLabel,(self,) + _args, _kwargs) - return val - def SetHelpString(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_SetHelpString,(self,) + _args, _kwargs) - return val - def SetLabel(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_SetLabel,(self,) + _args, _kwargs) - return val - def GetLabelTop(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_GetLabelTop,(self,) + _args, _kwargs) - return val - def SetLabelTop(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_SetLabelTop,(self,) + _args, _kwargs) - return val - def GetMenuCount(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_GetMenuCount,(self,) + _args, _kwargs) - return val - def GetMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuBar_GetMenu,(self,) + _args, _kwargs) - if val: val = wxMenuPtr(val) - return val - def __repr__(self): - return "" % (self.this,) -class wxMenuBar(wxMenuBarPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxMenuBar,_args,_kwargs) - self.thisown = 1 - - - - -class wxMenuItemPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsSeparator(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsSeparator,(self,) + _args, _kwargs) - return val - def IsEnabled(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsEnabled,(self,) + _args, _kwargs) - return val - def IsChecked(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsChecked,(self,) + _args, _kwargs) - return val - def IsCheckable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_IsCheckable,(self,) + _args, _kwargs) - return val - def GetId(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetId,(self,) + _args, _kwargs) - return val - def GetSubMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetSubMenu,(self,) + _args, _kwargs) - if val: val = wxMenuPtr(val) - return val - def SetName(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetName,(self,) + _args, _kwargs) - return val - def GetName(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetName,(self,) + _args, _kwargs) - return val - def GetHelp(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetHelp,(self,) + _args, _kwargs) - return val - def SetHelp(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetHelp,(self,) + _args, _kwargs) - return val - def Enable(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_Enable,(self,) + _args, _kwargs) - return val - def Check(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_Check,(self,) + _args, _kwargs) - return val - def GetBackgroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetBitmap(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetBitmap,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) ; val.thisown = 1 - return val - def GetFont(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetMarginWidth(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetMarginWidth,(self,) + _args, _kwargs) - return val - def GetTextColour(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_GetTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def SetBitmaps(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetBitmaps,(self,) + _args, _kwargs) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetFont,(self,) + _args, _kwargs) - return val - def SetMarginWidth(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetMarginWidth,(self,) + _args, _kwargs) - return val - def SetTextColour(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_SetTextColour,(self,) + _args, _kwargs) - return val - def DeleteSubMenu(self, *_args, **_kwargs): - val = apply(windowsc.wxMenuItem_DeleteSubMenu,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxMenuItem(wxMenuItemPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windowsc.new_wxMenuItem,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxWindow_FindFocus(*_args, **_kwargs): - val = apply(windowsc.wxWindow_FindFocus,_args,_kwargs) - if val: val = wxWindowPtr(val) - return val - -def wxWindow_FromHWND(*_args, **_kwargs): - val = apply(windowsc.wxWindow_FromHWND,_args,_kwargs) - if val: 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 cde65a1651..0000000000 --- a/utils/wxPython/src/msw/windows2.cpp +++ /dev/null @@ -1,5534 +0,0 @@ -/* - * FILE : msw/windows2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -#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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxGridCell(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGridCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxGridCell",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetTextValue",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetTextValue",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetFont. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetBackgroundColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetBackgroundBrush",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGridCell_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxGridCell_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridCell * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridCell_SetAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridCell_GetCellBitmap",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridCell_SetCellBitmap",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetCellBitmap. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "grid"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxGrid",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGrid. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGrid. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGrid_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_AdjustScrollbars(_swigobj) (_swigobj->AdjustScrollbars()) -static PyObject *_wrap_wxGrid_AdjustScrollbars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_AdjustScrollbars",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - bool _arg2 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:wxGrid_AppendCols",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 1; - bool _arg2 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool2 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|ii:wxGrid_AppendRows",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_BeginBatch",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; -{ - _arg3 = &temp; -} -{ - _arg4 = &temp0; -} - if(!PyArg_ParseTuple(args,"Oii:wxGrid_CellHitTest",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (short ) wxGRID_DEFAULT_CELL_WIDTH; - short _arg4 = (short ) wxGRID_DEFAULT_CELL_HEIGHT; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii|hh:wxGrid_CreateGrid",&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_CurrentCellVisible",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_DeleteCols",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_DeleteRows",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_EndBatch",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetBatchCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCell",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellAlignment",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellBackgroundColour",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetDefCellBackgroundColour(_swigobj) (_swigobj->GetCellBackgroundColour()) -static PyObject *_wrap_wxGrid_GetDefCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static PyObject * wxGrid_GetCells(wxGrid *self) { - int row, col; - PyObject* rows = PyList_New(0); - for (row=0; row < self->GetRows(); row++) { - PyObject* rowList = PyList_New(0); - for (col=0; col < self->GetCols(); col++) { - wxGridCell* cell = self->GetCell(row, col); - -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); - wxPyInEvent = true; -#endif - PyObject* pyCell = wxPyConstructObject(cell, "wxGridCell"); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); - wxPyInEvent = false; -#endif - - if (PyList_Append(rowList, pyCell) == -1) - return NULL; - } - if (PyList_Append(rows, rowList) == -1) - return NULL; - } - return rows; - } -static PyObject *_wrap_wxGrid_GetCells(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCells",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCells. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxGrid_GetCells(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellTextColour",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetDefCellTextColour(_swigobj) (_swigobj->GetCellTextColour()) -static PyObject *_wrap_wxGrid_GetDefCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellTextFont",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetDefCellTextFont(_swigobj) (_swigobj->GetCellTextFont()) -static PyObject *_wrap_wxGrid_GetDefCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetDefCellTextFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetCellValue",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCols",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetColumnWidth",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCurrentRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCursorColumn",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetCursorRow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetEditable",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetHorizScrollBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetLabelAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetLabelBackgroundColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetLabelSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetLabelTextColour",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetLabelTextFont(_swigobj) (_swigobj->GetLabelTextFont()) -static PyObject *_wrap_wxGrid_GetLabelTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetLabelTextFont",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_GetLabelValue",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_GetRowHeight",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetRows",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetScrollPosX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetScrollPosY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetTextItem",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGrid_GetVertScrollBar(_swigobj) (_swigobj->GetVertScrollBar()) -static PyObject *_wrap_wxGrid_GetVertScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetVertScrollBar",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_InsertCols",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - int _arg2 = (int ) 1; - bool _arg3 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool3 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|iii:wxGrid_InsertRows",&_argo0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_OnActivate",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oiii:wxGrid_SetCellAlignment",&_argo0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_SetDefCellAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellBackgroundColour",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDefCellBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellTextColour",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDefCellTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellTextFont",&_argo0,&_argo1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDefCellTextFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOii:wxGrid_SetCellValue",&_argo0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetColumnWidth",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetDividerPen",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDividerPen. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGrid_SetEditable",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetGridCursor",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetLabelAlignment",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetLabelBackgroundColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetLabelSize",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetLabelTextColour",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGrid_SetLabelTextFont",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiOi:wxGrid_SetLabelValue",&_argo0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxGrid_SetRowHeight",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_UpdateDimensions",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxGrid_GetEditInPlace(_swigobj) (_swigobj->GetEditInPlace()) -static PyObject *_wrap_wxGrid_GetEditInPlace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGrid_GetEditInPlace",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetEditInPlace. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_GetEditInPlace(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_SetEditInPlace(_swigobj,_swigarg0) (_swigobj->SetEditInPlace(_swigarg0)) -static PyObject *_wrap_wxGrid_SetEditInPlace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1 = (int ) TRUE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxGrid_SetEditInPlace",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetEditInPlace. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetEditInPlace(_arg0,_arg1); - - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_row_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_row_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_col_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_col_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_x_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_x_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_y_set",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_y_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_control_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_control_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxGridEvent_m_shift_set",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_shift_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxGridEvent_m_cell_set",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_set. Expected _wxGridEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_m_cell_get",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxGridEvent_GetRow(_swigobj) (_swigobj->GetRow()) -static PyObject *_wrap_wxGridEvent_GetRow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetRow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetRow. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_GetRow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_GetCol(_swigobj) (_swigobj->GetCol()) -static PyObject *_wrap_wxGridEvent_GetCol(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetCol",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetCol. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_GetCol(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxGridEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetPosition. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxGridEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridEvent_ControlDown(_swigobj) (_swigobj->ControlDown()) -static PyObject *_wrap_wxGridEvent_ControlDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_ControlDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_ControlDown. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_ControlDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_ShiftDown(_swigobj) (_swigobj->ShiftDown()) -static PyObject *_wrap_wxGridEvent_ShiftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_ShiftDown",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_ShiftDown. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_ShiftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_GetCell(_swigobj) (_swigobj->GetCell()) -static PyObject *_wrap_wxGridEvent_GetCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGridEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxGridEvent_GetCell",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetCell. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGridEvent_GetCell(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -static void *SwigwxNotebookEventTowxNotifyEvent(void *ptr) { - wxNotebookEvent *src; - wxNotifyEvent *dest; - src = (wxNotebookEvent *) ptr; - dest = (wxNotifyEvent *) src; - return (void *) dest; -} - -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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebookEvent_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebookEvent_GetOldSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} - -#define wxNotebookEvent_SetOldSelection(_swigobj,_swigarg0) (_swigobj->SetOldSelection(_swigarg0)) -static PyObject *_wrap_wxNotebookEvent_SetOldSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebookEvent * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebookEvent_SetOldSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_SetOldSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebookEvent_SetOldSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxNotebookEvent_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxNotebookEvent_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebookEvent * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebookEvent_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_SetSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebookEvent_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) 0; - char * _arg5 = (char *) "notebook"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxNotebook",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxNotebook. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxNotebook. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebook_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxNotebook_GetPageCount(_swigobj) (_swigobj->GetPageCount()) -static PyObject *_wrap_wxNotebook_GetPageCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetPageCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_SetSelection",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (bool ) TRUE; - PyObject * _argo0 = 0; - int tempbool1 = (int) TRUE; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxNotebook_AdvanceSelection",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetSelection",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OiO:wxNotebook_SetPageText",&_argo0,&_arg1,&_obj2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_GetPageText",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxNotebook_SetImageList",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetImageList. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetImageList",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_GetPageImage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxNotebook_SetPageImage",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_GetRowCount",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_DeletePage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_RemovePage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_DeleteAllPages",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) FALSE; - int _arg4 = (int ) -1; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|ii:wxNotebook_AddPage",&_argo0,&_argo1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AddPage. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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 = (bool ) FALSE; - int _arg5 = (int ) -1; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _obj3 = 0; - int tempbool4 = (int) FALSE; - - self = self; - if(!PyArg_ParseTuple(args,"OiOO|ii:wxNotebook_InsertPage",&_argo0,&_arg1,&_argo2,&_obj3,&tempbool4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_InsertPage. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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; - wxWindow * _result; - wxNotebook * _arg0; - int _arg1; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxNotebook_GetPage",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxWindow *)wxNotebook_GetPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNotebook_ResizeChildren",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 *SwigwxSplitterEventTowxCommandEvent(void *ptr) { - wxSplitterEvent *src; - wxCommandEvent *dest; - src = (wxSplitterEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxSplitterEventTowxEvent(void *ptr) { - wxSplitterEvent *src; - wxEvent *dest; - src = (wxSplitterEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxSplitterEvent_GetSashPosition(_swigobj) (_swigobj->GetSashPosition()) -static PyObject *_wrap_wxSplitterEvent_GetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetSashPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetSashPosition. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterEvent_GetSashPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterEvent_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxSplitterEvent_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetX. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterEvent_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterEvent_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxSplitterEvent_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetY. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterEvent_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterEvent_GetWindowBeingRemoved(_swigobj) (_swigobj->GetWindowBeingRemoved()) -static PyObject *_wrap_wxSplitterEvent_GetWindowBeingRemoved(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterEvent * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterEvent_GetWindowBeingRemoved",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetWindowBeingRemoved. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxSplitterEvent_GetWindowBeingRemoved(_arg0); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSplitterEvent_SetSashPosition(_swigobj,_swigarg0) (_swigobj->SetSashPosition(_swigarg0)) -static PyObject *_wrap_wxSplitterEvent_SetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterEvent * _arg0; - int _arg1; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterEvent_SetSashPosition",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_SetSashPosition. Expected _wxSplitterEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterEvent_SetSashPosition(_arg0,_arg1); - - 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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxSP_3D|wxCLIP_CHILDREN; - char * _arg5 = (char *) "splitterWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxSplitterWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSplitterWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSplitterWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSplitterWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSplitterWindow_GetBorderSize(_swigobj) (_swigobj->GetBorderSize()) -static PyObject *_wrap_wxSplitterWindow_GetBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetBorderSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetMinimumPaneSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetSashPosition",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetSashSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetSplitMode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetWindow1",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSplitterWindow_GetWindow2(_swigobj) (_swigobj->GetWindow2()) -static PyObject *_wrap_wxSplitterWindow_GetWindow2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterWindow * _arg0; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_GetWindow2",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxSplitterWindow_Initialize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Initialize. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSplitterWindow_IsSplit",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetBorderSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) TRUE; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|i:wxSplitterWindow_SetSashPosition",&_argo0,&_arg1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetSashSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetMinimumPaneSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSplitterWindow_SetSplitMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|i:wxSplitterWindow_SplitHorizontally",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitHorizontally. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (int ) 0; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|i:wxSplitterWindow_SplitVertically",&_argo0,&_argo1,&_argo2,&_arg3)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitVertically. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxWindow *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|O:wxSplitterWindow_Unsplit",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Unsplit. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxTaskBarIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxTaskBarIcon(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxTaskBarIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTaskBarIcon * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxTaskBarIcon",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 *) ""; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|s:wxTaskBarIcon_SetIcon",&_argo0,&_argo1,&_arg2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTaskBarIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTaskBarIcon_SetIcon. Expected _wxTaskBarIcon_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxTaskBarIcon_RemoveIcon",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxTaskBarIcon_PopupMenu",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTaskBarIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTaskBarIcon_PopupMenu. Expected _wxTaskBarIcon_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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, METH_VARARGS }, - { "wxTaskBarIcon_RemoveIcon", _wrap_wxTaskBarIcon_RemoveIcon, METH_VARARGS }, - { "wxTaskBarIcon_SetIcon", _wrap_wxTaskBarIcon_SetIcon, METH_VARARGS }, - { "delete_wxTaskBarIcon", _wrap_delete_wxTaskBarIcon, METH_VARARGS }, - { "new_wxTaskBarIcon", _wrap_new_wxTaskBarIcon, METH_VARARGS }, - { "wxSplitterWindow_Unsplit", _wrap_wxSplitterWindow_Unsplit, METH_VARARGS }, - { "wxSplitterWindow_SplitVertically", _wrap_wxSplitterWindow_SplitVertically, METH_VARARGS }, - { "wxSplitterWindow_SplitHorizontally", _wrap_wxSplitterWindow_SplitHorizontally, METH_VARARGS }, - { "wxSplitterWindow_SetSplitMode", _wrap_wxSplitterWindow_SetSplitMode, METH_VARARGS }, - { "wxSplitterWindow_SetMinimumPaneSize", _wrap_wxSplitterWindow_SetMinimumPaneSize, METH_VARARGS }, - { "wxSplitterWindow_SetSashSize", _wrap_wxSplitterWindow_SetSashSize, METH_VARARGS }, - { "wxSplitterWindow_SetSashPosition", _wrap_wxSplitterWindow_SetSashPosition, METH_VARARGS }, - { "wxSplitterWindow_SetBorderSize", _wrap_wxSplitterWindow_SetBorderSize, METH_VARARGS }, - { "wxSplitterWindow_IsSplit", _wrap_wxSplitterWindow_IsSplit, METH_VARARGS }, - { "wxSplitterWindow_Initialize", _wrap_wxSplitterWindow_Initialize, METH_VARARGS }, - { "wxSplitterWindow_GetWindow2", _wrap_wxSplitterWindow_GetWindow2, METH_VARARGS }, - { "wxSplitterWindow_GetWindow1", _wrap_wxSplitterWindow_GetWindow1, METH_VARARGS }, - { "wxSplitterWindow_GetSplitMode", _wrap_wxSplitterWindow_GetSplitMode, METH_VARARGS }, - { "wxSplitterWindow_GetSashSize", _wrap_wxSplitterWindow_GetSashSize, METH_VARARGS }, - { "wxSplitterWindow_GetSashPosition", _wrap_wxSplitterWindow_GetSashPosition, METH_VARARGS }, - { "wxSplitterWindow_GetMinimumPaneSize", _wrap_wxSplitterWindow_GetMinimumPaneSize, METH_VARARGS }, - { "wxSplitterWindow_GetBorderSize", _wrap_wxSplitterWindow_GetBorderSize, METH_VARARGS }, - { "new_wxSplitterWindow", _wrap_new_wxSplitterWindow, METH_VARARGS }, - { "wxSplitterEvent_SetSashPosition", _wrap_wxSplitterEvent_SetSashPosition, METH_VARARGS }, - { "wxSplitterEvent_GetWindowBeingRemoved", _wrap_wxSplitterEvent_GetWindowBeingRemoved, METH_VARARGS }, - { "wxSplitterEvent_GetY", _wrap_wxSplitterEvent_GetY, METH_VARARGS }, - { "wxSplitterEvent_GetX", _wrap_wxSplitterEvent_GetX, METH_VARARGS }, - { "wxSplitterEvent_GetSashPosition", _wrap_wxSplitterEvent_GetSashPosition, METH_VARARGS }, - { "wxNotebook_ResizeChildren", _wrap_wxNotebook_ResizeChildren, METH_VARARGS }, - { "wxNotebook_GetPage", _wrap_wxNotebook_GetPage, METH_VARARGS }, - { "wxNotebook_InsertPage", _wrap_wxNotebook_InsertPage, METH_VARARGS }, - { "wxNotebook_AddPage", _wrap_wxNotebook_AddPage, METH_VARARGS }, - { "wxNotebook_DeleteAllPages", _wrap_wxNotebook_DeleteAllPages, METH_VARARGS }, - { "wxNotebook_RemovePage", _wrap_wxNotebook_RemovePage, METH_VARARGS }, - { "wxNotebook_DeletePage", _wrap_wxNotebook_DeletePage, METH_VARARGS }, - { "wxNotebook_GetRowCount", _wrap_wxNotebook_GetRowCount, METH_VARARGS }, - { "wxNotebook_SetPageImage", _wrap_wxNotebook_SetPageImage, METH_VARARGS }, - { "wxNotebook_GetPageImage", _wrap_wxNotebook_GetPageImage, METH_VARARGS }, - { "wxNotebook_GetImageList", _wrap_wxNotebook_GetImageList, METH_VARARGS }, - { "wxNotebook_SetImageList", _wrap_wxNotebook_SetImageList, METH_VARARGS }, - { "wxNotebook_GetPageText", _wrap_wxNotebook_GetPageText, METH_VARARGS }, - { "wxNotebook_SetPageText", _wrap_wxNotebook_SetPageText, METH_VARARGS }, - { "wxNotebook_GetSelection", _wrap_wxNotebook_GetSelection, METH_VARARGS }, - { "wxNotebook_AdvanceSelection", _wrap_wxNotebook_AdvanceSelection, METH_VARARGS }, - { "wxNotebook_SetSelection", _wrap_wxNotebook_SetSelection, METH_VARARGS }, - { "wxNotebook_GetPageCount", _wrap_wxNotebook_GetPageCount, METH_VARARGS }, - { "new_wxNotebook", _wrap_new_wxNotebook, METH_VARARGS }, - { "wxNotebookEvent_SetSelection", _wrap_wxNotebookEvent_SetSelection, METH_VARARGS }, - { "wxNotebookEvent_SetOldSelection", _wrap_wxNotebookEvent_SetOldSelection, METH_VARARGS }, - { "wxNotebookEvent_GetOldSelection", _wrap_wxNotebookEvent_GetOldSelection, METH_VARARGS }, - { "wxNotebookEvent_GetSelection", _wrap_wxNotebookEvent_GetSelection, METH_VARARGS }, - { "wxGridEvent_GetCell", _wrap_wxGridEvent_GetCell, METH_VARARGS }, - { "wxGridEvent_ShiftDown", _wrap_wxGridEvent_ShiftDown, METH_VARARGS }, - { "wxGridEvent_ControlDown", _wrap_wxGridEvent_ControlDown, METH_VARARGS }, - { "wxGridEvent_GetPosition", _wrap_wxGridEvent_GetPosition, METH_VARARGS }, - { "wxGridEvent_GetCol", _wrap_wxGridEvent_GetCol, METH_VARARGS }, - { "wxGridEvent_GetRow", _wrap_wxGridEvent_GetRow, METH_VARARGS }, - { "wxGridEvent_m_cell_get", _wrap_wxGridEvent_m_cell_get, METH_VARARGS }, - { "wxGridEvent_m_cell_set", _wrap_wxGridEvent_m_cell_set, METH_VARARGS }, - { "wxGridEvent_m_shift_get", _wrap_wxGridEvent_m_shift_get, METH_VARARGS }, - { "wxGridEvent_m_shift_set", _wrap_wxGridEvent_m_shift_set, METH_VARARGS }, - { "wxGridEvent_m_control_get", _wrap_wxGridEvent_m_control_get, METH_VARARGS }, - { "wxGridEvent_m_control_set", _wrap_wxGridEvent_m_control_set, METH_VARARGS }, - { "wxGridEvent_m_y_get", _wrap_wxGridEvent_m_y_get, METH_VARARGS }, - { "wxGridEvent_m_y_set", _wrap_wxGridEvent_m_y_set, METH_VARARGS }, - { "wxGridEvent_m_x_get", _wrap_wxGridEvent_m_x_get, METH_VARARGS }, - { "wxGridEvent_m_x_set", _wrap_wxGridEvent_m_x_set, METH_VARARGS }, - { "wxGridEvent_m_col_get", _wrap_wxGridEvent_m_col_get, METH_VARARGS }, - { "wxGridEvent_m_col_set", _wrap_wxGridEvent_m_col_set, METH_VARARGS }, - { "wxGridEvent_m_row_get", _wrap_wxGridEvent_m_row_get, METH_VARARGS }, - { "wxGridEvent_m_row_set", _wrap_wxGridEvent_m_row_set, METH_VARARGS }, - { "wxGrid_SetEditInPlace", _wrap_wxGrid_SetEditInPlace, METH_VARARGS }, - { "wxGrid_GetEditInPlace", _wrap_wxGrid_GetEditInPlace, METH_VARARGS }, - { "wxGrid_UpdateDimensions", _wrap_wxGrid_UpdateDimensions, METH_VARARGS }, - { "wxGrid_SetRowHeight", _wrap_wxGrid_SetRowHeight, METH_VARARGS }, - { "wxGrid_SetLabelValue", _wrap_wxGrid_SetLabelValue, METH_VARARGS }, - { "wxGrid_SetLabelTextFont", _wrap_wxGrid_SetLabelTextFont, METH_VARARGS }, - { "wxGrid_SetLabelTextColour", _wrap_wxGrid_SetLabelTextColour, METH_VARARGS }, - { "wxGrid_SetLabelSize", _wrap_wxGrid_SetLabelSize, METH_VARARGS }, - { "wxGrid_SetLabelBackgroundColour", _wrap_wxGrid_SetLabelBackgroundColour, METH_VARARGS }, - { "wxGrid_SetLabelAlignment", _wrap_wxGrid_SetLabelAlignment, METH_VARARGS }, - { "wxGrid_SetGridCursor", _wrap_wxGrid_SetGridCursor, METH_VARARGS }, - { "wxGrid_SetEditable", _wrap_wxGrid_SetEditable, METH_VARARGS }, - { "wxGrid_SetDividerPen", _wrap_wxGrid_SetDividerPen, METH_VARARGS }, - { "wxGrid_SetColumnWidth", _wrap_wxGrid_SetColumnWidth, METH_VARARGS }, - { "wxGrid_SetCellValue", _wrap_wxGrid_SetCellValue, METH_VARARGS }, - { "wxGrid_SetDefCellTextFont", _wrap_wxGrid_SetDefCellTextFont, METH_VARARGS }, - { "wxGrid_SetCellTextFont", _wrap_wxGrid_SetCellTextFont, METH_VARARGS }, - { "wxGrid_SetDefCellTextColour", _wrap_wxGrid_SetDefCellTextColour, METH_VARARGS }, - { "wxGrid_SetCellTextColour", _wrap_wxGrid_SetCellTextColour, METH_VARARGS }, - { "wxGrid_SetDefCellBackgroundColour", _wrap_wxGrid_SetDefCellBackgroundColour, METH_VARARGS }, - { "wxGrid_SetCellBackgroundColour", _wrap_wxGrid_SetCellBackgroundColour, METH_VARARGS }, - { "wxGrid_SetDefCellAlignment", _wrap_wxGrid_SetDefCellAlignment, METH_VARARGS }, - { "wxGrid_SetCellAlignment", _wrap_wxGrid_SetCellAlignment, METH_VARARGS }, - { "wxGrid_OnActivate", _wrap_wxGrid_OnActivate, METH_VARARGS }, - { "wxGrid_InsertRows", _wrap_wxGrid_InsertRows, METH_VARARGS }, - { "wxGrid_InsertCols", _wrap_wxGrid_InsertCols, METH_VARARGS }, - { "wxGrid_GetVertScrollBar", _wrap_wxGrid_GetVertScrollBar, METH_VARARGS }, - { "wxGrid_GetTextItem", _wrap_wxGrid_GetTextItem, METH_VARARGS }, - { "wxGrid_GetScrollPosY", _wrap_wxGrid_GetScrollPosY, METH_VARARGS }, - { "wxGrid_GetScrollPosX", _wrap_wxGrid_GetScrollPosX, METH_VARARGS }, - { "wxGrid_GetRows", _wrap_wxGrid_GetRows, METH_VARARGS }, - { "wxGrid_GetRowHeight", _wrap_wxGrid_GetRowHeight, METH_VARARGS }, - { "wxGrid_GetLabelValue", _wrap_wxGrid_GetLabelValue, METH_VARARGS }, - { "wxGrid_GetLabelTextFont", _wrap_wxGrid_GetLabelTextFont, METH_VARARGS }, - { "wxGrid_GetLabelTextColour", _wrap_wxGrid_GetLabelTextColour, METH_VARARGS }, - { "wxGrid_GetLabelSize", _wrap_wxGrid_GetLabelSize, METH_VARARGS }, - { "wxGrid_GetLabelBackgroundColour", _wrap_wxGrid_GetLabelBackgroundColour, METH_VARARGS }, - { "wxGrid_GetLabelAlignment", _wrap_wxGrid_GetLabelAlignment, METH_VARARGS }, - { "wxGrid_GetHorizScrollBar", _wrap_wxGrid_GetHorizScrollBar, METH_VARARGS }, - { "wxGrid_GetEditable", _wrap_wxGrid_GetEditable, METH_VARARGS }, - { "wxGrid_GetCursorRow", _wrap_wxGrid_GetCursorRow, METH_VARARGS }, - { "wxGrid_GetCursorColumn", _wrap_wxGrid_GetCursorColumn, METH_VARARGS }, - { "wxGrid_GetCurrentRect", _wrap_wxGrid_GetCurrentRect, METH_VARARGS }, - { "wxGrid_GetColumnWidth", _wrap_wxGrid_GetColumnWidth, METH_VARARGS }, - { "wxGrid_GetCols", _wrap_wxGrid_GetCols, METH_VARARGS }, - { "wxGrid_GetCellValue", _wrap_wxGrid_GetCellValue, METH_VARARGS }, - { "wxGrid_GetDefCellTextFont", _wrap_wxGrid_GetDefCellTextFont, METH_VARARGS }, - { "wxGrid_GetCellTextFont", _wrap_wxGrid_GetCellTextFont, METH_VARARGS }, - { "wxGrid_GetDefCellTextColour", _wrap_wxGrid_GetDefCellTextColour, METH_VARARGS }, - { "wxGrid_GetCellTextColour", _wrap_wxGrid_GetCellTextColour, METH_VARARGS }, - { "wxGrid_GetCells", _wrap_wxGrid_GetCells, METH_VARARGS }, - { "wxGrid_GetDefCellBackgroundColour", _wrap_wxGrid_GetDefCellBackgroundColour, METH_VARARGS }, - { "wxGrid_GetCellBackgroundColour", _wrap_wxGrid_GetCellBackgroundColour, METH_VARARGS }, - { "wxGrid_GetDefCellAlignment", _wrap_wxGrid_GetDefCellAlignment, METH_VARARGS }, - { "wxGrid_GetCellAlignment", _wrap_wxGrid_GetCellAlignment, METH_VARARGS }, - { "wxGrid_GetCell", _wrap_wxGrid_GetCell, METH_VARARGS }, - { "wxGrid_GetBatchCount", _wrap_wxGrid_GetBatchCount, METH_VARARGS }, - { "wxGrid_EndBatch", _wrap_wxGrid_EndBatch, METH_VARARGS }, - { "wxGrid_DeleteRows", _wrap_wxGrid_DeleteRows, METH_VARARGS }, - { "wxGrid_DeleteCols", _wrap_wxGrid_DeleteCols, METH_VARARGS }, - { "wxGrid_CurrentCellVisible", _wrap_wxGrid_CurrentCellVisible, METH_VARARGS }, - { "wxGrid_CreateGrid", _wrap_wxGrid_CreateGrid, METH_VARARGS }, - { "wxGrid_CellHitTest", _wrap_wxGrid_CellHitTest, METH_VARARGS }, - { "wxGrid_BeginBatch", _wrap_wxGrid_BeginBatch, METH_VARARGS }, - { "wxGrid_AppendRows", _wrap_wxGrid_AppendRows, METH_VARARGS }, - { "wxGrid_AppendCols", _wrap_wxGrid_AppendCols, METH_VARARGS }, - { "wxGrid_AdjustScrollbars", _wrap_wxGrid_AdjustScrollbars, METH_VARARGS }, - { "new_wxGrid", _wrap_new_wxGrid, METH_VARARGS }, - { "wxGridCell_SetCellBitmap", _wrap_wxGridCell_SetCellBitmap, METH_VARARGS }, - { "wxGridCell_GetCellBitmap", _wrap_wxGridCell_GetCellBitmap, METH_VARARGS }, - { "wxGridCell_SetAlignment", _wrap_wxGridCell_SetAlignment, METH_VARARGS }, - { "wxGridCell_GetAlignment", _wrap_wxGridCell_GetAlignment, METH_VARARGS }, - { "wxGridCell_GetBackgroundBrush", _wrap_wxGridCell_GetBackgroundBrush, METH_VARARGS }, - { "wxGridCell_SetBackgroundColour", _wrap_wxGridCell_SetBackgroundColour, METH_VARARGS }, - { "wxGridCell_GetBackgroundColour", _wrap_wxGridCell_GetBackgroundColour, METH_VARARGS }, - { "wxGridCell_SetTextColour", _wrap_wxGridCell_SetTextColour, METH_VARARGS }, - { "wxGridCell_GetTextColour", _wrap_wxGridCell_GetTextColour, METH_VARARGS }, - { "wxGridCell_SetFont", _wrap_wxGridCell_SetFont, METH_VARARGS }, - { "wxGridCell_GetFont", _wrap_wxGridCell_GetFont, METH_VARARGS }, - { "wxGridCell_SetTextValue", _wrap_wxGridCell_SetTextValue, METH_VARARGS }, - { "wxGridCell_GetTextValue", _wrap_wxGridCell_GetTextValue, METH_VARARGS }, - { "delete_wxGridCell", _wrap_delete_wxGridCell, METH_VARARGS }, - { "new_wxGridCell", _wrap_new_wxGridCell, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_wxEvent","_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler}, - { "_class_wxEvtHandler","_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_class_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler}, - { "_class_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_wxNotifyEvent","_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_wxPanel","_class_wxGrid",SwigwxGridTowxPanel}, - { "_wxPanel","_wxGrid",SwigwxGridTowxPanel}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_class_wxEvent","_wxSplitterEvent",SwigwxSplitterEventTowxEvent}, - { "_class_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_class_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent}, - { "_class_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_class_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_wxCommandEvent","_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxTaskBarIcon","_class_wxTaskBarIcon",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_class_wxGrid",SwigwxGridTowxPanel}, - { "_class_wxPanel","_wxGrid",SwigwxGridTowxPanel}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_class_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_class_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow}, - { "_class_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow}, - { "_class_wxWindow","_class_wxGrid",SwigwxGridTowxWindow}, - { "_class_wxWindow","_wxGrid",SwigwxGridTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxTaskBarIcon","_wxTaskBarIcon",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl}, - { "_wxControl","_wxNotebook",SwigwxNotebookTowxControl}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl}, - { "_class_wxControl","_wxNotebook",SwigwxNotebookTowxControl}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent}, - { "_class_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler}, - { "_wxEvtHandler","_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler}, - { "_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler}, - { "_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler}, - { "_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow}, - { "_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow}, - { "_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow}, - { "_wxWindow","_class_wxGrid",SwigwxGridTowxWindow}, - { "_wxWindow","_wxGrid",SwigwxGridTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, -{0,0,0}}; - -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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/windows2.py b/utils/wxPython/src/msw/windows2.py deleted file mode 100644 index 4020eecafc..0000000000 --- a/utils/wxPython/src/msw/windows2.py +++ /dev/null @@ -1,638 +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,windows2c=windows2c): - if self.thisown == 1 : - windows2c.delete_wxGridCell(self) - def GetTextValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetTextValue,(self,) + _args, _kwargs) - return val - def SetTextValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetTextValue,(self,) + _args, _kwargs) - return val - def GetFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def SetFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetFont,(self,) + _args, _kwargs) - return val - def GetTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def SetTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetTextColour,(self,) + _args, _kwargs) - return val - def GetBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def SetBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetBackgroundColour,(self,) + _args, _kwargs) - return val - def GetBackgroundBrush(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetBackgroundBrush,(self,) + _args, _kwargs) - if val: val = wxBrushPtr(val) - return val - def GetAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetAlignment,(self,) + _args, _kwargs) - return val - def SetAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetAlignment,(self,) + _args, _kwargs) - return val - def GetCellBitmap(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_GetCellBitmap,(self,) + _args, _kwargs) - if val: val = wxBitmapPtr(val) - return val - def SetCellBitmap(self, *_args, **_kwargs): - val = apply(windows2c.wxGridCell_SetCellBitmap,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxGridCell(wxGridCellPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxGridCell,_args,_kwargs) - self.thisown = 1 - - - - -class wxGridPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AdjustScrollbars(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_AdjustScrollbars,(self,) + _args, _kwargs) - return val - def AppendCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_AppendCols,(self,) + _args, _kwargs) - return val - def AppendRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_AppendRows,(self,) + _args, _kwargs) - return val - def BeginBatch(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_BeginBatch,(self,) + _args, _kwargs) - return val - def CellHitTest(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_CellHitTest,(self,) + _args, _kwargs) - return val - def CreateGrid(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_CreateGrid,(self,) + _args, _kwargs) - return val - def CurrentCellVisible(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_CurrentCellVisible,(self,) + _args, _kwargs) - return val - def DeleteCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_DeleteCols,(self,) + _args, _kwargs) - return val - def DeleteRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_DeleteRows,(self,) + _args, _kwargs) - return val - def EndBatch(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_EndBatch,(self,) + _args, _kwargs) - return val - def GetBatchCount(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetBatchCount,(self,) + _args, _kwargs) - return val - def GetCell(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCell,(self,) + _args, _kwargs) - if val: val = wxGridCellPtr(val) - return val - def GetCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellAlignment,(self,) + _args, _kwargs) - return val - def GetDefCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellAlignment,(self,) + _args, _kwargs) - return val - def GetCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetDefCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetCells(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCells,(self,) + _args, _kwargs) - return val - def GetCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetDefCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellTextFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetDefCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetDefCellTextFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetCellValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCellValue,(self,) + _args, _kwargs) - return val - def GetCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCols,(self,) + _args, _kwargs) - return val - def GetColumnWidth(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetColumnWidth,(self,) + _args, _kwargs) - return val - def GetCurrentRect(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCurrentRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def GetCursorColumn(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCursorColumn,(self,) + _args, _kwargs) - return val - def GetCursorRow(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetCursorRow,(self,) + _args, _kwargs) - return val - def GetEditable(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetEditable,(self,) + _args, _kwargs) - return val - def GetHorizScrollBar(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetHorizScrollBar,(self,) + _args, _kwargs) - if val: val = wxScrollBarPtr(val) - return val - def GetLabelAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelAlignment,(self,) + _args, _kwargs) - return val - def GetLabelBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelBackgroundColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetLabelSize(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelSize,(self,) + _args, _kwargs) - return val - def GetLabelTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelTextColour,(self,) + _args, _kwargs) - if val: val = wxColourPtr(val) - return val - def GetLabelTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelTextFont,(self,) + _args, _kwargs) - if val: val = wxFontPtr(val) - return val - def GetLabelValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetLabelValue,(self,) + _args, _kwargs) - return val - def GetRowHeight(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetRowHeight,(self,) + _args, _kwargs) - return val - def GetRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetRows,(self,) + _args, _kwargs) - return val - def GetScrollPosX(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetScrollPosX,(self,) + _args, _kwargs) - return val - def GetScrollPosY(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetScrollPosY,(self,) + _args, _kwargs) - return val - def GetTextItem(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetTextItem,(self,) + _args, _kwargs) - if val: val = wxTextCtrlPtr(val) - return val - def GetVertScrollBar(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetVertScrollBar,(self,) + _args, _kwargs) - if val: val = wxScrollBarPtr(val) - return val - def InsertCols(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_InsertCols,(self,) + _args, _kwargs) - return val - def InsertRows(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_InsertRows,(self,) + _args, _kwargs) - return val - def OnActivate(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_OnActivate,(self,) + _args, _kwargs) - return val - def SetCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellAlignment,(self,) + _args, _kwargs) - return val - def SetDefCellAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellAlignment,(self,) + _args, _kwargs) - return val - def SetCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellBackgroundColour,(self,) + _args, _kwargs) - return val - def SetDefCellBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellBackgroundColour,(self,) + _args, _kwargs) - return val - def SetCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellTextColour,(self,) + _args, _kwargs) - return val - def SetDefCellTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellTextColour,(self,) + _args, _kwargs) - return val - def SetCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellTextFont,(self,) + _args, _kwargs) - return val - def SetDefCellTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDefCellTextFont,(self,) + _args, _kwargs) - return val - def SetCellValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetCellValue,(self,) + _args, _kwargs) - return val - def SetColumnWidth(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetColumnWidth,(self,) + _args, _kwargs) - return val - def SetDividerPen(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetDividerPen,(self,) + _args, _kwargs) - return val - def SetEditable(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetEditable,(self,) + _args, _kwargs) - return val - def SetGridCursor(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetGridCursor,(self,) + _args, _kwargs) - return val - def SetLabelAlignment(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelAlignment,(self,) + _args, _kwargs) - return val - def SetLabelBackgroundColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelBackgroundColour,(self,) + _args, _kwargs) - return val - def SetLabelSize(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelSize,(self,) + _args, _kwargs) - return val - def SetLabelTextColour(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelTextColour,(self,) + _args, _kwargs) - return val - def SetLabelTextFont(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelTextFont,(self,) + _args, _kwargs) - return val - def SetLabelValue(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetLabelValue,(self,) + _args, _kwargs) - return val - def SetRowHeight(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetRowHeight,(self,) + _args, _kwargs) - return val - def UpdateDimensions(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_UpdateDimensions,(self,) + _args, _kwargs) - return val - def GetEditInPlace(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_GetEditInPlace,(self,) + _args, _kwargs) - return val - def SetEditInPlace(self, *_args, **_kwargs): - val = apply(windows2c.wxGrid_SetEditInPlace,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxGrid(wxGridPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxGrid,_args,_kwargs) - 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 GetRow(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetRow,(self,) + _args, _kwargs) - return val - def GetCol(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetCol,(self,) + _args, _kwargs) - return val - def GetPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetPosition,(self,) + _args, _kwargs) - if val: val = wxPointPtr(val) ; val.thisown = 1 - return val - def ControlDown(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_ControlDown,(self,) + _args, _kwargs) - return val - def ShiftDown(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_ShiftDown,(self,) + _args, _kwargs) - return val - def GetCell(self, *_args, **_kwargs): - val = apply(windows2c.wxGridEvent_GetCell,(self,) + _args, _kwargs) - if val: val = wxGridCellPtr(val) - return val - def __setattr__(self,name,value): - if name == "m_row" : - windows2c.wxGridEvent_m_row_set(self,value) - return - if name == "m_col" : - windows2c.wxGridEvent_m_col_set(self,value) - return - if name == "m_x" : - windows2c.wxGridEvent_m_x_set(self,value) - return - if name == "m_y" : - windows2c.wxGridEvent_m_y_set(self,value) - return - if name == "m_control" : - windows2c.wxGridEvent_m_control_set(self,value) - return - if name == "m_shift" : - windows2c.wxGridEvent_m_shift_set(self,value) - return - if name == "m_cell" : - windows2c.wxGridEvent_m_cell_set(self,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_row" : - return windows2c.wxGridEvent_m_row_get(self) - if name == "m_col" : - return windows2c.wxGridEvent_m_col_get(self) - if name == "m_x" : - return windows2c.wxGridEvent_m_x_get(self) - if name == "m_y" : - return windows2c.wxGridEvent_m_y_get(self) - if name == "m_control" : - return windows2c.wxGridEvent_m_control_get(self) - if name == "m_shift" : - return windows2c.wxGridEvent_m_shift_get(self) - if name == "m_cell" : - return wxGridCellPtr(windows2c.wxGridEvent_m_cell_get(self)) - raise AttributeError,name - def __repr__(self): - return "" % (self.this,) -class wxGridEvent(wxGridEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxNotebookEventPtr(wxNotifyEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_GetSelection,(self,) + _args, _kwargs) - return val - def GetOldSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_GetOldSelection,(self,) + _args, _kwargs) - return val - def SetOldSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_SetOldSelection,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebookEvent_SetSelection,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPageCount,(self,) + _args, _kwargs) - return val - def SetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetSelection,(self,) + _args, _kwargs) - return val - def AdvanceSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_AdvanceSelection,(self,) + _args, _kwargs) - return val - def GetSelection(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetSelection,(self,) + _args, _kwargs) - return val - def SetPageText(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetPageText,(self,) + _args, _kwargs) - return val - def GetPageText(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPageText,(self,) + _args, _kwargs) - return val - def SetImageList(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetImageList,(self,) + _args, _kwargs) - return val - def GetImageList(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetImageList,(self,) + _args, _kwargs) - if val: val = wxImageListPtr(val) - return val - def GetPageImage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPageImage,(self,) + _args, _kwargs) - return val - def SetPageImage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_SetPageImage,(self,) + _args, _kwargs) - return val - def GetRowCount(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetRowCount,(self,) + _args, _kwargs) - return val - def DeletePage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_DeletePage,(self,) + _args, _kwargs) - return val - def RemovePage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_RemovePage,(self,) + _args, _kwargs) - return val - def DeleteAllPages(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_DeleteAllPages,(self,) + _args, _kwargs) - return val - def AddPage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_AddPage,(self,) + _args, _kwargs) - return val - def InsertPage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_InsertPage,(self,) + _args, _kwargs) - return val - def GetPage(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_GetPage,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def ResizeChildren(self, *_args, **_kwargs): - val = apply(windows2c.wxNotebook_ResizeChildren,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxNotebook(wxNotebookPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxNotebook,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSplitterEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetSashPosition,(self,) + _args, _kwargs) - return val - def GetX(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetX,(self,) + _args, _kwargs) - return val - def GetY(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetY,(self,) + _args, _kwargs) - return val - def GetWindowBeingRemoved(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_GetWindowBeingRemoved,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def SetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterEvent_SetSashPosition,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSplitterEvent(wxSplitterEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSplitterWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBorderSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetBorderSize,(self,) + _args, _kwargs) - return val - def GetMinimumPaneSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetMinimumPaneSize,(self,) + _args, _kwargs) - return val - def GetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetSashPosition,(self,) + _args, _kwargs) - return val - def GetSashSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetSashSize,(self,) + _args, _kwargs) - return val - def GetSplitMode(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetSplitMode,(self,) + _args, _kwargs) - return val - def GetWindow1(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetWindow1,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetWindow2(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_GetWindow2,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def Initialize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_Initialize,(self,) + _args, _kwargs) - return val - def IsSplit(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_IsSplit,(self,) + _args, _kwargs) - return val - def SetBorderSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetBorderSize,(self,) + _args, _kwargs) - return val - def SetSashPosition(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetSashPosition,(self,) + _args, _kwargs) - return val - def SetSashSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetSashSize,(self,) + _args, _kwargs) - return val - def SetMinimumPaneSize(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetMinimumPaneSize,(self,) + _args, _kwargs) - return val - def SetSplitMode(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SetSplitMode,(self,) + _args, _kwargs) - return val - def SplitHorizontally(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SplitHorizontally,(self,) + _args, _kwargs) - return val - def SplitVertically(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_SplitVertically,(self,) + _args, _kwargs) - return val - def Unsplit(self, *_args, **_kwargs): - val = apply(windows2c.wxSplitterWindow_Unsplit,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSplitterWindow(wxSplitterWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxSplitterWindow,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTaskBarIconPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,windows2c=windows2c): - if self.thisown == 1 : - windows2c.delete_wxTaskBarIcon(self) - def SetIcon(self, *_args, **_kwargs): - val = apply(windows2c.wxTaskBarIcon_SetIcon,(self,) + _args, _kwargs) - return val - def RemoveIcon(self, *_args, **_kwargs): - val = apply(windows2c.wxTaskBarIcon_RemoveIcon,(self,) + _args, _kwargs) - return val - def PopupMenu(self, *_args, **_kwargs): - val = apply(windows2c.wxTaskBarIcon_PopupMenu,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxTaskBarIcon(wxTaskBarIconPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows2c.new_wxTaskBarIcon,_args,_kwargs) - 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 68fd76920c..0000000000 --- a/utils/wxPython/src/msw/windows3.cpp +++ /dev/null @@ -1,2043 +0,0 @@ -/* - * FILE : msw/windows3.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, 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"; -#ifdef __cplusplus -extern "C" { -#endif -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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashEvent_SetEdge",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashEvent_GetEdge",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxSashEvent_SetDragRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetDragRect. Expected _wxSashEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashEvent_GetDragRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashEvent_SetDragStatus",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashEvent_GetDragStatus",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxCLIP_CHILDREN|(wxSW_3D); - char * _arg5 = (char *) "sashWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxSashWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - 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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_GetSashVisible",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetDefaultBorderSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_GetEdgeMargin",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetExtraBorderSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMaximumSizeX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMaximumSizeY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMinimumSizeX",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashWindow_GetMinimumSizeY",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_HasBorder",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetDefaultBorderSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetExtraBorderSize",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMaximumSizeX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMaximumSizeY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMinimumSizeX",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashWindow_SetMinimumSizeY",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSashWindow_SetSashVisible",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"Oii:wxSashWindow_SetSashBorder",&_argo0,&_arg1,&tempbool2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetRequestedLength",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetRequestedLength",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetFlags",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetFlags",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxQueryLayoutInfoEvent_SetSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetSize. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetSize",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetOrientation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxQueryLayoutInfoEvent_SetAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxQueryLayoutInfoEvent_GetAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxCalculateLayoutEvent_SetFlags",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCalculateLayoutEvent_GetFlags",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxCalculateLayoutEvent_SetRect",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_SetRect. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxCalculateLayoutEvent_GetRect",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxPoint *) &wxPyDefaultPosition; - wxSize * _arg3 = (wxSize *) &wxPyDefaultSize; - long _arg4 = (long ) wxCLIP_CHILDREN|(wxSW_3D); - char * _arg5 = (char *) "layoutWindow"; - PyObject * _argo0 = 0; - PyObject * _argo2 = 0; - PyObject * _argo3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi|OOls:new_wxSashLayoutWindow",&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashLayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashLayoutWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashLayoutWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxSashLayoutWindow_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxSashLayoutWindow_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlignment _result; - wxSashLayoutWindow * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashLayoutWindow_GetAlignment",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxSashLayoutWindow_GetOrientation",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashLayoutWindow_SetAlignment",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxSashLayoutWindow_SetDefaultSize",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetDefaultSize. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxSashLayoutWindow_SetOrientation",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutAlgorithm_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxLayoutAlgorithm(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxLayoutAlgorithm(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlgorithm * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxLayoutAlgorithm",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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 = (wxRect *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxLayoutAlgorithm_LayoutMDIFrame",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxMDIParentFrame_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxWindow *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxLayoutAlgorithm_LayoutFrame",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutFrame. Expected _wxFrame_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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 = (wxWindow *) NULL; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - PyObject * _argo2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|O:wxLayoutAlgorithm_LayoutWindow",&_argo0,&_argo1,&_argo2)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutWindow. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argo2) { - if (_argo2 == Py_None) { _arg2 = NULL; } - else if (SWIG_GetPtrObj(_argo2,(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, METH_VARARGS }, - { "wxLayoutAlgorithm_LayoutFrame", _wrap_wxLayoutAlgorithm_LayoutFrame, METH_VARARGS }, - { "wxLayoutAlgorithm_LayoutMDIFrame", _wrap_wxLayoutAlgorithm_LayoutMDIFrame, METH_VARARGS }, - { "delete_wxLayoutAlgorithm", _wrap_delete_wxLayoutAlgorithm, METH_VARARGS }, - { "new_wxLayoutAlgorithm", _wrap_new_wxLayoutAlgorithm, METH_VARARGS }, - { "wxSashLayoutWindow_SetOrientation", _wrap_wxSashLayoutWindow_SetOrientation, METH_VARARGS }, - { "wxSashLayoutWindow_SetDefaultSize", _wrap_wxSashLayoutWindow_SetDefaultSize, METH_VARARGS }, - { "wxSashLayoutWindow_SetAlignment", _wrap_wxSashLayoutWindow_SetAlignment, METH_VARARGS }, - { "wxSashLayoutWindow_GetOrientation", _wrap_wxSashLayoutWindow_GetOrientation, METH_VARARGS }, - { "wxSashLayoutWindow_GetAlignment", _wrap_wxSashLayoutWindow_GetAlignment, METH_VARARGS }, - { "new_wxSashLayoutWindow", _wrap_new_wxSashLayoutWindow, METH_VARARGS }, - { "wxCalculateLayoutEvent_GetRect", _wrap_wxCalculateLayoutEvent_GetRect, METH_VARARGS }, - { "wxCalculateLayoutEvent_SetRect", _wrap_wxCalculateLayoutEvent_SetRect, METH_VARARGS }, - { "wxCalculateLayoutEvent_GetFlags", _wrap_wxCalculateLayoutEvent_GetFlags, METH_VARARGS }, - { "wxCalculateLayoutEvent_SetFlags", _wrap_wxCalculateLayoutEvent_SetFlags, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetAlignment", _wrap_wxQueryLayoutInfoEvent_GetAlignment, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetAlignment", _wrap_wxQueryLayoutInfoEvent_SetAlignment, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetOrientation", _wrap_wxQueryLayoutInfoEvent_GetOrientation, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetOrientation", _wrap_wxQueryLayoutInfoEvent_SetOrientation, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetSize", _wrap_wxQueryLayoutInfoEvent_GetSize, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetSize", _wrap_wxQueryLayoutInfoEvent_SetSize, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetFlags", _wrap_wxQueryLayoutInfoEvent_GetFlags, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetFlags", _wrap_wxQueryLayoutInfoEvent_SetFlags, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_GetRequestedLength", _wrap_wxQueryLayoutInfoEvent_GetRequestedLength, METH_VARARGS }, - { "wxQueryLayoutInfoEvent_SetRequestedLength", _wrap_wxQueryLayoutInfoEvent_SetRequestedLength, METH_VARARGS }, - { "wxSashWindow_SetSashBorder", _wrap_wxSashWindow_SetSashBorder, METH_VARARGS }, - { "wxSashWindow_SetSashVisible", _wrap_wxSashWindow_SetSashVisible, METH_VARARGS }, - { "wxSashWindow_SetMinimumSizeY", _wrap_wxSashWindow_SetMinimumSizeY, METH_VARARGS }, - { "wxSashWindow_SetMinimumSizeX", _wrap_wxSashWindow_SetMinimumSizeX, METH_VARARGS }, - { "wxSashWindow_SetMaximumSizeY", _wrap_wxSashWindow_SetMaximumSizeY, METH_VARARGS }, - { "wxSashWindow_SetMaximumSizeX", _wrap_wxSashWindow_SetMaximumSizeX, METH_VARARGS }, - { "wxSashWindow_SetExtraBorderSize", _wrap_wxSashWindow_SetExtraBorderSize, METH_VARARGS }, - { "wxSashWindow_SetDefaultBorderSize", _wrap_wxSashWindow_SetDefaultBorderSize, METH_VARARGS }, - { "wxSashWindow_HasBorder", _wrap_wxSashWindow_HasBorder, METH_VARARGS }, - { "wxSashWindow_GetMinimumSizeY", _wrap_wxSashWindow_GetMinimumSizeY, METH_VARARGS }, - { "wxSashWindow_GetMinimumSizeX", _wrap_wxSashWindow_GetMinimumSizeX, METH_VARARGS }, - { "wxSashWindow_GetMaximumSizeY", _wrap_wxSashWindow_GetMaximumSizeY, METH_VARARGS }, - { "wxSashWindow_GetMaximumSizeX", _wrap_wxSashWindow_GetMaximumSizeX, METH_VARARGS }, - { "wxSashWindow_GetExtraBorderSize", _wrap_wxSashWindow_GetExtraBorderSize, METH_VARARGS }, - { "wxSashWindow_GetEdgeMargin", _wrap_wxSashWindow_GetEdgeMargin, METH_VARARGS }, - { "wxSashWindow_GetDefaultBorderSize", _wrap_wxSashWindow_GetDefaultBorderSize, METH_VARARGS }, - { "wxSashWindow_GetSashVisible", _wrap_wxSashWindow_GetSashVisible, METH_VARARGS }, - { "new_wxSashWindow", _wrap_new_wxSashWindow, METH_VARARGS }, - { "wxSashEvent_GetDragStatus", _wrap_wxSashEvent_GetDragStatus, METH_VARARGS }, - { "wxSashEvent_SetDragStatus", _wrap_wxSashEvent_SetDragStatus, METH_VARARGS }, - { "wxSashEvent_GetDragRect", _wrap_wxSashEvent_GetDragRect, METH_VARARGS }, - { "wxSashEvent_SetDragRect", _wrap_wxSashEvent_SetDragRect, METH_VARARGS }, - { "wxSashEvent_GetEdge", _wrap_wxSashEvent_GetEdge, METH_VARARGS }, - { "wxSashEvent_SetEdge", _wrap_wxSashEvent_SetEdge, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_wxSashWindow","_class_wxSashWindow",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_class_wxSashEvent","_wxSashEvent",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_class_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow}, - { "_class_wxSashWindow","_wxSashWindow",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_class_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent}, - { "_class_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_class_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent}, - { "_class_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_class_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxTaskBarIcon","_class_wxTaskBarIcon",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_class_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_class_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_class_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_wxSashEvent","_class_wxSashEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxTaskBarIcon","_wxTaskBarIcon",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxPen","_wxPen",0}, - { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxFrame",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow}, - { "_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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)); -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/windows3.py b/utils/wxPython/src/msw/windows3.py deleted file mode 100644 index 82ea7fbd95..0000000000 --- a/utils/wxPython/src/msw/windows3.py +++ /dev/null @@ -1,273 +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, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_SetEdge,(self,) + _args, _kwargs) - return val - def GetEdge(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_GetEdge,(self,) + _args, _kwargs) - return val - def SetDragRect(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_SetDragRect,(self,) + _args, _kwargs) - return val - def GetDragRect(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_GetDragRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def SetDragStatus(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_SetDragStatus,(self,) + _args, _kwargs) - return val - def GetDragStatus(self, *_args, **_kwargs): - val = apply(windows3c.wxSashEvent_GetDragStatus,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetSashVisible,(self,) + _args, _kwargs) - return val - def GetDefaultBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetDefaultBorderSize,(self,) + _args, _kwargs) - return val - def GetEdgeMargin(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetEdgeMargin,(self,) + _args, _kwargs) - return val - def GetExtraBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetExtraBorderSize,(self,) + _args, _kwargs) - return val - def GetMaximumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMaximumSizeX,(self,) + _args, _kwargs) - return val - def GetMaximumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMaximumSizeY,(self,) + _args, _kwargs) - return val - def GetMinimumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMinimumSizeX,(self,) + _args, _kwargs) - return val - def GetMinimumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_GetMinimumSizeY,(self,) + _args, _kwargs) - return val - def HasBorder(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_HasBorder,(self,) + _args, _kwargs) - return val - def SetDefaultBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetDefaultBorderSize,(self,) + _args, _kwargs) - return val - def SetExtraBorderSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetExtraBorderSize,(self,) + _args, _kwargs) - return val - def SetMaximumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMaximumSizeX,(self,) + _args, _kwargs) - return val - def SetMaximumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMaximumSizeY,(self,) + _args, _kwargs) - return val - def SetMinimumSizeX(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMinimumSizeX,(self,) + _args, _kwargs) - return val - def SetMinimumSizeY(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetMinimumSizeY,(self,) + _args, _kwargs) - return val - def SetSashVisible(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetSashVisible,(self,) + _args, _kwargs) - return val - def SetSashBorder(self, *_args, **_kwargs): - val = apply(windows3c.wxSashWindow_SetSashBorder,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSashWindow(wxSashWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows3c.new_wxSashWindow,_args,_kwargs) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxQueryLayoutInfoEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetRequestedLength(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetRequestedLength,(self,) + _args, _kwargs) - return val - def GetRequestedLength(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetRequestedLength,(self,) + _args, _kwargs) - return val - def SetFlags(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetFlags,(self,) + _args, _kwargs) - return val - def GetFlags(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetFlags,(self,) + _args, _kwargs) - return val - def SetSize(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetSize,(self,) + _args, _kwargs) - return val - def GetSize(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetSize,(self,) + _args, _kwargs) - if val: val = wxSizePtr(val) ; val.thisown = 1 - return val - def SetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetOrientation,(self,) + _args, _kwargs) - return val - def GetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetOrientation,(self,) + _args, _kwargs) - return val - def SetAlignment(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_SetAlignment,(self,) + _args, _kwargs) - return val - def GetAlignment(self, *_args, **_kwargs): - val = apply(windows3c.wxQueryLayoutInfoEvent_GetAlignment,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_SetFlags,(self,) + _args, _kwargs) - return val - def GetFlags(self, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_GetFlags,(self,) + _args, _kwargs) - return val - def SetRect(self, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_SetRect,(self,) + _args, _kwargs) - return val - def GetRect(self, *_args, **_kwargs): - val = apply(windows3c.wxCalculateLayoutEvent_GetRect,(self,) + _args, _kwargs) - if val: val = wxRectPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -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, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_GetAlignment,(self,) + _args, _kwargs) - return val - def GetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_GetOrientation,(self,) + _args, _kwargs) - return val - def SetAlignment(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_SetAlignment,(self,) + _args, _kwargs) - return val - def SetDefaultSize(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_SetDefaultSize,(self,) + _args, _kwargs) - return val - def SetOrientation(self, *_args, **_kwargs): - val = apply(windows3c.wxSashLayoutWindow_SetOrientation,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxSashLayoutWindow(wxSashLayoutWindowPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows3c.new_wxSashLayoutWindow,_args,_kwargs) - 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,windows3c=windows3c): - if self.thisown == 1 : - windows3c.delete_wxLayoutAlgorithm(self) - def LayoutMDIFrame(self, *_args, **_kwargs): - val = apply(windows3c.wxLayoutAlgorithm_LayoutMDIFrame,(self,) + _args, _kwargs) - return val - def LayoutFrame(self, *_args, **_kwargs): - val = apply(windows3c.wxLayoutAlgorithm_LayoutFrame,(self,) + _args, _kwargs) - return val - def LayoutWindow(self, *_args, **_kwargs): - val = apply(windows3c.wxLayoutAlgorithm_LayoutWindow,(self,) + _args, _kwargs) - return val - def __repr__(self): - return "" % (self.this,) -class wxLayoutAlgorithm(wxLayoutAlgorithmPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(windows3c.new_wxLayoutAlgorithm,_args,_kwargs) - 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 ab8822d7a3..0000000000 --- a/utils/wxPython/src/msw/wx.cpp +++ /dev/null @@ -1,2659 +0,0 @@ -/* - * FILE : msw/wx.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 6) - * - * 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) __declspec(dllexport) a -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -#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 char *SWIG_GetPtrObj(PyObject *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif -#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"; - - -#include - -/*------------------------------------------------------------------ - ptrcast(value,type) - - Constructs a new pointer value. Value may either be a string - or an integer. Type is a string corresponding to either the - C datatype or mangled datatype. - - ptrcast(0,"Vector *") - or - ptrcast(0,"Vector_p") - ------------------------------------------------------------------ */ - -static PyObject *ptrcast(PyObject *_PTRVALUE, char *type) { - - char *r,*s; - void *ptr; - PyObject *obj; - char *typestr,*c; - - /* Produce a "mangled" version of the type string. */ - - typestr = (char *) malloc(strlen(type)+2); - - /* Go through and munge the typestring */ - - r = typestr; - *(r++) = '_'; - c = type; - while (*c) { - if (!isspace(*c)) { - if ((*c == '*') || (*c == '&')) { - *(r++) = 'p'; - } - else *(r++) = *c; - } else { - *(r++) = '_'; - } - c++; - } - *(r++) = 0; - - /* Check to see what kind of object _PTRVALUE is */ - - if (PyInt_Check(_PTRVALUE)) { - ptr = (void *) PyInt_AsLong(_PTRVALUE); - /* Received a numerical value. Make a pointer out of it */ - r = (char *) malloc(strlen(typestr)+22); - if (ptr) { - SWIG_MakePtr(r, ptr, typestr); - } else { - sprintf(r,"_0%s",typestr); - } - obj = PyString_FromString(r); - free(r); - } else if (PyString_Check(_PTRVALUE)) { - /* Have a real pointer value now. Try to strip out the pointer - value */ - s = PyString_AsString(_PTRVALUE); - r = (char *) malloc(strlen(type)+22); - - /* Now extract the pointer value */ - if (!SWIG_GetPtr(s,&ptr,0)) { - if (ptr) { - SWIG_MakePtr(r,ptr,typestr); - } else { - sprintf(r,"_0%s",typestr); - } - obj = PyString_FromString(r); - } else { - obj = NULL; - } - free(r); - } else { - obj = NULL; - } - free(typestr); - if (!obj) - PyErr_SetString(PyExc_TypeError,"Type error in ptrcast. Argument is not a valid pointer value."); - return obj; -} - -/*------------------------------------------------------------------ - ptrvalue(ptr,type = 0) - - Attempts to dereference a pointer value. If type is given, it - will try to use that type. Otherwise, this function will attempt - to "guess" the proper datatype by checking against all of the - builtin C datatypes. - ------------------------------------------------------------------ */ - -static PyObject *ptrvalue(PyObject *_PTRVALUE, int index, char *type) { - void *ptr; - char *s; - PyObject *obj; - - if (!PyString_Check(_PTRVALUE)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrvalue. Argument is not a valid pointer value."); - return NULL; - } - s = PyString_AsString(_PTRVALUE); - if (SWIG_GetPtr(s,&ptr,0)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrvalue. Argument is not a valid pointer value."); - return NULL; - } - - /* If no datatype was passed, try a few common datatypes first */ - - if (!type) { - - /* No datatype was passed. Type to figure out if it's a common one */ - - if (!SWIG_GetPtr(s,&ptr,"_int_p")) { - type = "int"; - } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { - type = "double"; - } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { - type = "short"; - } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { - type = "long"; - } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { - type = "float"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { - type = "char"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_pp")) { - type = "char *"; - } else { - type = "unknown"; - } - } - - if (!ptr) { - PyErr_SetString(PyExc_TypeError,"Unable to dereference NULL pointer."); - return NULL; - } - - /* Now we have a datatype. Try to figure out what to do about it */ - if (strcmp(type,"int") == 0) { - obj = PyInt_FromLong((long) *(((int *) ptr) + index)); - } else if (strcmp(type,"double") == 0) { - obj = PyFloat_FromDouble((double) *(((double *) ptr)+index)); - } else if (strcmp(type,"short") == 0) { - obj = PyInt_FromLong((long) *(((short *) ptr)+index)); - } else if (strcmp(type,"long") == 0) { - obj = PyInt_FromLong((long) *(((long *) ptr)+index)); - } else if (strcmp(type,"float") == 0) { - obj = PyFloat_FromDouble((double) *(((float *) ptr)+index)); - } else if (strcmp(type,"char") == 0) { - obj = PyString_FromString(((char *) ptr)+index); - } else if (strcmp(type,"char *") == 0) { - char *c = *(((char **) ptr)+index); - if (c) obj = PyString_FromString(c); - else obj = PyString_FromString("NULL"); - } else { - PyErr_SetString(PyExc_TypeError,"Unable to dereference unsupported datatype."); - return NULL; - } - return obj; -} - -/*------------------------------------------------------------------ - ptrcreate(type,value = 0,numelements = 1) - - Attempts to create a new object of given type. Type must be - a basic C datatype. Will not create complex objects. - ------------------------------------------------------------------ */ - -static PyObject *ptrcreate(char *type, PyObject *_PYVALUE, int numelements) { - void *ptr; - PyObject *obj; - int sz; - char *cast; - char temp[40]; - - /* Check the type string against a variety of possibilities */ - - if (strcmp(type,"int") == 0) { - sz = sizeof(int)*numelements; - cast = "_int_p"; - } else if (strcmp(type,"short") == 0) { - sz = sizeof(short)*numelements; - cast = "_short_p"; - } else if (strcmp(type,"long") == 0) { - sz = sizeof(long)*numelements; - cast = "_long_p"; - } else if (strcmp(type,"double") == 0) { - sz = sizeof(double)*numelements; - cast = "_double_p"; - } else if (strcmp(type,"float") == 0) { - sz = sizeof(float)*numelements; - cast = "_float_p"; - } else if (strcmp(type,"char") == 0) { - sz = sizeof(char)*numelements; - cast = "_char_p"; - } else if (strcmp(type,"char *") == 0) { - sz = sizeof(char *)*(numelements+1); - cast = "_char_pp"; - } else { - PyErr_SetString(PyExc_TypeError,"Unable to create unknown datatype."); - return NULL; - } - - /* Create the new object */ - - ptr = (void *) malloc(sz); - if (!ptr) { - PyErr_SetString(PyExc_MemoryError,"Out of memory in swig_create."); - return NULL; - } - - /* Now try to set its default value */ - - if (_PYVALUE) { - if (strcmp(type,"int") == 0) { - int *ip,i,ivalue; - ivalue = (int) PyInt_AsLong(_PYVALUE); - ip = (int *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"short") == 0) { - short *ip,ivalue; - int i; - ivalue = (short) PyInt_AsLong(_PYVALUE); - ip = (short *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"long") == 0) { - long *ip,ivalue; - int i; - ivalue = (long) PyInt_AsLong(_PYVALUE); - ip = (long *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"double") == 0) { - double *ip,ivalue; - int i; - ivalue = (double) PyFloat_AsDouble(_PYVALUE); - ip = (double *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"float") == 0) { - float *ip,ivalue; - int i; - ivalue = (float) PyFloat_AsDouble(_PYVALUE); - ip = (float *) ptr; - for (i = 0; i < numelements; i++) - ip[i] = ivalue; - } else if (strcmp(type,"char") == 0) { - char *ip,*ivalue; - ivalue = (char *) PyString_AsString(_PYVALUE); - ip = (char *) ptr; - strncpy(ip,ivalue,numelements-1); - } else if (strcmp(type,"char *") == 0) { - char **ip, *ivalue; - int i; - ivalue = (char *) PyString_AsString(_PYVALUE); - ip = (char **) ptr; - for (i = 0; i < numelements; i++) { - if (ivalue) { - ip[i] = (char *) malloc(strlen(ivalue)+1); - strcpy(ip[i],ivalue); - } else { - ip[i] = 0; - } - } - ip[numelements] = 0; - } - } - /* Create the pointer value */ - - SWIG_MakePtr(temp,ptr,cast); - obj = PyString_FromString(temp); - return obj; -} - - -/*------------------------------------------------------------------ - ptrset(ptr,value,index = 0,type = 0) - - Attempts to set the value of a pointer variable. If type is - given, we will use that type. Otherwise, we'll guess the datatype. - ------------------------------------------------------------------ */ - -static PyObject *ptrset(PyObject *_PTRVALUE, PyObject *_PYVALUE, int index, char *type) { - void *ptr; - char *s; - PyObject *obj; - - if (!PyString_Check(_PTRVALUE)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrset. Argument is not a valid pointer value."); - return NULL; - } - s = PyString_AsString(_PTRVALUE); - if (SWIG_GetPtr(s,&ptr,0)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrset. Argument is not a valid pointer value."); - return NULL; - } - - /* If no datatype was passed, try a few common datatypes first */ - - if (!type) { - - /* No datatype was passed. Type to figure out if it's a common one */ - - if (!SWIG_GetPtr(s,&ptr,"_int_p")) { - type = "int"; - } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { - type = "double"; - } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { - type = "short"; - } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { - type = "long"; - } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { - type = "float"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { - type = "char"; - } else if (!SWIG_GetPtr(s,&ptr,"_char_pp")) { - type = "char *"; - } else { - type = "unknown"; - } - } - - if (!ptr) { - PyErr_SetString(PyExc_TypeError,"Unable to set NULL pointer."); - return NULL; - } - - /* Now we have a datatype. Try to figure out what to do about it */ - if (strcmp(type,"int") == 0) { - *(((int *) ptr)+index) = (int) PyInt_AsLong(_PYVALUE); - } else if (strcmp(type,"double") == 0) { - *(((double *) ptr)+index) = (double) PyFloat_AsDouble(_PYVALUE); - } else if (strcmp(type,"short") == 0) { - *(((short *) ptr)+index) = (short) PyInt_AsLong(_PYVALUE); - } else if (strcmp(type,"long") == 0) { - *(((long *) ptr)+index) = (long) PyInt_AsLong(_PYVALUE); - } else if (strcmp(type,"float") == 0) { - *(((float *) ptr)+index) = (float) PyFloat_AsDouble(_PYVALUE); - } else if (strcmp(type,"char") == 0) { - char *c = PyString_AsString(_PYVALUE); - strcpy(((char *) ptr)+index, c); - } else if (strcmp(type,"char *") == 0) { - char *c = PyString_AsString(_PYVALUE); - char **ca = (char **) ptr; - if (ca[index]) free(ca[index]); - if (strcmp(c,"NULL") == 0) { - ca[index] = 0; - } else { - ca[index] = (char *) malloc(strlen(c)+1); - strcpy(ca[index],c); - } - } else { - PyErr_SetString(PyExc_TypeError,"Unable to set unsupported datatype."); - return NULL; - } - Py_INCREF(Py_None); - return Py_None; -} - - -/*------------------------------------------------------------------ - ptradd(ptr,offset) - - Adds a value to an existing pointer value. Will do a type-dependent - add for basic datatypes. For other datatypes, will do a byte-add. - ------------------------------------------------------------------ */ - -static PyObject *ptradd(PyObject *_PTRVALUE, int offset) { - - char *r,*s; - void *ptr,*junk; - PyObject *obj; - char *type; - - /* Check to see what kind of object _PTRVALUE is */ - - if (PyString_Check(_PTRVALUE)) { - /* Have a potential pointer value now. Try to strip out the value */ - s = PyString_AsString(_PTRVALUE); - - /* Try to handle a few common datatypes first */ - - if (!SWIG_GetPtr(s,&ptr,"_int_p")) { - ptr = (void *) (((int *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { - ptr = (void *) (((double *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { - ptr = (void *) (((short *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { - ptr = (void *) (((long *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { - ptr = (void *) (((float *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { - ptr = (void *) (((char *) ptr) + offset); - } else if (!SWIG_GetPtr(s,&ptr,0)) { - ptr = (void *) (((char *) ptr) + offset); - } else { - PyErr_SetString(PyExc_TypeError,"Type error in ptradd. Argument is not a valid pointer value."); - return NULL; - } - type = SWIG_GetPtr(s,&junk,"INVALID POINTER"); - r = (char *) malloc(strlen(type)+20); - if (ptr) { - SWIG_MakePtr(r,ptr,type); - } else { - sprintf(r,"_0%s",type); - } - obj = PyString_FromString(r); - free(r); - } - return obj; -} - -/*------------------------------------------------------------------ - ptrmap(type1,type2) - - Allows a mapping between type1 and type2. (Like a typedef) - ------------------------------------------------------------------ */ - -static void ptrmap(char *type1, char *type2) { - - char *typestr1,*typestr2,*c,*r; - - /* Produce a "mangled" version of the type string. */ - - typestr1 = (char *) malloc(strlen(type1)+2); - - /* Go through and munge the typestring */ - - r = typestr1; - *(r++) = '_'; - c = type1; - while (*c) { - if (!isspace(*c)) { - if ((*c == '*') || (*c == '&')) { - *(r++) = 'p'; - } - else *(r++) = *c; - } else { - *(r++) = '_'; - } - c++; - } - *(r++) = 0; - - typestr2 = (char *) malloc(strlen(type2)+2); - - /* Go through and munge the typestring */ - - r = typestr2; - *(r++) = '_'; - c = type2; - while (*c) { - if (!isspace(*c)) { - if ((*c == '*') || (*c == '&')) { - *(r++) = 'p'; - } - else *(r++) = *c; - } else { - *(r++) = '_'; - } - c++; - } - *(r++) = 0; - SWIG_RegisterMapping(typestr1,typestr2,0); - SWIG_RegisterMapping(typestr2,typestr1,0); -} - -/*------------------------------------------------------------------ - ptrfree(ptr) - - Destroys a pointer value - ------------------------------------------------------------------ */ - -PyObject *ptrfree(PyObject *_PTRVALUE) { - void *ptr, *junk; - char *s; - - if (!PyString_Check(_PTRVALUE)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrfree. Argument is not a valid pointer value."); - return NULL; - } - s = PyString_AsString(_PTRVALUE); - if (SWIG_GetPtr(s,&ptr,0)) { - PyErr_SetString(PyExc_TypeError,"Type error in ptrfree. Argument is not a valid pointer value."); - return NULL; - } - - /* Check to see if this pointer is a char ** */ - if (!SWIG_GetPtr(s,&junk,"_char_pp")) { - char **c = (char **) ptr; - if (c) { - int i = 0; - while (c[i]) { - free(c[i]); - i++; - } - } - } - if (ptr) - free((char *) ptr); - - Py_INCREF(Py_None); - return Py_None; -} - - -class __wxPyCleanup { -public: - __wxPyCleanup() { } - ~__wxPyCleanup() { wxApp::CleanUp(); } -}; - -extern "C" SWIGEXPORT(void) initwindowsc(); -extern "C" SWIGEXPORT(void) initwindows2c(); -extern "C" SWIGEXPORT(void) initeventsc(); -extern "C" SWIGEXPORT(void) initmiscc(); -extern "C" SWIGEXPORT(void) initmisc2c(); -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(); -extern "C" SWIGEXPORT(void) initprintfwc(); -#ifndef SEPARATE -extern "C" SWIGEXPORT(void) initutilsc(); -//extern "C" SWIGEXPORT(void) initoglc(); -extern "C" SWIGEXPORT(void) initglcanvasc(); -#endif -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_ptrcast(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - char * _arg1; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Os:ptrcast",&_obj0,&_arg1)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrcast(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrvalue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - int _arg1 = (int ) 0; - char * _arg2 = (char *) 0; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|is:ptrvalue",&_obj0,&_arg1,&_arg2)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrvalue(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - PyObject * _arg1; - int _arg2 = (int ) 0; - char * _arg3 = (char *) 0; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO|is:ptrset",&_obj0,&_obj1,&_arg2,&_arg3)) - return NULL; -{ - _arg0 = _obj0; -} -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrset(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrcreate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - char * _arg0; - PyObject * _arg1 = (PyObject *) 0; - int _arg2 = (int ) 1; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|Oi:ptrcreate",&_arg0,&_obj1,&_arg2)) - return NULL; - if (_obj1) -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrcreate(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrfree(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:ptrfree",&_obj0)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptrfree(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptradd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - PyObject * _arg0; - int _arg1; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:ptradd",&_obj0,&_arg1)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)ptradd(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject *_wrap_ptrmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - char * _arg0; - char * _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ss:ptrmap",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - ptrmap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static int _wrap_wxPyDefaultPosition_set(PyObject *val) { - wxPoint * temp; - - if (val) { - if (val == Py_None) { temp = NULL; } - else if (SWIG_GetPtrObj(val,(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) { - wxSize * temp; - - if (val) { - if (val == Py_None) { temp = NULL; } - else if (SWIG_GetPtrObj(val,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyApp_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete_wxPyApp(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyApp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete_wxPyApp",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyApp. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyApp(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_GetAppName(_swigobj) (_swigobj->GetAppName()) -static PyObject *_wrap_wxPyApp_GetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetAppName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetAuto3D",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetClassName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetExitOnFrameDelete",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetPrintMode",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetTopWindow",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define wxPyApp_GetVendorName(_swigobj) (_swigobj->GetVendorName()) -static PyObject *_wrap_wxPyApp_GetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_GetVendorName",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_Dispatch",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_ExitMainLoop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_Initialized",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_MainLoop",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_Pending",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_ProcessIdle(_swigobj) (_swigobj->ProcessIdle()) -static PyObject *_wrap_wxPyApp_ProcessIdle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxPyApp_ProcessIdle",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_ProcessIdle. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_ProcessIdle(_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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetAppName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPyApp_SetAuto3D",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetClassName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPyApp_SetExitOnFrameDelete",&_argo0,&tempbool1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPyApp_SetPrintMode",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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; - PyObject * _argo0 = 0; - PyObject * _argo1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetTopWindow",&_argo0,&_argo1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetTopWindow. Expected _wxPyApp_p."); - return NULL; - } - } - if (_argo1) { - if (_argo1 == Py_None) { _arg1 = NULL; } - else if (SWIG_GetPtrObj(_argo1,(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; - PyObject * _argo0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxPyApp_SetVendorName",&_argo0,&_obj1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(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_GetStdIcon(_swigobj,_swigarg0) (_swigobj->GetStdIcon(_swigarg0)) -static PyObject *_wrap_wxPyApp_GetStdIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _result; - wxPyApp * _arg0; - int _arg1; - PyObject * _argo0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Oi:wxPyApp_GetStdIcon",&_argo0,&_arg1)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetStdIcon. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxIcon (wxPyApp_GetStdIcon(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new___wxPyCleanup() (new __wxPyCleanup()) -static PyObject *_wrap_new___wxPyCleanup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - __wxPyCleanup * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new___wxPyCleanup")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (__wxPyCleanup *)new___wxPyCleanup(); - - wxPy_END_ALLOW_THREADS; -} if (_result) { - SWIG_MakePtr(_ptemp, (char *) _result,"___wxPyCleanup_p"); - _resultobj = Py_BuildValue("s",_ptemp); - } else { - Py_INCREF(Py_None); - _resultobj = Py_None; - } - return _resultobj; -} - -#define delete___wxPyCleanup(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete___wxPyCleanup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - __wxPyCleanup * _arg0; - PyObject * _argo0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O:delete___wxPyCleanup",&_argo0)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"___wxPyCleanup_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete___wxPyCleanup. Expected ___wxPyCleanup_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete___wxPyCleanup(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef wxcMethods[] = { - { "delete___wxPyCleanup", _wrap_delete___wxPyCleanup, METH_VARARGS }, - { "new___wxPyCleanup", _wrap_new___wxPyCleanup, METH_VARARGS }, - { "wxPyApp_GetStdIcon", _wrap_wxPyApp_GetStdIcon, METH_VARARGS }, - { "wxPyApp_SetVendorName", _wrap_wxPyApp_SetVendorName, METH_VARARGS }, - { "wxPyApp_SetTopWindow", _wrap_wxPyApp_SetTopWindow, METH_VARARGS }, - { "wxPyApp_SetPrintMode", _wrap_wxPyApp_SetPrintMode, METH_VARARGS }, - { "wxPyApp_SetExitOnFrameDelete", _wrap_wxPyApp_SetExitOnFrameDelete, METH_VARARGS }, - { "wxPyApp_SetClassName", _wrap_wxPyApp_SetClassName, METH_VARARGS }, - { "wxPyApp_SetAuto3D", _wrap_wxPyApp_SetAuto3D, METH_VARARGS }, - { "wxPyApp_SetAppName", _wrap_wxPyApp_SetAppName, METH_VARARGS }, - { "wxPyApp_ProcessIdle", _wrap_wxPyApp_ProcessIdle, METH_VARARGS }, - { "wxPyApp_Pending", _wrap_wxPyApp_Pending, METH_VARARGS }, - { "wxPyApp_MainLoop", _wrap_wxPyApp_MainLoop, METH_VARARGS }, - { "wxPyApp_Initialized", _wrap_wxPyApp_Initialized, METH_VARARGS }, - { "wxPyApp_ExitMainLoop", _wrap_wxPyApp_ExitMainLoop, METH_VARARGS }, - { "wxPyApp_Dispatch", _wrap_wxPyApp_Dispatch, METH_VARARGS }, - { "wxPyApp_GetVendorName", _wrap_wxPyApp_GetVendorName, METH_VARARGS }, - { "wxPyApp_GetTopWindow", _wrap_wxPyApp_GetTopWindow, METH_VARARGS }, - { "wxPyApp_GetPrintMode", _wrap_wxPyApp_GetPrintMode, METH_VARARGS }, - { "wxPyApp_GetExitOnFrameDelete", _wrap_wxPyApp_GetExitOnFrameDelete, METH_VARARGS }, - { "wxPyApp_GetClassName", _wrap_wxPyApp_GetClassName, METH_VARARGS }, - { "wxPyApp_GetAuto3D", _wrap_wxPyApp_GetAuto3D, METH_VARARGS }, - { "wxPyApp_GetAppName", _wrap_wxPyApp_GetAppName, METH_VARARGS }, - { "delete_wxPyApp", _wrap_delete_wxPyApp, METH_VARARGS }, - { "new_wxPyApp", _wrap_new_wxPyApp, METH_VARARGS }, - { "_wxSetDictionary", __wxSetDictionary, METH_VARARGS }, - { "_wxStart", __wxStart, METH_VARARGS }, - { "ptrmap", _wrap_ptrmap, METH_VARARGS }, - { "ptradd", _wrap_ptradd, METH_VARARGS }, - { "ptrfree", _wrap_ptrfree, METH_VARARGS }, - { "ptrcreate", _wrap_ptrcreate, METH_VARARGS }, - { "ptrset", _wrap_ptrset, METH_VARARGS }, - { "ptrvalue", _wrap_ptrvalue, METH_VARARGS }, - { "ptrcast", _wrap_ptrcast, METH_VARARGS }, - { NULL, NULL } -}; -#ifdef __cplusplus -} -#endif -/* - * This table is used by the pointer type-checker - */ -static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = { - { "_wxAcceleratorTable","_class_wxAcceleratorTable",0}, - { "_wxEvent","_class_wxEvent",0}, - { "_class_wxActivateEvent","_wxActivateEvent",0}, - { "_signed_long","_long",0}, - { "_wxMenuEvent","_class_wxMenuEvent",0}, - { "_class_wxJPEGHandler","_wxJPEGHandler",0}, - { "_wxBMPHandler","_class_wxBMPHandler",0}, - { "_wxImage","_class_wxImage",0}, - { "_wxPrintQuality","_int",0}, - { "_wxPrintQuality","_signed_int",0}, - { "_wxPrintQuality","_unsigned_int",0}, - { "_wxPrintQuality","_wxWindowID",0}, - { "_wxPrintQuality","_uint",0}, - { "_wxPrintQuality","_EBool",0}, - { "_wxPrintQuality","_size_t",0}, - { "_wxFontData","_class_wxFontData",0}, - { "___wxPyCleanup","_class___wxPyCleanup",0}, - { "_class_wxRegionIterator","_wxRegionIterator",0}, - { "_class_wxMenuBar","_wxMenuBar",0}, - { "_class_wxPyTreeItemData","_wxPyTreeItemData",0}, - { "_class_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_class_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_class_wxEvtHandler","_wxEvtHandler",0}, - { "_wxPaintEvent","_class_wxPaintEvent",0}, - { "_wxGIFHandler","_class_wxGIFHandler",0}, - { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0}, - { "_wxCursor","_class_wxCursor",0}, - { "_wxNotifyEvent","_class_wxNotifyEvent",0}, - { "_wxImageHandler","_class_wxImageHandler",0}, - { "_class_wxTreeCtrl","_wxTreeCtrl",0}, - { "_wxMask","_class_wxMask",0}, - { "_wxToolTip","_class_wxToolTip",0}, - { "_wxGrid","_class_wxGrid",0}, - { "_wxPNGHandler","_class_wxPNGHandler",0}, - { "_class_wxColourData","_wxColourData",0}, - { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0}, - { "_wxPrinter","_class_wxPrinter",0}, - { "_wxPen","_class_wxPen",0}, - { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0}, - { "_byte","_unsigned_char",0}, - { "_wxStaticBox","_class_wxStaticBox",0}, - { "_wxChoice","_class_wxChoice",0}, - { "_wxSlider","_class_wxSlider",0}, - { "_wxNotebookEvent","_class_wxNotebookEvent",0}, - { "_wxPyPrintout","_class_wxPyPrintout",0}, - { "_long","_wxDash",0}, - { "_long","_unsigned_long",0}, - { "_long","_signed_long",0}, - { "_wxImageList","_class_wxImageList",0}, - { "_wxDropFilesEvent","_class_wxDropFilesEvent",0}, - { "_wxBitmapButton","_class_wxBitmapButton",0}, - { "_wxSashWindow","_class_wxSashWindow",0}, - { "_class_wxPrintDialogData","_wxPrintDialogData",0}, - { "_class_wxAcceleratorTable","_wxAcceleratorTable",0}, - { "_class_wxGauge","_wxGauge",0}, - { "_class_wxSashEvent","_wxSashEvent",0}, - { "_wxDC","_class_wxDC",0}, - { "_wxListEvent","_class_wxListEvent",0}, - { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0}, - { "_wxProgressDialog","_class_wxProgressDialog",0}, - { "_class_wxBMPHandler","_wxBMPHandler",0}, - { "_wxPrintPreview","_class_wxPrintPreview",0}, - { "_wxSpinEvent","_class_wxSpinEvent",0}, - { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0}, - { "_size_t","_wxPrintQuality",0}, - { "_size_t","_unsigned_int",0}, - { "_size_t","_int",0}, - { "_size_t","_wxWindowID",0}, - { "_size_t","_uint",0}, - { "_class_wxRealPoint","_wxRealPoint",0}, - { "_wxPrinterDC","_class_wxPrinterDC",0}, - { "_class_wxMenuItem","_wxMenuItem",0}, - { "_class_wxPaintEvent","_wxPaintEvent",0}, - { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0}, - { "_class_wxStatusBar","_wxStatusBar",0}, - { "_class_wxGIFHandler","_wxGIFHandler",0}, - { "_wxPanel","_class_wxPanel",0}, - { "_wxInitDialogEvent","_class_wxInitDialogEvent",0}, - { "_wxCheckBox","_class_wxCheckBox",0}, - { "_wxPyEvent","_class_wxPyEvent",0}, - { "_wxTextCtrl","_class_wxTextCtrl",0}, - { "_class_wxMask","_wxMask",0}, - { "_class_wxToolTip","_wxToolTip",0}, - { "_class_wxKeyEvent","_wxKeyEvent",0}, - { "_class_wxGrid","_wxGrid",0}, - { "_class_wxPNGHandler","_wxPNGHandler",0}, - { "_wxColour","_class_wxColour",0}, - { "_class_wxDialog","_wxDialog",0}, - { "_wxPageSetupDialog","_class_wxPageSetupDialog",0}, - { "_class_wxPrinter","_wxPrinter",0}, - { "_wxIdleEvent","_class_wxIdleEvent",0}, - { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0}, - { "_wxToolBar","_class_wxToolBar",0}, - { "_wxStaticLine","_class_wxStaticLine",0}, - { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0}, - { "_wxBrush","_class_wxBrush",0}, - { "_wxMiniFrame","_class_wxMiniFrame",0}, - { "_class_wxNotebookEvent","_wxNotebookEvent",0}, - { "_class_wxPyPrintout","_wxPyPrintout",0}, - { "_class_wxSashWindow","_wxSashWindow",0}, - { "_wxShowEvent","_class_wxShowEvent",0}, - { "_uint","_wxPrintQuality",0}, - { "_uint","_size_t",0}, - { "_uint","_unsigned_int",0}, - { "_uint","_int",0}, - { "_uint","_wxWindowID",0}, - { "_class_wxEvent","_wxEvent",0}, - { "_wxCheckListBox","_class_wxCheckListBox",0}, - { "_wxSplitterEvent","_class_wxSplitterEvent",0}, - { "_wxGridEvent","_class_wxGridEvent",0}, - { "_wxRect","_class_wxRect",0}, - { "_wxCommandEvent","_class_wxCommandEvent",0}, - { "_wxSizeEvent","_class_wxSizeEvent",0}, - { "_class_wxImage","_wxImage",0}, - { "_wxPoint","_class_wxPoint",0}, - { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0}, - { "_class_wxButton","_wxButton",0}, - { "_wxRadioBox","_class_wxRadioBox",0}, - { "_class_wxFontData","_wxFontData",0}, - { "_class___wxPyCleanup","___wxPyCleanup",0}, - { "_wxBitmap","_class_wxBitmap",0}, - { "_wxTaskBarIcon","_class_wxTaskBarIcon",0}, - { "_wxPrintDialog","_class_wxPrintDialog",0}, - { "_wxPyTimer","_class_wxPyTimer",0}, - { "_wxWindowDC","_class_wxWindowDC",0}, - { "_wxScrollBar","_class_wxScrollBar",0}, - { "_wxSpinButton","_class_wxSpinButton",0}, - { "_wxToolBarTool","_class_wxToolBarTool",0}, - { "_wxColourDialog","_class_wxColourDialog",0}, - { "_wxPrintData","_class_wxPrintData",0}, - { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0}, - { "_class_wxNotifyEvent","_wxNotifyEvent",0}, - { "_wxMessageDialog","_class_wxMessageDialog",0}, - { "_class_wxPyEvent","_wxPyEvent",0}, - { "_wxTextEntryDialog","_class_wxTextEntryDialog",0}, - { "_class_wxIconizeEvent","_wxIconizeEvent",0}, - { "_class_wxStaticBitmap","_wxStaticBitmap",0}, - { "_wxMDIChildFrame","_class_wxMDIChildFrame",0}, - { "_wxListItem","_class_wxListItem",0}, - { "_class_wxToolBar","_wxToolBar",0}, - { "_class_wxStaticLine","_wxStaticLine",0}, - { "_wxScrollEvent","_class_wxScrollEvent",0}, - { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0}, - { "_EBool","_wxPrintQuality",0}, - { "_EBool","_signed_int",0}, - { "_EBool","_int",0}, - { "_EBool","_wxWindowID",0}, - { "_class_wxRegion","_wxRegion",0}, - { "_class_wxDropFilesEvent","_wxDropFilesEvent",0}, - { "_class_wxPreviewFrame","_wxPreviewFrame",0}, - { "_wxStaticText","_class_wxStaticText",0}, - { "_wxFont","_class_wxFont",0}, - { "_wxCloseEvent","_class_wxCloseEvent",0}, - { "_class_wxSplitterEvent","_wxSplitterEvent",0}, - { "_wxNotebook","_class_wxNotebook",0}, - { "_unsigned_long","_wxDash",0}, - { "_unsigned_long","_long",0}, - { "_class_wxRect","_wxRect",0}, - { "_class_wxDC","_wxDC",0}, - { "_class_wxProgressDialog","_wxProgressDialog",0}, - { "_wxPyApp","_class_wxPyApp",0}, - { "_wxMDIParentFrame","_class_wxMDIParentFrame",0}, - { "_class_wxTreeEvent","_wxTreeEvent",0}, - { "_class_wxDirDialog","_wxDirDialog",0}, - { "_class_wxPyTimer","_wxPyTimer",0}, - { "_wxFocusEvent","_class_wxFocusEvent",0}, - { "_wxMaximizeEvent","_class_wxMaximizeEvent",0}, - { "_class_wxSpinButton","_wxSpinButton",0}, - { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0}, - { "_class_wxPanel","_wxPanel",0}, - { "_class_wxCheckBox","_wxCheckBox",0}, - { "_wxComboBox","_class_wxComboBox",0}, - { "_wxRadioButton","_class_wxRadioButton",0}, - { "_class_wxMessageDialog","_wxMessageDialog",0}, - { "_signed_int","_wxPrintQuality",0}, - { "_signed_int","_EBool",0}, - { "_signed_int","_wxWindowID",0}, - { "_signed_int","_int",0}, - { "_class_wxTextCtrl","_wxTextCtrl",0}, - { "_wxLayoutConstraints","_class_wxLayoutConstraints",0}, - { "_wxMetaFileDC","_class_wxMetaFileDC",0}, - { "_wxMenu","_class_wxMenu",0}, - { "_class_wxMoveEvent","_wxMoveEvent",0}, - { "_wxListBox","_class_wxListBox",0}, - { "_wxScreenDC","_class_wxScreenDC",0}, - { "_class_wxMDIChildFrame","_wxMDIChildFrame",0}, - { "_WXTYPE","_short",0}, - { "_WXTYPE","_signed_short",0}, - { "_WXTYPE","_unsigned_short",0}, - { "_wxFileDialog","_class_wxFileDialog",0}, - { "_class_wxMDIClientWindow","_wxMDIClientWindow",0}, - { "_class_wxBrush","_wxBrush",0}, - { "_unsigned_short","_WXTYPE",0}, - { "_unsigned_short","_short",0}, - { "_class_wxWindow","_wxWindow",0}, - { "_wxSplitterWindow","_class_wxSplitterWindow",0}, - { "_class_wxStaticText","_wxStaticText",0}, - { "_wxPrintDialogData","_class_wxPrintDialogData",0}, - { "_class_wxFont","_wxFont",0}, - { "_class_wxCloseEvent","_wxCloseEvent",0}, - { "_wxSashEvent","_class_wxSashEvent",0}, - { "_class_wxMenuEvent","_wxMenuEvent",0}, - { "_wxClientDC","_class_wxClientDC",0}, - { "_wxMouseEvent","_class_wxMouseEvent",0}, - { "_wxListCtrl","_class_wxListCtrl",0}, - { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0}, - { "_class_wxPoint","_wxPoint",0}, - { "_wxRealPoint","_class_wxRealPoint",0}, - { "_class_wxRadioBox","_wxRadioBox",0}, - { "_wxGridCell","_class_wxGridCell",0}, - { "_signed_short","_WXTYPE",0}, - { "_signed_short","_short",0}, - { "_wxMemoryDC","_class_wxMemoryDC",0}, - { "_class_wxTaskBarIcon","_wxTaskBarIcon",0}, - { "_class_wxPrintDialog","_wxPrintDialog",0}, - { "_wxPaintDC","_class_wxPaintDC",0}, - { "_class_wxWindowDC","_wxWindowDC",0}, - { "_class_wxFocusEvent","_wxFocusEvent",0}, - { "_class_wxMaximizeEvent","_wxMaximizeEvent",0}, - { "_wxStatusBar","_class_wxStatusBar",0}, - { "_class_wxToolBarTool","_wxToolBarTool",0}, - { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0}, - { "_class_wxCursor","_wxCursor",0}, - { "_class_wxImageHandler","_wxImageHandler",0}, - { "_wxScrolledWindow","_class_wxScrolledWindow",0}, - { "_wxTreeItemId","_class_wxTreeItemId",0}, - { "_unsigned_char","_byte",0}, - { "_class_wxMetaFileDC","_wxMetaFileDC",0}, - { "_class_wxMenu","_wxMenu",0}, - { "_wxControl","_class_wxControl",0}, - { "_class_wxListBox","_wxListBox",0}, - { "_unsigned_int","_wxPrintQuality",0}, - { "_unsigned_int","_size_t",0}, - { "_unsigned_int","_uint",0}, - { "_unsigned_int","_wxWindowID",0}, - { "_unsigned_int","_int",0}, - { "_wxIcon","_class_wxIcon",0}, - { "_wxDialog","_class_wxDialog",0}, - { "_class_wxListItem","_wxListItem",0}, - { "_class_wxPen","_wxPen",0}, - { "_class_wxFileDialog","_wxFileDialog",0}, - { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0}, - { "_short","_WXTYPE",0}, - { "_short","_unsigned_short",0}, - { "_short","_signed_short",0}, - { "_class_wxStaticBox","_wxStaticBox",0}, - { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0}, - { "_class_wxScrollEvent","_wxScrollEvent",0}, - { "_wxJoystickEvent","_class_wxJoystickEvent",0}, - { "_class_wxChoice","_wxChoice",0}, - { "_class_wxSlider","_wxSlider",0}, - { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0}, - { "_class_wxImageList","_wxImageList",0}, - { "_class_wxBitmapButton","_wxBitmapButton",0}, - { "_wxFrame","_class_wxFrame",0}, - { "_class_wxNotebook","_wxNotebook",0}, - { "_wxJPEGHandler","_class_wxJPEGHandler",0}, - { "_wxWindowID","_wxPrintQuality",0}, - { "_wxWindowID","_size_t",0}, - { "_wxWindowID","_EBool",0}, - { "_wxWindowID","_uint",0}, - { "_wxWindowID","_int",0}, - { "_wxWindowID","_signed_int",0}, - { "_wxWindowID","_unsigned_int",0}, - { "_int","_wxPrintQuality",0}, - { "_int","_size_t",0}, - { "_int","_EBool",0}, - { "_int","_uint",0}, - { "_int","_wxWindowID",0}, - { "_int","_unsigned_int",0}, - { "_int","_signed_int",0}, - { "_class_wxMouseEvent","_wxMouseEvent",0}, - { "_class_wxListEvent","_wxListEvent",0}, - { "_class_wxPrintPreview","_wxPrintPreview",0}, - { "_class_wxSpinEvent","_wxSpinEvent",0}, - { "_wxButton","_class_wxButton",0}, - { "_class_wxPyApp","_wxPyApp",0}, - { "_wxSize","_class_wxSize",0}, - { "_wxRegionIterator","_class_wxRegionIterator",0}, - { "_class_wxPrinterDC","_wxPrinterDC",0}, - { "_class_wxMDIParentFrame","_wxMDIParentFrame",0}, - { "_wxPyTreeItemData","_class_wxPyTreeItemData",0}, - { "_class_wxPaintDC","_wxPaintDC",0}, - { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0}, - { "_class_wxInitDialogEvent","_wxInitDialogEvent",0}, - { "_class_wxComboBox","_wxComboBox",0}, - { "_class_wxRadioButton","_wxRadioButton",0}, - { "_class_wxTreeItemId","_wxTreeItemId",0}, - { "_wxTreeCtrl","_class_wxTreeCtrl",0}, - { "_class_wxLayoutConstraints","_wxLayoutConstraints",0}, - { "_wxIconizeEvent","_class_wxIconizeEvent",0}, - { "_class_wxControl","_wxControl",0}, - { "_wxStaticBitmap","_class_wxStaticBitmap",0}, - { "_class_wxIcon","_wxIcon",0}, - { "_class_wxColour","_wxColour",0}, - { "_class_wxScreenDC","_wxScreenDC",0}, - { "_class_wxPageSetupDialog","_wxPageSetupDialog",0}, - { "_wxPalette","_class_wxPalette",0}, - { "_class_wxIdleEvent","_wxIdleEvent",0}, - { "_wxEraseEvent","_class_wxEraseEvent",0}, - { "_class_wxJoystickEvent","_wxJoystickEvent",0}, - { "_class_wxMiniFrame","_wxMiniFrame",0}, - { "_wxFontDialog","_class_wxFontDialog",0}, - { "_wxRegion","_class_wxRegion",0}, - { "_class_wxSplitterWindow","_wxSplitterWindow",0}, - { "_wxPreviewFrame","_class_wxPreviewFrame",0}, - { "_class_wxShowEvent","_wxShowEvent",0}, - { "_wxActivateEvent","_class_wxActivateEvent",0}, - { "_wxGauge","_class_wxGauge",0}, - { "_class_wxCheckListBox","_wxCheckListBox",0}, - { "_class_wxGridEvent","_wxGridEvent",0}, - { "_class_wxCommandEvent","_wxCommandEvent",0}, - { "_class_wxClientDC","_wxClientDC",0}, - { "_class_wxSizeEvent","_wxSizeEvent",0}, - { "_class_wxListCtrl","_wxListCtrl",0}, - { "_class_wxGridCell","_wxGridCell",0}, - { "_class_wxSize","_wxSize",0}, - { "_class_wxBitmap","_wxBitmap",0}, - { "_class_wxMemoryDC","_wxMemoryDC",0}, - { "_wxMenuBar","_class_wxMenuBar",0}, - { "_wxTreeEvent","_class_wxTreeEvent",0}, - { "_wxDirDialog","_class_wxDirDialog",0}, - { "_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler}, - { "_wxEvtHandler","_class_wxEvtHandler",0}, - { "_wxMenuItem","_class_wxMenuItem",0}, - { "_class_wxScrollBar","_wxScrollBar",0}, - { "_class_wxColourDialog","_wxColourDialog",0}, - { "_class_wxPrintData","_wxPrintData",0}, - { "_wxDash","_unsigned_long",0}, - { "_wxDash","_long",0}, - { "_class_wxScrolledWindow","_wxScrolledWindow",0}, - { "_class_wxTextEntryDialog","_wxTextEntryDialog",0}, - { "_wxKeyEvent","_class_wxKeyEvent",0}, - { "_wxMoveEvent","_class_wxMoveEvent",0}, - { "_wxColourData","_class_wxColourData",0}, - { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0}, - { "_class_wxPalette","_wxPalette",0}, - { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0}, - { "_class_wxEraseEvent","_wxEraseEvent",0}, - { "_wxMDIClientWindow","_class_wxMDIClientWindow",0}, - { "_class_wxFontDialog","_wxFontDialog",0}, - { "_wxWindow","_class_wxWindow",0}, - { "_class_wxFrame","_wxFrame",0}, -{0,0,0}}; - -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,"wxFRAME_FLOAT_ON_PARENT", PyInt_FromLong((long) wxFRAME_FLOAT_ON_PARENT)); - 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_RICH", PyInt_FromLong((long) wxTE_RICH)); - 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,"wxGA_SMOOTH", PyInt_FromLong((long) wxGA_SMOOTH)); - 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,"wxTR_MULTIPLE", PyInt_FromLong((long) wxTR_MULTIPLE)); - PyDict_SetItemString(d,"wxTR_HAS_VARIABLE_ROW_HEIGHT", PyInt_FromLong((long) wxTR_HAS_VARIABLE_ROW_HEIGHT)); - 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,"wxPRINT_QUALITY_HIGH", PyInt_FromLong((long) wxPRINT_QUALITY_HIGH)); - PyDict_SetItemString(d,"wxPRINT_QUALITY_MEDIUM", PyInt_FromLong((long) wxPRINT_QUALITY_MEDIUM)); - PyDict_SetItemString(d,"wxPRINT_QUALITY_LOW", PyInt_FromLong((long) wxPRINT_QUALITY_LOW)); - PyDict_SetItemString(d,"wxPRINT_QUALITY_DRAFT", PyInt_FromLong((long) wxPRINT_QUALITY_DRAFT)); - 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,"wxPD_AUTO_HIDE", PyInt_FromLong((long) wxPD_AUTO_HIDE)); - PyDict_SetItemString(d,"wxPD_APP_MODAL", PyInt_FromLong((long) wxPD_APP_MODAL)); - PyDict_SetItemString(d,"wxPD_CAN_ABORT", PyInt_FromLong((long) wxPD_CAN_ABORT)); - PyDict_SetItemString(d,"wxPD_ELAPSED_TIME", PyInt_FromLong((long) wxPD_ELAPSED_TIME)); - PyDict_SetItemString(d,"wxPD_ESTIMATED_TIME", PyInt_FromLong((long) wxPD_ESTIMATED_TIME)); - PyDict_SetItemString(d,"wxPD_REMAINING_TIME", PyInt_FromLong((long) wxPD_REMAINING_TIME)); - PyDict_SetItemString(d,"wxNO_DEFAULT", PyInt_FromLong((long) wxNO_DEFAULT)); - PyDict_SetItemString(d,"wxMENU_TEAROFF", PyInt_FromLong((long) wxMENU_TEAROFF)); - PyDict_SetItemString(d,"wxNO_FULL_REPAINT_ON_RESIZE", PyInt_FromLong((long) wxNO_FULL_REPAINT_ON_RESIZE)); - 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,"wxDUPLEX_SIMPLEX", PyInt_FromLong((long) wxDUPLEX_SIMPLEX)); - PyDict_SetItemString(d,"wxDUPLEX_HORIZONTAL", PyInt_FromLong((long) wxDUPLEX_HORIZONTAL)); - PyDict_SetItemString(d,"wxDUPLEX_VERTICAL", PyInt_FromLong((long) wxDUPLEX_VERTICAL)); - 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_KEY_DOWN", PyInt_FromLong((long) wxEVT_KEY_DOWN)); - PyDict_SetItemString(d,"wxEVT_KEY_UP", PyInt_FromLong((long) wxEVT_KEY_UP)); - PyDict_SetItemString(d,"wxEVT_CHAR_HOOK", PyInt_FromLong((long) wxEVT_CHAR_HOOK)); - 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_SCROLLWIN_TOP", PyInt_FromLong((long) wxEVT_SCROLLWIN_TOP)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_BOTTOM", PyInt_FromLong((long) wxEVT_SCROLLWIN_BOTTOM)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_LINEUP", PyInt_FromLong((long) wxEVT_SCROLLWIN_LINEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_LINEDOWN", PyInt_FromLong((long) wxEVT_SCROLLWIN_LINEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_PAGEUP", PyInt_FromLong((long) wxEVT_SCROLLWIN_PAGEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_PAGEDOWN", PyInt_FromLong((long) wxEVT_SCROLLWIN_PAGEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLLWIN_THUMBTRACK", PyInt_FromLong((long) wxEVT_SCROLLWIN_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_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_LIST_ITEM_ACTIVATED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_ACTIVATED)); - 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,"wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SPLITTER_UNSPLIT", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_UNSPLIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SPLITTER_DOUBLECLICKED", PyInt_FromLong((long) wxEVT_COMMAND_SPLITTER_DOUBLECLICKED)); - PyDict_SetItemString(d,"__version__", PyString_FromString("2.1b3")); - 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. - - - // 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(); - initmisc2c(); - initgdic(); - initmdic(); - initcontrolsc(); - initcontrols2c(); - initcmndlgsc(); - initstattoolc(); - initframesc(); - initwindows3c(); - initimagec(); - initprintfwc(); -#ifndef SEPARATE - initutilsc(); -// initoglc(); -#ifdef WITH_GLCANVAS - initglcanvasc(); -#endif -#endif -{ - int i; - for (i = 0; _swig_mapping[i].n1; i++) - SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv); -} -} diff --git a/utils/wxPython/src/msw/wx.py b/utils/wxPython/src/msw/wx.py deleted file mode 100644 index 30d9b78758..0000000000 --- a/utils/wxPython/src/msw/wx.py +++ /dev/null @@ -1,1476 +0,0 @@ -# This file was created automatically by SWIG. -import wxc - -from misc import * - -from misc2 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 * - -from printfw import * -class wxPyAppPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,wxc=wxc): - if self.thisown == 1 : - wxc.delete_wxPyApp(self) - def GetAppName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetAppName,(self,) + _args, _kwargs) - return val - def GetAuto3D(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetAuto3D,(self,) + _args, _kwargs) - return val - def GetClassName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetClassName,(self,) + _args, _kwargs) - return val - def GetExitOnFrameDelete(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetExitOnFrameDelete,(self,) + _args, _kwargs) - return val - def GetPrintMode(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetPrintMode,(self,) + _args, _kwargs) - return val - def GetTopWindow(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetTopWindow,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) - return val - def GetVendorName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetVendorName,(self,) + _args, _kwargs) - return val - def Dispatch(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_Dispatch,(self,) + _args, _kwargs) - return val - def ExitMainLoop(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_ExitMainLoop,(self,) + _args, _kwargs) - return val - def Initialized(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_Initialized,(self,) + _args, _kwargs) - return val - def MainLoop(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_MainLoop,(self,) + _args, _kwargs) - return val - def Pending(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_Pending,(self,) + _args, _kwargs) - return val - def ProcessIdle(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_ProcessIdle,(self,) + _args, _kwargs) - return val - def SetAppName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetAppName,(self,) + _args, _kwargs) - return val - def SetAuto3D(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetAuto3D,(self,) + _args, _kwargs) - return val - def SetClassName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetClassName,(self,) + _args, _kwargs) - return val - def SetExitOnFrameDelete(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetExitOnFrameDelete,(self,) + _args, _kwargs) - return val - def SetPrintMode(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetPrintMode,(self,) + _args, _kwargs) - return val - def SetTopWindow(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetTopWindow,(self,) + _args, _kwargs) - return val - def SetVendorName(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_SetVendorName,(self,) + _args, _kwargs) - return val - def GetStdIcon(self, *_args, **_kwargs): - val = apply(wxc.wxPyApp_GetStdIcon,(self,) + _args, _kwargs) - if val: val = wxIconPtr(val) ; val.thisown = 1 - return val - def __repr__(self): - return "" % (self.this,) -class wxPyApp(wxPyAppPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(wxc.new_wxPyApp,_args,_kwargs) - self.thisown = 1 - - - - -class __wxPyCleanupPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self,wxc=wxc): - if self.thisown == 1 : - wxc.delete___wxPyCleanup(self) - def __repr__(self): - return "" % (self.this,) -class __wxPyCleanup(__wxPyCleanupPtr): - def __init__(self,*_args,**_kwargs): - self.this = apply(wxc.new___wxPyCleanup,_args,_kwargs) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -ptrcast = wxc.ptrcast - -ptrvalue = wxc.ptrvalue - -ptrset = wxc.ptrset - -ptrcreate = wxc.ptrcreate - -ptrfree = wxc.ptrfree - -ptradd = wxc.ptradd - -ptrmap = wxc.ptrmap - -_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 -wxFRAME_FLOAT_ON_PARENT = wxc.wxFRAME_FLOAT_ON_PARENT -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_RICH = wxc.wxTE_RICH -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 -wxGA_SMOOTH = wxc.wxGA_SMOOTH -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 -wxTR_MULTIPLE = wxc.wxTR_MULTIPLE -wxTR_HAS_VARIABLE_ROW_HEIGHT = wxc.wxTR_HAS_VARIABLE_ROW_HEIGHT -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 -wxPRINT_QUALITY_HIGH = wxc.wxPRINT_QUALITY_HIGH -wxPRINT_QUALITY_MEDIUM = wxc.wxPRINT_QUALITY_MEDIUM -wxPRINT_QUALITY_LOW = wxc.wxPRINT_QUALITY_LOW -wxPRINT_QUALITY_DRAFT = wxc.wxPRINT_QUALITY_DRAFT -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 -wxPD_AUTO_HIDE = wxc.wxPD_AUTO_HIDE -wxPD_APP_MODAL = wxc.wxPD_APP_MODAL -wxPD_CAN_ABORT = wxc.wxPD_CAN_ABORT -wxPD_ELAPSED_TIME = wxc.wxPD_ELAPSED_TIME -wxPD_ESTIMATED_TIME = wxc.wxPD_ESTIMATED_TIME -wxPD_REMAINING_TIME = wxc.wxPD_REMAINING_TIME -wxNO_DEFAULT = wxc.wxNO_DEFAULT -wxMENU_TEAROFF = wxc.wxMENU_TEAROFF -wxNO_FULL_REPAINT_ON_RESIZE = wxc.wxNO_FULL_REPAINT_ON_RESIZE -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 -wxDUPLEX_SIMPLEX = wxc.wxDUPLEX_SIMPLEX -wxDUPLEX_HORIZONTAL = wxc.wxDUPLEX_HORIZONTAL -wxDUPLEX_VERTICAL = wxc.wxDUPLEX_VERTICAL -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_KEY_DOWN = wxc.wxEVT_KEY_DOWN -wxEVT_KEY_UP = wxc.wxEVT_KEY_UP -wxEVT_CHAR_HOOK = wxc.wxEVT_CHAR_HOOK -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_SCROLLWIN_TOP = wxc.wxEVT_SCROLLWIN_TOP -wxEVT_SCROLLWIN_BOTTOM = wxc.wxEVT_SCROLLWIN_BOTTOM -wxEVT_SCROLLWIN_LINEUP = wxc.wxEVT_SCROLLWIN_LINEUP -wxEVT_SCROLLWIN_LINEDOWN = wxc.wxEVT_SCROLLWIN_LINEDOWN -wxEVT_SCROLLWIN_PAGEUP = wxc.wxEVT_SCROLLWIN_PAGEUP -wxEVT_SCROLLWIN_PAGEDOWN = wxc.wxEVT_SCROLLWIN_PAGEDOWN -wxEVT_SCROLLWIN_THUMBTRACK = wxc.wxEVT_SCROLLWIN_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_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_LIST_ITEM_ACTIVATED = wxc.wxEVT_COMMAND_LIST_ITEM_ACTIVATED -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 -wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING = wxc.wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING -wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED = wxc.wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED -wxEVT_COMMAND_SPLITTER_UNSPLIT = wxc.wxEVT_COMMAND_SPLITTER_UNSPLIT -wxEVT_COMMAND_SPLITTER_DOUBLECLICKED = wxc.wxEVT_COMMAND_SPLITTER_DOUBLECLICKED -__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 _checkClassCallback(obj, name): -## try: cb = getattr(obj, name) -## except: pass -## else: obj._addCallback(name, 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_KEY_DOWN(win, func): - win.Connect(-1, -1, wxEVT_KEY_DOWN, func) - -def EVT_KEY_UP(win, func): - win.Connect(-1, -1, wxEVT_KEY_UP, 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) - -def EVT_UPDATE_UI(win, id, func): - win.Connect(id, -1, wxEVT_UPDATE_UI, 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_ACTIVATED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_ACTIVATED, 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) - -#wxSplitterWindow -def EVT_SPLITTER_SASH_POS_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, func) - -def EVT_SPLITTER_SASH_POS_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, func) - -def EVT_SPLITTER_UNSPLIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_UNSPLIT, func) - -def EVT_SPLITTER_DOUBLECLICKED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 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 - -#---------------------------------------------------------------------- -# This helper function will take a wxPython object and convert it to -# another wxPython object type. This will not be able to create objects -# that are derived from wxPython classes by the user, only those that are -# actually part of wxPython and directly corespond to C++ objects. -# -# This is useful in situations where some method returns a generic -# type such as wxWindow, but you know that it is actually some -# derived type such as a wxTextCtrl. You can't call wxTextCtrl specific -# methods on a wxWindow object, but you can use this function to -# create a wxTextCtrl object that will pass the same pointer to -# the C++ code. You use it like this: -# -# textCtrl = wxPyTypeCast(window, "wxTextCtrl") -# -# -# WARNING: Using this function to type cast objects into types that -# they are not is not recommended and is likely to cause your -# program to crash... Hard. -# - -def wxPyTypeCast(obj, typeStr): - if hasattr(obj, "this"): - newPtr = ptrcast(obj.this, typeStr+"_p") - else: - newPtr = ptrcast(obj, typeStr+"_p") - theClass = globals()[typeStr+"Ptr"] - theObj = theClass(newPtr) - theObj.thisown = obj.thisown - return theObj - - -#---------------------------------------------------------------------- - -## 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() - - -#---------------------------------------------------------------------------- -# DO NOT hold any other references to this object. This is how we know when -# to cleanup system resources that wxWin is holding... -__cleanMeUp = __wxPyCleanup() -#---------------------------------------------------------------------------- - - - 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/printfw.i b/utils/wxPython/src/printfw.i deleted file mode 100644 index d4da779032..0000000000 --- a/utils/wxPython/src/printfw.i +++ /dev/null @@ -1,360 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printfw.i -// Purpose: Printing Framework classes -// -// Author: Robin Dunn -// -// Created: 7-May-1999 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module printfw - -%{ -#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 gdi.i -%import cmndlgs.i -%import frames.i - - -%pragma(python) code = "import wx" - - -//---------------------------------------------------------------------- - - - -class wxPrintData { -public: - wxPrintData(); - ~wxPrintData(); - - int GetNoCopies(); - bool GetCollate(); - int GetOrientation(); - - const wxString& GetPrinterName(); - bool GetColour(); - wxDuplexMode GetDuplex(); - wxPaperSize GetPaperId(); - const wxSize& GetPaperSize(); - - wxPrintQuality GetQuality(); - - void SetNoCopies(int v); - void SetCollate(bool flag); - void SetOrientation(int orient); - - void SetPrinterName(const wxString& name); - void SetColour(bool colour); - void SetDuplex(wxDuplexMode duplex); - void SetPaperId(wxPaperSize sizeId); - void SetPaperSize(const wxSize& sz); - void SetQuality(wxPrintQuality quality); - -// // PostScript-specific data -// const wxString& GetPrinterCommand(); -// const wxString& GetPrinterOptions(); -// const wxString& GetPreviewCommand(); -// const wxString& GetFilename(); -// const wxString& GetFontMetricPath(); -// double GetPrinterScaleX(); -// double GetPrinterScaleY(); -// long GetPrinterTranslateX(); -// long GetPrinterTranslateY(); -// wxPrintMode GetPrintMode(); - -// void SetPrinterCommand(const wxString& command); -// void SetPrinterOptions(const wxString& options); -// void SetPreviewCommand(const wxString& command); -// void SetFilename(const wxString& filename); -// void SetFontMetricPath(const wxString& path); -// void SetPrinterScaleX(double x); -// void SetPrinterScaleY(double y); -// void SetPrinterScaling(double x, double y); -// void SetPrinterTranslateX(long x); -// void SetPrinterTranslateY(long y); -// void SetPrinterTranslation(long x, long y); -// void SetPrintMode(wxPrintMode printMode); - -}; - -//---------------------------------------------------------------------- - -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(); - %addmethods { - %new wxPrintData* GetPrintData() { - return new wxPrintData(self->GetPrintData()); // force a copy - } - } - 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(); - %addmethods { - %new wxPrintData* GetPrintData() { - return new wxPrintData(self->GetPrintData()); // force a copy - } - } - 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(); -}; - -//---------------------------------------------------------------------- -//---------------------------------------------------------------------- -// Custom wxPrintout class that knows how to call python -%{ -class wxPyPrintout : public wxPrintout { -public: - wxPyPrintout(const wxString& title) : wxPrintout(title) {} - - PYCALLBACK_BOOL_INTINT(wxPrintout, OnBeginDocument); - PYCALLBACK__(wxPrintout, OnEndDocument); - PYCALLBACK__(wxPrintout, OnBeginPrinting); - PYCALLBACK__(wxPrintout, OnEndPrinting); - PYCALLBACK__(wxPrintout, OnPreparePrinting); - PYCALLBACK_BOOL_INT_pure(wxPrintout, OnPrintPage); - PYCALLBACK_BOOL_INT(wxPrintout, HasPage); - - - // Since this one would be tough and ugly to do with the Macros... - void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { - bool hadErr = false; - - if (m_myInst.findCallback("GetPageInfo")) { - PyObject* result = m_myInst.callCallbackObj(Py_BuildValue("()")); - if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) { - PyObject* val; - - val = PyTuple_GetItem(result, 0); - if (PyInt_Check(val)) *minPage = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 1); - if (PyInt_Check(val)) *maxPage = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 2); - if (PyInt_Check(val)) *pageFrom = PyInt_AsLong(val); - else hadErr = true; - - val = PyTuple_GetItem(result, 3); - if (PyInt_Check(val)) *pageTo = PyInt_AsLong(val); - else hadErr = true; - } - else - hadErr = true; - - if (hadErr) { - PyErr_SetString(PyExc_TypeError, "GetPageInfo should return a tuple of 4 integers."); - PyErr_Print(); - } - Py_DECREF(result); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif - } - else - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); - } - void base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { - wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo); - } - - PYPRIVATE; -}; -%} - - -// Now define the custom class for SWIGging -%name(wxPrintout) class wxPyPrintout { -public: - wxPyPrintout(const char* title = "Printout"); - - void _setSelf(PyObject* self); - %pragma(python) addtomethod = "__init__:self._setSelf(self)" - - %addmethods { - void Destroy() { - delete self; - } - } - - wxDC* GetDC(); - void GetPageSizeMM(int *OUTPUT, int *OUTPUT); - void GetPageSizePixels(int *OUTPUT, int *OUTPUT); - void GetPPIPrinter(int *OUTPUT, int *OUTPUT); - void GetPPIScreen(int *OUTPUT, int *OUTPUT); - bool IsPreview(); - - bool base_OnBeginDocument(int startPage, int endPage); - void base_OnEndDocument(); - void base_OnBeginPrinting(); - void base_OnEndPrinting(); - void base_OnPreparePrinting(); - void base_GetPageInfo(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT); - bool base_HasPage(int page); -}; - -//---------------------------------------------------------------------- - -class wxPrinter { -public: - wxPrinter(wxPrintDialogData* data = NULL); - ~wxPrinter(); - -// bool Abort(); - void CreateAbortWindow(wxWindow* parent, wxPyPrintout* printout); - wxPrintDialogData& GetPrintDialogData(); - bool Print(wxWindow *parent, wxPyPrintout *printout, int prompt=TRUE); - wxDC* PrintDialog(wxWindow *parent); - void ReportError(wxWindow *parent, wxPyPrintout *printout, char* message); - bool Setup(wxWindow *parent); -}; - -//---------------------------------------------------------------------- - -class wxPrintPreview { -public: - wxPrintPreview(wxPyPrintout* printout, wxPyPrintout* printoutForPrinting, wxPrintData* data=NULL); -// ~wxPrintPreview(); **** ???? - - wxWindow* GetCanvas(); - int GetCurrentPage(); - wxFrame * GetFrame(); - int GetMaxPage(); - int GetMinPage(); - wxPrintDialogData& GetPrintDialogData(); - wxPyPrintout * GetPrintout(); - wxPyPrintout * GetPrintoutForPrinting(); - int GetZoom(); - bool Ok(); - bool Print(bool prompt); - void SetCanvas(wxWindow* window); - void SetCurrentPage(int pageNum); - void SetFrame(wxFrame *frame); - void SetPrintout(wxPyPrintout *printout); - void SetZoom(int percent); -}; - -//---------------------------------------------------------------------- - -class wxPreviewFrame : public wxFrame { -public: - wxPreviewFrame(wxPrintPreview* preview, wxFrame* parent, 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 Initialize(); - - // **** need to use derived class so these can be properly overridden: - //void CreateControlBar() - //void CreateCanvas() - -}; - -//---------------------------------------------------------------------- -//---------------------------------------------------------------------- -//---------------------------------------------------------------------- - - - - 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 d3c46612ca..0000000000 --- a/utils/wxPython/src/utils.i +++ /dev/null @@ -1,139 +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); - -}; - - -//--------------------------------------------------------------------------- - -%init %{ - - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - -%} - -//--------------------------------------------------------------------------- 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 1bb931f518..0000000000 --- a/utils/wxPython/src/windows.i +++ /dev/null @@ -1,583 +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" -//%pragma(python) code = "import controls" -//%pragma(python) code = "wxButtonPtr = controls.wxWindowPtr" - -//--------------------------------------------------------------------------- - -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 = wxBOTH); - void Centre(int direction = wxBOTH); - void CentreOnParent(int direction = wxBOTH ); - void CenterOnParent(int direction = wxBOTH ); - %name(ClientToScreenXY)void ClientToScreen(int *BOTH, int *BOTH); - wxPoint ClientToScreen(const wxPoint& pt); - 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(); - //wxEvtHandler* GetEventHandler(); - - wxFont& GetFont(); - wxColour GetForegroundColour(); - wxWindow * GetGrandParent(); - int GetId(); - wxString GetLabel(); - void SetLabel(const wxString& label); - 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(); - wxRegion GetUpdateRegion(); - long GetWindowStyleFlag(); - bool Hide(); - void InitDialog(); - bool IsEnabled(); - bool IsRetained(); - bool IsShown(); - bool IsTopLevel(); - 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); - //void PushEventHandler(wxEvtHandler* handler); - - %name(PopupMenuXY)bool PopupMenu(wxMenu *menu, int x, int y); - bool PopupMenu(wxMenu *menu, const wxPoint& pos); - - void Raise(); - void Refresh(bool eraseBackground = TRUE, const wxRect* rect = NULL); - void ReleaseMouse(); - bool Reparent( wxWindow* newParent ); - - %name(ScreenToClientXY)void ScreenToClient(int *BOTH, int *BOTH); - wxPoint ScreenToClient(const wxPoint& pt); - - 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 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_or_x, y=None): - if y is None: - return win.ConvertDialogPointToPixels(point_or_x) - else: - return win.ConvertDialogPointToPixels(wxPoint(point_or_x, y)) - -def wxDLG_SZE(win, size_width, height=None): - if height is None: - return win.ConvertDialogSizeToPixels(size_width) - else: - return win.ConvertDialogSizeToPixels(wxSize(size_width, height)) -" - -#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(); - wxButton* GetDefaultItem(); - void SetDefaultItem(wxButton *btn); - - // fix a SWIG turd... - %pragma(python) addtoclass = " - def GetDefaultItem(self): - import controls - val = windowsc.wxPanel_GetDefaultItem(self.this) - val = controls.wxButtonPtr(val) - return val -" -}; - -//--------------------------------------------------------------------------- - -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 wxPanel { -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, long style = 0); - - 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); - void UpdateUI(wxEvtHandler* source = NULL); -}; - - -// -// 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.18 1999/07/31 07:54:35 RD -// wxPython 2.1b1: -// -// Added the missing wxWindow.GetUpdateRegion() method. -// -// Made a new change in SWIG (update your patches everybody) that -// provides a fix for global shadow objects that get an exception in -// their __del__ when their extension module has already been deleted. -// It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about -// line 496 if you want to do it by hand. -// -// It is now possible to run through MainLoop more than once in any one -// process. The cleanup that used to happen as MainLoop completed (and -// prevented it from running again) has been delayed until the wxc module -// is being unloaded by Python. -// -// wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added -// wxWindow.PopupMenuXY to be consistent with some other methods. -// -// Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. -// -// You can now provide your own app.MainLoop method. See -// wxPython/demo/demoMainLoop.py for an example and some explaination. -// -// Got the in-place-edit for the wxTreeCtrl fixed and added some demo -// code to show how to use it. -// -// Put the wxIcon constructor back in for GTK as it now has one that -// matches MSW's. -// -// Added wxGrid.GetCells -// -// Added wxSystemSettings static methods as functions with names like -// wxSystemSettings_GetSystemColour. -// -// Removed wxPyMenu since using menu callbacks have been depreciated in -// wxWindows. Use wxMenu and events instead. -// -// Added alternate wxBitmap constructor (for MSW only) as -// wxBitmapFromData(data, type, width, height, depth = 1) -// -// Added a helper function named wxPyTypeCast that can convert shadow -// objects of one type into shadow objects of another type. (Like doing -// a down-cast.) See the implementation in wx.py for some docs. -// -// Revision 1.17 1999/06/22 07:03:03 RD -// -// wxPython 2.1b1 for wxMSW (wxGTK coming soon) -// Lots of changes, see the README.txt for details... -// -// 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 0ae660088c..0000000000 --- a/utils/wxPython/src/windows2.i +++ /dev/null @@ -1,388 +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(); - %addmethods { - PyObject* GetCells() { - int row, col; - PyObject* rows = PyList_New(0); - for (row=0; row < self->GetRows(); row++) { - PyObject* rowList = PyList_New(0); - for (col=0; col < self->GetCols(); col++) { - wxGridCell* cell = self->GetCell(row, col); - -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); - wxPyInEvent = true; -#endif - PyObject* pyCell = wxPyConstructObject(cell, "wxGridCell"); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); - wxPyInEvent = false; -#endif - - if (PyList_Append(rowList, pyCell) == -1) - return NULL; - } - if (PyList_Append(rows, rowList) == -1) - return NULL; - } - return rows; - } - } - 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(); - - bool GetEditInPlace(); - void SetEditInPlace(int edit = TRUE); - -}; - - -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; - - int GetRow(); - int GetCol(); - wxPoint GetPosition(); - bool ControlDown(); - bool ShiftDown(); - wxGridCell* GetCell(); -}; - - -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 wxNotifyEvent { -public: - int GetSelection(); - int GetOldSelection(); - void SetOldSelection(int page); - void SetSelection(int page); -}; - - - -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*/ wxWindow *GetPage(int nPage); - - %addmethods { - void ResizeChildren() { - wxSizeEvent evt(self->GetClientSize()); - self->GetEventHandler()->ProcessEvent(evt); - } - } - - -}; - -//--------------------------------------------------------------------------- - -class wxSplitterEvent : public wxCommandEvent { -public: - int GetSashPosition(); - int GetX(); - int GetY(); - wxWindow* GetWindowBeingRemoved(); - void SetSashPosition(int pos); -} - - - - -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(); - - - 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 - -//--------------------------------------------------------------------------- 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 d266695535..0000000000 --- a/utils/wxPython/src/wx.i +++ /dev/null @@ -1,194 +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 - -%include pointer.i - -%import misc.i -%import misc2.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 -%import printfw.i - - -%native(_wxStart) __wxStart; -%native(_wxSetDictionary) __wxSetDictionary; - -//--------------------------------------------------------------------------- - -#define __version__ "2.1b3" - -wxPoint wxPyDefaultPosition; -wxSize wxPyDefaultSize; - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- - -class wxPyApp : public wxEvtHandler { -public: - %addmethods { - wxPyApp() { - wxPythonApp = new wxPyApp(); - return wxPythonApp; - } - } - - ~wxPyApp(); - - 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(); - bool ProcessIdle(); - - 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); - - wxIcon GetStdIcon(int which); - - -}; - - -//---------------------------------------------------------------------- -// An instance of this object is created in the main wx module. As long -// as there are no extra references to it then when the wx module is being -// unloaded from memory then this object's destructor will be called. When -// it is then we'll use that as a signal to clean up wxWindows - -%{ -class __wxPyCleanup { -public: - __wxPyCleanup() { } - ~__wxPyCleanup() { wxApp::CleanUp(); } -}; -%} - -// now to swigify it... -class __wxPyCleanup { -public: - __wxPyCleanup(); - ~__wxPyCleanup(); -}; - - - -//---------------------------------------------------------------------- -// 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) initmisc2c(); -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(); -extern "C" SWIGEXPORT(void) initprintfwc(); -#ifndef SEPARATE -extern "C" SWIGEXPORT(void) initutilsc(); -//extern "C" SWIGEXPORT(void) initoglc(); -extern "C" SWIGEXPORT(void) initglcanvasc(); -#endif -%} - - - -%init %{ - - __wxPreStart(); // initialize the GUI toolkit, if needed. - - - // 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(); - initmisc2c(); - initgdic(); - initmdic(); - initcontrolsc(); - initcontrols2c(); - initcmndlgsc(); - initstattoolc(); - initframesc(); - initwindows3c(); - initimagec(); - initprintfwc(); -#ifndef SEPARATE - initutilsc(); -// initoglc(); -#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.cpp b/utils/wxPython/src/wxp.cpp deleted file mode 100644 index cea3c3c5c4..0000000000 --- a/utils/wxPython/src/wxp.cpp +++ /dev/null @@ -1,2049 +0,0 @@ -/* - * FILE : wxp.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.6 1999/06/28 21:39:47 VZ - * 1. wxStaticLine implemented (generic (ugly) and MSW versions) - * 2. wxTextDialog looks fine under MSW again - * 3. startup tips added: code, sample, docs - * 4. read-only text controls don't participate in TAB traversal - * - * Revision 1.5 1998/08/18 21:50:09 RD - * - * moving the SWIG-generated files to toolkit specific subdirectories - * - * Revision 1.4 1998/08/15 07:36:51 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. - * - ************************************************************************/ - -#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 initwxpc - -#define SWIG_name "wxpc" - - -#ifdef __WXMSW__ -#include -#undef FindWindow -#undef GetCharWidth -#undef LoadAccelerators -#endif - - -#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 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); -#ifdef __WXMSW__ -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); -#endif - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -#ifdef __WXMSW__ // If building for win32... - -#include -#undef GetClassName - -extern HINSTANCE wxhInstance; - -BOOL WINAPI DllMain( - HINSTANCE hinstDLL, // handle to DLL module - DWORD fdwReason, // reason for calling function - LPVOID lpvReserved // reserved - ) -{ - wxhInstance = hinstDLL; - return 1; -} -#endif - - -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)(); - -static int _wrap_wxPyDefaultPosition_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxPyDefaultPosition is read-only."); - return 1; -} - -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) { - - PyErr_SetString(PyExc_TypeError,"Variable wxPyDefaultSize is read-only."); - return 1; -} - -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; - _result = (wxPyApp *)new_wxPyApp(); - 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; - } - } - _result = new wxString (wxPyApp_GetAppName(_arg0)); -{ - _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; - } - } - _result = (bool )wxPyApp_GetAuto3D(_arg0); - _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; - } - } - _result = new wxString (wxPyApp_GetClassName(_arg0)); -{ - _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; - } - } - _result = (bool )wxPyApp_GetExitOnFrameDelete(_arg0); - _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; - } - } - _result = (int )wxPyApp_GetPrintMode(_arg0); - _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; - } - } - _result = (wxWindow *)wxPyApp_GetTopWindow(_arg0); - 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; - } - } - _result = new wxString (wxPyApp_GetVendorName(_arg0)); -{ - _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; - } - } - wxPyApp_Dispatch(_arg0); - 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; - } - } - wxPyApp_ExitMainLoop(_arg0); - 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; - } - } - _result = (bool )wxPyApp_Initialized(_arg0); - _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; - } - } - _result = (int )wxPyApp_MainLoop(_arg0); - _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; - } - } - _result = (bool )wxPyApp_Pending(_arg0); - _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)); -} - wxPyApp_SetAppName(_arg0,*_arg1); - 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; - wxPyApp_SetAuto3D(_arg0,_arg1); - 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)); -} - wxPyApp_SetClassName(_arg0,*_arg1); - 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; - wxPyApp_SetExitOnFrameDelete(_arg0,_arg1); - 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; - } - } - wxPyApp_SetPrintMode(_arg0,_arg1); - 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; - } - } - wxPyApp_SetTopWindow(_arg0,_arg1); - 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)); -} - wxPyApp_SetVendorName(_arg0,*_arg1); - 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; - } - } - wxPyApp_AfterMainLoop(_arg0); - Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef wxpcMethods[] = { - { "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,initwxpc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("wxpc", wxpcMethods); - 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,"UNKNOWN", PyInt_FromLong((long) UNKNOWN)); - PyDict_SetItemString(d,"NOT_FOUND", PyInt_FromLong((long) NOT_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,"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,"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,"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,"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,"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,"wxTAB_MULTILINE", PyInt_FromLong((long) wxTAB_MULTILINE)); - PyDict_SetItemString(d,"wxTAB_RIGHTJUSTIFY", PyInt_FromLong((long) wxTAB_RIGHTJUSTIFY)); - PyDict_SetItemString(d,"wxTAB_FIXEDWIDTH", PyInt_FromLong((long) wxTAB_FIXEDWIDTH)); - PyDict_SetItemString(d,"wxTAB_OWNERDRAW", PyInt_FromLong((long) wxTAB_OWNERDRAW)); - 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,"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,"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,"ERR_PARAM", PyInt_FromLong((long) ERR_PARAM)); - PyDict_SetItemString(d,"ERR_NODATA", PyInt_FromLong((long) ERR_NODATA)); - PyDict_SetItemString(d,"ERR_CANCEL", PyInt_FromLong((long) ERR_CANCEL)); - PyDict_SetItemString(d,"ERR_SUCCESS", PyInt_FromLong((long) ERR_SUCCESS)); - 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_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,"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,"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_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("0.3.1")); - 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); - - // We don't want to run the wxEntry or OnInit yet, so we just do the - // beginings of what it would have done... See __wxStart() for the - // rest. -#ifdef __WXMSW__ - wxApp::Initialize((WXHINSTANCE)wxhInstance); -#endif -#ifdef __WXGTK__ - wxApp::CommonInit(); -#endif - - -// 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(); -/* - * 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("_wxFontData","_class_wxFontData",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",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("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_class_wxTreeCtrl","_wxTreeCtrl",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPageSetupData","_class_wxPageSetupData",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxColourData","_wxColourData",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("_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("_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",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_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_class_wxPageSetupData","_wxPageSetupData",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("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",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("_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("_class_wxFontData","_wxFontData",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPrintDialog","_class_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxColourDialog","_class_wxColourDialog",0); - SWIG_RegisterMapping("_wxPrintData","_class_wxPrintData",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxMessageDialog","_class_wxMessageDialog",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("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",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("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_wxTreeItem","_class_wxTreeItem",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_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_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_wxTabCtrl","_class_wxTabCtrl",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("_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_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxTabEvent","_class_wxTabEvent",0); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",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","_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("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_class_wxPyApp","_wxPyApp",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",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("_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_wxTabCtrl","_wxTabCtrl",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("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxFontDialog","_class_wxFontDialog",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxTreeItem","_wxTreeItem",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("_class_wxPrintData","_wxPrintData",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("_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_wxTabEvent","_wxTabEvent",0); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/wxp.ico b/utils/wxPython/src/wxp.ico deleted file mode 100644 index 60fc2b318b..0000000000 Binary files a/utils/wxPython/src/wxp.ico and /dev/null differ 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 7411213f1f..0000000000 --- a/utils/wxPython/tests/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -29-Apr-1999 - -The tests in this directory are being depreciated in favor of the demo -program found in ../demo. - -They are still used from time to time for my development efforts, but -they should not be included with any distributions. - -Robin \ No newline at end of file diff --git a/utils/wxPython/tests/TstLstIcon.py b/utils/wxPython/tests/TstLstIcon.py deleted file mode 100644 index 915b20e853..0000000000 --- a/utils/wxPython/tests/TstLstIcon.py +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: TstLstIcon.py -# Purpose: Lest Icon List -# -# Author: Lorne White -# -# Version: 0.8 -# Licence: wxWindows, wxPython license -#---------------------------------------------------------------------------- - -import sys, os -from wxPython.wx import * - -class AppFrame(wxFrame): - def __init__(self, parent, id=-1, title="New"): - wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, wxSize(420, 320)) - if wxPlatform == '__WXMSW__': - self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO) - self.SetIcon(self.icon) - - self.CreateStatusBar() - - self.mainmenu = wxMenuBar() - menu = wxMenu() - - menu = self.MakeFileMenu() - self.mainmenu.Append(menu, '&File') - - self.SetMenuBar(self.mainmenu) - - self.il = wxImageList(32, 32) - self.idx1 = idx1 = self.il.Add(wxNoRefBitmap('table.bmp', wxBITMAP_TYPE_BMP)) - self.idx2 = idx2 = self.il.Add(wxNoRefBitmap('query.bmp', wxBITMAP_TYPE_BMP)) - - self.nb = nb = wxNotebook(self, -1) - - self.list = wxListCtrl(nb, 1100, wxDefaultPosition, wxDefaultSize) - - nb.AddPage(self.list, "Tables") - - self.list.SetSingleStyle(wxLC_ICON) - self.list.SetWindowStyleFlag(wxSTATIC_BORDER|wxVSCROLL) - self.list.SetImageList(self.il, wxIMAGE_LIST_NORMAL) - - self.qlist = wxListCtrl(nb, 1200, wxDefaultPosition, wxDefaultSize) - nb.AddPage(self.qlist, "Queries") - - self.qlist.SetSingleStyle(wxLC_ICON) - self.qlist.SetWindowStyleFlag(wxSTATIC_BORDER|wxVSCROLL) - self.qlist.SetImageList(self.il, wxIMAGE_LIST_NORMAL) - - self.UpdateView2() - self.UpdateView1() - - self.nb.SetSelection(1) - self.nb.SetSelection(0) - #self.nb.Refresh() - #self.nb.ResizeChildren() - - def MakeFileMenu(self): - self.fl_mn = menu = wxMenu() - - mID = NewId() - menu.Append(mID, 'E&xit', 'Exit') - EVT_MENU(self, mID, self.OnFileExit) - - return menu - - - def UpdateView1(self): - vset = "ViewA " - for i in range(20): - self.list.InsertImageStringItem(i, vset + str(i), self.idx1) - - def UpdateView2(self): - vset = "ViewB " - for i in range(5): - self.qlist.InsertImageStringItem(i, vset + str(i), self.idx2) - - def OnFileExit(self, event): - self.Close() - -#--------------------------------------------------------------------------- - - -class MyApp(wxApp): - def OnInit(self): - frame = AppFrame(NULL, -1, "Demo") - 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() diff --git a/utils/wxPython/tests/atom.bmp b/utils/wxPython/tests/atom.bmp deleted file mode 100644 index d85435104d..0000000000 Binary files a/utils/wxPython/tests/atom.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/copy.bmp b/utils/wxPython/tests/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa..0000000000 Binary files a/utils/wxPython/tests/bitmaps/copy.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/mondrian.ico b/utils/wxPython/tests/bitmaps/mondrian.ico deleted file mode 100644 index 2310c5d275..0000000000 Binary files a/utils/wxPython/tests/bitmaps/mondrian.ico and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/new.bmp b/utils/wxPython/tests/bitmaps/new.bmp deleted file mode 100644 index d66feb2384..0000000000 Binary files a/utils/wxPython/tests/bitmaps/new.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/open.bmp b/utils/wxPython/tests/bitmaps/open.bmp deleted file mode 100644 index 1c38e97b59..0000000000 Binary files a/utils/wxPython/tests/bitmaps/open.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/paste.bmp b/utils/wxPython/tests/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0d..0000000000 Binary files a/utils/wxPython/tests/bitmaps/paste.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/smiles.bmp b/utils/wxPython/tests/bitmaps/smiles.bmp deleted file mode 100644 index 39006fae82..0000000000 Binary files a/utils/wxPython/tests/bitmaps/smiles.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/smiles.ico b/utils/wxPython/tests/bitmaps/smiles.ico deleted file mode 100644 index bb29c8edd7..0000000000 Binary files a/utils/wxPython/tests/bitmaps/smiles.ico and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/test2.bmp b/utils/wxPython/tests/bitmaps/test2.bmp deleted file mode 100644 index 3a65473212..0000000000 Binary files a/utils/wxPython/tests/bitmaps/test2.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/tog1.bmp b/utils/wxPython/tests/bitmaps/tog1.bmp deleted file mode 100644 index 75f6e7c4cb..0000000000 Binary files a/utils/wxPython/tests/bitmaps/tog1.bmp and /dev/null differ diff --git a/utils/wxPython/tests/bitmaps/tog2.bmp b/utils/wxPython/tests/bitmaps/tog2.bmp deleted file mode 100644 index 7d6e7d580e..0000000000 Binary files a/utils/wxPython/tests/bitmaps/tog2.bmp and /dev/null differ diff --git a/utils/wxPython/tests/getvalues.py b/utils/wxPython/tests/getvalues.py deleted file mode 100644 index 562a3179e0..0000000000 --- a/utils/wxPython/tests/getvalues.py +++ /dev/null @@ -1,48 +0,0 @@ -from wxPython.wx import * - -class MyDlg(wxDialog): - def __init__(self, parent): - wxDialog.__init__(self, parent, -1, "This is a test", - wxDefaultPosition, wxSize(150, 150)) - - self.text1 = wxTextCtrl(self, -1, "", wxPoint(10, 10), wxSize(120, -1)) - self.text2 = wxTextCtrl(self, -1, "", wxPoint(10, 40), wxSize(120, -1)) - - wxButton(self, wxID_OK, "Okay", wxPoint(10,70)).SetDefault() - wxButton(self, wxID_CANCEL, "Cancel", wxPoint(60, 70)) - - - def GetValues(self): - val1 = self.text1.GetValue() - val2 = self.text2.GetValue() - return (val1, val2) - - - - -class MyApp(wxApp): - def OnInit(self): - - frame = wxFrame(NULL, -1, "") - wxButton(frame, 101, "test it", wxDefaultPosition, wxSize(50, 25)) - EVT_BUTTON(frame, 101, self.OnClick) - frame.Fit() - frame.Show(true) - - self.SetTopWindow(frame) - return true - - def OnClick(self, event): - dlg = MyDlg(NULL) - if dlg.ShowModal() == wxID_OK: - values = dlg.GetValues() - print "Your values are: %s" % str(values) - else: - print "You canceled!" - - dlg.Destroy() - - - -app = MyApp(0) -app.MainLoop() diff --git a/utils/wxPython/tests/hangman.py b/utils/wxPython/tests/hangman.py deleted file mode 100644 index 76b9622689..0000000000 --- a/utils/wxPython/tests/hangman.py +++ /dev/null @@ -1,390 +0,0 @@ -"""Hangman.py, a simple wxPython game, inspired by the -old bsd game by Ken Arnold. -From the original man page: - - In hangman, the computer picks a word from the on-line - word list and you must try to guess it. The computer - keeps track of which letters have been guessed and how - many wrong guesses you have made on the screen in a - graphic fashion. - -That says it all, doesn't it? - -Have fun with it, - -Harm van der Heijden (H.v.d.Heijden@phys.tue.nl)""" - -import random,re,string -from wxPython.wx import * - -class WordFetcher: - def __init__(self, filename, min_length = 5): - self.min_length = min_length - print "Trying to open file %s" % (filename,) - try: - f = open(filename, "r") - except: - print "Couldn't open dictionary file %s, using build-ins" % (filename,) - self.words = self.builtin_words - self.filename = None - return - self.words = f.read() - self.filename = filename - print "Got %d bytes." % (len(self.words),) - def SetMinLength(min_length): - self.min_length = min_length - def Get(self): - reg = re.compile('\s+([a-zA-Z]+)\s+') - n = 50 # safety valve; maximum number of tries to find a suitable word - while n: - index = int(random.random()*len(self.words)) - m = reg.search(self.words[index:]) - if m and len(m.groups()[0]) >= 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/info.bmp b/utils/wxPython/tests/info.bmp deleted file mode 100644 index 709cd92336..0000000000 Binary files a/utils/wxPython/tests/info.bmp and /dev/null differ diff --git a/utils/wxPython/tests/leave.py b/utils/wxPython/tests/leave.py deleted file mode 100644 index bd2cca3509..0000000000 --- a/utils/wxPython/tests/leave.py +++ /dev/null @@ -1,26 +0,0 @@ -from wxPython.wx import * - -class TestFrame(wxFrame): - - def __init__(self): - wxFrame.__init__(self,NULL,-1,"Test Frame",wxPoint(200,200)) - win = wxWindow(self, -1) - self.Show(true) - EVT_LEAVE_WINDOW(win, self.onLeave) - EVT_ENTER_WINDOW(win, self.onEnter) - - def onLeave(self, event): - print("out") - - def onEnter(self, event): - print('in') - -class MyApp(wxApp): - - def OnInit(self): - self.mainFrame = TestFrame() - return true - -app = MyApp(0) -app.MainLoop() - diff --git a/utils/wxPython/tests/memleak.py b/utils/wxPython/tests/memleak.py deleted file mode 100644 index 2e62181e19..0000000000 --- a/utils/wxPython/tests/memleak.py +++ /dev/null @@ -1,157 +0,0 @@ - -from wxPython.wx import * - -#------------------------------------------------------------------- -# class MyWindow(wxScrolledWindow): -#---------------------------------- -# Copes with the drawing of the main scrolled window. -# -# Data members: -# num - number of list entries -# ostart - line number of the top line of the previous redraw -# vw - width of the viewing window -# vh - height of the viewing window -# smalltext - 0 = size 12pt, 1 = size 9pt text -# -# Method members: -# OnPaint(evt) - basic draw handler -# OnDraw(dc) - called by OnPaint, redraws the screen if required -# update(updatelist) - called every 3 seconds if updates are needed. - -class MyWindow(wxScrolledWindow): - def __init__(self,num,parent,id,pos,size,style): - wxScrolledWindow.__init__(self,parent,id,pos,size,style) - self.SetBackgroundColour(wxWHITE) - - self.num=num - self.ostart=0 - self.smalltext = 0 - self.vw,self.vh=self.GetClientSizeTuple() - - # calculate font pt size needed: a bit of a kludge to get round - # font compatibility problems of X and Windows. - dc=wxClientDC(self) - - dc.SetFont(wxFont(12,wxDEFAULT,wxNORMAL,wxNORMAL,FALSE)) - if dc.GetTextExtent("XXXXXXXXXX")[0] > 100: - self.smalltext = 1 - - def OnPaint(self,evt): - """ overriding OnPaint to give handler. """ - dc = wxPaintDC(self) - self.PrepareDC(dc) - self.OnDraw(dc) - - def update(self,updlist): - """ handles line by line updating of list entries. """ - dc = wxClientDC(self) - self.PrepareDC(dc) - dc.SetBrush(wxWHITE_BRUSH) - dc.SetPen(wxWHITE_PEN) - - if self.smalltext == 1: - dc.SetFont(wxFont(9,wxDEFAULT,wxNORMAL,wxNORMAL,FALSE)) - else: - dc.SetFont(wxFont(12,wxDEFAULT,wxNORMAL,wxNORMAL,FALSE)) - - dc.BeginDrawing() - - for i in updlist: - if i >= self.ostart and i < self.ostart+self.vh/17+1: - dc.DrawRectangle(0,i*17,self.vw,17) - dc.DrawText("This is a simple test.Line "+str(i)+".", - 10,i*17+2) - dc.EndDrawing() - - def OnDraw(self,dc): - """ Main redraw function. """ - - if self.smalltext == 1: - dc.SetFont(wxFont(9,wxDEFAULT,wxNORMAL,wxNORMAL,FALSE)) - else: - dc.SetFont(wxFont(12,wxDEFAULT,wxNORMAL,wxNORMAL,FALSE)) - - vx,vstart=self.ViewStart() - self.vw,self.vh=self.GetClientSizeTuple() - vend=vstart+(self.vh/17) + 1 - if vend > self.num: vend = self.num - - dc.BeginDrawing() - if vstart > self.ostart: # if moving downwards... - for i in range(vend-(vstart-self.ostart+1),vend): - dc.DrawText("This is a simple test. Line "+str(i)+".", - 10,i*17+2) - - elif vstart < self.ostart: # if moving upwards... - for i in range(vstart,self.ostart): - dc.DrawText("This is a simple test. Line "+str(i)+".", - 10,i*17+2) - - elif vstart == self.ostart: # if not moving (redraw)... - #dc.Clear() - for i in range(vstart,vend): - dc.DrawText("This is a simple test. Line "+str(i)+".", - 10,i*17+2) - - dc.EndDrawing() - self.ostart=vstart - -#-------------------------------------------------------------------- - -class MyTimer(wxTimer): - def __init__(self,frame): - wxTimer.__init__(self) - self.frame_ = frame - - def Notify(self): - self.frame_.idle() - - -class MyFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, - wxPoint(100, 100), wxSize(500, 300)) - - # number of entries - self.num = 30 - - # set up the scrolling window... - self.sw = MyWindow(self.num,self, -1, - wxDefaultPosition, wxDefaultSize, - wxVSCROLL|wxSUNKEN_BORDER) - - self.sw.SetScrollbars(1,17,0,self.num+1) - - lc = wxLayoutConstraints() - lc.top.SameAs(self, wxTop, 5) - lc.left.SameAs(self, wxLeft, 5) - lc.bottom.SameAs(self, wxBottom, 5) - lc.right.SameAs(self, wxRight,5) - self.sw.SetConstraints(lc) - - self.timer=MyTimer(self) - # stupidly short interval time to accelerate memory leak problem: - self.timer.Start(80) - - def idle(self): - #usually just update one or two lines; to accelerate problem, - #every line is updated here. - self.sw.update(range(self.num)) - - -###################################################################### -# Main procedure.... - -if __name__ == "__main__": - class MyApp(wxApp): - def OnInit(self): - - self.frame = MyFrame(NULL, -1, "Memory Leak Tester") - self.frame.Show(true) - - self.exiting = FALSE; - 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/paul.py b/utils/wxPython/tests/paul.py deleted file mode 100644 index 0341e7eb7d..0000000000 --- a/utils/wxPython/tests/paul.py +++ /dev/null @@ -1,28 +0,0 @@ -from wxPython.wx import * - - -class MyFrame(wxFrame): - def __init__(self, parent, id, title='A pxFrame!'): - wxFrame.__init__(self, parent, id, title, - wxPyDefaultPosition, wxSize(50, 50)) - - def get_filename(self): - dlg = wxFileDialog(self, "Choose a file", ".", "", "*.*", wxOPEN) - dlg.ShowModal() - self.file = dlg.GetPath() - dlg.Destroy() - self.Iconize(true) - return self.file - - -class FilePicker(wxApp): - def OnInit(self): - return true - - def get_filename(self): - dlg = wxFileDialog(NULL, "Choose a file", ".", "", "*.*", wxOPEN) - dlg.ShowModal() - self.file = dlg.GetPath() - dlg.Destroy() - return self.file - diff --git a/utils/wxPython/tests/paul.pyc b/utils/wxPython/tests/paul.pyc deleted file mode 100644 index d5b68375dc..0000000000 Binary files a/utils/wxPython/tests/paul.pyc and /dev/null differ diff --git a/utils/wxPython/tests/popup.py b/utils/wxPython/tests/popup.py deleted file mode 100644 index 5cc08d4529..0000000000 --- a/utils/wxPython/tests/popup.py +++ /dev/null @@ -1,123 +0,0 @@ -# popup.py: -# Illustrates how to create a wxListCtrl with an associated pop-up menu, which is -# activated when the right mouse button is clicked. - -from wxPython.wx import * - - -class cPopupHandler(wxEvtHandler): - - def __init__(self, this): - wxEvtHandler.__init__(self, this) - - - def ProcessEvent(self, event): - print "G" - #wxEvtHandler.ProcessEvent(self, event) - - if event.GetEventClass() != wxTYPE_MOUSE_EVENT: - return - - if not event.ButtonUp(3): - return - - if event.ButtonDown(1): - print "left down" - elif event.ButtonUp(1): - print "left up" - elif event.ButtonDown(3): - print "right down" - elif event.ButtonUp(3): - print "right up" - - - def xProcessEvent(self, event): - # I tried to pass this one in as the Connect() handler, - # but all I got from that was that the icons disappeared - # from the wxListCtrl. - print "H" - pass - - - -class cMyFrame(wxFrame): - - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, -1, title, wxDefaultPosition, wxSize(800, 600)) - - self.Centre(wxBOTH) - - # create a dummy icon; can't seem to get the wxListCtrl to work without an icon - #self.imagelist = wxImageList(16, 16) - #self.image = self.imagelist.Add(wxNoRefBitmap('smile.bmp', wxBITMAP_TYPE_BMP)) - - # create a ListCtrl - id = NewId() - self.listctrl = wxListCtrl(self, id, wxDefaultPosition, wxDefaultSize, wxLC_REPORT) - #self.listctrl.SetImageList(self.imagelist, wxIMAGE_LIST_SMALL) - - if 1: - # install a handler for mouse right button up events - #EVT_RIGHT_DOWN(self.listctrl, self.OnListMouseEvent) - #EVT_RIGHT_UP(self.listctrl, self.OnListMouseEvent) - - #EVT_RIGHT_DOWN(self.listctrl, self.OnSaveMousePos) - - EVT_LIST_ITEM_SELECTED(self, id, self.OnSaveSelection) - EVT_COMMAND_RIGHT_CLICK(self, id, self.OnListRightClick) - else: - # create an wxEvtHandler and connect it to the wxListCtrl - print "A" - self.listctrl.handler = cPopupHandler(self.listctrl) - print "B" - id = NewId() - self.listctrl.Connect(id, id, wxEVT_RIGHT_DOWN, self.OnListMouseEvent) - print "C" - - # define the ListCtrl column - self.listctrl.InsertColumn(0, "Name") - - # create a set of dummy ListCtrl entries - for Index in range(20): - self.listctrl.InsertStringItem(Index, "Item number %d" % Index) - - # re-adjust the width of the column - self.listctrl.SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER) - - - def OnSaveSelection(self, event): - self.lastSelection = event.m_itemIndex - print self.lastSelection - - - def OnListRightClick(self, event): - menu = wxPyMenu() - menu.Append(0, "One") - menu.Append(1, "Two") - menu.Append(2, "Three") - - pos = self.listctrl.GetItemPosition(self.lastSelection) - self.listctrl.PopupMenu(menu, pos.x, pos.y) - - -class cMyApp(wxApp): - - def OnInit(self): - frame = cMyFrame(NULL, -1, "Popup Sample") - frame.Show(true) - self.SetTopWindow(frame) - return true - - -def main(): - App = cMyApp(0) - App.MainLoop() - - -if __name__ == "__main__": - main() - - - - - diff --git a/utils/wxPython/tests/pytree.py b/utils/wxPython/tests/pytree.py deleted file mode 100644 index 10deb1859d..0000000000 --- a/utils/wxPython/tests/pytree.py +++ /dev/null @@ -1,203 +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): - split = wx.wxSplitterWindow(nb, -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) - text.SetBackgroundColour(wxNamedColour("LIGHT BLUE")) - tree.SetBackgroundColour(wxNamedColour("LIGHT BLUE")) - - return split - - - -#---------------------------------------------------------------------- -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/tests/query.bmp b/utils/wxPython/tests/query.bmp deleted file mode 100644 index f8022181a6..0000000000 Binary files a/utils/wxPython/tests/query.bmp and /dev/null differ diff --git a/utils/wxPython/tests/scroll_paint.py b/utils/wxPython/tests/scroll_paint.py deleted file mode 100644 index fdf85b1262..0000000000 --- a/utils/wxPython/tests/scroll_paint.py +++ /dev/null @@ -1,38 +0,0 @@ -from wxPython.wx import * - -class MyWindow(wxScrolledWindow): - def __init__(self,parent,id,pos,size,style): - wxScrolledWindow.__init__(self,parent,id,pos,size,style) - self.SetBackgroundColour(wxWHITE) - - def OnPaint(self,evt): - dc = wxPaintDC(self) - # normally call a redraw/draw function here. - # this time, print 'redraw!' - print "redraw!" - - -class MyFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, - wxPoint(100, 100), wxSize(500, 300)) - - self.sw = MyWindow(self, -1, - wxDefaultPosition, wxDefaultSize, - wxVSCROLL|wxSUNKEN_BORDER) - - self.sw.SetScrollbars(1,20,0,30) - - -if __name__ == "__main__": - class MyApp(wxApp): - def OnInit(self): - - self.frame = MyFrame(NULL, -1, "Scrolling Test App") - self.frame.Show(true) - self.exiting = FALSE; - return true - - app = MyApp(0) # Create an instance of the app class - app.MainLoop() # Tell it to start processing events - diff --git a/utils/wxPython/tests/spies.py b/utils/wxPython/tests/spies.py deleted file mode 100644 index 88234155b4..0000000000 --- a/utils/wxPython/tests/spies.py +++ /dev/null @@ -1,136 +0,0 @@ -## import all of the wxPython GUI package -from wxPython.wx import * - -""" -I am trying to write a routine which will produce an entryform which I can -later use to write GUI entryforms for databasis work. When you run this -program and chose option 150 (Invoer) under "L=EAers" the following error -appears (repeated 6 times): - -Gtk-CRITICAL **: file gtkwidget.c: line 1592 (gtk_widget_map): assertion -`GTK_WIDGET_VISIBLE (widget) == TRUE' failed.=20 -""" - -class ToetsInvoer(wxPanel): - def __init__(self, parent): - wxPanel.__init__(self, parent, -1) - - 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) - - self.Show(true) - - def EvtText(self, event): - self.log.WriteText('EvtText: %s\n' % event.GetString()) - -#--------------------------------------------------------------------------- - -## Create a new frame class, derived from the wxPython Frame. -class HoofRaam(wxFrame): - - def __init__(self, pa, id, titel): - # First, call the base class' __init__ method to create the frame - wxFrame.__init__(self, pa, id, titel,wxPyDefaultPosition, - wxSize(420, 200)) - - self.CreateStatusBar(2) - mainmenu = wxMenuBar() - menu = wxMenu() - menu.Append(100, '&Kopieer', 'Maak rugsteun') - menu.Append(101, '&Nuwe stel', 'Begin nuwe databasis') - menu.Append(150, '&Invoer', 'Toets invoervorm') - menu.AppendSeparator() - menu.Append(200, 'Kl&aar', 'Gaan uit die program uit!') - mainmenu.Append(menu, "&L=EAers") - self.SetMenuBar(mainmenu) -# if wxPlatform == '__WXMSW__': -# print menu.GetHelpString(100) -# print mainmenu.GetHelpString(101) -# print mainmenu.GetHelpString(200) -# self.DragAcceptFiles(true) - - - - # Associate some events with methods of this class - self.Connect(-1, -1, wxEVT_SIZE, self.OnSize) - self.Connect(-1, -1, wxEVT_MOVE, self.OnMove) - self.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED, self.OnMenuCommand) - self.Connect(-1, -1, wxEVT_DROP_FILES, self.OnDropFiles) - - self.child = None - #self.child = ToetsInvoer(self) - - # 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 "grootte:", size.width, size.height - 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() - print "pos:", pos.x, pos.y - - def OnMenuCommand(self, event): - # why isn't this a wxMenuEvent??? - print event, event.GetInt() - if event.GetInt() == 200: - self.Close() - if event.GetInt() == 150: - x = ToetsInvoer(self) - if event.GetInt() == 101: - print "Nommer 101 is gekies" - - def OnDropFiles(self, event): #werk net in windows - fileList = event.GetFiles() - for file in fileList: - print file - - def OnCloseWindow(self, event): - print 'Klaar' - self.Destroy() - -#--------------------------------------------------------------------------- - -# Every wxWindows application must have a class derived from wxApp -class MyProg(wxApp): - - # wxWindows calls this method to initialize the application - def OnInit(self): - - # Create an instance of our customized Frame class - raam = HoofRaam(NULL, -1, "Taalunie") - raam.Show(true) - - # Tell wxWindows that this is our main window - self.SetTopWindow(raam) - - # Return a success flag - return true - -#--------------------------------------------------------------------------- - - -app = MyProg(0) # Create an instance of the application class -app.MainLoop() # Tell it to start processing events - - - diff --git a/utils/wxPython/tests/spies2.py b/utils/wxPython/tests/spies2.py deleted file mode 100644 index 1467de1c52..0000000000 --- a/utils/wxPython/tests/spies2.py +++ /dev/null @@ -1,69 +0,0 @@ -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestComboBox(wxDialog): - def __init__(self, parent): - - wxDialog.__init__(self, parent, -1, "This is a test", - wxDefaultPosition, wxSize(550, 250)) - self.s = ['aaaaaaaaaaaaaa', - 'bbbbbbb', - 'cccccccccccccccccccccccccccccccccccc', - 'ddddddddddd', - 'eeeeeeeeeee', - 'ffffffff', - 'gggggggggggggggggggggggg', - 'hhhhhhhhhhhhhhhhhh', - 'iiiiiiiiii'] - - - wxStaticText(self, -1, "This example uses the wxListBox control.", - wxPoint(45, 10)) - xwaarde = 35*12 - wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(65, -1)) - - dv = self.s[4] - self.lb= wxComboBox(self, 50, dv, wxPoint(80, 50), wxSize(xwaarde, -1), - self.s, wxCB_DROPDOWN) - - wxButton(self, wxID_OK, "Okay", wxPoint(10,90)).SetDefault() - wxButton(self, wxID_CANCEL, "Cancel", wxPoint(60, 90)) - - - def GetSelection(self,leer): - - val1 = self.lb.GetStringSelection() - #leer.commit() - return val1 - - - -class MyApp(wxApp): - def OnInit(self): - - frame = wxFrame(NULL, -1, "") - wxButton(frame, 101, "test it", wxDefaultPosition, wxSize(50, 25)) - EVT_BUTTON(frame, 101, self.OnClick) - frame.Fit() - frame.Show(true) - - self.SetTopWindow(frame) - return true - - def OnClick(self, event): - - dlg = TestComboBox(NULL) - - if dlg.ShowModal() == wxID_OK: - values = dlg.GetSelection(NULL) - print "Your values are: %s" % str(values) - else: - print "You canceled!" - - dlg.Destroy() - -app = MyApp(0) -app.MainLoop() - - diff --git a/utils/wxPython/tests/table.bmp b/utils/wxPython/tests/table.bmp deleted file mode 100644 index 24e310ceb5..0000000000 Binary files a/utils/wxPython/tests/table.bmp and /dev/null differ diff --git a/utils/wxPython/tests/tabs.py b/utils/wxPython/tests/tabs.py deleted file mode 100644 index 1af9a13cfb..0000000000 --- a/utils/wxPython/tests/tabs.py +++ /dev/null @@ -1,38 +0,0 @@ -from wxPython.wx import * -import string, sys - -class Test: - def __init__(self): - self.panel = wxPanel(frame, -1) - self.box = wxListBox(self.panel, 100, wxPoint(10,10), - wxSize(300,100), [], wxLB_SINGLE|wxLB_SORT) - self.text = wxTextCtrl(self.panel, 110,'', wxPoint(310,10), - wxSize(300,100),wxTE_MULTILINE|wxTE_READONLY) - self.FillList() - - def FillList(self): - line = 'This is a test' - self.box.Append(line) - self.text.AppendText(line) - - def OnCloseWindow(self, event): - self.panel.Close(true) - -class MyApp(wxApp): - def OnInit(self): - global frame - frame = wxFrame(NULL,-1,'Main',wxDefaultPosition,wxSize(630,150)) - test = Test() - frame.Show(true) - self.SetTopWindow(frame) - return true - - def OnCloseWindow(self, event): - self.Destroy() - -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 a3d1c1e1b7..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 -#---------------------------------------------------------------------------- - - -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 079c4a9215..0000000000 --- a/utils/wxPython/tests/test4.py +++ /dev/null @@ -1,1099 +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, -1), - 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), wxSize(95, 80), - 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.17 1999/08/05 05:06:50 RD -# Some minor tweaks -# -# 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/testTree.py b/utils/wxPython/tests/testTree.py deleted file mode 100644 index e445371c94..0000000000 --- a/utils/wxPython/tests/testTree.py +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env python - -from wxPython import wx -import sys, os -from stat import * - -GlobalObjList = [] - -class Obj: - def __init__(self, obj): - self.obj = obj - # Uncomment next line to eliminate crash. - # GlobalObjList.append(self) - - def Name(self): - head, tail = os.path.split(self.obj) - if tail: - return tail - else: - return head - - def HasChildren(self): - return os.path.isdir(self.obj) - - def Children(self): - objList = os.listdir(self.obj) - objList.sort() - objList = map(lambda obj,parent=self.obj: os.path.join(parent,obj), - objList) - objectList = map(Obj, objList) - return objectList - - def __str__(self): - return self.obj - - def __repr__(self): - return self.obj - - def __del__(self): - print 'del', self.obj - - -#---------------------------------------------------------------------- - -class pyTree(wx.wxTreeCtrl): - - def __init__(self, parent, id, obj): - wx.wxTreeCtrl.__init__(self, parent, id) - self.root = self.AddRoot(obj.Name(), -1, -1, wx.wxTreeItemData('')) - self.SetPyData(self.root, obj) - if obj.HasChildren(): - 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): - self.output = output - - def OnItemExpanding(self,event): - item = event.GetItem() - obj = self.GetPyData(item) - children = obj.Children() - for child in children: - new_item = self.AppendItem(item, child.Name(), -1, -1, - wx.wxTreeItemData('')) - self.SetPyData(new_item, child) - if child.HasChildren(): - self.SetItemHasChildren(new_item, wx.TRUE) - - def OnItemCollapsed(self, event): - item = event.GetItem() - self.DeleteChildren(item) - - def OnSelChanged(self, event): - if not self.output: - return - obj = self.GetPyData( event.GetItem() ) - apply(self.output, (`obj`,)) - - - -#---------------------------------------------------------------------- -if __name__ == '__main__': - - class MyFrame(wx.wxFrame): - - def __init__(self): - wx.wxFrame.__init__(self, wx.NULL, -1, 'PyTreeItemData Test', - wx.wxDefaultPosition, wx.wxSize(600,500)) - split = wx.wxSplitterWindow(self, -1) - - if sys.platform == 'win32': - tree = pyTree(split, -1, Obj('C:\\')) - else: - tree = pyTree(split, -1, Obj('/')) - - 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): - - def OnInit(self): - frame = MyFrame() - frame.Show(wx.TRUE) - self.SetTopWindow(frame) - return wx.TRUE - - app = MyApp(0) - app.MainLoop() - - diff --git a/utils/wxPython/tests/thtest.py b/utils/wxPython/tests/thtest.py deleted file mode 100644 index dccbf0e35a..0000000000 --- a/utils/wxPython/tests/thtest.py +++ /dev/null @@ -1,29 +0,0 @@ - -from wxPython.wx import * - -class someData: - def __init__(self, data="spam"): - self.data = data - -class errApp(wxApp): - def OnInit(self): - frame = wxFrame(NULL, -1, "Close to get an error", wxDefaultPosition, - wxSize(200,200)) - - tree = wxTreeCtrl(frame, -1, wxDefaultPosition, wxDefaultSize) - - root = tree.AddRoot("Spam") - tree.SetPyData(root, someData()) - #tree.SetPyData(root, "A string") - #tree.SetPyData(root, ["a list", "A string"]) - - frame.Show(true) - self.SetTopWindow(frame) - self.frame = frame - return true - - -app = errApp(0) -app.MainLoop() -print "got to the end" - diff --git a/utils/wxPython/tests/txml.py b/utils/wxPython/tests/txml.py deleted file mode 100644 index 9c87e276dc..0000000000 --- a/utils/wxPython/tests/txml.py +++ /dev/null @@ -1,87 +0,0 @@ -""" -Build a GUI Tree (wxWindows) from an XML file -using pyExpat -""" - -import sys,string -from xml.parsers import pyexpat - -from wxPython.wx import * - -class MyFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, wxPoint(100, 100), wxSize(160,100)) - menu = wxMenu() - menu.Append (1001,"Open") - menu.Append (1002,"Close") - menu.Append (1003,"Exit") - menubar = wxMenuBar() - menubar.Append (menu,"File") - self.SetMenuBar(menubar) - -class MyApp(wxApp): - def OnInit(self): - self.frame = MyFrame(NULL, -1, "Tree View of XML") - self.tree = wx.wxTreeCtrl(self.frame, -1) - EVT_MENU(self, 1001, self.OnOpen) - EVT_MENU(self, 1002, self.OnClose) - EVT_MENU(self, 1003, self.OnExit) - self.frame.Show(true) - self.SetTopWindow(self.frame) - return true - - def OnOpen(self,event): - f = wxFileDialog(self.frame,"Select a file",".","","*.xml",wxOPEN) - if f.ShowModal() == wxID_OK: - LoadTree(f.GetPath()) - - def OnClose(self,event): - self.tree = wx.wxTreeCtrl(self.frame, -1) - pass - - def OnExit(self,event): - self.OnCloseWindow(event) - - def OnCloseWindow(self, event): - self.frame.Destroy() - - -NodeStack = [] - -# Define a handler for start element events -def StartElement( name, attrs ): - global NodeStack - NodeStack.append(app.tree.AppendItem(NodeStack[-1],name)) - -def EndElement( name ): - global NodeStack - NodeStack = NodeStack[:-1] - -def CharacterData ( data ): - global NodeStack - if string.strip(data): - app.tree.AppendItem(NodeStack[-1],data) - - -def LoadTree (f): - print f - # Create a parser - Parser = pyexpat.ParserCreate() - - # Tell the parser what the start element handler is - Parser.StartElementHandler = StartElement - Parser.EndElementHandler = EndElement - Parser.CharacterDataHandler = CharacterData - - # Parse the XML File - ParserStatus = Parser.Parse(open(f,'r').read(), 1) - if ParserStatus == 0: - print "oops!" - raise SystemExit - -app = MyApp(0) -NodeStack = [app.tree.AddRoot("Root")] - - -app.MainLoop() -raise SystemExit 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/wxPython/tests/zigron.py b/utils/wxPython/tests/zigron.py deleted file mode 100644 index 7a6c89d380..0000000000 --- a/utils/wxPython/tests/zigron.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -## import all of the wxPython GUI package -from wxPython.wx import * - - -#--------------------------------------------------------------------------- -class GeneralTab(wxWindow): - def __init__(self,parent,id): - wxWindow.__init__(self,parent,id,wxPoint(5,25)) - self.Opts = {} - hdr = wxStaticText(self,-1,"This space left intentionally blank.",wxPoint(5,10)) - def GetOpts(self): - return self.Opts - -class ServersTab(wxWindow): - def __init__(self,parent,id): - wxWindow.__init__(self,parent,id,wxPoint(5,25)) - hdr = wxStaticText(self,-1,"This is also blank on purpose.",wxPoint(5,10)) - self.Opts = {} - def GetOpts(self): - return self.Opts - -class OptionsTab(wxWindow): - def __init__(self,parent,id): - wxWindow.__init__(self,parent,id,wxPoint(5,25)) - hdr = wxStaticText(self,-1,"Quit bugging me!.",wxPoint(5,10)) - self.Opts = {} - def GetOpts(self): - return self.Opts - -class SettingsWindow(wxFrame): - NOTEBOOK = 3201 - GENERAL_TAB = 3210 - OPTIONS_TAB = 3211 - SERVERS_TAB = 3212 - - def __init__(self,parent,id): - self.id = id - self.parent = parent - wxFrame.__init__(self,parent,id,'Pyces Settings', - wxPoint(50,50), wxSize(350,475), - wxDIALOG_MODAL|wxSTATIC_BORDER|wxCAPTION|wxSYSTEM_MENU) - nb = wxNotebook(self, self.NOTEBOOK) - self.GeneralTab = GeneralTab(self,-1) - self.OptionsTab = OptionsTab(self,-1) - self.ServersTab = ServersTab(self,-1) - nb.AddPage(self.GeneralTab,'General') - nb.AddPage(self.OptionsTab,'Options') - nb.AddPage(self.ServersTab,'Servers') - nb.SetSelection(0) - nb.SetSize(wxSize(350,420)) - - - -#--------------------------------------------------------------------------- - -class MyApp(wxApp): - def OnInit(self): - frame = SettingsWindow(NULL, -1) - #frame.ShowModal() - #return false - frame.Show(true) - self.SetTopWindow(frame) - return true - -#--------------------------------------------------------------------------- - - -app = MyApp(0) # Create an instance of the application class -app.MainLoop() # Tell it to start processing events - -#---------------------------------------------------------------------------- -# - diff --git a/utils/wxprop/src/prop.cpp b/utils/wxprop/src/prop.cpp deleted file mode 100644 index 59802962de..0000000000 --- a/utils/wxprop/src/prop.cpp +++ /dev/null @@ -1,1119 +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 license -///////////////////////////////////////////////////////////////////////////// - -#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__) -#include -#else -#include -#endif -#else -#include -#endif - -#include "wx/window.h" -#include "wx/utils.h" -#include "wx/list.h" -#include "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 char *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 char *)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(char **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: - { - char** s = copyFrom.StringValuePtr(); - (*this) = s != 0; - 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; - sprintf(wxBuffer, "%.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; -*/ - sprintf(wxBuffer, "%.6g", f); - stream << wxBuffer; - break; - } - case wxPropertyValueString: - { -// stream << "\""; - int i; - int len = strlen(m_value.string); - for (i = 0; i < len; i++) - { - char ch = m_value.string[i]; -// if (ch == '"' || ch == '\\') -// stream << "\\"; - stream << ch; - } - -// stream << "\""; - break; - } - case wxPropertyValueStringPtr: - { - 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 char *val = (const char *)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 char **val) -{ - m_modifiedFlag = TRUE; - m_type = wxPropertyValueStringPtr; - - if (val) - m_value.stringPtr = (char **)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; -} - -char *wxPropertyValue::StringValue(void) const { - if (m_type == wxPropertyValueString) - return m_value.string; - else if (m_type == wxPropertyValueStringPtr) - return *(m_value.stringPtr); - else return NULL; - } - -char **wxPropertyValue::StringValuePtr(void) const -{ - return m_value.stringPtr; -} - -/* - * A property (name plus value) - */ - -IMPLEMENT_DYNAMIC_CLASS(wxProperty, wxObject) - -wxProperty::wxProperty(void) -{ - m_propertyRole = (char *)NULL; - 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_name(nm), m_value(val), 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(void):m_properties(wxKEY_STRING) -{ -} - -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 char*) property->GetName(), property); -} - -// Get property by name -wxProperty *wxPropertySheet::GetProperty(wxString name) -{ - wxNode *node = m_properties.Find((const char*) name); - if (!node) - return NULL; - else - return (wxProperty *)node->Data(); -} - -// 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 char*) typeName, validator); -} - -wxPropertyValidator *wxPropertyValidatorRegistry::GetValidator(const wxString& typeName) -{ - return (wxPropertyValidator *)Get((const char*) 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 (char *s, float *number) { - double num; - bool ok = StringToDouble (s, &num); - *number = (float) num; - return ok; -} - -bool wxPropertyValidator::StringToDouble (char *s, double *number) { - bool ok = TRUE; - char *value_ptr; - *number = strtod (s, &value_ptr); - if (value_ptr) { - int len = strlen (value_ptr); - for (int i = 0; i < len; i++) { - ok = (isspace (value_ptr[i]) != 0); - if (!ok) return FALSE; - } - } - return ok; -} - -bool wxPropertyValidator::StringToInt (char *s, int *number) { - long num; - bool ok = StringToLong (s, &num); - *number = (int) num; - return ok; -} - -bool wxPropertyValidator::StringToLong (char *s, long *number) { - bool ok = TRUE; - char *value_ptr; - *number = strtol (s, &value_ptr, 10); - if (value_ptr) { - int len = strlen (value_ptr); - for (int i = 0; i < len; i++) { - ok = (isspace (value_ptr[i]) != 0); - if (!ok) return FALSE; - } - } - return ok; -} - -char *wxPropertyValidator::FloatToString (float number) { - static char buf[20]; - sprintf (buf, "%.6g", number); - return buf; -} - -char *wxPropertyValidator::DoubleToString (double number) { - static char buf[20]; - sprintf (buf, "%.6g", number); - return buf; -} - -char *wxPropertyValidator::IntToString (int number) { - return ::IntToString (number); -} - -char *wxPropertyValidator::LongToString (long number) { - return ::LongToString (number); - } - - diff --git a/utils/wxtree/docs/back.gif b/utils/wxtree/docs/back.gif deleted file mode 100644 index 8a61076d3b..0000000000 Binary files a/utils/wxtree/docs/back.gif and /dev/null differ diff --git a/utils/wxtree/docs/books.gif b/utils/wxtree/docs/books.gif deleted file mode 100644 index 26ff394df6..0000000000 Binary files a/utils/wxtree/docs/books.gif and /dev/null differ 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 3dddfa3dd5..0000000000 Binary files a/utils/wxtree/docs/contents.gif and /dev/null differ diff --git a/utils/wxtree/docs/forward.gif b/utils/wxtree/docs/forward.gif deleted file mode 100644 index 9c81e8c92f..0000000000 Binary files a/utils/wxtree/docs/forward.gif and /dev/null differ 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 fd6103035f..0000000000 Binary files a/utils/wxtree/docs/treetst.bmp and /dev/null differ diff --git a/utils/wxtree/docs/treetst.gif b/utils/wxtree/docs/treetst.gif deleted file mode 100644 index e9f7841957..0000000000 Binary files a/utils/wxtree/docs/treetst.gif and /dev/null differ diff --git a/utils/wxtree/docs/up.gif b/utils/wxtree/docs/up.gif deleted file mode 100644 index 316d0d2a14..0000000000 Binary files a/utils/wxtree/docs/up.gif and /dev/null differ diff --git a/utils/wxtree/docs/wxtree.tex b/utils/wxtree/docs/wxtree.tex deleted file mode 100644 index bf14b0dc75..0000000000 --- a/utils/wxtree/docs/wxtree.tex +++ /dev/null @@ -1,73 +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% -\title{Manual for wxTreeLayout 2.0: a tree layout library for wxWindows} -\author{Julian Smart\\Anthemion Software} -\date{July 1998}% -\makeindex% -\begin{document}% -\maketitle - -\pagestyle{fancyplain} -\bibliographystyle{plain} -\pagenumbering{roman} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage} -\tableofcontents% - -\chapter{Introduction} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -This manual describes a tree-drawing class library for wxWindows. It -provides layout of simple trees with one root node, drawn left-to-right, -with user-defined spacing between nodes. - -wxTreeLayout is an abstract class that must be subclassed. The programmer -defines various member functions which will access whatever data structures -are appropriate for the application, and wxTreeLayout uses these when laying -out the tree. - -wxStoredTree is a class derived from wxTreeLayout that may be used directly to -draw trees on a canvas. It supplies storage for the nodes, and draws -to a device context. - -\helponly{Below is the example tree generated by the program test.cc. - -\begin{figure} -$$\image{11cm;0cm}{treetst.ps}$$ -\caption{Example tree}\label{exampletree} -\end{figure} -} - -\chapter{Implementation} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -The algorithm is due to Gabriel Robins \cite{robins87}, a linear-time -algorithm originally implemented in LISP for AI applications. - -The original algorithm has been modified so that both X and Y planes -are calculated simultaneously, increasing efficiency slightly. The basic -code is only a page or so long. - -\input classes.tex -% -\bibliography{tree} - -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -\printindex -\end{document} diff --git a/utils/wxtree/lib/dummy b/utils/wxtree/lib/dummy deleted file mode 100644 index bfdf726d49..0000000000 --- a/utils/wxtree/lib/dummy +++ /dev/null @@ -1 +0,0 @@ -I'm just here to force the creation of a LIB directory. diff --git a/utils/wxtree/src/makefile.b32 b/utils/wxtree/src/makefile.b32 deleted file mode 100644 index fe9d9fb3e3..0000000000 --- a/utils/wxtree/src/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# -# -# Makefile : Builds wxTree sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS=$(TARGET).obj wxtree.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/wxtree/src/makefile.bcc b/utils/wxtree/src/makefile.bcc deleted file mode 100644 index 69a61d94eb..0000000000 --- a/utils/wxtree/src/makefile.bcc +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1999 -# Updated: -# -# -# Makefile : Builds wxTree sample for 16-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS=$(TARGET).obj wxtree.obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/utils/wxtree/src/makefile.dos b/utils/wxtree/src/makefile.dos deleted file mode 100644 index c78d0a7cfb..0000000000 --- a/utils/wxtree/src/makefile.dos +++ /dev/null @@ -1,118 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds tree library and example (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 - -TREEDIR = $(WXDIR)\utils\wxtree -TREELIB = $(TREEDIR)\lib\wxtree.lib -DOCDIR = $(TREEDIR)\docs -THISDIR = $(TREEDIR)\src -EXTRALIBS = $(TREELIB) -INC=-I$(WXDIR)\include\base -I$(WXDIR)\include\msw -DUMMY=$(WXDIR)\src\msw\dummy.obj - -# Default is to output RTF for WinHelp -!ifndef RTFSTYLE -RTFSTYLE=-winhelp -!endif - -HEADERS = wxtree.h -SOURCES = wxtree.$(SRCSUFF) -OBJECTS = wxtree.obj - -all: $(TREELIB) - -test: test.exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.dos FINAL=$(FINAL) - cd $(TREEDIR)\src - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.dos clean - cd $(TREEDIR)\src - -$(TREELIB): $(OBJECTS) - -erase $(TREELIB) - lib /PAGESIZE:128 @<< -$(TREELIB) -y -$(OBJECTS) -nul -; -<< - -test.exe: $(DUMMY) $(WXLIB) $(TREELIB) test.obj test.def test.res - link $(LINKFLAGS) @<< -$(DUMMY) test.obj, -test, -NUL, -$(LIBS), -test.def -; -<< - rc -31 -K test.res - -wxtree.obj: wxtree.h wxtree.$(SRCSUFF) $(DUMMY) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -test.obj: test.h wxtree.h test.$(SRCSUFF) $(DUMMY) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -test.res : test.rc $(WXDIR)\include\msw\wx.rc - rc -r /dFAFA_LIB /i$(WXDIR)\contrib\fafa /i$(WXDIR)\include\msw test - -# Making documents -docs: hlp xlp -hlp: $(DOCDIR)/wxtree.hlp -xlp: $(DOCDIR)/wxtree.xlp -rtf: $(DOCDIR)/wxtree.rtf - -$(DOCDIR)/wxtree.hlp: $(DOCDIR)/wxtree.rtf $(DOCDIR)/wxtree.hpj - cd $(DOCDIR) - -erase wxtree.ph - hc wxtree - cd $(THISDIR) - -$(DOCDIR)/wxtree.rtf: $(DOCDIR)/manual.tex $(DOCDIR)/classes.tex - cd $(DOCDIR) - -wx /W tex2rtf $(DOCDIR)\manual.tex $(DOCDIR)\wxtree.rtf -twice $(RTFSTYLE) - cd $(THISDIR) - -$(DOCDIR)/wxtree.xlp: $(DOCDIR)/manual.tex $(DOCDIR)/classes.tex - cd $(DOCDIR) - -wx /W tex2rtf $(DOCDIR)\manual.tex $(DOCDIR)\wxtree.xlp -twice -xlp - cd $(THISDIR) - -cleanrtf: - cd $(DOCDIR) - -erase *.rtf - cd $(THISDIR) - -clean: - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb - -erase $(TREELIB) diff --git a/utils/wxtree/src/makefile.g95 b/utils/wxtree/src/makefile.g95 deleted file mode 100644 index 721817437c..0000000000 --- a/utils/wxtree/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 = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).o wxtree.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/utils/wxtree/src/makefile.sc b/utils/wxtree/src/makefile.sc deleted file mode 100644 index a03ad23365..0000000000 --- a/utils/wxtree/src/makefile.sc +++ /dev/null @@ -1,73 +0,0 @@ -# Symantec C++ makefile for the tree library -# 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 - -include $(WXDIR)\src\makesc.env - -TREEDIR = $(WXDIR)\utils\wxtree -TREEINC = $(TREEDIR)\src -TREELIB = $(TREEDIR)\lib\wxtree.lib - -DOCDIR = $(TREEDIR)\docs -SRCDIR = $(TREEDIR)\src - -# Default is to output RTF for WinHelp -WINHELP=-winhelp - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(TREELIB) $(WXLIB) libw.lib commdlg.lib shell.lib - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -$(TREELIB): wxtree.obj - -del $(TREELIB) - *lib $(TREELIB) y wxtree.obj, nul; - -wxtree.obj: wxtree.h wxtree.$(SRCSUFF) - -test.exe: test.obj test.def test.res - *$(CC) $(LDFLAGS) -o$@ test.obj test.def $(LIBS) - *$(RC) -k test.res - -test.obj: test.h wxtree.h test.$(SRCSUFF) - -# Making documents -docs: hlp xlp -hlp: $(DOCDIR)/wxtree.hlp -xlp: $(DOCDIR)/wxtree.xlp -rtf: $(DOCDIR)/wxtree.rtf - -$(DOCDIR)/wxtree.hlp: $(DOCDIR)/wxtree.rtf $(DOCDIR)/wxtree.hpj - cd $(DOCDIR) - -erase wxtree.ph - hc wxtree - cd $(SRCDIR) - -$(DOCDIR)/wxtree.rtf: $(DOCDIR)/manual.tex $(DOCDIR)/classes.tex - cd $(DOCDIR) - -wx tex2rtf $(DOCDIR)\manual.tex $(DOCDIR)\wxtree.rtf -twice -winhelp - cd $(SRCDIR) - -$(DOCDIR)/wxtree.xlp: $(DOCDIR)/manual.tex $(DOCDIR)/classes.tex - cd $(DOCDIR) - -wx tex2rtf $(DOCDIR)\manual.tex $(DOCDIR)\wxtree.xlp -twice -xlp - cd $(SRCDIR) - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws - -del $(TREELIB) diff --git a/utils/wxtree/src/makefile.unx b/utils/wxtree/src/makefile.unx deleted file mode 100644 index 0d0d64162e..0000000000 --- a/utils/wxtree/src/makefile.unx +++ /dev/null @@ -1,133 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile for tree library and example (UNIX). -# Change the WXDIR directory, and CPPFLAGS and LDFLAGS, for your system. - -WXDIR = ../../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/make.env - -TREEDIR = $(WXDIR)/utils/wxtree -TREEINC = $(TREEDIR)/src -TREELIB = $(TREEDIR)/lib/libwxtree$(GUISUFFIX).a - -SOURCES = tree.$(SRCSUFF) -HEADERS = tree.h -OBJECTS = $(OBJDIR)/wxtree.$(OBJSUFF) - -TESTOBJECTS = $(OBJDIR)/test.$(OBJSUFF) -TESTPROGRAM = $(TREEDIR)/src/test$(GUISUFFIX) - -DOCUTILSDIR = $(WXDIR)/utils/tex2rtf/src - -LDFLAGS = $(XLIB) -L$(WXDIR)/lib -L$(TREEDIR)/lib - -XVIEWLDLIBS = -lwxtree_ol -lwx_ol -lxview -lolgx -lX11 -lm $(COMPLIBS) -MOTIFLDLIBS = -lwxtree_motif -lwx_motif -lXm -lXmu -lXt -lX11 -lm $(COMPLIBS) -HPLDLIBS = -lwxtree_hp -lwx_hp -lXm -lXmu -lXt -lX11 -lm $(COMPLIBS) -# Default -LDLIBS=$(XVIEWLDLIBS) - -.SUFFIXES: - -all: $(OBJDIR) $(TREELIB) - -demo: $(TESTPROGRAM) - -$(TREELIB): $(OBJECTS) - rm -f $@ - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -wxmotif: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx motif DEBUG='$(DEBUG)' - -wxxview: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx xview DEBUG='$(DEBUG)' - -motif: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx motif OPT='$(OPT)' DEBUG='$(DEBUG)' - $(MAKE) -f makefile.unx GUISUFFIX=_motif GUI=-Dwx_motif GUISUFFIX=_motif DEBUG='$(DEBUG)' OPT='$(OPT)' LDLIBS='$(MOTIFLDLIBS)' XVIEW_LINK= - -xview: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx xview OPT='$(OPT)' DEBUG='$(DEBUG)' - $(MAKE) -f makefile.unx GUI=-Dwx_xview GUISUFFIX=_ol OPT='$(OPT)' DEBUG='$(DEBUG)' - -demo_motif: - $(MAKE) -f makefile.unx all test_motif GUI=-Dwx_motif GUISUFFIX=_motif DEBUG='$(DEBUG)' OPT='$(OPT)' LDLIBS='$(MOTIFLDLIBS)' XVIEW_LINK= - -demo_ol: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx xview OPT='$(OPT)' DEBUG='$(DEBUG)' - $(MAKE) -f makefile.unx all test_ol GUI=-Dwx_xview OPT='$(OPT)' DEBUG='$(DEBUG)' - -hp: - $(MAKE) -f makefile.unx GUI=-Dwx_motif GUISUFFIX=_hp CC=CC DEBUG='$(DEBUG)' DEBUGFLAGS='-g' OPT='' WARN='-w' \ - XINCLUDE='$(HPXINCLUDE)' XLIB='$(HPXLIB)' XVIEW_LINK='' CCLEX='cc' \ - LDLIBS='$(HPLDLIBS)' - -demo_hp: - $(MAKE) -f makefile.unx all test_hp GUI=-Dwx_motif GUISUFFIX=_hp CC=CC DEBUG='$(DEBUG)' DEBUGFLAGS='-g' OPT='' WARN='-w' \ - XINCLUDE='$(HPXINCLUDE)' XLIB='$(HPXLIB)' XVIEW_LINK='' CCLEX='cc' \ - LDLIBS='$(HPLDLIBS)' - -$(OBJDIR): - mkdir $(OBJDIR) - -test$(GUISUFFIX): $(OBJDIR)/test.$(OBJSUFF) $(WXLIB) $(TREELIB) - $(CC) $(LDFLAGS) -o test$(GUISUFFIX) $(OBJDIR)/test.$(OBJSUFF) $(XVIEW_LINK) $(LDLIBS) - -$(OBJDIR)/wxtree.$(OBJSUFF): wxtree.$(SRCSUFF) wxtree.h - $(CC) -c $(CPPFLAGS) -o $@ wxtree.$(SRCSUFF) - -$(OBJDIR)/test.$(OBJSUFF): test.$(SRCSUFF) test.h wxtree.h - $(CC) -c $(CPPFLAGS) -o $@ test.$(SRCSUFF) - -HTMLDIR=/home/hardy/html/wx/manuals -docs: ps xlp -ps: $(TREEDIR)/docs/manual.ps -xlp: $(TREEDIR)/docs/wxtree.xlp -html: $(HTMLDIR)/wxtree/wxtree_contents.html - -$(TREEDIR)/docs/wxtree.xlp: $(TREEDIR)/docs/manual.tex $(TREEDIR)/docs/classes.tex - cd ../docs; tex2rtf manual.tex tmp.xlp -xlp -twice - sed -e "s/WXHELPCONTENTS/wxTree Manual/g" < $(TREEDIR)/docs/tmp.xlp > $(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 2310c5d275..0000000000 Binary files a/utils/wxtree/src/mondrian.ico and /dev/null differ diff --git a/utils/wxtree/src/test.cpp b/utils/wxtree/src/test.cpp deleted file mode 100644 index 65198f308b..0000000000 --- a/utils/wxtree/src/test.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxTreeLayout sample -// Author: Julian Smart -// Modified by: -// Created: 7/4/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// For compilers that support precompilation, includes "wx.h". -#include - -#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 2f53edd46a..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 9 - -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-b9.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} --enable-threads --disable-std_iostreams - -%build -cd src && 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 - diff --git a/wxMotif.spec b/wxMotif.spec deleted file mode 100644 index b750c4b634..0000000000 --- a/wxMotif.spec +++ /dev/null @@ -1,58 +0,0 @@ -# Note that this is NOT a relocatable package -%define pref /usr -%define ver 2.1.0 -%define rel 8 - -Summary: The Motif port of the wxWindows library -Name: wxMotif -Version: %{ver} -Release: %{rel} -Copyright: wxWindows Licence -Group: X11/Libraries -Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxMotif-2.1.0-b8.tgz -URL: http://wesley.informatik.uni-freiburg.de/~wxxt/docs.html -Packager: Robert Roebling -BuildRoot: /tmp/wxmotif_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 wxMotif -./configure --prefix=%{pref} --disable-threads --disable-std_iostreams - -%build -cd src && 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_motif* -%attr(755, -, -) %{pref}/bin/wx-config - diff --git a/wxWINE.spec b/wxWINE.spec deleted file mode 100644 index 70e5230a10..0000000000 --- a/wxWINE.spec +++ /dev/null @@ -1,58 +0,0 @@ -# Note that this is NOT a relocatable package -%define pref /usr -%define ver 2.1.0 -%define rel 8 - -Summary: The WINE port of the wxWindows library -Name: wxWINE -Version: %{ver} -Release: %{rel} -Copyright: wxWindows Licence -Group: X11/Libraries -Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxWINE-2.1.0-b8.tgz -URL: http://wesley.informatik.uni-freiburg.de/~wxxt/docs.html -Packager: Robert Roebling -BuildRoot: /tmp/wxwine_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 wxWINE -./configure --prefix=%{pref} - -%build -cd src && 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_msw* -%attr(755, -, -) %{pref}/bin/wx-config -